| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -63,12 +63,10 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public float spawnRadius; | 
					 | 
					 | 
					 | 
					    public float spawnRadius; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    //used by static mobs
 | 
					 | 
					 | 
					 | 
					    //used by static mobs
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public int parentZoneUUID; | 
					 | 
					 | 
					 | 
					    public int parentZoneUUID; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    protected int dbID; //the database ID
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private int currentID; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    //TODO implement feared object system
 | 
					 | 
					 | 
					 | 
					    //TODO implement feared object system
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public AbstractWorldObject fearedObject = null; | 
					 | 
					 | 
					 | 
					    public AbstractWorldObject fearedObject = null; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    protected int dbID; //the database ID
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private int currentID; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private long lastAttackTime = 0; | 
					 | 
					 | 
					 | 
					    private long lastAttackTime = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private int lastMobPowerToken = 0; | 
					 | 
					 | 
					 | 
					    private int lastMobPowerToken = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private HashMap<Integer, MobEquipment> equip = null; | 
					 | 
					 | 
					 | 
					    private HashMap<Integer, MobEquipment> equip = null; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -314,13 +312,13 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            writer.put((byte) 1); | 
					 | 
					 | 
					 | 
					            writer.put((byte) 1); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if ((PlayerCharacter) mob.guardCaptain != null) { | 
					 | 
					 | 
					 | 
					            if (mob.guardCaptain != null) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                writer.putInt(((PlayerCharacter) mob.guardCaptain).getObjectType().ordinal()); | 
					 | 
					 | 
					 | 
					                writer.putInt(mob.guardCaptain.getObjectType().ordinal()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                writer.putInt(((PlayerCharacter) mob.guardCaptain).getObjectUUID()); | 
					 | 
					 | 
					 | 
					                writer.putInt(mob.guardCaptain.getObjectUUID()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            } else { | 
					 | 
					 | 
					 | 
					            } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                writer.putInt(0); //ownerType
 | 
					 | 
					 | 
					 | 
					                writer.putInt(0); //ownerType
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                writer.putInt(0); //ownerID
 | 
					 | 
					 | 
					 | 
					                writer.putInt(0); //ownerID
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -554,6 +552,7 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return petMinion; | 
					 | 
					 | 
					 | 
					        return petMinion; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public static Mob getMob(int id) { | 
					 | 
					 | 
					 | 
					    public static Mob getMob(int id) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (id == 0) | 
					 | 
					 | 
					 | 
					        if (id == 0) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -696,7 +695,7 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    public Vector3fImmutable getBindLoc() { | 
					 | 
					 | 
					 | 
					    public Vector3fImmutable getBindLoc() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (this.isPet() && !this.behaviourType.equals(MobBehaviourType.SiegeEngine)) | 
					 | 
					 | 
					 | 
					        if (this.isPet() && !this.behaviourType.equals(MobBehaviourType.SiegeEngine)) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            return (PlayerCharacter) this.guardCaptain != null ? ((PlayerCharacter) this.guardCaptain).getLoc() : this.getLoc(); | 
					 | 
					 | 
					 | 
					            return this.guardCaptain != null ? this.guardCaptain.getLoc() : this.getLoc(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        else | 
					 | 
					 | 
					 | 
					        else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            return this.bindLoc; | 
					 | 
					 | 
					 | 
					            return this.bindLoc; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1665,7 +1664,6 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                this.enemy.addAll(this.getMobBase().enemy); | 
					 | 
					 | 
					 | 
					                this.enemy.addAll(this.getMobBase().enemy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        try { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        NPCManager.applyRuneSetEffects(this); | 
					 | 
					 | 
					 | 
					        NPCManager.applyRuneSetEffects(this); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        recalculateStats(); | 
					 | 
					 | 
					 | 
					        recalculateStats(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.setHealth(this.healthMax); | 
					 | 
					 | 
					 | 
					        this.setHealth(this.healthMax); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1678,15 +1676,11 @@ public class Mob extends AbstractIntelligenceAgent { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //assign 5 random patrol points for regular mobs
 | 
					 | 
					 | 
					 | 
					        //assign 5 random patrol points for regular mobs
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (this.agentType.equals(AIAgentType.MOBILE)) { | 
					 | 
					 | 
					 | 
					        if (this.agentType.equals(AIAgentType.MOBILE)) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            NPCManager.AssignPatrolPoints(this); | 
					 | 
					 | 
					 | 
					            NPCManager.AssignPatrolPoints(this); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.deathTime = 0; | 
					 | 
					 | 
					 | 
					        this.deathTime = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } catch (Exception e) { | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            Logger.error(e.getMessage()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |