From 476fd27f65e01910619ecfcbc6c97cefb9b891f8 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 5 Jul 2023 23:10:20 +0400 Subject: [PATCH] fixed miss chosen targets clear in cost implementations (#10566) --- Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java | 6 ------ Mage/src/main/java/mage/abilities/costs/CostImpl.java | 1 + Mage/src/main/java/mage/abilities/costs/OrCost.java | 2 +- .../main/java/mage/abilities/costs/VariableCostImpl.java | 1 + .../java/mage/abilities/costs/common/DiscardTargetCost.java | 1 - .../main/java/mage/abilities/costs/mana/ManaCostImpl.java | 2 +- 6 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java index 3e54970ea36..f3a062409a9 100644 --- a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java +++ b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java @@ -136,12 +136,6 @@ class KozilekDiscardCost extends CostImpl { return paid; } - @Override - public void clearPaid() { - super.clearPaid(); - this.targets.clearChosen(); - } - @Override public boolean canPay(Ability ability, Ability source, UUID controllerId, Game game) { if (game.getStack().isEmpty()) { diff --git a/Mage/src/main/java/mage/abilities/costs/CostImpl.java b/Mage/src/main/java/mage/abilities/costs/CostImpl.java index f3425f0011d..45da8d46035 100644 --- a/Mage/src/main/java/mage/abilities/costs/CostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/CostImpl.java @@ -62,6 +62,7 @@ public abstract class CostImpl implements Cost { @Override public void clearPaid() { paid = false; + targets.clearChosen(); } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/OrCost.java b/Mage/src/main/java/mage/abilities/costs/OrCost.java index 2c10dc89a1a..575bc908adb 100644 --- a/Mage/src/main/java/mage/abilities/costs/OrCost.java +++ b/Mage/src/main/java/mage/abilities/costs/OrCost.java @@ -127,7 +127,7 @@ public class OrCost implements Cost { @Override public void clearPaid() { selectedCost = null; - costs.stream().forEach(Cost::clearPaid); + costs.forEach(Cost::clearPaid); } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java index a74b654402b..80d9ca3d70e 100644 --- a/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/VariableCostImpl.java @@ -89,6 +89,7 @@ public abstract class VariableCostImpl implements Cost, VariableCost { @Override public void clearPaid() { paid = false; + targets.clearChosen(); amountPaid = 0; } diff --git a/Mage/src/main/java/mage/abilities/costs/common/DiscardTargetCost.java b/Mage/src/main/java/mage/abilities/costs/common/DiscardTargetCost.java index dddc024a757..3c24baa870c 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/DiscardTargetCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/DiscardTargetCost.java @@ -66,7 +66,6 @@ public class DiscardTargetCost extends CostImpl { public void clearPaid() { super.clearPaid(); this.cards.clear(); - this.targets.clearChosen(); } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java index 83823b94476..eedbb099cbc 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java @@ -85,9 +85,9 @@ public abstract class ManaCostImpl extends CostImpl implements ManaCost { @Override public void clearPaid() { + super.clearPaid(); payment.clear(); usedManaToPay.clear(); - super.clearPaid(); } @Override