|
|
@ -17,6 +17,8 @@ import engine.wpak.data.ModifierEntry; |
|
|
|
import engine.wpak.data.Power; |
|
|
|
import engine.wpak.data.Power; |
|
|
|
import engine.wpak.data.PowerAction; |
|
|
|
import engine.wpak.data.PowerAction; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
|
|
|
|
|
|
public class Behaviours { |
|
|
|
public class Behaviours { |
|
|
|
|
|
|
|
|
|
|
|
public static Object Flag(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target, |
|
|
|
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) { |
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) { |
|
|
|
|
|
|
|
|
|
|
|
mbEnums.ModType noMod = mbEnums.ModType.valueOf(modifierEntry.arg1); |
|
|
|
mbEnums.ModType noMod = mbEnums.ModType.valueOf(modifierEntry.arg1); |
|
|
|
|
|
|
|
ArrayList<Effect> 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; |
|
|
|
return noMod; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|