diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java index 7045f669d4e..e22f554fd47 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java @@ -33,7 +33,7 @@ public class DamageDealEffect extends SpellAbilityEffect { return ""; final List definedSources = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DamageSource"), sa); - Card source = definedSources.isEmpty() ? new Card(0) : definedSources.get(0); + Card source = definedSources.isEmpty() ? new Card(-1) : definedSources.get(0); if (source != sa.getHostCard()) { sb.append(source.toString()).append(" deals"); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 18780bd8afa..ad97be6bd9c 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -261,7 +261,7 @@ public class Card extends GameEntity implements Comparable, IIdentifiable * @param id the unique id of the new card. */ public Card(final int id0) { - this(id0, null); + this(id0, null, true); } /** @@ -273,9 +273,12 @@ public class Card extends GameEntity implements Comparable, IIdentifiable * @see IPaperCard */ public Card(final int id0, final IPaperCard paperCard0) { + this(id0, paperCard0, true); + } + public Card(final int id0, final IPaperCard paperCard0, final boolean allowCache) { super(id0); - if (id0 >= 0) { + if (id0 >= 0 && allowCache) { cardCache.put(id0, this); } paperCard = paperCard0; diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 36722ac16aa..3d0ac1225c7 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -213,7 +213,7 @@ public final class CardUtil { * @return a copy of C with LastKnownInfo stuff retained. */ public static Card getLKICopy(final Card in) { - final Card newCopy = new Card(in.getId(), in.getPaperCard()); + final Card newCopy = new Card(in.getId(), in.getPaperCard(), false); newCopy.setSetCode(in.getSetCode()); newCopy.setOwner(in.getOwner()); newCopy.setController(in.getController(), 0);