package com.github.jamesnorris.ablockalypse.threading.inherent;
import org.bukkit.Location;
import org.bukkit.entity.Wolf;
import com.github.jamesnorris.ablockalypse.Ablockalypse;
import com.github.jamesnorris.ablockalypse.DataContainer;
import com.github.jamesnorris.ablockalypse.aspect.Hellhound;
import com.github.jamesnorris.ablockalypse.enumerated.ZAEffect;
import com.github.jamesnorris.ablockalypse.threading.RepeatingTask;
import com.github.jamesnorris.ablockalypse.utility.BukkitUtility;
public class ServerHellhoundActionTask extends RepeatingTask {
private static final int RE_TELEPORT_WAIT = 400;// ticks
private int countup_to_teleport = 0;
private DataContainer data = Ablockalypse.getData();
public ServerHellhoundActionTask(int interval, boolean autorun) {
super(interval, autorun);
}
@Override public void run() {
for (Hellhound f : data.getObjectsOfType(Hellhound.class)) {
Wolf wolf = f.getWolf();
if (wolf.isDead()) {
continue;
}
ZAEffect.FLAMES.play(wolf.getLocation());
f.setAggressive(true);
if (++countup_to_teleport >= RE_TELEPORT_WAIT / getInterval()) {
countup_to_teleport = 0;
Location target = f.getGame().getRandomLivingPlayer().getLocation();
Location strike = BukkitUtility.getNearbyLocation(target, 2, 4, 0, 0, 2, 4);
wolf.teleport(strike);
strike.getWorld().strikeLightning(strike);
}
}
}
}