From 39c7c18386fd9dfe0da63f1e3afcaa5937dad74b Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 29 Jul 2021 22:01:47 +0200 Subject: [PATCH] Fix Standstill --- .../src/main/java/forge/game/trigger/TriggerHandler.java | 2 +- forge-gui/res/cardsfolder/s/standstill.txt | 4 +--- forge-gui/src/main/java/forge/player/HumanCostDecision.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java index 046e673abe4..2b6a43a4723 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -579,7 +579,7 @@ public class TriggerHandler { sa.setOptionalTrigger(true); decider = AbilityUtils.getDefinedPlayers(host, regtrig.getParam("OptionalDecider"), sa).get(0); } - else if (sa instanceof AbilitySub || !sa.hasParam("Cost") || sa.getParam("Cost").equals("0")) { + else if (sa instanceof AbilitySub || !sa.hasParam("Cost") || sa.hasParam("CostMandatory") || sa.getParam("Cost").equals("0")) { isMandatory = true; } else { // triggers with a cost can't be mandatory sa.setOptionalTrigger(true); diff --git a/forge-gui/res/cardsfolder/s/standstill.txt b/forge-gui/res/cardsfolder/s/standstill.txt index 3f466236530..5bfc6a1c472 100644 --- a/forge-gui/res/cardsfolder/s/standstill.txt +++ b/forge-gui/res/cardsfolder/s/standstill.txt @@ -2,9 +2,7 @@ Name:Standstill ManaCost:1 U Types:Enchantment T:Mode$ SpellCast | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ When a player casts a spell, sacrifice CARDNAME. If you do, each of that player's opponents draws three cards. -SVar:TrigSac:DB$ Sacrifice | SacValid$ Self | RememberSacrificed$ True | SubAbility$ DrawOpp -SVar:DrawOpp:DB$ Draw | NumCards$ 3 | Defined$ TriggeredCardOpponent | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigSac:AB$ Draw | NumCards$ 3 | Cost$ Sac<1/CARDNAME> | CostMandatory$ True | Defined$ TriggeredCardOpponent SVar:X:Remembered$Amount SVar:Y:Count$Valid Creature.YouCtrl SVar:Z:Count$Valid Creature.OppCtrl diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index e49a9a743d1..7968c9b8556 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -1023,7 +1023,7 @@ public class HumanCostDecision extends CostDecisionMakerBase { if (cost.payCostFromSource()) { if (source.getController() == ability.getActivatingPlayer() && source.isInPlay()) { - return player.getController().confirmPayment(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(source.getName())), ability) ? PaymentDecision.card(source) : null; + return ability.hasParam("CostMandatory") || player.getController().confirmPayment(cost, Localizer.getInstance().getMessage("lblSacrificeCardConfirm", CardTranslation.getTranslatedName(source.getName())), ability) ? PaymentDecision.card(source) : null; } return null; }