|  |  |  | @ -28,6 +28,7 @@ import engine.net.client.msg.UpdateStateMsg;@@ -28,6 +28,7 @@ import engine.net.client.msg.UpdateStateMsg; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.server.MBServerStatics; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.util.Hasher; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.util.Pair; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.EffectsParser; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.PowerActionParser; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.PowersParser; | 
			
		
	
	
		
			
				
					|  |  |  | @ -417,31 +418,25 @@ public class WpakPowerManager {@@ -417,31 +418,25 @@ public class WpakPowerManager { | 
			
		
	
		
			
				
					|  |  |  |  |         return false; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public static float getModifiedValue(ModifierEntry modifierEntry, int rank) { | 
			
		
	
		
			
				
					|  |  |  |  |     public static Pair<Float, Float> getModifiedValue(ModifierEntry modifierEntry, int rank) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         mbEnums.ModificationType modificationType; | 
			
		
	
		
			
				
					|  |  |  |  |         Pair<Float, Float> outData = new Pair<>(0f, 0f); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Only a subset of these ModTypes used for percents
 | 
			
		
	
		
			
				
					|  |  |  |  |         // are multiplicative.  Everything else is additive.
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         modificationType = modifierEntry.compoundCurveType.name().contains("SIVL") ? | 
			
		
	
		
			
				
					|  |  |  |  |                 mbEnums.ModificationType.MULTIPLY : mbEnums.ModificationType.ADD; | 
			
		
	
		
			
				
					|  |  |  |  |         if (modifierEntry.percentage != 0f) { | 
			
		
	
		
			
				
					|  |  |  |  |             outData.first = modifierEntry.percentage + (modifierEntry.compoundCurveType.getValue() * rank); | 
			
		
	
		
			
				
					|  |  |  |  |             outData.first = outData.first * 0.01f; | 
			
		
	
		
			
				
					|  |  |  |  |             return outData; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return modifierEntry.percentage != 0f | 
			
		
	
		
			
				
					|  |  |  |  |                 ? calculatePercentageValue(modifierEntry, rank, modificationType) | 
			
		
	
		
			
				
					|  |  |  |  |                 : calculateFlatValue(modifierEntry, rank, modificationType); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |         // As there is a min/max we return both as a pai in linear moder
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private static float calculatePercentageValue(ModifierEntry modifierEntry, int rank, mbEnums.ModificationType modificationType) { | 
			
		
	
		
			
				
					|  |  |  |  |         float scaledValue = modificationType.equals(mbEnums.ModificationType.ADD) | 
			
		
	
		
			
				
					|  |  |  |  |                 ? modifierEntry.percentage + (modifierEntry.compoundCurveType.getValue() * rank) | 
			
		
	
		
			
				
					|  |  |  |  |                 : modifierEntry.percentage * (1 + (modifierEntry.compoundCurveType.getValue() * rank)); | 
			
		
	
		
			
				
					|  |  |  |  |         return scaledValue * 0.01f; | 
			
		
	
		
			
				
					|  |  |  |  |         outData.first = modifierEntry.min + (modifierEntry.compoundCurveType.getValue() * rank); | 
			
		
	
		
			
				
					|  |  |  |  |         outData.second = modifierEntry.max + (modifierEntry.compoundCurveType.getValue() * rank); | 
			
		
	
		
			
				
					|  |  |  |  |         return outData; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private static float calculateFlatValue(ModifierEntry modifierEntry, int rank, mbEnums.ModificationType modificationType) { | 
			
		
	
		
			
				
					|  |  |  |  |         return modificationType.equals(mbEnums.ModificationType.ADD) | 
			
		
	
		
			
				
					|  |  |  |  |                 ? modifierEntry.min + (modifierEntry.compoundCurveType.getValue() * rank) | 
			
		
	
		
			
				
					|  |  |  |  |                 : modifierEntry.min * (1 + (modifierEntry.compoundCurveType.getValue() * rank)); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |