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.x * v.x + v.z * v.z); Vec3d goal = new Vec3d(v.x, groundLength * 1.732050807568877, v.z); // 60° shot goal = goal.normalize(); goal = goal.scale(Math.sqrt((power + 0.85d) / 0.26) / 4); Utils.setVelocity(p, goal.x, goal.y, goal.z); return true; } @Override protected int getManaCost(int manaFactor) { return 2 * manaFactor; } }