From 6a27f7ea70d63e5928ff2a3ce4df07ddde7097db Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 13 Apr 2023 23:41:18 +0200 Subject: [PATCH] Fix Autopay test selecting same mana multiple times --- .../src/main/java/forge/game/mana/Mana.java | 18 ++++++++++++++++++ .../game/spellability/AbilityManaPart.java | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/forge-game/src/main/java/forge/game/mana/Mana.java b/forge-game/src/main/java/forge/game/mana/Mana.java index 5f7b90d2d46..eed7ff0df17 100644 --- a/forge-game/src/main/java/forge/game/mana/Mana.java +++ b/forge-game/src/main/java/forge/game/mana/Mana.java @@ -61,6 +61,24 @@ public class Mana { return false; } + if (!sourceCard.equals(m2.sourceCard)) { + if (addsKeywords(null) != m2.addsKeywords(null)) { + return false; + } + if (addsCounters(null) != m2.addsCounters(null)) { + return false; + } + if (mp.isCannotCounterPaidWith() != mp2.isCannotCounterPaidWith()) { + return false; + } + if (mp.getTriggersWhenSpent() != mp2.getTriggersWhenSpent()) { + return false; + } + if (mp.isPersistentMana() != mp2.isPersistentMana()) { + return false; + } + } + return mp == mp2 || (mp.getManaRestrictions().equals(mp2.getManaRestrictions()) && mp.getExtraManaRestriction().equals(mp2.getExtraManaRestriction())); } diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index 1ee84e2bc8f..b1b9ff23bba 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -226,6 +226,10 @@ public class AbilityManaPart implements java.io.Serializable { return source.isValid(cannotCounterSpell, sourceCard.getController(), sourceCard, null); } + public boolean isCannotCounterPaidWith() { + return null != cannotCounterSpell; + } + public void addNoCounterEffect(SpellAbility saBeingPaid) { final Game game = sourceCard.getGame(); final Card eff = new Card(game.nextCardId(), game);