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