From dc83cdb2b1d3d5f722d5535c331facca5e553521 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Fri, 14 Apr 2017 17:05:38 +0000 Subject: [PATCH] Card: add Embalmed flag into it, used in CopyPermanentEffect and CloneEffect Vizier of Many Faces --- .../main/java/forge/game/ability/effects/CloneEffect.java | 8 ++++++++ .../forge/game/ability/effects/CopyPermanentEffect.java | 2 ++ forge-game/src/main/java/forge/game/card/Card.java | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java index 00a409d76f3..0410f565472 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java @@ -2,6 +2,8 @@ package forge.game.ability.effects; import forge.GameCommand; import forge.card.CardStateName; +import forge.card.MagicColor; +import forge.card.mana.ManaCost; import forge.game.Game; import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; @@ -329,6 +331,12 @@ public class CloneEffect extends SpellAbilityEffect { } } tgtCard.addColor(shortColors, !sa.hasParam("OverwriteColors"), tgtCard.getTimestamp()); + + if (sa.hasParam("Embalm") && tgtCard.isEmbalmed()) { + tgtCard.addType("Zombie"); + tgtCard.setColor(MagicColor.WHITE); + tgtCard.setManaCost(ManaCost.NO_COST); + } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java index 968122cc908..2ca864f2fac 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopyPermanentEffect.java @@ -248,6 +248,8 @@ public class CopyPermanentEffect extends SpellAbilityEffect { copy.addType("Zombie"); copy.setColor(MagicColor.WHITE); copy.setManaCost(ManaCost.NO_COST); + copy.setEmbalmed(true); + String name = copy.getName().replace(",", "").replace(" ", "_").toLowerCase(); copy.setImageKey(ImageKeys.getTokenKey("embalm_" + name)); } 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 73c6adcb783..51a1b80b30a 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -165,6 +165,7 @@ public class Card extends GameEntity implements Comparable { private boolean suspendCast = false; private boolean suspend = false; private boolean tributed = false; + private boolean embalmed = false; private boolean madness = false; private boolean phasedOut = false; @@ -6197,6 +6198,13 @@ public class Card extends GameEntity implements Comparable { tributed = b; } + public final boolean isEmbalmed() { + return embalmed; + } + public final void setEmbalmed(final boolean b) { + embalmed = b; + } + public boolean isMadness() { return madness; }