123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package me.km.effects.active;
- import me.km.KajetansMod;
- 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 AreaDamage extends ActiveEffectBase
- {
- @Override
- protected boolean executeEffect(EntityPlayerMP p, int power)
- {
- if(!KajetansMod.playerbank.getData(p).hasData("aoe"))
- {
- // just adding a bit to time to make sure the last call works
- KajetansMod.playerbank.getData(p).addGoodTimedData("aoe", true, power * 20 + 3, "AOE Schaden", 61);
- for(int i = 0; i < power; i++)
- {
- KajetansMod.scheduler.scheduleTask(() -> attack(p), i * 20);
- }
- return true;
- }
- return false;
- }
-
- private void attack(EntityPlayerMP p)
- {
- if(KajetansMod.playerbank.getData(p).hasData("aoe"))
- {
- WorldServer w = p.getServerWorld();
- Vec3d v = p.getPositionVector();
- EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.FLAME, 5, 12);
- EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.FLAME, 4, 12);
- EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.FLAME, 3, 12);
- EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.FLAME, 2, 12);
- EffectUtils.playEffectCircleWithData(w, v, EnumParticleTypes.FLAME, 1, 12);
- DamageSource ds = DamageSource.causeMobDamage(p);
- EffectUtils.getEntsOfNotGuild(p, 5).stream().forEach((m) ->
- {
- m.attackEntityFrom(ds, 2);
- });
- }
- }
- @Override
- protected int getManaCost(int manaFactor)
- {
- return 1;
- }
- }
|