Files
Wizardry/src/main/java/electroblob/wizardry/spell/Leap.java
T
Electroblob77 f37812be3e That's one heck of a commit you've got there...
I may have got a bit behind with version control. A lot behind, in fact. Maybe I'll go back and split this sometime - then again, I probably won't. But hey, at least it's here!
2019-08-18 00:04:18 +01:00

48 lines
1.4 KiB
Java

package electroblob.wizardry.spell;
import electroblob.wizardry.util.SpellModifiers;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.util.EnumHand;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World;
public class Leap extends Spell {
public static final String HORIZONTAL_SPEED = "horizontal_speed";
public static final String VERTICAL_SPEED = "vertical_speed";
public Leap(){
super("leap", EnumAction.NONE, false);
addProperties(HORIZONTAL_SPEED, VERTICAL_SPEED);
soundValues(0.5f, 1, 0);
}
@Override
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
if(caster.onGround){
caster.motionY = getProperty(VERTICAL_SPEED).floatValue() * modifiers.get(SpellModifiers.POTENCY);
double horizontalSpeed = getProperty(HORIZONTAL_SPEED).floatValue();
caster.addVelocity(caster.getLookVec().x * horizontalSpeed, 0, caster.getLookVec().z * horizontalSpeed);
if(world.isRemote){
for(int i = 0; i < 10; i++){
double x = caster.posX + world.rand.nextFloat() - 0.5F;
double y = caster.getEntityBoundingBox().minY;
double z = caster.posZ + world.rand.nextFloat() - 0.5F;
world.spawnParticle(EnumParticleTypes.CLOUD, x, y, z, 0, 0, 0);
}
}
this.playSound(world, caster, ticksInUse, -1, modifiers);
caster.swingArm(hand);
return true;
}
return false;
}
}