|  |  | @ -233,6 +233,7 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Method picks a random spell from a mobile's list of powers
 |  |  |  |         // Method picks a random spell from a mobile's list of powers
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // and casts it on the current target (or itself).  Validation
 |  |  |  |         // and casts it on the current target (or itself).  Validation
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // (including empty lists) is done previously within canCast();
 |  |  |  |         // (including empty lists) is done previously within canCast();
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         ArrayList<Integer> powerTokens; |  |  |  |         ArrayList<Integer> powerTokens; | 
			
		
	
		
		
			
				
					
					|  |  |  |         ArrayList<Integer> purgeTokens; |  |  |  |         ArrayList<Integer> purgeTokens; | 
			
		
	
		
		
			
				
					
					|  |  |  |         PlayerCharacter target = (PlayerCharacter) mob.getCombatTarget(); |  |  |  |         PlayerCharacter target = (PlayerCharacter) mob.getCombatTarget(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -259,6 +260,21 @@ public class MobileFSM { | 
			
		
	
		
		
			
				
					
					|  |  |  |         int powerToken = powerTokens.get(ThreadLocalRandom.current().nextInt(powerTokens.size())); |  |  |  |         int powerToken = powerTokens.get(ThreadLocalRandom.current().nextInt(powerTokens.size())); | 
			
		
	
		
		
			
				
					
					|  |  |  |         int powerRank = mob.mobPowers.get(powerToken); |  |  |  |         int powerRank = mob.mobPowers.get(powerToken); | 
			
		
	
		
		
			
				
					
					|  |  |  |         PowersBase mobPower = PowersManager.getPowerByToken(powerToken); |  |  |  |         PowersBase mobPower = PowersManager.getPowerByToken(powerToken); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //check for hit-roll
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if(mobPower.requiresHitRoll) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CombatUtilities.triggerDefense(mob, mob.getCombatTarget())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CombatUtilities.triggerDodge(mob, mob.getCombatTarget())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CombatUtilities.triggerBlock(mob, mob.getCombatTarget())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CombatUtilities.triggerParry(mob, mob.getCombatTarget())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Cast the spell
 |  |  |  |         // Cast the spell
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CombatUtilities.inRange2D(mob, mob.getCombatTarget(), mobPower.getRange())) { |  |  |  |         if (CombatUtilities.inRange2D(mob, mob.getCombatTarget(), mobPower.getRange())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             PowersManager.useMobPower(mob, (AbstractCharacter) mob.getCombatTarget(), mobPower, powerRank); |  |  |  |             PowersManager.useMobPower(mob, (AbstractCharacter) mob.getCombatTarget(), mobPower, powerRank); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |