Merge branch 'cloneNameThis' into 'master'

Clone New Name and GainThisAbility

See merge request core-developers/forge!1002
This commit is contained in:
Michael Kamensky
2018-10-11 11:12:09 +00:00
16 changed files with 64 additions and 32 deletions

View File

@@ -62,7 +62,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView {
* Keys that should not changed * Keys that should not changed
*/ */
private static final ImmutableList<String> noChangeKeys = ImmutableList.<String>builder() private static final ImmutableList<String> noChangeKeys = ImmutableList.<String>builder()
.add("TokenScript", "LegacyImage", "TokenImage").build(); .add("TokenScript", "LegacyImage", "TokenImage", "NewName").build();
/** /**
* Sets the temporary. * Sets the temporary.
* *

View File

@@ -113,6 +113,7 @@ public class CloneEffect extends SpellAbilityEffect {
} }
final boolean keepName = sa.hasParam("KeepName"); final boolean keepName = sa.hasParam("KeepName");
final String newName = sa.getParamOrDefault("NewName", null);
final String originalName = tgtCard.getName(); final String originalName = tgtCard.getName();
final boolean copyingSelf = (tgtCard == cardToCopy); final boolean copyingSelf = (tgtCard == cardToCopy);
final boolean isTransformed = cardToCopy.getCurrentStateName() == CardStateName.Transformed || cardToCopy.getCurrentStateName() == CardStateName.Meld; final boolean isTransformed = cardToCopy.getCurrentStateName() == CardStateName.Transformed || cardToCopy.getCurrentStateName() == CardStateName.Meld;
@@ -157,9 +158,13 @@ public class CloneEffect extends SpellAbilityEffect {
} }
// restore name if it should be unchanged // restore name if it should be unchanged
// this should only be used for Sakashima the Impostor Avatar
if (keepName) { if (keepName) {
tgtCard.setName(originalName); tgtCard.setName(originalName);
} }
if (newName != null) {
tgtCard.setName(newName);
}
// If target is a flip card, also set characteristics of the flipped // If target is a flip card, also set characteristics of the flipped
// state. // state.
@@ -168,6 +173,9 @@ public class CloneEffect extends SpellAbilityEffect {
if (keepName) { if (keepName) {
flippedState.setName(originalName); flippedState.setName(originalName);
} }
if (newName != null) {
tgtCard.setName(newName);
}
//keep the Clone card image for the cloned card //keep the Clone card image for the cloned card
flippedState.setImageKey(imageFileName); flippedState.setImageKey(imageFileName);
} }
@@ -350,6 +358,18 @@ public class CloneEffect extends SpellAbilityEffect {
tgtCard.setBasePower(4); tgtCard.setBasePower(4);
tgtCard.setBaseToughness(4); tgtCard.setBaseToughness(4);
} }
if (sa.hasParam("GainThisAbility")) {
SpellAbility root = sa.getRootAbility();
if (root.isTrigger() && root.getTrigger() != null) {
tgtCard.addTrigger(root.getTrigger().copy(tgtCard, false));
} else if (root.isReplacementAbility()) {
tgtCard.addReplacementEffect(root.getReplacementEffect().copy(tgtCard, false));
} else {
tgtCard.addSpellAbility(root.copy(tgtCard, false));
}
}
} }
} }

View File

@@ -181,7 +181,7 @@ public class ReplacementHandler {
final String effectAbString = host.getSVar(effectSVar); final String effectAbString = host.getSVar(effectSVar);
// TODO: the source of replacement effect should be the source of the original effect // TODO: the source of replacement effect should be the source of the original effect
effectSA = AbilityFactory.getAbility(effectAbString, host); effectSA = AbilityFactory.getAbility(effectAbString, host);
effectSA.setTrigger(true); //effectSA.setTrigger(true);
SpellAbility tailend = effectSA; SpellAbility tailend = effectSA;
do { do {
@@ -209,8 +209,9 @@ public class ReplacementHandler {
if (replacementEffect.isIntrinsic()) { if (replacementEffect.isIntrinsic()) {
effectSA.setIntrinsic(true); effectSA.setIntrinsic(true);
effectSA.changeText(); effectSA.changeText();
effectSA.setReplacementAbility(true);
} }
effectSA.setReplacementAbility(true);
effectSA.setReplacementEffect(replacementEffect);
} }
// Decider gets to choose whether or not to apply the replacement. // Decider gets to choose whether or not to apply the replacement.

View File

@@ -38,7 +38,9 @@ import forge.game.cost.CostRemoveCounter;
import forge.game.keyword.Keyword; import forge.game.keyword.Keyword;
import forge.game.mana.Mana; import forge.game.mana.Mana;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.replacement.ReplacementEffect;
import forge.game.staticability.StaticAbility; import forge.game.staticability.StaticAbility;
import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
import forge.game.trigger.WrappedAbility; import forge.game.trigger.WrappedAbility;
import forge.util.Expressions; import forge.util.Expressions;
@@ -87,8 +89,10 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
private boolean basicSpell = true; private boolean basicSpell = true;
private boolean trigger = false; private boolean trigger = false;
private Trigger triggerObj = null;
private boolean optionalTrigger = false; private boolean optionalTrigger = false;
private boolean replacementAbility = false; private boolean replacementAbility = false;
private ReplacementEffect replacementEffect = null;
private int sourceTrigger = -1; private int sourceTrigger = -1;
private List<Object> triggerRemembered = Lists.newArrayList(); private List<Object> triggerRemembered = Lists.newArrayList();
@@ -913,6 +917,14 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
trigger = trigger0; trigger = trigger0;
} }
public Trigger getTrigger() {
return triggerObj;
}
public void setTrigger(final Trigger t) {
triggerObj = t;
}
public boolean isOptionalTrigger() { public boolean isOptionalTrigger() {
return optionalTrigger; return optionalTrigger;
} }
@@ -934,6 +946,14 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
replacementAbility = replacement; replacementAbility = replacement;
} }
public ReplacementEffect getReplacementEffect() {
return replacementEffect;
}
public void setReplacementEffect(final ReplacementEffect re) {
this.replacementEffect = re;
}
public boolean isMandatory() { public boolean isMandatory() {
return false; return false;
} }

View File

@@ -27,14 +27,13 @@ import com.google.common.collect.Lists;
public class WrappedAbility extends Ability { public class WrappedAbility extends Ability {
private final SpellAbility sa; private final SpellAbility sa;
private final Trigger regtrig;
private final Player decider; private final Player decider;
boolean mandatory = false; boolean mandatory = false;
public WrappedAbility(final Trigger regtrig0, final SpellAbility sa0, final Player decider0) { public WrappedAbility(final Trigger regtrig0, final SpellAbility sa0, final Player decider0) {
super(regtrig0.getHostCard(), ManaCost.ZERO, sa0.getView()); super(regtrig0.getHostCard(), ManaCost.ZERO, sa0.getView());
regtrig = regtrig0; setTrigger(regtrig0);
sa = sa0; sa = sa0;
decider = decider0; decider = decider0;
sa.setDescription(this.getStackDescription()); sa.setDescription(this.getStackDescription());
@@ -49,10 +48,6 @@ public class WrappedAbility extends Ability {
return true; return true;
} }
public Trigger getTrigger() {
return regtrig;
}
public Player getDecider() { public Player getDecider() {
return decider; return decider;
} }
@@ -218,6 +213,7 @@ public class WrappedAbility extends Ability {
@Override @Override
public String getStackDescription() { public String getStackDescription() {
final Trigger regtrig = getTrigger();
final StringBuilder sb = new StringBuilder(regtrig.replaceAbilityText(regtrig.toString(true), this)); final StringBuilder sb = new StringBuilder(regtrig.replaceAbilityText(regtrig.toString(true), this));
if (usesTargeting()) { if (usesTargeting()) {
sb.append(" (Targeting "); sb.append(" (Targeting ");
@@ -445,6 +441,7 @@ public class WrappedAbility extends Ability {
@Override @Override
public void resolve() { public void resolve() {
final Game game = sa.getActivatingPlayer().getGame(); final Game game = sa.getActivatingPlayer().getGame();
final Trigger regtrig = getTrigger();
Map<String, String> triggerParams = regtrig.getMapParams(); Map<String, String> triggerParams = regtrig.getMapParams();
if (!(regtrig instanceof TriggerAlways) && !triggerParams.containsKey("NoResolvingCheck")) { if (!(regtrig instanceof TriggerAlways) && !triggerParams.containsKey("NoResolvingCheck")) {
@@ -476,6 +473,9 @@ public class WrappedAbility extends Ability {
return; return;
} }
// set Trigger
sa.setTrigger(regtrig);
if (!triggerParams.containsKey("NoTimestampCheck")) { if (!triggerParams.containsKey("NoTimestampCheck")) {
timestampCheck(); timestampCheck();
} }

View File

@@ -3,8 +3,7 @@ ManaCost:1 U
Types:Creature Human Wizard Types:Creature Human Wizard
PT:1/1 PT:1/1
T:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigArtisanCopy | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, you may have CARDNAME become a copy of target creature and gain this ability. T:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigArtisanCopy | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, you may have CARDNAME become a copy of target creature and gain this ability.
SVar:TrigArtisanCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy | Optional$ True | AddTriggers$ ArtisanHeroicTrig | AddSVars$ TrigArtisanCopy,ArtisanHeroicTrig SVar:TrigArtisanCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy | Optional$ True | GainThisAbility$ True
SVar:ArtisanHeroicTrig:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigArtisanCopy | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, you may have CARDNAME become a copy of target creature and gain this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/artisan_of_forms.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/artisan_of_forms.jpg
Oracle:Heroic — Whenever you cast a spell that targets Artisan of Forms, you may have Artisan of Forms become a copy of target creature and gain this ability. Oracle:Heroic — Whenever you cast a spell that targets Artisan of Forms, you may have Artisan of Forms become a copy of target creature and gain this ability.

View File

@@ -4,8 +4,7 @@ Types:Creature Shapeshifter
PT:1/2 PT:1/2
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ CemeteryPucaCopy | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, CARDNAME becomes a copy of that creature and gains this ability. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ CemeteryPucaCopy | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, CARDNAME becomes a copy of that creature and gains this ability.
SVar:CemeteryPucaCopy:AB$ Clone | Cost$ 1 | Defined$ TriggeredCardLKICopy | AddTriggers$ CemeteryPucaDiesTrig | AddSVars$ CemeteryPucaCopy,CemeteryPucaDiesTrig SVar:CemeteryPucaCopy:AB$ Clone | Cost$ 1 | Defined$ TriggeredCardLKICopy | GainThisAbility$ True
SVar:CemeteryPucaDiesTrig:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ CemeteryPucaCopy | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, CARDNAME becomes a copy of that creature and gains this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/cemetery_puca.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/cemetery_puca.jpg
Oracle:Whenever a creature dies, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature and gains this ability. Oracle:Whenever a creature dies, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature and gains this ability.

View File

@@ -4,8 +4,7 @@ Types:Creature Shapeshifter
PT:2/2 PT:2/2
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CryptoplasmCopy | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may have CARDNAME become a copy of another target creature. If you do, CARDNAME gains this ability. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CryptoplasmCopy | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may have CARDNAME become a copy of another target creature. If you do, CARDNAME gains this ability.
SVar:CryptoplasmCopy:DB$ Clone | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature to copy. | Optional$ True | AddTriggers$ CryptoplasmUpkeepTrig | AddSVars$ CryptoplasmCopy,CryptoplasmUpkeepTrig SVar:CryptoplasmCopy:DB$ Clone | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature to copy. | Optional$ True | GainThisAbility$ True
SVar:CryptoplasmUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CryptoplasmCopy | TriggerDescription$ At the beginning of your upkeep, you may have CARDNAME become a copy of another target creature. If you do, CARDNAME gains this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/cryptoplasm.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/cryptoplasm.jpg
Oracle:At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. Oracle:At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability.

View File

@@ -4,8 +4,7 @@ Types:Creature Shapeshifter
PT:0/2 PT:0/2
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
A:AB$ ChangeZone | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ DDCopy | SpellDescription$ Exile target creature card from a graveyard. CARDNAME becomes a copy of that card and gains this ability. A:AB$ ChangeZone | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ DDCopy | SpellDescription$ Exile target creature card from a graveyard. CARDNAME becomes a copy of that card and gains this ability.
SVar:DDCopy:DB$ Clone | Defined$ Remembered | AddAbilities$ DDAbility | AddSVars$ DDAbility,DDCopy SVar:DDCopy:DB$ Clone | Defined$ Remembered | GainThisAbility$ True
SVar:DDAbility:AB$ ChangeZone | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ DDCopy | SpellDescription$ Exile target creature card from a graveyard. CARDNAME becomes a copy of that card and gains this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/dimir_doppelganger.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/dimir_doppelganger.jpg
Oracle:{1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card and gains this ability. Oracle:{1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card and gains this ability.

View File

@@ -3,9 +3,8 @@ ManaCost:U U B B
Types:Legendary Creature Shapeshifter Types:Legendary Creature Shapeshifter
PT:3/3 PT:3/3
K:Hexproof K:Hexproof
T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.nonToken+OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponent's graveyard from anywhere, you may have CARDNAME become a copy of that card except it's name is still CARDNAME, it's legendary in addition to it's other types, and it gains hexproof and this ability. T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.nonToken+OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponents graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card, except its name is Lazav, Dimir Mastermind, its legendary in addition to its other types, and it has hexproof and this ability.
SVar:LazavCopy:DB$ Clone | Defined$ TriggeredCard | KeepName$ True | AddTypes$ Legendary | AddTriggers$ LazavTrig | AddKeywords$ Hexproof | AddSVars$ LazavCopy,LazavTrig SVar:LazavCopy:DB$ Clone | Defined$ TriggeredCard | NewName$ Lazav, Dimir Mastermind | AddTypes$ Legendary | AddKeywords$ Hexproof | GainThisAbility$ True
SVar:LazavTrig:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponent's graveyard from anywhere, you may have CARDNAME become a copy of that card except it's name is still CARDNAME, it's legendary in addition to it's other types, and it gains hexproof and this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/lazav_dimir_mastermind.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/lazav_dimir_mastermind.jpg
Oracle:Hexproof\nWhenever a creature card is put into an opponent's graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card except its name is still Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it gains hexproof and this ability. Oracle:Hexproof\nWhenever a creature card is put into an opponents graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card, except its name is Lazav, Dimir Mastermind, its legendary in addition to its other types, and it has hexproof and this ability.

View File

@@ -4,7 +4,6 @@ Types:Legendary Creature Shapeshifter
PT:1/3 PT:1/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. (To scry 1, look at the top card of your library. You may put that card into your graveyard.) T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. (To scry 1, look at the top card of your library. You may put that card into your graveyard.)
SVar:TrigSurveil:DB$ Surveil | Amount$ 1 SVar:TrigSurveil:DB$ Surveil | Amount$ 1
A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | NewName$ Lazav, the Multifarious | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability.
SVar:LazavTrig:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability.
SVar:X:Targeted$CardManaCost SVar:X:Targeted$CardManaCost
Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability.

View File

@@ -2,8 +2,7 @@ Name:Mizzium Transreliquat
ManaCost:3 ManaCost:3
Types:Artifact Types:Artifact
A:AB$ Clone | Cost$ 3 | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy until end of turn. | Duration$ UntilEndOfTurn | SpellDescription$ CARDNAME becomes a copy of target artifact until end of turn. A:AB$ Clone | Cost$ 3 | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy until end of turn. | Duration$ UntilEndOfTurn | SpellDescription$ CARDNAME becomes a copy of target artifact until end of turn.
A:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | AddAbilities$ MizzCopy | AddSVars$ MizzCopy | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability. A:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability.
SVar:MizzCopy:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | AddAbilities$ MizzCopy | AddSVars$ MizzCopy | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/mizzium_transreliquat.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/mizzium_transreliquat.jpg
Oracle:{3}: Mizzium Transreliquat becomes a copy of target artifact until end of turn.\n{1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact and gains this ability. Oracle:{3}: Mizzium Transreliquat becomes a copy of target artifact until end of turn.\n{1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact and gains this ability.

View File

@@ -4,8 +4,8 @@ Types:Legendary Creature Human Rogue
PT:3/1 PT:3/1
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
K:ETBReplacement:Copy:DBCopy:Optional K:ETBReplacement:Copy:DBCopy:Optional
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | KeepName$ True | AddTypes$ Legendary | AddAbilities$ ReturnSakashima | AddSVars$ TrigReturnSak | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except its name is still CARDNAME, it's legendary in addition to its other types, and it gains "{2}{U}{U}: Return CARDNAME to its owner's hand at the beginning of the next end step." SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | NewName$ Sakashima the Impostor | AddTypes$ Legendary | AddAbilities$ ReturnSakashima | AddSVars$ TrigReturnSak | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except its name is Sakashima the Impostor, its legendary in addition to its other types, and it has {2}{U}{U}: Return this creature to its owners hand at the beginning of the next end step.
SVar:ReturnSakashima:AB$ DelayedTrigger | Cost$ 2 U U | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturnSak | SpellDescription$ Return CARDNAME to it's owners hand at the beginning of the next end step. SVar:ReturnSakashima:AB$ DelayedTrigger | Cost$ 2 U U | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturnSak | SpellDescription$ Return CARDNAME to it's owners hand at the beginning of the next end step.
SVar:TrigReturnSak:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand SVar:TrigReturnSak:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand
SVar:Picture:http://www.wizards.com/global/images/magic/general/sakashima_the_impostor.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/sakashima_the_impostor.jpg
Oracle:You may have Sakashima the Impostor enter the battlefield as a copy of any creature on the battlefield, except its name is still Sakashima the Impostor, it's legendary in addition to its other types, and it gains "{2}{U}{U}: Return Sakashima the Impostor to its owner's hand at the beginning of the next end step." Oracle:You may have Sakashima the Impostor enter the battlefield as a copy of any creature on the battlefield, except its name is Sakashima the Impostor, its legendary in addition to its other types, and it has {2}{U}{U}: Return this creature to its owners hand at the beginning of the next end step.

View File

@@ -2,8 +2,7 @@ Name:Thespian's Stage
ManaCost:no cost ManaCost:no cost
Types:Land Types:Land
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
A:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | AddAbilities$ ThespianCopy | AddSVars$ ThespianCopy | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability. A:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability.
SVar:ThespianCopy:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | AddAbilities$ ThespianCopy | AddSVars$ ThespianCopy | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/thespians_stage.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/thespians_stage.jpg
Oracle:{T}: Add {C}.\n{2}, {T}: Thespian's Stage becomes a copy of target land and gains this ability. Oracle:{T}: Add {C}.\n{2}, {T}: Thespian's Stage becomes a copy of target land and gains this ability.

View File

@@ -4,7 +4,6 @@ Types:Creature Shapeshifter
PT:0/1 PT:0/1
# Make SVars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone # Make SVars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ USCopy | TriggerDescription$ Whenever another creature enters the battlefield, CARDNAME becomes a copy of that creature and gains this ability. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ USCopy | TriggerDescription$ Whenever another creature enters the battlefield, CARDNAME becomes a copy of that creature and gains this ability.
SVar:USCopy:DB$ Clone | Defined$ TriggeredCard | AddTriggers$ USTrig | AddSVars$ USCopy,USTrig SVar:USCopy:DB$ Clone | Defined$ TriggeredCard | GainThisAbility$ True
SVar:USTrig:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ USCopy | TriggerDescription$ Whenever another creature enters the battlefield, CARDNAME becomes a copy of that creature and gains this ability.
SVar:Picture:http://www.wizards.com/global/images/magic/general/unstable_shapeshifter.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/unstable_shapeshifter.jpg
Oracle:Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature and gains this ability. Oracle:Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature and gains this ability.

View File

@@ -7,7 +7,7 @@ K:ETBReplacement:Copy:ChooseCreature:Optional
SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | RememberChosen$ True | AILogic$ Clone | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability." SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | RememberChosen$ True | AILogic$ Clone | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability."
SVar:DBCopy:DB$ Clone | Defined$ Remembered | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig SVar:DBCopy:DB$ Clone | Defined$ Remembered | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig
SVar:VesDopUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ VesDopCopy | TriggerDescription$ At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability. SVar:VesDopUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ VesDopCopy | TriggerDescription$ At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability.
SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig | SubAbility$ DBCleanup SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | Colors$ Blue | OverwriteColors$ True | GainThisAbility$ True | SubAbility$ DBCleanup
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/vesuvan_doppelganger.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/vesuvan_doppelganger.jpg
Oracle:You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability." Oracle:You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability."