AbilityUtils: add TriggeredPlayers to work with a List of Player objects

This commit is contained in:
Hanmac
2016-08-23 16:54:21 +00:00
parent 8f75c1070f
commit 317e9d3a4f

View File

@@ -580,16 +580,20 @@ public class AbilityUtils {
} }
return CardFactoryUtil.handlePaid(tgtList, calcX[1], card) * multiplier; return CardFactoryUtil.handlePaid(tgtList, calcX[1], card) * multiplier;
} }
if (calcX[0].startsWith("TriggeredPlayers") || calcX[0].equals("TriggeredCardController")) {
String key = calcX[0];
if (calcX[0].startsWith("TriggeredPlayers")) {
key = "Triggered" + key.substring(16);
}
final List<Player> players = new ArrayList<Player>();
Iterables.addAll(players, getDefinedPlayers(card, key, sa));
return CardFactoryUtil.playerXCount(players, calcX[1], card) * multiplier;
}
if (calcX[0].startsWith("TriggeredPlayer") || calcX[0].startsWith("TriggeredTarget")) { if (calcX[0].startsWith("TriggeredPlayer") || calcX[0].startsWith("TriggeredTarget")) {
final SpellAbility root = sa.getRootAbility(); final SpellAbility root = sa.getRootAbility();
Object o = root.getTriggeringObject(calcX[0].substring(9)); Object o = root.getTriggeringObject(calcX[0].substring(9));
return o instanceof Player ? CardFactoryUtil.playerXProperty((Player) o, calcX[1], card) * multiplier : 0; return o instanceof Player ? CardFactoryUtil.playerXProperty((Player) o, calcX[1], card) * multiplier : 0;
} }
if (calcX[0].equals("TriggeredCardController")) {
final List<Player> players = new ArrayList<Player>();
Iterables.addAll(players, getDefinedPlayers(card, "TriggeredCardController", sa));
return CardFactoryUtil.playerXCount(players, calcX[1], card) * multiplier;
}
if (calcX[0].equals("TriggeredSpellAbility")) { if (calcX[0].equals("TriggeredSpellAbility")) {
final SpellAbility root = sa.getRootAbility(); final SpellAbility root = sa.getRootAbility();
SpellAbility sat = (SpellAbility) root.getTriggeringObject("SpellAbility"); SpellAbility sat = (SpellAbility) root.getTriggeringObject("SpellAbility");