Fix crash in AI simulation code caused by a not found token.

This commit is contained in:
asvitkine
2022-12-10 01:09:16 -05:00
parent c6ec2c80d3
commit e6e2950a6e

View File

@@ -124,12 +124,17 @@ public class GameCopier {
if (origCard.hasRemembered()) { if (origCard.hasRemembered()) {
for (Object o : origCard.getRemembered()) { for (Object o : origCard.getRemembered()) {
if (o instanceof GameObject) { if (o instanceof GameObject) {
c.addRemembered(find((GameObject)o)); // Sometimes, a spell can "remember" a token card that's not in any zone
// (and thus wouldn't have been copied) - for example Swords to Plowshares
// remembering its target for LKI. Skip these to not crash in find().
if (o instanceof Card && ((Card)o).getZone() == null) {
continue;
}
c.addRemembered(find((GameObject) o));
} else { } else {
System.err.println(c + " Remembered: " + o + "/" + o.getClass()); System.err.println(c + " Remembered: " + o + "/" + o.getClass());
c.addRemembered(o); c.addRemembered(o);
} }
} }
} }
for (SpellAbility sa : c.getSpellAbilities()) { for (SpellAbility sa : c.getSpellAbilities()) {