From 0cdd8a75dc63f81f0d9b9252d63fee5cd48a526c Mon Sep 17 00:00:00 2001 From: MagicBot Date: Tue, 18 Feb 2025 13:09:40 -0500 Subject: [PATCH] Caster added to signature. Proper wpak class used for actions. --- src/engine/mbEnums.java | 38 ++++++++++----------- src/engine/wpakpowers/WpakPowerManager.java | 22 ++++++------ 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/src/engine/mbEnums.java b/src/engine/mbEnums.java index da3fd1db..1c58ccd7 100644 --- a/src/engine/mbEnums.java +++ b/src/engine/mbEnums.java @@ -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; @@ -1339,125 +1339,125 @@ public class mbEnums { Behavior { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.Behaviour(); } }, Flag { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.Flag(); } }, MapIntToInts { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.MapIntToInts(); } }, Standard { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.Standard(); } }, FPSubTypeAttr { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.FPSubTypeAttr(); } }, SubTypeSourceType { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypeSourceType(); } }, SubTypePowerType { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypePowerType(); } }, SubTypeSkill { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypeSkill(); } }, FPSubTypeDmg { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.FPSubTypeDmg(); } }, DD { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.DD(); } }, String { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.StringBehaviour(); } }, SubTypeMod { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypeMod(); } }, SubTypePower { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypePower(); } }, SubTypeDmg { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.SubTypeDmg(); } }, FPSubTypeSkill { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.FPSubTypeSkill(); } }, FPSubTypeMonster { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.FPSubTypeMonster(); } }, ProcInfo { @Override public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) { Behaviour.ProcInfo(); } }; public abstract void apply(AbstractCharacter caster, AbstractWorldObject target, Power power, - PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); + ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank); } public enum MovementState { diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index dfd9359b..7488e7ca 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -301,7 +301,7 @@ public class WpakPowerManager { if(powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1){ AoeHandler(caster, target, powerUsed, msg.getNumTrains()); }else{ - applyAllPowerEffects(powerUsed, msg.getNumTrains(), target); + applyAllPowerEffects(caster, powerUsed, msg.getNumTrains(), target); } } @@ -315,7 +315,7 @@ public class WpakPowerManager { int count = 1; for(AbstractWorldObject mob : mobTargets){ if(count < powerUsed.maxMobTargets + 1){ - applyAllPowerEffects(powerUsed, rank, mob); + applyAllPowerEffects(caster, powerUsed, rank, mob); count ++; }else{ break; @@ -324,7 +324,7 @@ public class WpakPowerManager { count = 1; for(AbstractWorldObject pc : pcTargets){ if(count < powerUsed.maxPlayerTargets + 1){ - applyAllPowerEffects(powerUsed, rank, pc); + applyAllPowerEffects(caster, powerUsed, rank, pc); count ++; }else{ break; @@ -332,25 +332,27 @@ public class WpakPowerManager { } } - public static void applyAllPowerEffects(Power power, int rank, AbstractWorldObject target) { + public static void applyAllPowerEffects(AbstractCharacter caster, Power power, int rank, AbstractWorldObject target) { for(ActionEntry powerAction: power.actionEntries){ - int powerToken = Hasher.SBStringHash(powerAction.effect_id); - Effect effect = effect_data.get(powerToken); + int effectTokem = Hasher.SBStringHash(powerAction.effect_id); + Effect effect = effect_data.get(effectTokem); if (effect == null) continue; // New entry for this power effect? - if (target._effects.containsKey(powerToken) == false) - target._effects.put(powerToken, new ConcurrentHashMap<>()); + if (target._effects.containsKey(effectTokem) == false) + target._effects.put(effectTokem, new ConcurrentHashMap<>()); // Write modifier values - for (ModifierEntry modifierEntry : effect.mods) - target._effects.get(powerToken).put(modifierEntry.type, rank); + for (ModifierEntry modifierEntry : effect.mods) { + modifierEntry.type.behaviorType.apply(caster, target, power, powerAction, effect, modifierEntry, rank); + target._effects.get(effectTokem).put(modifierEntry.type, rank); + } } }