From 7ed291860f49802af6f279746d3e0732839a8870 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 22 Feb 2025 07:57:38 -0500 Subject: [PATCH] Refactor manager for action support --- src/engine/wpakpowers/Actions.java | 30 ++++++++++++++++++++- src/engine/wpakpowers/WpakPowerManager.java | 27 ------------------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/engine/wpakpowers/Actions.java b/src/engine/wpakpowers/Actions.java index 9a2ce76a..5b8614d1 100644 --- a/src/engine/wpakpowers/Actions.java +++ b/src/engine/wpakpowers/Actions.java @@ -2,6 +2,8 @@ package engine.wpakpowers; import engine.objects.AbstractCharacter; import engine.objects.AbstractWorldObject; +import engine.wpak.data.Effect; +import engine.wpak.data.ModifierEntry; import engine.wpak.data.Power; import engine.wpak.data.PowerAction; @@ -14,7 +16,33 @@ public class Actions { public static void ApplyEffects(AbstractCharacter caster, AbstractWorldObject target, Power power, Integer rank, PowerAction powerAction) { - System.out.println("PowerAction method called"); + + // Iterate effects for this powerAction and apply + + for (Effect effect : powerAction.effects) { + + // Create pojo to hold effect/modifiers stored in AWO + + AppliedEffect appliedEffect = new AppliedEffect(); + appliedEffect.effect = effect; + appliedEffect.rank = rank; + + // Add modifier objects from behaviours to pojo. + // Anything from a float to an array can be returned + // based on the needs of the behaviour. + + for (ModifierEntry modifierEntry : effect.mods) { + Object modifier = modifierEntry.type.behaviorType.apply(caster, target, power, + powerAction, effect, modifierEntry, rank); + appliedEffect.modifiers.put(modifierEntry.type, modifier); + } + + // Add this power effect to the target + // or overwrite the old value + + target._effects.put(effect, appliedEffect); + } + // target.updateBonuses() here? } public static void Block(AbstractCharacter caster, AbstractWorldObject target, Power power, diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index 0bcb4da5..5d576144 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -353,33 +353,6 @@ public class WpakPowerManager { powerAction.action_type.execute(caster, target, power, rank, powerAction); - - // Iterate effects for this powerAction and apply - - for (Effect effect : powerAction.effects) { - - // Create pojo to hold effect/modifiers stored in AWO - - AppliedEffect appliedEffect = new AppliedEffect(); - appliedEffect.effect = effect; - appliedEffect.rank = rank; - - // Add modifier objects from behaviours to pojo. - // Anything from a float to an array can be returned - // based on the needs of the behaviour. - - for (ModifierEntry modifierEntry : effect.mods) { - Object modifier = modifierEntry.type.behaviorType.apply(caster, target, power, - powerAction, effect, modifierEntry, rank); - appliedEffect.modifiers.put(modifierEntry.type, modifier); - } - - // Add this power effect to the target - // or overwrite the old value - - target._effects.put(effect, appliedEffect); - } - // target.updateBonuses() here? } }