diff --git a/forge-game/src/main/java/forge/game/CardTraitBase.java b/forge-game/src/main/java/forge/game/CardTraitBase.java index 67e1b21dca1..729dbb3cb6c 100644 --- a/forge-game/src/main/java/forge/game/CardTraitBase.java +++ b/forge-game/src/main/java/forge/game/CardTraitBase.java @@ -29,7 +29,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { protected Card hostCard; /** The map params. */ - protected final Map originalMapParams = Maps.newHashMap(), + protected Map originalMapParams = Maps.newHashMap(), mapParams = Maps.newHashMap(); /** The is intrinsic. */ diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index 624cb91726d..b5e406b3aff 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -18,6 +18,7 @@ package forge.game.spellability; import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; import forge.card.mana.ManaCost; import forge.game.CardTraitBase; @@ -645,6 +646,9 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit if (clone.hostCard != null && clone.hostCard.getGame() != null) { clone.hostCard.getGame().addSpellAbility(clone.id, clone); } + // need to clone the maps too so they can be changed + clone.originalMapParams = Maps.newHashMap(this.originalMapParams); + clone.mapParams = Maps.newHashMap(this.mapParams); } catch (final CloneNotSupportedException e) { System.err.println(e); }