3 changed files with 36 additions and 10 deletions
@ -1,19 +1,44 @@ |
|||||||
package engine.mobileAI.MobHandlers; |
package engine.mobileAI.MobHandlers; |
||||||
|
|
||||||
import engine.Enum; |
import engine.Enum; |
||||||
|
import engine.mobileAI.utilities.CombatUtilities; |
||||||
|
import engine.objects.Building; |
||||||
import engine.objects.Mob; |
import engine.objects.Mob; |
||||||
|
|
||||||
public class SiegeHandler { |
public class SiegeHandler { |
||||||
public static void run(Mob engine){ |
public static void run(Mob engine){ |
||||||
|
|
||||||
if(!engine.isAlive()) |
if(!engine.isAlive()) { |
||||||
|
check_siege_respawn(engine); |
||||||
return; |
return; |
||||||
|
} |
||||||
|
|
||||||
if(engine.getOwner() == null || !engine.getOwner().isAlive()) |
if(engine.getOwner() == null || !engine.getOwner().isAlive() || !engine.playerAgroMap.containsKey(engine.getOwner().getObjectUUID())) |
||||||
return; |
return; |
||||||
|
|
||||||
if(engine.combatTarget == null || !engine.combatTarget.getObjectType().equals(Enum.GameObjectType.Building)) |
if(engine.combatTarget == null || !engine.combatTarget.getObjectType().equals(Enum.GameObjectType.Building)) |
||||||
return; |
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); |
||||||
|
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
Loading…
Reference in new issue