support "Triggered...=Opponent" filter for getDefinedPlayer

This commit is contained in:
Northmoc
2022-01-19 22:12:21 -05:00
parent 864a05e388
commit 620d22e1ae

View File

@@ -1096,7 +1096,7 @@ public class AbilityUtils {
o = ((CardCollection) c).get(0).getController(); o = ((CardCollection) c).get(0).getController();
} }
} }
else if (defParsed.endsWith("Opponent")) { else if (defParsed.endsWith("Opponent") && !defParsed.endsWith("=Opponent")) {
String triggeringType = defParsed.substring(9); String triggeringType = defParsed.substring(9);
triggeringType = triggeringType.substring(0, triggeringType.length() - 8); triggeringType = triggeringType.substring(0, triggeringType.length() - 8);
final Object c = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); final Object c = root.getTriggeringObject(AbilityKey.fromString(triggeringType));
@@ -1124,8 +1124,22 @@ public class AbilityUtils {
} }
} }
else { else {
final String triggeringType = defParsed.substring(9); String triggeringType = defParsed.substring(9);
String filter = null;
if (triggeringType.contains("=")) {
filter = triggeringType.split("=")[1];
triggeringType = triggeringType.split("=")[0];
}
o = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); o = root.getTriggeringObject(AbilityKey.fromString(triggeringType));
if (filter != null) {
if (filter.equals("Opponent")) {
if (!(Player) o.isOpponentOf(((SpellAbility) sa).getActivatingPlayer())) {
o = null;
}
} else {
System.err.println("getDefinedPlayers needs additional code for =Filter");
}
}
} }
if (o != null) { if (o != null) {
if (o instanceof Player) { if (o instanceof Player) {