diff --git a/src/engine/wpakpowers/Behaviours.java b/src/engine/wpakpowers/Behaviours.java index 351a89ac..1a515bd8 100644 --- a/src/engine/wpakpowers/Behaviours.java +++ b/src/engine/wpakpowers/Behaviours.java @@ -17,6 +17,8 @@ import engine.wpak.data.ModifierEntry; import engine.wpak.data.Power; import engine.wpak.data.PowerAction; +import java.util.ArrayList; + public class Behaviours { public static Object Flag(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target, @@ -78,6 +80,19 @@ public class Behaviours { PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) { mbEnums.ModType noMod = mbEnums.ModType.valueOf(modifierEntry.arg1); + ArrayList removeList = new ArrayList<>(); + + // Iterate through effects on target slating to remove + // all which match the intended modType + + for (AppliedEffect appliedEffect : target._effects.values()) + if (appliedEffect.modifiers.containsKey(noMod)) + removeList.add(appliedEffect.effect); + + for (Effect effectEntry : removeList) + target._effects.remove(effectEntry); // wpakPowerManager.removeEffect() instead? + + // target.updateBonuses? return noMod; }