package me.km.effects.active; import me.km.api.Utils; import me.km.effects.ActiveEffectBase; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.Vec3d; public class Jump extends ActiveEffectBase { @Override protected boolean executeEffect(EntityPlayerMP p, int power) { if(!p.onGround) { return false; } Vec3d v = p.getLookVec(); double groundLength = Math.sqrt(v.xCoord * v.xCoord + v.zCoord * v.zCoord); Vec3d goal = new Vec3d(v.xCoord, groundLength * 1.732050807568877, v.zCoord); // 60° shot goal = goal.normalize(); goal = goal.scale(Math.sqrt((power + 0.85d) / 0.26) / 4); Utils.setVelocity(p, goal.xCoord, goal.yCoord, goal.zCoord); return true; } @Override protected int getManaCost(int manaFactor) { return 2 * manaFactor; } }