From 45ca346703f794ad4fcd21ebfbb58ea33b8901dd Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sun, 1 Aug 2021 10:35:38 +0200 Subject: [PATCH] ManaSpent: check source at time it produced --- forge-ai/src/main/java/forge/ai/GameState.java | 14 +++++++------- forge-game/src/main/java/forge/game/mana/Mana.java | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index 2fc61fab01b..9f2b53e6dac 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -434,7 +434,7 @@ public abstract class GameState { boolean first = true; StringBuilder counterString = new StringBuilder(); - for(Entry kv : counters.entrySet()) { + for (Entry kv : counters.entrySet()) { if (!first) { counterString.append(","); } @@ -470,7 +470,7 @@ public abstract class GameState { } public void parse(List lines) { - for(String line : lines) { + for (String line : lines) { parseLine(line); } } @@ -1110,13 +1110,13 @@ public abstract class GameState { private void handleCardAttachments() { // Unattach all permanents first - for(Entry entry : cardToAttachId.entrySet()) { + for (Entry entry : cardToAttachId.entrySet()) { Card attachedTo = idToCard.get(entry.getValue()); attachedTo.unAttachAllCards(); } // Attach permanents by ID - for(Entry entry : cardToAttachId.entrySet()) { + for (Entry entry : cardToAttachId.entrySet()) { Card attachedTo = idToCard.get(entry.getValue()); Card attacher = entry.getKey(); if (attacher.isAttachment()) { @@ -1125,7 +1125,7 @@ public abstract class GameState { } // Enchant players by ID - for(Entry entry : cardToEnchantPlayerId.entrySet()) { + for (Entry entry : cardToEnchantPlayerId.entrySet()) { // TODO: improve this for game states with more than two players Card attacher = entry.getKey(); Game game = attacher.getGame(); @@ -1136,9 +1136,9 @@ public abstract class GameState { } private void handleMergedCards() { - for(Entry> entry : cardToMergedCards.entrySet()) { + for (Entry> entry : cardToMergedCards.entrySet()) { Card mergedTo = entry.getKey(); - for(String mergedCardName : entry.getValue()) { + for (String mergedCardName : entry.getValue()) { Card c; PaperCard pc = StaticData.instance().getCommonCards().getCard(mergedCardName. replace("^", ",")); if (pc == null) { 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 c1a7f022934..cc94f03b3df 100644 --- a/forge-game/src/main/java/forge/game/mana/Mana.java +++ b/forge-game/src/main/java/forge/game/mana/Mana.java @@ -20,8 +20,10 @@ package forge.game.mana; import forge.card.MagicColor; import forge.card.mana.ManaAtom; import forge.game.card.Card; +import forge.game.card.CardUtil; import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; +import forge.game.zone.ZoneType; /** *

@@ -71,7 +73,7 @@ public class Mana { public Mana(final byte color, final Card source, final AbilityManaPart manaAbility) { this.color = color; this.manaAbility = manaAbility; - this.sourceCard = source; + this.sourceCard = source.isInZone(ZoneType.Battlefield) ? CardUtil.getLKICopy(source) : source.getGame().getChangeZoneLKIInfo(source); } @Override