|  |  | @ -226,9 +226,6 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |             return false; |  |  |  |             return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mob.mobPowers.isEmpty()) |  |  |  |         if (mob.mobPowers.isEmpty()) | 
			
		
	
		
		
			
				
					
					|  |  |  |             return false; |  |  |  |             return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         //added in cast chance for mobs, editable by MBServerStatics.AI_POWER_CHANCE
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(ThreadLocalRandom.current().nextInt(100) > MBServerStatics.AI_POWER_CHANCE) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             return false; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mob.nextCastTime == 0) |  |  |  |         if (mob.nextCastTime == 0) | 
			
		
	
		
		
			
				
					
					|  |  |  |             mob.nextCastTime = System.currentTimeMillis(); |  |  |  |             mob.nextCastTime = System.currentTimeMillis(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         return mob.nextCastTime <= System.currentTimeMillis(); |  |  |  |         return mob.nextCastTime <= System.currentTimeMillis(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -422,6 +419,8 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (mob.getCombatTarget() == null) { |  |  |  |                 if (mob.getCombatTarget() == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if(!mob.isMoving()) { |  |  |  |                     if(!mob.isMoving()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                         Patrol(mob); |  |  |  |                         Patrol(mob); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } else{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         mob.stopPatrolTime = System.currentTimeMillis(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 }else { |  |  |  |                 }else { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     chaseTarget(mob); |  |  |  |                     chaseTarget(mob); | 
			
		
	
	
		
		
			
				
					|  |  | @ -466,7 +465,7 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |         //checks if mob can attack based on attack timer and range
 |  |  |  |         //checks if mob can attack based on attack timer and range
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (mob.isAlive() == false) |  |  |  |         if (mob.isAlive() == false) | 
			
		
	
		
		
			
				
					
					|  |  |  |             return; |  |  |  |             return; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (MovementUtilities.inRangeDropAggro(mob, (AbstractCharacter)mob.getCombatTarget()) == false) { |  |  |  |         if (mob.getCombatTarget().getObjectType().equals(Enum.GameObjectType.PlayerCharacter) && MovementUtilities.inRangeDropAggro(mob, (PlayerCharacter)mob.getCombatTarget()) == false) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             mob.setCombatTarget(null); |  |  |  |             mob.setCombatTarget(null); | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (mob.isCombat()) { |  |  |  |             if (mob.isCombat()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 mob.setCombat(false); |  |  |  |                 mob.setCombat(false); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |