|  |  |  | @ -1,7 +1,10 @@@@ -1,7 +1,10 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package engine.wpak; | 
			
		
	
		
			
				
					|  |  |  |  | package engine.wpakpowers; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import engine.InterestManagement.WorldGrid; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.ChatManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.DbManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.DispatchManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.gameManager.SessionManager; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.job.JobContainer; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.job.JobScheduler; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.jobs.FinishRecycleTimeJob; | 
			
		
	
	
		
			
				
					|  |  |  | @ -17,9 +20,13 @@ import engine.net.client.msg.UpdateStateMsg;@@ -17,9 +20,13 @@ import engine.net.client.msg.UpdateStateMsg; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.server.MBServerStatics; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.util.Hasher; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.EffectsParser; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.PowerActionParser; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.PowersParser; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.Effect; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.*; | 
			
		
	
		
			
				
					|  |  |  |  | import org.pmw.tinylog.Logger; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.HashMap; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.HashSet; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -283,13 +290,13 @@ public class WpakPowerManager {@@ -283,13 +290,13 @@ public class WpakPowerManager { | 
			
		
	
		
			
				
					|  |  |  |  |         if(powerUsed == null) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         if(powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1){ | 
			
		
	
		
			
				
					|  |  |  |  |             AoeHandler(caster, target, powerUsed); | 
			
		
	
		
			
				
					|  |  |  |  |             AoeHandler(caster, target, powerUsed, msg.getNumTrains()); | 
			
		
	
		
			
				
					|  |  |  |  |         }else{ | 
			
		
	
		
			
				
					|  |  |  |  |             applyAllPowerEffects(powerUsed, target); | 
			
		
	
		
			
				
					|  |  |  |  |             applyAllPowerEffects(powerUsed, msg.getNumTrains(), target); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private static void AoeHandler(PlayerCharacter caster, AbstractWorldObject target, Power powerUsed){ | 
			
		
	
		
			
				
					|  |  |  |  |     private static void AoeHandler(PlayerCharacter caster, AbstractWorldObject target, Power powerUsed, int rank) { | 
			
		
	
		
			
				
					|  |  |  |  |         HashSet<AbstractWorldObject> mobTargets = new HashSet<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         HashSet<AbstractWorldObject> pcTargets  = new HashSet<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         if(powerUsed.maxMobTargets > 0) | 
			
		
	
	
		
			
				
					|  |  |  | @ -299,7 +306,7 @@ public class WpakPowerManager {@@ -299,7 +306,7 @@ public class WpakPowerManager { | 
			
		
	
		
			
				
					|  |  |  |  |         int count = 1; | 
			
		
	
		
			
				
					|  |  |  |  |         for(AbstractWorldObject mob : mobTargets){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(count < powerUsed.maxMobTargets + 1){ | 
			
		
	
		
			
				
					|  |  |  |  |                 applyAllPowerEffects(powerUsed,mob); | 
			
		
	
		
			
				
					|  |  |  |  |                 applyAllPowerEffects(powerUsed, rank, mob); | 
			
		
	
		
			
				
					|  |  |  |  |                 count ++; | 
			
		
	
		
			
				
					|  |  |  |  |             }else{ | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
	
		
			
				
					|  |  |  | @ -308,7 +315,7 @@ public class WpakPowerManager {@@ -308,7 +315,7 @@ public class WpakPowerManager { | 
			
		
	
		
			
				
					|  |  |  |  |         count = 1; | 
			
		
	
		
			
				
					|  |  |  |  |         for(AbstractWorldObject pc : pcTargets){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(count < powerUsed.maxPlayerTargets + 1){ | 
			
		
	
		
			
				
					|  |  |  |  |                 applyAllPowerEffects(powerUsed,pc); | 
			
		
	
		
			
				
					|  |  |  |  |                 applyAllPowerEffects(powerUsed, rank, pc); | 
			
		
	
		
			
				
					|  |  |  |  |                 count ++; | 
			
		
	
		
			
				
					|  |  |  |  |             }else{ | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
	
		
			
				
					|  |  |  | @ -316,11 +323,15 @@ public class WpakPowerManager {@@ -316,11 +323,15 @@ public class WpakPowerManager { | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public static void applyAllPowerEffects(Power power, AbstractWorldObject target){ | 
			
		
	
		
			
				
					|  |  |  |  |     public static void applyAllPowerEffects(Power power, int rank, AbstractWorldObject target) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         for(ActionEntry powerAction: power.actionEntries){ | 
			
		
	
		
			
				
					|  |  |  |  |             Effect eff = effect_data.get(Hasher.SBStringHash(powerAction.effect_id)); | 
			
		
	
		
			
				
					|  |  |  |  |             if(eff == null) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             Effect effect = effect_data.get(Hasher.SBStringHash(powerAction.effect_id)); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (effect == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //TODO add in effect application
 | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } |