Elevation.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package me.km.effects.active;
  2. import java.util.Collection;
  3. import me.km.api.Utils;
  4. import me.km.effects.ActiveEffectBase;
  5. import me.km.effects.EffectUtils;
  6. import net.minecraft.entity.EntityLivingBase;
  7. import net.minecraft.entity.player.EntityPlayerMP;
  8. import net.minecraft.init.SoundEvents;
  9. import net.minecraft.util.EnumParticleTypes;
  10. import net.minecraft.util.math.BlockPos;
  11. import net.minecraft.util.math.Vec3d;
  12. public class Elevation extends ActiveEffectBase
  13. {
  14. @Override
  15. protected boolean executeEffect(EntityPlayerMP p, int power)
  16. {
  17. BlockPos target = EffectUtils.getPlayerTarget(p, power);
  18. Vec3d v = new Vec3d(target.getX(), target.getY(), target.getZ());
  19. EffectUtils.playSound(p, SoundEvents.ENTITY_FIREWORK_TWINKLE_FAR);
  20. EffectUtils.playSpell(p, power);
  21. Collection<EntityLivingBase> list = EffectUtils.getEntsOfNotGuild(p, p.world, v, 3);
  22. EffectUtils.playEffectCircle(p.getServerWorld(), v, EnumParticleTypes.SPELL, 3, 30);
  23. double shootPower = 1 + power / 20d;
  24. list.stream().forEach((en) ->
  25. {
  26. Utils.setVelocity(en, 0, shootPower, 0);
  27. });
  28. return true;
  29. }
  30. @Override
  31. protected int getManaCost(int manaFactor)
  32. {
  33. return 5 * manaFactor;
  34. }
  35. }