package me.km.effects.active; import java.util.Collection; import me.km.api.Utils; import me.km.effects.ActiveEffectBase; import me.km.effects.EffectUtils; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.SoundEvents; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; public class Elevation extends ActiveEffectBase { @Override protected boolean executeEffect(EntityPlayerMP p, int power) { BlockPos target = EffectUtils.getPlayerTarget(p, power); Vec3d v = new Vec3d(target.getX(), target.getY(), target.getZ()); EffectUtils.playSound(p, SoundEvents.ENTITY_FIREWORK_TWINKLE_FAR); EffectUtils.playSpell(p, power); Collection list = EffectUtils.getEntsOfNotGuild(p, p.world, v, 3); EffectUtils.playEffectCircle(p.getServerWorld(), v, EnumParticleTypes.SPELL, 3, 30); double shootPower = 1 + power / 20d; list.stream().forEach((en) -> { Utils.setVelocity(en, 0, shootPower, 0); }); return true; } @Override protected int getManaCost(int manaFactor) { return 5 * manaFactor; } }