|  |  | @ -1335,123 +1335,41 @@ public class mbEnums { | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @FunctionalInterface | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public interface ModBehaviorFunction { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                      PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public enum ModBehaviorType { |  |  |  |     public enum ModBehaviorType { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         Flag { |  |  |  |         Flag(Behaviour::Flag), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |         MapIntToInts(Behaviour::MapIntToInts), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |         Standard(Behaviour::Standard), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |         FPSubTypeAttr(Behaviour::FPSubTypeAttr), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.Flag(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |         SubTypeSourceType(Behaviour::SubTypeSourceType), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |         SubTypePowerType(Behaviour::SubTypePowerType), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |         SubTypeSkill(Behaviour::SubTypeSkill), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         MapIntToInts { |  |  |  |         FPSubTypeDmg(Behaviour::FPSubTypeDmg), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |         DD(Behaviour::DD), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |         String(Behaviour::StringBehaviour), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |         SubTypeMod(Behaviour::SubTypeMod), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.MapIntToInts(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |         SubTypePower(Behaviour::SubTypePower), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |         SubTypeDmg(Behaviour::SubTypeDmg), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |         FPSubTypeSkill(Behaviour::FPSubTypeSkill), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         Standard { |  |  |  |         FPSubTypeMonster(Behaviour::FPSubTypeMonster), | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |         ProcInfo(Behaviour::ProcInfo); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |         private final ModBehaviorFunction function; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.Standard(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |         ModBehaviorType(ModBehaviorFunction function) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |             this.function = function; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         FPSubTypeAttr { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.FPSubTypeAttr(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypeSourceType { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypeSourceType(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypePowerType { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypePowerType(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypeSkill { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         FPSubTypeDmg { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.FPSubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         DD { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.DD(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         String { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.StringBehaviour(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypeMod { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypeMod(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypePower { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypePower(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         SubTypeDmg { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.SubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         FPSubTypeSkill { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.FPSubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         FPSubTypeMonster { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.FPSubTypeMonster(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         }, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         ProcInfo { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             @Override |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |         public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
		
			
				
					
					|  |  |  |                             PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { |  |  |  |                             PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Behaviour.ProcInfo(caster, target, power, powerAction, effect, modifierEntry, rank); |  |  |  |             return function.apply(caster, target, power, powerAction, effect, modifierEntry, rank); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         }; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         public abstract Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                                      PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public enum MovementState { |  |  |  |     public enum MovementState { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |