Class LifeDrain
java.lang.Object
com.binaris.wizardry.api.content.spell.Spell
com.binaris.wizardry.content.spell.abstr.RaySpell
com.binaris.wizardry.content.spell.necromancy.LifeDrain
-
Field Summary
Fields inherited from class com.binaris.wizardry.content.spell.abstr.RaySpell
aimAssist, hitLiquids, ignoreLivingEntities, ignoreUncollidables, particleJitter, particleSpacing, particleVelocity, Y_OFFSETFields inherited from class com.binaris.wizardry.api.content.spell.Spell
pitch, pitchVariation, volume -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanWhether this spell is instant or not.protected booleanonBlockHit(CastContext ctx, net.minecraft.world.phys.BlockHitResult blockHit, net.minecraft.world.phys.Vec3 origin) Called when the ray hits a block.protected booleanonEntityHit(CastContext ctx, net.minecraft.world.phys.EntityHitResult entityHit, net.minecraft.world.phys.Vec3 origin) Called when the ray hits an entity.protected booleanonMiss(CastContext ctx, net.minecraft.world.phys.Vec3 origin, net.minecraft.world.phys.Vec3 direction) Called when the ray does not hit any entities or blocks.protected voidplaySound(net.minecraft.world.level.Level world, double x, double y, double z, int ticksInUse, int duration) Plays this spell's sounds at the given position in the given world.protected voidplaySound(net.minecraft.world.level.Level world, net.minecraft.world.entity.LivingEntity entity, int castTicks, int duration) Plays this spell's sound at the given entity in the given world.protected @NotNull SpellPropertiesThis method is where you should set the default properties for your spell when creating a new spell class.protected voidspawnParticle(CastContext ctx, double x, double y, double z, double vx, double vy, double vz) Spawns a particle at the given position with the given velocity.Methods inherited from class com.binaris.wizardry.content.spell.abstr.RaySpell
aimAssist, canCastByEntity, canCastByLocation, cast, cast, cast, hitLiquids, ignoreLivingEntities, ignoreUncollidables, particleJitter, particleSpacing, particleVelocity, shootSpell, spawnParticleRayMethods inherited from class com.binaris.wizardry.api.content.spell.Spell
assignProperties, endCast, equals, getAction, getChargeUp, getCooldown, getCost, getDesc, getDescriptionFormatted, getDescriptionId, getElement, getIcon, getLocation, getLoopSounds, getOrCreateDescriptionId, getOrCreateLocation, getPitch, getPitchVariation, getProperties, getTier, getType, getVolume, isEnabled, onCharge, playSound, playSoundLoop, playSoundLoop, property, requiresPacket, soundValues, toString
-
Constructor Details
-
LifeDrain
public LifeDrain()
-
-
Method Details
-
onEntityHit
protected boolean onEntityHit(CastContext ctx, net.minecraft.world.phys.EntityHitResult entityHit, net.minecraft.world.phys.Vec3 origin) Description copied from class:RaySpellCalled when the ray hits an entity. Override this method to perform an action when the ray hits an entity, such as dealing damage or applying a status effect. Return true if the spell should be considered successfully cast when it hits an entity, or false if the spell should not be cast when it hits an entity (e.g. if you want to prevent casting when the ray is blocked by an uncollidable block and ignoreUncollidables is true).- Specified by:
onEntityHitin classRaySpell- Parameters:
ctx- The cast context of the spell.entityHit- The result of the entity hit, containing information about the hit entity and hit position.origin- The starting point of the ray.- Returns:
- true if the spell should be considered successfully cast when it hits an entity, false if the spell should not be cast when it hits an entity.
-
onMiss
protected boolean onMiss(CastContext ctx, net.minecraft.world.phys.Vec3 origin, net.minecraft.world.phys.Vec3 direction) Description copied from class:RaySpellCalled when the ray does not hit any entities or blocks. Override this method to perform an action when the ray misses, such as spawning particles at the endpoint. Return true if the spell should be considered successfully cast even when it misses, or false if the spell should not be cast when it misses (e.g. if you want to prevent casting when the ray is blocked by an uncollidable block and ignoreUncollidables is true).- Specified by:
onMissin classRaySpell- Parameters:
ctx- The cast context of the spell.origin- The starting point of the ray.direction- The normalized direction vector of the ray.- Returns:
- true if the spell should be considered successfully cast even when it misses, false if the spell should not be cast when it misses.
-
onBlockHit
protected boolean onBlockHit(CastContext ctx, net.minecraft.world.phys.BlockHitResult blockHit, net.minecraft.world.phys.Vec3 origin) Description copied from class:RaySpellCalled when the ray hits a block. Override this method to perform an action when the ray hits a block, such as creating an explosion or spawning particles. Return true if the spell should be considered successfully cast when it hits a block, or false if the spell should not be cast when it hits a block (e.g. if you want to prevent casting when the ray is blocked by an uncollidable block and ignoreUncollidables is true).- Specified by:
onBlockHitin classRaySpell- Parameters:
ctx- The cast context of the spell.blockHit- The result of the block hit, containing information about the hit position and block.origin- The starting point of the ray.- Returns:
- true if the spell should be considered successfully cast when it hits a block, false if the spell should not be cast when it hits a block.
-
spawnParticle
protected void spawnParticle(CastContext ctx, double x, double y, double z, double vx, double vy, double vz) Description copied from class:RaySpellSpawns a particle at the given position with the given velocity. Override this method to spawn custom particles for the ray.- Overrides:
spawnParticlein classRaySpell- Parameters:
ctx- The cast context of the spell.x- The x-coordinate of the particle.y- The y-coordinate of the particle.z- The z-coordinate of the particle.vx- The x-component of the particle's velocity.vy- The y-component of the particle's velocity.vz- The z-component of the particle's velocity.
-
isInstantCast
public boolean isInstantCast()Description copied from class:SpellWhether this spell is instant or not. An instant spell is a spell that is cast in a single tick, (it could have cooldown and/or charge-up time) and does not have a duration. By default, this returns true, as most spells are instant, but you can override this to return false if your spell is meant to have a duration and be cast over multiple ticks.- Overrides:
isInstantCastin classSpell- Returns:
- true if this spell is instant, false otherwise.
-
playSound
protected void playSound(net.minecraft.world.level.Level world, net.minecraft.world.entity.LivingEntity entity, int castTicks, int duration) Description copied from class:SpellPlays this spell's sound at the given entity in the given world. This callsSpell.playSound(Level, double, double, double, int, int), passing in the given entity's position as the xyz coordinates. Also checks if the given entity is silent, and if so, does not play the sound.You should override this is you're trying to implement a custom sound loop, check
FrostRaySpellas an example.- Overrides:
playSoundin classSpell- Parameters:
world- The world to play the sound in.entity- The entity to play the sound at, provided it is not silent.castTicks- The number of ticks this spell has already been cast for, passed in from thecast(...)methods. Not used in the base method, but included for use by subclasses overriding this method.duration- The number of ticks this spell will be cast for, passed in from thecast(...)methods. Not used in the base method, but included for use by subclasses overriding this method.
-
playSound
protected void playSound(net.minecraft.world.level.Level world, double x, double y, double z, int ticksInUse, int duration) Description copied from class:SpellPlays this spell's sounds at the given position in the given world. This is not called automatically by the Spell class; subclasses should call it at the appropriate point(s) in the cast methods. You can also override this method if you want to implement a sound loop (normally for continuous spells), checkFrostRaySpellas an example.In case you're using any standard subclass of Spell (e.g.
RaySpellArrowSpell) you won't need to handle the sound system by yourself, as these classes will call the playSound in the right moment for you.- Overrides:
playSoundin classSpell- Parameters:
world- The world to play the sound in.x- The x position to play the sound at.y- The y position to play the sound at.z- The z position to play the sound at.ticksInUse- The number of ticks this spell has already been cast for, passed in from thecast(...)methods.duration- The number of ticks this spell will be cast for, passed in from thecast(...)methods. Not used in the base method, but included for use by subclasses overriding this method.
-
properties
Description copied from class:SpellThis method is where you should set the default properties for your spell when creating a new spell class. This method is called in the constructor of the Spell class, and the properties returned by this method are assigned to the spell's properties field.- Specified by:
propertiesin classSpell- Returns:
- A SpellProperties object with the default properties for your spell.
-