siege engine AI handler
This commit is contained in:
1 parent
d4ad2a6a2a
commit
da67d4b3ea
3 files changed
+36
-10
No files matched your search
@@ -1,19 +1,44 @@
|
||||
package engine.mobileAI.MobHandlers;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.mobileAI.utilities.CombatUtilities;
|
||||
import engine.objects.Building;
|
||||
import engine.objects.Mob;
|
||||
|
||||
public class SiegeHandler {
|
||||
public static void run(Mob engine){
|
||||
|
||||
if(!engine.isAlive())
|
||||
if(!engine.isAlive()) {
|
||||
check_siege_respawn(engine);
|
||||
return;
|
||||
}
|
||||
|
||||
if(engine.getOwner() == null || !engine.getOwner().isAlive())
|
||||
if(engine.getOwner() == null || !engine.getOwner().isAlive() || !engine.playerAgroMap.containsKey(engine.getOwner().getObjectUUID()))
|
||||
return;
|
||||
|
||||
if(engine.combatTarget == null || !engine.combatTarget.getObjectType().equals(Enum.GameObjectType.Building))
|
||||
return;
|
||||
|
||||
siege_attack(engine);
|
||||
}
|
||||
|
||||
public static void check_siege_respawn(Mob engine){
|
||||
if(!engine.despawned) {
|
||||
engine.despawn();
|
||||
}else{
|
||||
if(engine.deathTime + (engine.spawnTime * 1000) > System.currentTimeMillis()){
|
||||
engine.respawn();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void siege_attack(Mob engine){
|
||||
if(engine.getLastAttackTime() > System.currentTimeMillis())
|
||||
return;
|
||||
|
||||
if(CombatUtilities.inRangeToAttack(engine,engine.combatTarget)){
|
||||
CombatUtilities.combatCycle(engine, engine.combatTarget, true, null);
|
||||
engine.setLastAttackTime(System.currentTimeMillis() + 11000);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user