From 655625d695df355ec2b7db90fe10113a9ec9be24 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 18 May 2025 20:44:46 +0400 Subject: [PATCH] Gavi, Nest Warden - fixed game error on usage --- Mage.Sets/src/mage/cards/g/GaviNestWarden.java | 14 +++++++++----- .../abilities/effects/CostModificationEffect.java | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Mage.Sets/src/mage/cards/g/GaviNestWarden.java b/Mage.Sets/src/mage/cards/g/GaviNestWarden.java index d3b160ea39d..2a44541ccc5 100644 --- a/Mage.Sets/src/mage/cards/g/GaviNestWarden.java +++ b/Mage.Sets/src/mage/cards/g/GaviNestWarden.java @@ -93,13 +93,17 @@ class CyclingZeroCostEffect extends CostModificationEffectImpl { @Override public boolean apply(Game game, Ability source, Ability abilityToModify) { Player player = game.getPlayer(source.getControllerId()); - if (player == null || !player.chooseUse(outcome, "Pay {0} to cycle this card?", source, game)) { + if (player == null) { + return false; + } + if (game.inCheckPlayableState() || player.chooseUse(outcome, "Pay {0} to cycle this card?", source, game)) { + abilityToModify.clearManaCostsToPay(); + abilityToModify.getCosts().removeIf(cost -> !CyclingDiscardCost.class.isInstance(cost)); + abilityToModify.addManaCostsToPay(new GenericManaCost(0)); return true; } - abilityToModify.clearManaCostsToPay(); - abilityToModify.getCosts().removeIf(cost -> !CyclingDiscardCost.class.isInstance(cost)); - abilityToModify.addManaCostsToPay(new GenericManaCost(0)); - return true; + + return false; } @Override diff --git a/Mage/src/main/java/mage/abilities/effects/CostModificationEffect.java b/Mage/src/main/java/mage/abilities/effects/CostModificationEffect.java index fa8f7b9b866..07412e7ed35 100644 --- a/Mage/src/main/java/mage/abilities/effects/CostModificationEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/CostModificationEffect.java @@ -21,6 +21,8 @@ public interface CostModificationEffect extends ContinuousEffect { /** * Called by the {@link ContinuousEffects#costModification(java.util.UUID, mage.abilities.Ability, mage.game.Game) ContinuousEffects.costModification} * method. + *

+ * Warning, choose dialogs restricted in plyable calculation, so you must check inCheckPlayableState * * @param game The game for which this effect should be applied. * @param source The source ability of this effect.