diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index bd5e69fcce5..43994257c45 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -64,8 +64,10 @@ public class HumanPlaySpellAbility { final Player human = ability.getActivatingPlayer(); final Game game = human.getGame(); - // CR 401.5: freeze top library cards until cast so player can't cheat and see the next - game.setTopLibsCast(); + // CR 401.5: freeze top library cards until cast/activated so player can't cheat and see the next + if (!skipStack) { + game.setTopLibsCast(); + } // used to rollback Zone fromZone = null; @@ -163,6 +165,8 @@ public class HumanPlaySpellAbility { && ability.isLegalAfterStack() && (isFree || payment.payCost(new HumanCostDecision(controller, human, ability, false, ability.getHostCard()))); + game.clearTopLibsCast(ability); + if (!prerequisitesMet) { if (!ability.isTrigger()) { GameActionUtil.rollbackAbility(ability, fromZone, zonePosition, payment, c); @@ -182,7 +186,6 @@ public class HumanPlaySpellAbility { manapool.restoreColorReplacements(); human.decNumManaConversion(); } - game.clearTopLibsCast(ability); return false; } @@ -208,7 +211,6 @@ public class HumanPlaySpellAbility { manapool.restoreColorReplacements(); } } - game.clearTopLibsCast(ability); return true; }