|  |  |  | @ -16,10 +16,10 @@ import engine.math.Vector3f;@@ -16,10 +16,10 @@ import engine.math.Vector3f; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.math.Vector3fImmutable; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.objects.*; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.powers.EffectsBase; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.ActionEntry; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.Effect; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.ModifierEntry; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.Power; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpak.data.PowerAction; | 
			
		
	
		
			
				
					|  |  |  |  | import engine.wpakpowers.Behaviour; | 
			
		
	
		
			
				
					|  |  |  |  | import org.pmw.tinylog.Logger; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -1340,118 +1340,118 @@ public class mbEnums {@@ -1340,118 +1340,118 @@ public class mbEnums { | 
			
		
	
		
			
				
					|  |  |  |  |         Flag { | 
			
		
	
		
			
				
					|  |  |  |  |             @Override | 
			
		
	
		
			
				
					|  |  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return Behaviour.Flag(caster, target, power, powerAction, effect, modifierEntry, rank); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |  |         MapIntToInts { | 
			
		
	
		
			
				
					|  |  |  |  |             @Override | 
			
		
	
		
			
				
					|  |  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return Behaviour.MapIntToInts(caster, target, power, powerAction, effect, modifierEntry, rank); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |  |         Standard { | 
			
		
	
		
			
				
					|  |  |  |  |             @Override | 
			
		
	
		
			
				
					|  |  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                 return Behaviour.Standard(caster, target, power, powerAction, effect, modifierEntry, rank); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         }, | 
			
		
	
		
			
				
					|  |  |  |  |         FPSubTypeAttr { | 
			
		
	
		
			
				
					|  |  |  |  |             @Override | 
			
		
	
		
			
				
					|  |  |  |  |             public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { | 
			
		
	
		
			
				
					|  |  |  |  |                                 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, | 
			
		
	
		
			
				
					|  |  |  |  |                                 ActionEntry 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); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         public abstract Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power, | 
			
		
	
		
			
				
					|  |  |  |  |                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); | 
			
		
	
		
			
				
					|  |  |  |  |                                      PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public enum MovementState { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |