From c54ed09d384cb518740489a3f72152acb58db0cf Mon Sep 17 00:00:00 2001 From: dripton Date: Thu, 10 Oct 2013 14:29:53 +0000 Subject: [PATCH] Add try/catch to hiddenOriginCanPlayAi If a SpellAbility's origin is something like "Graveyard,Library", ZoneType.smartValueOf throws an IllegalArgumentException. Catch this exception and return false. This prevents the crash, but means that the AI still can't play cards like Doomsday. Fixes bug 745 --- src/main/java/forge/card/ability/ai/ChangeZoneAi.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index fd2886a31da..c9f92673494 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -167,7 +167,13 @@ public class ChangeZoneAi extends SpellAbilityAi { final Player opponent = ai.getOpponent(); if (sa.hasParam("Origin")) { - origin = ZoneType.smartValueOf(sa.getParam("Origin")); + try { + origin = ZoneType.smartValueOf(sa.getParam("Origin")); + } catch (IllegalArgumentException ex) { + // This happens when Origin is something like + // "Graveyard,Library" (Doomsday) + return false; + } } final String destination = sa.getParam("Destination");