3 changed files with 36 additions and 10 deletions
			
			
		@ -1,19 +1,44 @@
				@@ -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); | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
				 
					 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue