|
|
@ -32,6 +32,8 @@ import java.util.concurrent.ThreadLocalRandom; |
|
|
|
import static engine.math.FastMath.sqr; |
|
|
|
import static engine.math.FastMath.sqr; |
|
|
|
|
|
|
|
|
|
|
|
public class MobileFSM { |
|
|
|
public class MobileFSM { |
|
|
|
|
|
|
|
public static ArrayList<Mob> respawnQue = new ArrayList<>(); |
|
|
|
|
|
|
|
public static long lastRespawn = 0; |
|
|
|
private static void AttackTarget(Mob mob, AbstractWorldObject target) { |
|
|
|
private static void AttackTarget(Mob mob, AbstractWorldObject target) { |
|
|
|
if (mob == null) |
|
|
|
if (mob == null) |
|
|
|
return; |
|
|
|
return; |
|
|
@ -339,6 +341,13 @@ public class MobileFSM { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void DetermineAction(Mob mob) { |
|
|
|
public static void DetermineAction(Mob mob) { |
|
|
|
|
|
|
|
//always check the respawn que, respawn 1 mob max per second to not flood the client
|
|
|
|
|
|
|
|
if(respawnQue.size() > 0 && lastRespawn + 1000 > System.currentTimeMillis()){ |
|
|
|
|
|
|
|
respawnQue.get(0).respawn(); |
|
|
|
|
|
|
|
respawnQue.remove(0); |
|
|
|
|
|
|
|
lastRespawn = System.currentTimeMillis(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (mob == null) |
|
|
|
if (mob == null) |
|
|
|
return; |
|
|
|
return; |
|
|
|
if (mob.despawned && mob.getMobBase().getLoadID() == 13171) { |
|
|
|
if (mob.despawned && mob.getMobBase().getLoadID() == 13171) { |
|
|
@ -532,7 +541,8 @@ public class MobileFSM { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (System.currentTimeMillis() > (aiAgent.deathTime + (aiAgent.spawnTime * 1000))) { |
|
|
|
} else if (System.currentTimeMillis() > (aiAgent.deathTime + (aiAgent.spawnTime * 1000))) { |
|
|
|
aiAgent.respawn(); |
|
|
|
//aiAgent.respawn();
|
|
|
|
|
|
|
|
respawnQue.add(aiAgent); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|