From b29fdd4d71a9b2be89a9b6f82dd6be2a3844a7b5 Mon Sep 17 00:00:00 2001 From: cuinhellcat Date: Mon, 27 Jul 2026 01:42:20 +0200 Subject: [PATCH] Restore the foretold state when a snapshot is restored (#7844) Cancelling the cast of a foretold card left it in exile without its foretold flag, so it could no longer be cast with Foretell. The two setters for that state have sat commented out in setCardInCopiedGame since the method was introduced; nothing else restores them, and CardCopyService already carries the flags into the snapshot itself. Reproduced by taking a snapshot of a face-down foretold card in exile, turning it face up onto the stack as casting does, and restoring: zone and face-down state come back, isForetold() does not. Co-Authored-By: Claude Opus 5 --- forge-game/src/main/java/forge/game/GameSnapshot.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameSnapshot.java b/forge-game/src/main/java/forge/game/GameSnapshot.java index 467a44f8f8f5..4c384930757b 100644 --- a/forge-game/src/main/java/forge/game/GameSnapshot.java +++ b/forge-game/src/main/java/forge/game/GameSnapshot.java @@ -389,8 +389,8 @@ private void setCardInCopiedGame(Game toGame, Player toPlayer, Card fromCard, Ca newCard.setFaceDown(fromCard.isFaceDown()); newCard.setManifested(fromCard.getManifestedSA()); newCard.setSickness(fromCard.hasSickness()); - //newCard.setForetold(fromCard.isForetold()); - //newCard.setForetoldCostByEffect(fromCard.isForetoldCostByEffect()); + newCard.setForetold(fromCard.isForetold()); + newCard.setForetoldCostByEffect(fromCard.isForetoldCostByEffect()); newCard.setState(fromCard.getCurrentStateName(), false); }