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