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);