|  |  |  | @ -37,6 +37,9 @@ public class MobileFSM {@@ -37,6 +37,9 @@ public class MobileFSM { | 
			
		
	
		
			
				
					|  |  |  |  |             mob.setCombatTarget(null); | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if(CombatUtilities.inRangeToAttack(mob,target) == false){ | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         switch (target.getObjectType()) { | 
			
		
	
		
			
				
					|  |  |  |  |             case PlayerCharacter: | 
			
		
	
		
			
				
					|  |  |  |  |                 PlayerCharacter targetPlayer = (PlayerCharacter) target; | 
			
		
	
	
		
			
				
					|  |  |  | @ -418,7 +421,7 @@ public class MobileFSM {@@ -418,7 +421,7 @@ public class MobileFSM { | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         mob.updateLocation(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (mob.isPet() == false && mob.isSummonedPet() == false && mob.isNecroPet() == false) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (mob.BehaviourType != Enum.MobBehaviourType.Pet1) { | 
			
		
	
		
			
				
					|  |  |  |  |             if (mob.getCombatTarget() == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 Patrol(mob); | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
	
		
			
				
					|  |  |  | @ -429,14 +432,15 @@ public class MobileFSM {@@ -429,14 +432,15 @@ public class MobileFSM { | 
			
		
	
		
			
				
					|  |  |  |  |             if (mob.playerAgroMap.containsKey(mob.getOwner().getObjectUUID()) == false) { | 
			
		
	
		
			
				
					|  |  |  |  |                 //mob no longer has its owner loaded, translocate pet to owner
 | 
			
		
	
		
			
				
					|  |  |  |  |                 MovementManager.translocate(mob, mob.getOwner().getLoc(), null); | 
			
		
	
		
			
				
					|  |  |  |  |                 return; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             if (mob.getCombatTarget() == null) { | 
			
		
	
		
			
				
					|  |  |  |  |                 //move back to owner
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if(CombatUtilities.inRange2D(mob,mob.getOwner(),11)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 if(CombatUtilities.inRange2D(mob,mob.getOwner(),6)) { | 
			
		
	
		
			
				
					|  |  |  |  |                     return; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                     mob.destination = mob.getOwner().getLoc(); | 
			
		
	
		
			
				
					|  |  |  |  |                     MovementUtilities.moveToLocation(mob, mob.destination, 10); | 
			
		
	
		
			
				
					|  |  |  |  |                     MovementUtilities.moveToLocation(mob, mob.destination, 5); | 
			
		
	
		
			
				
					|  |  |  |  |             } else{ | 
			
		
	
		
			
				
					|  |  |  |  |                 chaseTarget(mob); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |