package me.km.effects.active; import me.km.effects.ActiveEffectBase; import me.km.effects.EffectUtils; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.math.Vec3d; import net.minecraft.world.WorldServer; public class Earthquake extends ActiveEffectBase { @Override protected boolean executeEffect(EntityPlayerMP p, int power) { int[] data = new int[]{4}; WorldServer w = p.getServerWorld(); Vec3d v = p.getPositionVector(); EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.BLOCK_CRACK, 5, 12, data); EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.BLOCK_CRACK, 4, 12, data); EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.BLOCK_CRACK, 3, 12, data); EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.BLOCK_CRACK, 2, 12, data); EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.BLOCK_CRACK, 1, 12, data); DamageSource ds = DamageSource.causeMobDamage(p); EffectUtils.getEntsOfNotGuild(p, 5).stream().forEach((m) -> { m.attackEntityFrom(ds, power * 4); }); return true; } @Override protected int getManaCost(int manaFactor) { return 8 * manaFactor; } }