diff --git a/src/engine/wpakpowers/Behaviours.java b/src/engine/wpakpowers/Behaviours.java index c6fbac38..48aaf316 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, @@ -76,8 +78,23 @@ public class Behaviours { public static Object SubTypeMod(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target, PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) { - System.out.println("Behavior method called"); - return null; + + 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.keySet().contains(noMod)) + removeList.add(appliedEffect.effect); + + for (Effect effectEntry : removeList) + target._effects.remove(effectEntry); + + // target.updateBonuses? + + return noMod; } public static Object SubTypePower(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,