From 965ea89ced5a8f55c5da57b6ce1c5ab7f6519cf9 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Wed, 2 Nov 2022 21:22:49 +0100 Subject: [PATCH] Fix Wondrous Crucible not casting permanent spells cleanly --- forge-game/src/main/java/forge/game/GameAction.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 0ddb9d6fa79..6f4961a9c77 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -43,6 +43,7 @@ import forge.game.replacement.ReplacementResult; import forge.game.replacement.ReplacementType; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityPredicates; +import forge.game.spellability.SpellPermanent; import forge.game.spellability.TargetRestrictions; import forge.game.staticability.StaticAbility; import forge.game.staticability.StaticAbilityCantAttackBlock; @@ -118,7 +119,8 @@ public class GameAction { boolean wasFacedown = c.isFaceDown(); // Rule 111.8: A token that has left the battlefield can't move to another zone - if (!c.isSpell() && c.isToken() && zoneFrom != null && !fromBattlefield && !zoneFrom.is(ZoneType.Stack)) { + if (!c.isSpell() && c.isToken() && !fromBattlefield && zoneFrom != null && !zoneFrom.is(ZoneType.Stack) + && (cause == null || !(cause instanceof SpellPermanent) || !cause.hasSVar("IsCastFromPlayEffect"))) { return c; } @@ -1305,7 +1307,6 @@ public class GameAction { } final Iterable cards = p.getCardsIn(zt).threadSafeIterable(); for (final Card c : cards) { - // If a token is in a zone other than the battlefield, it ceases to exist. checkAgain |= stateBasedAction704_5d(c); // Dungeon Card won't affect other cards, so don't need to set checkAgain stateBasedAction_Dungeon(c);