Fix Cyber Conversion turning face-down card face-up again (#3986)

* Fix Cyber Conversion turning face-down card face-up again

* Tweak AI

---------

Co-authored-by: tool4EvEr <tool4EvEr@192.168.0.60>
Co-authored-by: TRT <>
This commit is contained in:
tool4ever
2023-10-28 12:08:40 +02:00
committed by GitHub
parent d2878ccd1d
commit c54133f1ad
26 changed files with 45 additions and 37 deletions

View File

@@ -33,7 +33,7 @@ public class SetStateAi extends SpellAbilityAi {
// turning face is most likely okay
// TODO only do this at beneficial moment (e.g. surprise during combat or morph trigger), might want to reserve mana to protect them from easy removal
if ("TurnFace".equals(mode)) {
if ("TurnFaceUp".equals(mode) || "TurnFaceDown".equals(mode)) {
return true;
}
@@ -103,7 +103,7 @@ public class SetStateAi extends SpellAbilityAi {
return sa.isMinTargetChosen();
}
} else if ("TurnFace".equals(mode)) {
} else if ("TurnFaceUp".equals(mode) || "TurnFaceDown".equals(mode)) {
if (sa.usesTargeting()) {
sa.resetTargets();
@@ -114,7 +114,7 @@ public class SetStateAi extends SpellAbilityAi {
}
for (final Card c : list) {
if (shouldTurnFace(c, ai, ph) || "Always".equals(logic)) {
if (shouldTurnFace(c, ai, ph, mode) || "Always".equals(logic)) {
sa.getTargets().add(c);
if (!sa.canAddMoreTarget()) {
break;
@@ -128,7 +128,7 @@ public class SetStateAi extends SpellAbilityAi {
if (list.isEmpty()) {
return false;
}
return shouldTurnFace(list.get(0), ai, ph) || "Always".equals(logic);
return shouldTurnFace(list.get(0), ai, ph, mode) || "Always".equals(logic);
}
}
return true;
@@ -150,8 +150,11 @@ public class SetStateAi extends SpellAbilityAi {
return compareCards(card, transformed, ai, ph);
}
private boolean shouldTurnFace(Card card, Player ai, PhaseHandler ph) {
private boolean shouldTurnFace(Card card, Player ai, PhaseHandler ph, String mode) {
if (card.isFaceDown()) {
if ("TurnFaceDown".equals(mode)) {
return false;
}
// hidden agenda
if (card.getState(CardStateName.Original).hasIntrinsicKeyword("Hidden agenda")
&& card.isInZone(ZoneType.Command)) {
@@ -169,6 +172,9 @@ public class SetStateAi extends SpellAbilityAi {
return false;
}
} else {
if ("TurnFaceUp".equals(mode)) {
return false;
}
// doublefaced or meld cards can't be turned face down
if (card.isTransformable() || card.isMeldable()) {
return false;

View File

@@ -564,7 +564,7 @@ public class PlayEffect extends SpellAbilityEffect {
"Event$ DealtDamage | ValidCard$ Card.IsRemembered+faceDown",
"Event$ Tap | ValidCard$ Card.IsRemembered+faceDown"
};
String effect = "DB$ SetState | Defined$ ReplacedCard | Mode$ TurnFace";
String effect = "DB$ SetState | Defined$ ReplacedCard | Mode$ TurnFaceUp";
for (int i = 0; i < 3; ++i) {
ReplacementEffect re = ReplacementHandler.parseReplacement(repeffstrs[i], eff, true);

View File

@@ -91,13 +91,13 @@ public class SetStateEffect extends SpellAbilityEffect {
// Cards which are not on the battlefield should not be able to transform.
// TurnFace should be allowed in other zones like Exile too
// Specialize and Unspecialize are allowed in other zones
if (!"TurnFace".equals(mode) && !"Unspecialize".equals(mode) && !"Specialize".equals(mode)
if (!"TurnFaceUp".equals(mode) && !"TurnFaceDown".equals(mode) && !"Unspecialize".equals(mode) && !"Specialize".equals(mode)
&& !gameCard.isInPlay() && !sa.hasParam("ETB")) {
continue;
}
// facedown cards that are not Permanent, can't turn faceup there
if ("TurnFace".equals(mode) && gameCard.isFaceDown() && gameCard.isInPlay()) {
if ("TurnFaceUp".equals(mode) && gameCard.isFaceDown() && gameCard.isInPlay()) {
if (gameCard.hasMergedCard()) {
boolean hasNonPermanent = false;
Card nonPermanentCard = null;
@@ -124,7 +124,7 @@ public class SetStateEffect extends SpellAbilityEffect {
}
// Merged faceup permanent that have double faced cards can't turn face down
if ("TurnFace".equals(mode) && !gameCard.isFaceDown() && gameCard.isInPlay()
if ("TurnFaceDown".equals(mode) && !gameCard.isFaceDown() && gameCard.isInPlay()
&& gameCard.hasMergedCard()) {
boolean hasBackSide = false;
for (final Card c : gameCard.getMergedCards()) {
@@ -170,7 +170,7 @@ public class SetStateEffect extends SpellAbilityEffect {
host.setChosenColors(null);
} else {
hasTransformed = gameCard.changeCardState(mode, sa.getParam("NewState"), sa);
if (gameCard.isFaceDown() && (sa.hasParam("FaceDownPower") || sa.hasParam("FaceDownToughness")
if (hasTransformed && (sa.hasParam("FaceDownPower") || sa.hasParam("FaceDownToughness")
|| sa.hasParam("FaceDownSetType"))) {
CardFactoryUtil.setFaceDownState(gameCard, sa);
}

View File

@@ -674,12 +674,14 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
this.flipped = true;
}
return retResult;
} else if (mode.equals("TurnFace")) {
} else if (mode.equals("TurnFaceUp")) {
if (isFaceDown()) {
return turnFaceUp(cause);
}
} else if (mode.equals("TurnFaceDown")) {
CardStateName oldState = getCurrentStateName();
if (oldState == CardStateName.Original || oldState == CardStateName.Flipped) {
return turnFaceDown();
} else if (isFaceDown()) {
return turnFaceUp(cause);
}
} else if (mode.equals("Meld") && isMeldable()) {
return changeToState(CardStateName.Meld);

View File

@@ -167,7 +167,7 @@ public class CardFactoryUtil {
sb.append(" | Mega$ True");
}
sb.append(" | Mode$ TurnFace | SpellDescription$ (Turn this face up any time for its morph cost.)");
sb.append(" | Mode$ TurnFaceUp | SpellDescription$ (Turn this face up any time for its morph cost.)");
final SpellAbility morphUp = AbilityFactory.getAbility(sb.toString(), cardState);
@@ -192,7 +192,7 @@ public class CardFactoryUtil {
StringBuilder sb = new StringBuilder();
sb.append("ST$ SetState | Cost$ 0 | CostDesc$ Unmanifest ").append(costDesc);
sb.append(" | ManifestUp$ True | Secondary$ True | PresentDefined$ Self | IsPresent$ Card.faceDown+manifested");
sb.append(" | Mode$ TurnFace | SpellDescription$ (Turn this face up any time for its mana cost.)");
sb.append(" | Mode$ TurnFaceUp | SpellDescription$ (Turn this face up any time for its mana cost.)");
final SpellAbility manifestUp = AbilityFactory.getAbility(sb.toString(), sourceCard);
manifestUp.setPayCosts(new Cost(manaCost, true));
@@ -236,7 +236,7 @@ public class CardFactoryUtil {
String ab = "ST$ SetState | Cost$ 0"
+ " | ConditionDefined$ Self | ConditionPresent$ Card.faceDown+inZoneCommand"
+ " | HiddenAgenda$ True"
+ " | Mode$ TurnFace | SpellDescription$ Reveal this Hidden Agenda at any time.";
+ " | Mode$ TurnFaceUp | SpellDescription$ Reveal this Hidden Agenda at any time.";
return AbilityFactory.getAbility(ab, sourceCard);
}

View File

@@ -1,7 +1,7 @@
Name:Backslide
ManaCost:1 U
Types:Instant
A:SP$ SetState | Cost$ 1 U | ValidTgts$ Creature.faceUp+withMorph,Creature.faceUp+withMegamorph | TgtPrompt$ Select target creature with morph. | Mode$ TurnFace | SpellDescription$ Turn target creature with a morph ability face down.
A:SP$ SetState | Cost$ 1 U | ValidTgts$ Creature.withMorph,Creature.withMegamorph | TgtPrompt$ Select target creature with morph. | Mode$ TurnFaceDown | SpellDescription$ Turn target creature with a morph ability face down.
K:Cycling:U
AI:RemoveDeck:All
Oracle:Turn target creature with a morph ability face down.\nCycling {U} ({U}, Discard this card: Draw a card.)

View File

@@ -1,6 +1,6 @@
Name:Break Open
ManaCost:1 R
Types:Instant
A:SP$ SetState | Cost$ 1 R | ValidTgts$ Creature.faceDown+OppCtrl | TgtPrompt$ Select target facedown creature you don't control. | Mode$ TurnFace | SpellDescription$ Turn target face-down creature an opponent controls face up.
A:SP$ SetState | Cost$ 1 R | ValidTgts$ Creature.faceDown+OppCtrl | TgtPrompt$ Select target facedown creature you don't control. | Mode$ TurnFaceUp | SpellDescription$ Turn target face-down creature an opponent controls face up.
AI:RemoveDeck:Random
Oracle:Turn target face-down creature an opponent controls face up.

View File

@@ -5,7 +5,7 @@ PT:2/2
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Imprint — When Clone Shell enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library in any order.
SVar:TrigDig:DB$ Dig | Defined$ You | DigNum$ 4 | DestinationZone$ Exile | ExileFaceDown$ True | WithMayLook$ True | Imprint$ True
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigFaceUp | TriggerDescription$ When CARDNAME dies, turn the exiled card face up. If it's a creature card, put it onto the battlefield under your control.
SVar:TrigFaceUp:DB$ SetState | Defined$ Imprinted | SubAbility$ DBChangeZone | Mode$ TurnFace
SVar:TrigFaceUp:DB$ SetState | Defined$ Imprinted | SubAbility$ DBChangeZone | Mode$ TurnFaceUp
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Exile | Destination$ Battlefield | ConditionDefined$ Imprinted | ConditionPresent$ Creature | GainControl$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True
SVar:SacMe:5

View File

@@ -8,6 +8,6 @@ SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Graveyard | Cha
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ TrigGetCreature | TriggerController$ TriggeredPlayer | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's upkeep, that player chooses a card exiled with Free-for-All at random and puts it onto the battlefield.
SVar:TrigGetCreature:DB$ ChooseCard | Amount$ 1 | AtRandom$ True | Choices$ Card.IsRemembered | ChoiceZone$ Exile | SubAbility$ DBFaceUp | SpellDescription$ Choose a card at random that was exiled with CARDNAME. Put that card into its owner's hand.
SVar:DBFaceUp:DB$ SetState | Defined$ ChosenCard | SubAbility$ DBChangeZone | Mode$ TurnFace
SVar:DBFaceUp:DB$ SetState | Defined$ ChosenCard | SubAbility$ DBChangeZone | Mode$ TurnFaceUp
SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | GainControl$ True | Origin$ Exile | Destination$ Battlefield | ForgetChanged$ True | Hidden$ True
Oracle:When Free-for-All enters the battlefield, exile all creatures face down.\nAt the beginning of each player's upkeep, that player chooses a card exiled with Free-for-All at random and puts it onto the battlefield.\nWhen Free-for-All leaves the battlefield, put all cards exiled with it into their owners' graveyards.

View File

@@ -5,7 +5,7 @@ PT:2/2
T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ Whenever CARDNAME becomes tapped, exile the top three cards of target opponent's library face down.
SVar:TrigExile:DB$ Dig | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True
S:Mode$ Continuous | Affected$ Card.IsRemembered+ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME.
A:AB$ SetState | Cost$ U Sac<1/CARDNAME> | Defined$ Remembered | Mode$ TurnFace | SubAbility$ DBCounter | SpellDescription$ Turn all cards exiled with CARDNAME face up. Counter all spells with those names.
A:AB$ SetState | Cost$ U Sac<1/CARDNAME> | Defined$ Remembered | Mode$ TurnFaceUp | SubAbility$ DBCounter | SpellDescription$ Turn all cards exiled with CARDNAME face up. Counter all spells with those names.
SVar:DBCounter:DB$ Counter | AllValid$ Spell.sharesNameWith Remembered.ExiledWithSource | SubAbility$ DBCleanup
T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget
SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard

View File

@@ -4,7 +4,7 @@ Types:Instant
A:SP$ Dig | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | ExileFaceDown$ True | SubAbility$ DBDig | StackDescription$ SpellDescription | SpellDescription$ Exile the top three cards of your library in a face-down pile,
SVar:DBDig:DB$ Dig | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | Imprint$ True | ExileFaceDown$ True | SubAbility$ YouChoose | StackDescription$ SpellDescription | SpellDescription$ then exile the next top three cards of your library in another face-down pile.
SVar:YouChoose:DB$ TwoPiles | Zone$ Exile | DefinedPiles$ Remembered,Imprinted | ChosenPile$ TurnFaceUp | SubAbility$ TheyChoose | KeepRemembered$ True | StackDescription$ SpellDescription | SpellDescription$ Look at the cards in each pile, then turn a pile of your choice face up.
SVar:TurnFaceUp:DB$ SetState | Defined$ Remembered | Mode$ TurnFace
SVar:TurnFaceUp:DB$ SetState | Defined$ Remembered | Mode$ TurnFaceUp
SVar:TheyChoose:DB$ TwoPiles | Zone$ Exile | DefinedPiles$ Remembered,Imprinted | Chooser$ Opponent | ChosenPile$ ToHand | UnchosenPile$ ToGrave | SubAbility$ DBLoseLife | StackDescription$ SpellDescription | SpellDescription$ An opponent chooses one of those piles. Put all cards in the chosen pile into your hand and the rest into your graveyard.
SVar:ToHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Hand
SVar:ToGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Graveyard

View File

@@ -3,7 +3,7 @@ ManaCost:4 U
Types:Creature Horror
PT:4/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTurnFaceDown | TriggerDescription$ Ceremorphosis — When CARDNAME enters the battlefield, turn any number of target tapped nontoken creatures face down. They're 2/2 Horror creatures.
SVar:TrigTurnFaceDown:DB$ SetState | ValidTgts$ Creature.tapped+nonToken | TgtPrompt$ Select any number of target tapped nontoken creatures | TargetMin$ 0 | TargetMax$ X | Mode$ TurnFace | FaceDownPower$ 2 | FaceDownToughness$ 2 | FaceDownSetType$ Horror & Creature
SVar:TrigTurnFaceDown:DB$ SetState | ValidTgts$ Creature.tapped+nonToken | TgtPrompt$ Select any number of target tapped nontoken creatures | TargetMin$ 0 | TargetMax$ X | Mode$ TurnFaceDown | FaceDownPower$ 2 | FaceDownToughness$ 2 | FaceDownSetType$ Horror & Creature
SVar:X:Count$Valid Creature.tapped+nonToken
AlternateMode:Adventure
Oracle:Ceremorphosis — When Illithid Harvester enters the battlefield, turn any number of target tapped nontoken creatures face down. They're 2/2 Horror creatures.

View File

@@ -3,5 +3,5 @@ ManaCost:3 U U
Types:Legendary Creature Human Wizard
PT:3/4
S:Mode$ Continuous | Affected$ Creature.faceDown | AddPower$ 1 | AddToughness$ 1 | Description$ Face-Down creatures get +1/+1.
A:AB$ SetState | Cost$ 2 U | ValidTgts$ Creature.faceDown | TgtPrompt$ Select target face-down creature. | Mode$ TurnFace | SpellDescription$ Turn target face-down creature face up.
A:AB$ SetState | Cost$ 2 U | ValidTgts$ Creature.faceDown | TgtPrompt$ Select target face-down creature. | Mode$ TurnFaceUp | SpellDescription$ Turn target face-down creature face up.
Oracle:Face-down creatures get +1/+1.\n{2}{U}: Turn target face-down creature face up.

View File

@@ -3,7 +3,7 @@ ManaCost:3 U U
Types:Creature Illusion
PT:*/*
K:ETBReplacement:Other:TrigTurnFaceDown
SVar:TrigTurnFaceDown:DB$ SetState | Defined$ Valid Creature.nonToken+Other+faceUp | Mode$ TurnFace | SpellDescription$ As CARDNAME enters the battlefield, turn all other nontoken creatures face down. (They're 2/2 creatures.)
SVar:TrigTurnFaceDown:DB$ SetState | Defined$ Valid Creature.nonToken+Other+faceUp | Mode$ TurnFaceDown | SpellDescription$ As CARDNAME enters the battlefield, turn all other nontoken creatures face down. (They're 2/2 creatures.)
S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of face-down creatures on the battlefield.
SVar:X:Count$Valid Creature.faceDown
SVar:NeedsToPlay:Creature.OppCtrl+nonToken

View File

@@ -4,6 +4,6 @@ Types:Creature Human Wizard
PT:2/3
K:Morph:2 U
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigSetState | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, you may turn target creature with morph face down.
SVar:TrigSetState:DB$ SetState | ValidTgts$ Creature.faceUp+withMorph,Creature.faceUp+withMegamorph | TgtPrompt$ Select target creature with morph. | Mode$ TurnFace
SVar:TrigSetState:DB$ SetState | ValidTgts$ Creature.withMorph,Creature.withMegamorph | TgtPrompt$ Select target creature with morph. | Mode$ TurnFaceDown
AI:RemoveDeck:All
Oracle:Morph {2}{U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Master of the Veil is turned face up, you may turn target creature with a morph ability face down.

View File

@@ -3,7 +3,7 @@ ManaCost:4 U
Types:Creature Beast
PT:3/3
K:Morph:1 U U
A:AB$ SetState | Cost$ 3 U U | Defined$ Self | Mode$ TurnFace | SpellDescription$ Turn CARDNAME face down.
A:AB$ SetState | Cost$ 3 U U | Defined$ Self | Mode$ TurnFaceDown | SpellDescription$ Turn CARDNAME face down.
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, copy target instant or sorcery spell. You may choose new targets for that copy.
SVar:TrigCopy:DB$ CopySpellAbility | ValidTgts$ Instant,Sorcery | MayChooseTarget$ True
AI:RemoveDeck:All

View File

@@ -2,7 +2,7 @@ Name:Obscuring Aether
ManaCost:G
Types:Enchantment
S:Mode$ ReduceCost | ValidCard$ Creature | Type$ MorphDown | Activator$ You | Amount$ 1 | Description$ Face-down creature spells you cast cost {1} less to cast.
A:AB$ SetState | Cost$ 1 G | Defined$ Self | Mode$ TurnFace | SpellDescription$ Turn CARDNAME face down. (It becomes a 2/2 creature.)
A:AB$ SetState | Cost$ 1 G | Defined$ Self | Mode$ TurnFaceDown | SpellDescription$ Turn CARDNAME face down. (It becomes a 2/2 creature.)
AI:RemoveDeck:All
DeckHints:Keyword$Morph|Megamorph
Oracle:Face-down creature spells you cast cost {1} less to cast.\n{1}{G}: Turn Obscuring Aether face down. (It becomes a 2/2 creature.)

View File

@@ -2,7 +2,7 @@ Name:Pyxis of Pandemonium
ManaCost:1
Types:Artifact
A:AB$ Dig | Cost$ T | Defined$ Player | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | SpellDescription$ Each player exiles the top card of their library face down.
A:AB$ SetState | Cost$ 7 T Sac<1/CARDNAME> | Defined$ ValidExile Card.ExiledWithSource | Mode$ TurnFace | SubAbility$ DBChangeZone | SpellDescription$ Each player turns face up all cards they own exiled with CARDNAME, then puts all permanent cards among them onto the battlefield.
A:AB$ SetState | Cost$ 7 T Sac<1/CARDNAME> | Defined$ ValidExile Card.ExiledWithSource | Mode$ TurnFaceUp | SubAbility$ DBChangeZone | SpellDescription$ Each player turns face up all cards they own exiled with CARDNAME, then puts all permanent cards among them onto the battlefield.
SVar:DBChangeZone:DB$ ChangeZoneAll | ChangeType$ Permanent.ExiledWithSource | Origin$ Exile | Destination$ Battlefield
AI:RemoveDeck:All
Oracle:{T}: Each player exiles the top card of their library face down.\n{7}, {T}, Sacrifice Pyxis of Pandemonium: Each player turns face up all cards they own exiled with Pyxis of Pandemonium, then puts all permanent cards among them onto the battlefield.

View File

@@ -3,7 +3,7 @@ ManaCost:1 R
Types:Creature Human Wizard
PT:1/2
K:Haste
A:AB$ SetState | Cost$ T | ValidTgts$ Creature.YouCtrl+faceDown | Mode$ TurnFace | SubAbility$ DBPump | SpellDescription$ Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it.
A:AB$ SetState | Cost$ T | ValidTgts$ Creature.YouCtrl+faceDown | Mode$ TurnFaceUp | SubAbility$ DBPump | SpellDescription$ Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it.
SVar:DBPump:DB$ Pump | Defined$ Targeted | AtEOT$ Sacrifice
AI:RemoveDeck:All
Oracle:Haste\n{T}: Turn target face-down creature you control face up. At the beginning of the next end step, sacrifice it.

View File

@@ -5,7 +5,7 @@ PT:0/4
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Imprint — When CARDNAME enters the battlefield, you may exile a card from your hand face down.
SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | ExileFaceDown$ True | Imprint$ True
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigFaceUp | TriggerDescription$ When CARDNAME dies, turn the exiled card face up. If it's a creature card, put it onto the battlefield under your control.
SVar:TrigFaceUp:DB$ SetState | Defined$ Imprinted | SubAbility$ DBChangeZone | Mode$ TurnFace
SVar:TrigFaceUp:DB$ SetState | Defined$ Imprinted | SubAbility$ DBChangeZone | Mode$ TurnFaceUp
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Exile | Destination$ Battlefield | ConditionDefined$ Imprinted | ConditionPresent$ Creature | GainControl$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True
SVar:SacMe:5

View File

@@ -4,6 +4,6 @@ Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Creature.Colorless | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigManifest | TriggerDescription$ Whenever you cast a colorless creature spell, manifest the top card of your library. (Put it onto the battlefield face down as a 2/2 creature. Turn it face up any time for its mana cost if it's a creature card.)
SVar:TrigManifest:DB$ Manifest
T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | Execute$ TrigState | TriggerZones$ Battlefield | CheckSVar$ PackTactics | SVarCompare$ GE6 | NoResolvingCheck$ True | TriggerDescription$Whenever you attack with creatures with total power 6 or greater, you may turn a face-down creature you control face up.
SVar:TrigState:DB$ SetState | Choices$ Creature.faceDown+YouCtrl | ChoiceTitle$ Select a facedown creature you control | Mode$ TurnFace
SVar:TrigState:DB$ SetState | Choices$ Creature.faceDown+YouCtrl | ChoiceTitle$ Select a facedown creature you control | Mode$ TurnFaceUp
SVar:PackTactics:Count$SumPower_Creature.attacking
Oracle:Whenever you cast a colorless creature spell, manifest the top card of your library. (Put it onto the battlefield face down as a 2/2 creature. Turn it face up any time for its mana cost if it's a creature card.)\nWhenever you attack with creatures with total power 6 or greater, you may turn a face-down creature you control face up.

View File

@@ -1,6 +1,6 @@
Name:Cyber Conversion
ManaCost:U U
Types:Instant
A:SP$ SetState | ValidTgts$ Creature | Mode$ TurnFace | FaceDownSetType$ Artifact & Creature & Cyberman | FaceDownPower$ 2 | FaceDownToughness$ 2 | SpellDescription$ Turn target creature face down. It's a 2/2 Cyberman artifact creature.
A:SP$ SetState | ValidTgts$ Creature | Mode$ TurnFaceDown | FaceDownSetType$ Artifact & Creature & Cyberman | FaceDownPower$ 2 | FaceDownToughness$ 2 | SpellDescription$ Turn target creature face down. It's a 2/2 Cyberman artifact creature.
DeckHas:Type$Dalek|Artifact
Oracle:Turn target creature face down. It's a 2/2 Cyberman artifact creature.

View File

@@ -5,6 +5,6 @@ T:Mode$ Attacks | ValidCard$ Creature | TriggerZones$ Command | Execute$ Animosi
SVar:AnimosityPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ X | NumDef$ X
SVar:X:Count$Valid Creature.NotTriggeredAttacker+ControlledBy AttackingPlayer+sharesCreatureTypeWith TriggeredAttacker
T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigSetState | TriggerDescription$ Whenever chaos ensues, turn target creature face down. It becomes a 2/2 Cyberman artifact creature.
SVar:TrigSetState:DB$ SetState | ValidTgts$ Creature | Mode$ TurnFace | FaceDownSetType$ Artifact & Creature & Cyberman | FaceDownPower$ 2 | FaceDownToughness$ 2
SVar:TrigSetState:DB$ SetState | ValidTgts$ Creature | Mode$ TurnFaceDown | FaceDownSetType$ Artifact & Creature & Cyberman | FaceDownPower$ 2 | FaceDownToughness$ 2
DeckHas:Type$Cyberman
Oracle:Whenever a creature attacks, it gets +1/+1 until end of turn for each other creature its controller controls that shares a creature type with it.\nWhenever chaos ensues, turn target creature face down. It becomes a 2/2 Cyberman artifact creature.

View File

@@ -6,6 +6,6 @@ K:Morph:1 U
K:ETBReplacement:Copy:DBCopy:Optional
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | AddTriggers$ VesShapeUpkeepTrig | AddSVars$ VesShapeTurn,VesShapeUpkeepTrig | Duration$ UntilFacedown | SpellDescription$ As CARDNAME enters the battlefield or is turned face up, you may choose another creature on the battlefield. If you do, until CARDNAME is turned face down, it becomes a copy of that creature, except it has "At the beginning of your upkeep, you may turn this creature face down."
SVar:VesShapeUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ VesShapeTurn | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may turn CARDNAME face down.
SVar:VesShapeTurn:DB$ SetState | Defined$ Self | Mode$ TurnFace
SVar:VesShapeTurn:DB$ SetState | Defined$ Self | Mode$ TurnFaceDown
R:Event$ TurnFaceUp | ValidCard$ Card.Self | Optional$ True | ReplaceWith$ DBCopy | ActiveZones$ Battlefield | Secondary$ True | Description$ As CARDNAME is turned face up, you may choose another creature on the battlefield. If you do, until CARDNAME is turned face down, it becomes a copy of that creature, except it has "At the beginning of your upkeep, you may turn this creature face down."
Oracle:As Vesuvan Shapeshifter enters the battlefield or is turned face up, you may choose another creature on the battlefield. If you do, until Vesuvan Shapeshifter is turned face down, it becomes a copy of that creature, except it has "At the beginning of your upkeep, you may turn this creature face down."\nMorph {1}{U}

View File

@@ -3,6 +3,6 @@ ManaCost:1 U
Types:Creature Wall
PT:0/5
K:Defender
A:AB$ SetState | Cost$ 3 | Defined$ Self | Mode$ TurnFace | AILogic$ Never | SpellDescription$ Turn CARDNAME face down.
A:AB$ SetState | Cost$ 3 | Defined$ Self | Mode$ TurnFaceDown | AILogic$ Never | SpellDescription$ Turn CARDNAME face down.
K:Morph:U
Oracle:Defender (This creature can't attack.)\n{3}: Turn Wall of Deceit face down.\nMorph {U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)

View File

@@ -4,7 +4,7 @@ Types:Creature Beast
PT:4/4
K:Morph:4 U
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ DBWeaverofLiesSetState | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, turn any number of target creatures with morph abilities other than CARDNAME face down.
SVar:DBWeaverofLiesSetState:DB$ SetState | ValidTgts$ Creature.withMorph+Other,Creature.withMegamorph+Other | TgtPrompt$ Select target creature | TargetMin$ 0 | TargetMax$ WeaverofLiesX | Mode$ TurnFace | SpellDescription$ Turn CARDNAME face down.
SVar:DBWeaverofLiesSetState:DB$ SetState | ValidTgts$ Creature.withMorph+Other,Creature.withMegamorph+Other | TgtPrompt$ Select target creature | TargetMin$ 0 | TargetMax$ WeaverofLiesX | Mode$ TurnFaceDown | SpellDescription$ Turn CARDNAME face down.
SVar:WeaverofLiesX:Count$Valid Creature.withMorph+Other,Creature.withMegamorph+Other
AI:RemoveDeck:All
Oracle:Morph {4}{U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Weaver of Lies is turned face up, turn any number of target creatures with morph abilities other than Weaver of Lies face down.