|  |  | @ -80,7 +80,7 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (System.currentTimeMillis() < mob.getLastAttackTime()) |  |  |  |             if (System.currentTimeMillis() < mob.getLastAttackTime()) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return; |  |  |  |                 return; | 
			
		
	
		
		
			
				
					
					|  |  |  |             // ranged mobs cant attack while running. skip until they finally stop.
 |  |  |  |             // ranged mobs cant attack while running. skip until they finally stop.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (mob.isMoving()) |  |  |  |             if (mob.isMoving() && mob.getRange() > 20) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 return; |  |  |  |                 return; | 
			
		
	
		
		
			
				
					
					|  |  |  |             // add timer for last attack.
 |  |  |  |             // add timer for last attack.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ItemBase mainHand = mob.getWeaponItemBase(true); |  |  |  |             ItemBase mainHand = mob.getWeaponItemBase(true); | 
			
		
	
	
		
		
			
				
					|  |  | @ -378,18 +378,19 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |             rwss.setPlayer(mob); |  |  |  |             rwss.setPlayer(mob); | 
			
		
	
		
		
			
				
					
					|  |  |  |             DispatchMessage.sendToAllInRange(mob, rwss); |  |  |  |             DispatchMessage.sendToAllInRange(mob, rwss); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         //mob.updateLocation();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(mob.isMoving() == true){ |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             mob.setLoc(mob.getMovementLoc()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(mob.BehaviourType.ordinal() != Enum.MobBehaviourType.Pet1.ordinal()) { |  |  |  |         if(mob.BehaviourType.ordinal() != Enum.MobBehaviourType.Pet1.ordinal()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             CheckToSendMobHome(mob); |  |  |  |             CheckToSendMobHome(mob); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mob.combatTarget != null && mob.combatTarget.isAlive() == false) { |  |  |  |         if (mob.combatTarget != null && mob.combatTarget.isAlive() == false) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             mob.setCombatTarget(null); |  |  |  |             mob.setCombatTarget(null); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         //mob.updateLocation();
 |  |  |  |         mob.updateLocation(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         if(mob.isMoving()){ |  |  |  |         if(mob.getTimestamps().containsKey("MOVEMENTSYNC") == false){ | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             mob.getTimestamps().put("MOVEMENTSYNC",System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if(mob.getTimeStamp("MOVEMENTSYNC") < System.currentTimeMillis() + 1000){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             mob.getTimestamps().put("MOVEMENTSYNC",System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             mob.setLoc(mob.getMovementLoc()); |  |  |  |             mob.setLoc(mob.getMovementLoc()); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         switch (mob.BehaviourType) { |  |  |  |         switch (mob.BehaviourType) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -735,7 +736,7 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mob.BehaviourType.canRoam) |  |  |  |         if (mob.BehaviourType.canRoam) | 
			
		
	
		
		
			
				
					
					|  |  |  |             CheckMobMovement(mob); |  |  |  |             CheckMobMovement(mob); | 
			
		
	
		
		
			
				
					
					|  |  |  |         //check if mob can attack if it isn't wimpy
 |  |  |  |         //check if mob can attack if it isn't wimpy
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (!mob.BehaviourType.isWimpy && !mob.isMoving() && mob.combatTarget != null) |  |  |  |         if (!mob.BehaviourType.isWimpy && mob.combatTarget != null) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             CheckForAttack(mob); |  |  |  |             CheckForAttack(mob); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |