mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Merge branch 'cloneRewrite' into 'master'
Clone rewrite See merge request core-developers/forge!1294
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
Name:Cytoshape
|
||||
ManaCost:1 G U
|
||||
Types:Instant
|
||||
A:SP$ ChooseCard | Cost$ 1 G U | Defined$ You | Amount$ 1 | Choices$ Creature.nonLegendary | Mandatory$ True | SubAbility$ Pump4Tgt | RememberChosen$ True | AILogic$ Clone | SpellDescription$ Choose a nonlegendary creature on the battlefield. Target creature becomes a copy of that creature until end of turn.
|
||||
SVar:Pump4Tgt:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Choose target creature | AILogic$ Pump | SubAbility$ ShapeTgt | StackDescription$ None
|
||||
SVar:ShapeTgt:DB$ Clone | Defined$ Remembered | CloneTarget$ ParentTarget | Duration$ UntilEndOfTurn
|
||||
A:SP$ Clone | Cost$ 1 G U | Choices$ Creature.nonLegendary | ChoiceTitle$ Choose a nonlegendary creature to copy | ValidTgts$ Creature | TgtPrompt$ Choose target creature to become a copy | Duration$ UntilEndOfTurn | StackDescription$ SpellDescription | SpellDescription$ Choose a nonlegendary creature on the battlefield. Target creature becomes a copy of that creature until end of turn.
|
||||
AI:RemoveDeck:All
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/cytoshape.jpg
|
||||
Oracle:Choose a nonlegendary creature on the battlefield. Target creature becomes a copy of that creature until end of turn.
|
||||
|
||||
@@ -3,9 +3,8 @@ ManaCost:2 U B
|
||||
Types:Creature Shapeshifter
|
||||
PT:0/0
|
||||
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
|
||||
K:ETBReplacement:Copy:ChooseCreature:Optional
|
||||
SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | RememberChosen$ True | AILogic$ AtLeast1 | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it gains "{U}{B}, {T}: Destroy target creature with the same name as this creature."
|
||||
SVar:DBCopy:DB$ Clone | Defined$ Remembered | AddAbilities$ EvilTwin
|
||||
K:ETBReplacement:Copy:DBCopy:Optional
|
||||
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | AddAbilities$ EvilTwin | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it gains "{U}{B}, {T}: Destroy target creature with the same name as this creature."
|
||||
SVar:EvilTwin:AB$Destroy | Cost$ U B T | ValidTgts$ Creature.sameName | TgtPrompt$ Select target creature with the same name. | SpellDescription$ Destroy target creature with the same name as this creature.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/evil_twin.jpg
|
||||
Oracle:You may have Evil Twin enter the battlefield as a copy of any creature on the battlefield, except it gains "{U}{B}, {T}: Destroy target creature with the same name as this creature."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Heat Shimmer
|
||||
ManaCost:2 R
|
||||
Types:Sorcery
|
||||
A:SP$ CopyPermanent | Cost$ 2 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Haste | AtEOTTrig$ Exile | SpellDescription$ Create a token that's a copy of target creature. That token has haste and "At the beginning of the end step, exile this permanent."
|
||||
A:SP$ CopyPermanent | Cost$ 2 R | ValidTgts$ Creature | TgtPrompt$ Select target creature | AddKeywords$ Haste | AtEOTTrig$ Exile | SpellDescription$ Create a token that's a copy of target creature. That token has haste and "At the beginning of the end step, exile this permanent."
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/heat_shimmer.jpg
|
||||
Oracle:Create a token that's a copy of target creature. That token has haste and "At the beginning of the end step, exile this permanent."
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:4
|
||||
Types:Legendary Artifact Equipment
|
||||
K:Equip:5
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, create a token that's a copy of equipped creature, except the token isn't legendary if equipped creature is legendary. That token gains haste.
|
||||
SVar:TrigCopy:DB$ CopyPermanent | Defined$ Equipped | Keywords$ Haste | NonLegendary$ True
|
||||
SVar:TrigCopy:DB$ CopyPermanent | Defined$ Equipped | AddKeywords$ Haste | NonLegendary$ True
|
||||
DeckHas:Ability$Token
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/helm_of_the_host.jpg
|
||||
Oracle:At the beginning of combat on your turn, create a token that's a copy of equipped creature, except the token isn't legendary if equipped creature is legendary. That token gains haste.\nEquip {5}
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:2 R R R
|
||||
Types:Legendary Creature Goblin Shaman
|
||||
PT:2/2
|
||||
K:Haste
|
||||
A:AB$ CopyPermanent | Cost$ T | ValidTgts$ Creature.nonLegendary+YouCtrl | TgtPrompt$ Select target nonlegendary creature you control | Keywords$ Haste | AtEOT$ Sacrifice | AILogic$ BeforeCombat | SpellDescription$ Create a token that's a copy of target nonlegendary creature you control. That token has haste. Sacrifice it at the beginning of the next end step.
|
||||
A:AB$ CopyPermanent | Cost$ T | ValidTgts$ Creature.nonLegendary+YouCtrl | TgtPrompt$ Select target nonlegendary creature you control | AddKeywords$ Haste | AtEOT$ Sacrifice | AILogic$ BeforeCombat | SpellDescription$ Create a token that's a copy of target nonlegendary creature you control. That token has haste. Sacrifice it at the beginning of the next end step.
|
||||
SVar:Picture:http://resources.wizards.com/magic/cards/chk/en-us/card50321.jpg
|
||||
Oracle:Haste\n{T}: Create a token that's a copy of target nonlegendary creature you control. That token has haste. Sacrifice it at the beginning of the next end step.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:4 R R
|
||||
Types:Sorcery
|
||||
A:SP$ ChooseType | Cost$ 4 R R | Defined$ You | Type$ Creature | SubAbility$ DBRepeatEach | AILogic$ MostProminentComputerControls | SpellDescription$ Choose a creature type. For each creature you control of the chosen type, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step.
|
||||
SVar:DBRepeatEach:DB$ RepeatEach | UseImprinted$ True | RepeatCards$ Creature.ChosenType+YouCtrl | Zone$ Battlefield | RepeatSubAbility$ DBClone
|
||||
SVar:DBClone:DB$ CopyPermanent | Defined$ Imprinted | Keywords$ Haste | NumCopies$ 1 | AtEOT$ Exile
|
||||
SVar:DBClone:DB$ CopyPermanent | Defined$ Imprinted | AddKeywords$ Haste | NumCopies$ 1 | AtEOT$ Exile
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/kindred_charge.jpg
|
||||
Oracle:Choose a creature type. For each creature you control of the chosen type, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Minion Reflector
|
||||
ManaCost:5
|
||||
Types:Artifact
|
||||
T:Mode$ ChangesZone | ValidCard$ Creature.nonToken+YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigCopy | OptionalDecider$ You | TriggerDescription$ Whenever a nontoken creature enters the battlefield under your control, you may pay {2}. If you do, create a token that's a copy of that creature. That token has haste and "At the beginning of the end step, sacrifice this permanent."
|
||||
SVar:TrigCopy:AB$ CopyPermanent | Cost$ 2 | Defined$ TriggeredCard | Keywords$ Haste | AtEOTTrig$ Sacrifice
|
||||
SVar:TrigCopy:AB$ CopyPermanent | Cost$ 2 | Defined$ TriggeredCard | AddKeywords$ Haste | AtEOTTrig$ Sacrifice
|
||||
SVar:BuffedBy:Creature
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/minion_reflector.jpg
|
||||
Oracle:Whenever a nontoken creature enters the battlefield under your control, you may pay {2}. If you do, create a token that's a copy of that creature. That token has haste and "At the beginning of the end step, sacrifice this permanent."
|
||||
|
||||
@@ -10,6 +10,6 @@ SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile
|
||||
SVar:X:Count$Valid Artifact.YouCtrl
|
||||
|
||||
A:AB$ RepeatEach | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | RepeatSubAbility$ DBClone | RepeatCards$ Artifact.YouCtrl | SpellDescription$ For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.
|
||||
SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | Keywords$ Haste | AtEOT$ Exile
|
||||
SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | AddKeywords$ Haste | AtEOT$ Exile
|
||||
K:CARDNAME can be your commander.
|
||||
Oracle:[+1]: Create a 1/1 colorless Servo artifact creature token.\n[+1]: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.\n[-7]: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.\nSaheeli, the Gifted can be your commander.
|
||||
|
||||
@@ -2,8 +2,8 @@ Name:Soul Separator
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ ChangeZone | Cost$ 5 T Sac<1/CARDNAME> | RememberLKI$ True | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature.YouCtrl | ChangeNum$ 1 | SubAbility$ DBCopy | SpellDescription$ Exile target creature card from your graveyard. Create a token that's a copy of that card, except it's 1/1, it's a Spirit in addition to its other types, and it has flying. Create a black Zombie creature token with power equal to that card's power and toughness equal to that card's toughness.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | SetPower$ 1 | SetToughness$ 1 | AddTypes$ Spirit | Keywords$ Flying | SubAbility$ DBToken
|
||||
SVar:DBToken:DB$ Token | LegacyImage$ b x x zombie emn | TokenScript$ b_x_x_zombie | TokenPower$ X | TokenToughness$ Y | TokenOwner$ You | TokenAmount$ 1 | References$ X,Y | SubAbility$ DBCleanup
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | SetPower$ 1 | SetToughness$ 1 | AddTypes$ Spirit | AddKeywords$ Flying | SubAbility$ DBToken
|
||||
SVar:DBToken:DB$ Token | TokenImage$ b x y zombie EMN | TokenName$ Zombie | TokenTypes$ Creature,Zombie | TokenPower$ X | TokenToughness$ Y | TokenColors$ Black | TokenOwner$ You | TokenAmount$ 1 | References$ X,Y | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:RememberedLKI$CardPower
|
||||
SVar:Y:RememberedLKI$CardToughness
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ 2 R R | ValidTgts$ Creature | AILogic$ Pump
|
||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ ABCopy | Description$ Enchanted creature has "{T}: Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step."
|
||||
SVar:ABCopy:AB$ CopyPermanent | Cost$ T | Defined$ Self | Keywords$ Haste | AtEOT$ Exile | SpellDescription$ Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step.
|
||||
SVar:ABCopy:AB$ CopyPermanent | Cost$ T | Defined$ Self | AddKeywords$ Haste | AtEOT$ Exile | SpellDescription$ Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step.
|
||||
SVar:NonStackingAttachEffect:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/splinter_twin.jpg
|
||||
Oracle:Enchant creature\nEnchanted creature has "{T}: Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step."
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Twinflame
|
||||
ManaCost:1 R
|
||||
Types:Sorcery
|
||||
K:Strive:2 R
|
||||
A:SP$ CopyPermanent | Cost$ 1 R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | TargetMin$ 0 | TargetMax$ MaxTargets | Keywords$ Haste | AtEOT$ Exile | References$ MaxTargets | SpellDescription$ Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature. Those tokens have haste. Exile them at the beginning of the next end step.
|
||||
A:SP$ CopyPermanent | Cost$ 1 R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | TargetMin$ 0 | TargetMax$ MaxTargets | AddKeywords$ Haste | AtEOT$ Exile | References$ MaxTargets | SpellDescription$ Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature. Those tokens have haste. Exile them at the beginning of the next end step.
|
||||
SVar:MaxTargets:Count$Valid Creature.YouCtrl
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/twinflame.jpg
|
||||
Oracle:Strive — Twinflame costs {2}{R} more to cast for each target beyond the first.\nChoose any number of target creatures you control. For each of them, create a token that's a copy of that creature. Those tokens have haste. Exile them at the beginning of the next end step.
|
||||
|
||||
@@ -3,12 +3,10 @@ ManaCost:3 U U
|
||||
Types:Creature Shapeshifter
|
||||
PT:0/0
|
||||
K:Morph:1 U
|
||||
K:ETBReplacement:Copy:ChooseCreature:Optional
|
||||
# Make SVars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
|
||||
SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | AILogic$ Clone | RememberChosen$ True | 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 and gains "At the beginning of your upkeep, you may turn this creature face down."
|
||||
SVar:DBCopy:DB$ Clone | Defined$ Remembered | AddTriggers$ VesShapeUpkeepTrig | AddSVars$ VesShapeTurn,VesShapeUpkeepTrig
|
||||
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 and gains "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 | ResetClone$ True
|
||||
R:Event$ TurnFaceUp | ValidCard$ Card.Self | Optional$ True | ReplaceWith$ ChooseCreature | ActiveZones$ Battlefield | 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 and gains "At the beginning of your upkeep, you may turn this creature face down."
|
||||
SVar:VesShapeTurn:DB$ SetState | Defined$ Self | Mode$ TurnFace
|
||||
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 and gains "At the beginning of your upkeep, you may turn this creature face down."
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/vesuvan_shapeshifter.jpg
|
||||
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 and gains "At the beginning of your upkeep, you may turn this creature face down."\nMorph {1}{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.)
|
||||
|
||||
@@ -3,7 +3,11 @@ ManaCost:1 U U
|
||||
Types:Creature Shapeshifter
|
||||
PT:0/1
|
||||
A:AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainTextOf$ Creature.TopGraveyard+YouCtrl | GainedTextHasThisStaticAbility$ True | GainVolrathsDiscardAbility$ True | Description$ ORIGINALTEXTONLY:As long as the top card of your graveyard is a creature card, CARDNAME has the full text of that card and has the text "{2}: Discard a card." (CARDNAME has that card's name, mana cost, color, types, abilities, power, and toughness.)
|
||||
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainTextOf$ Creature.TopGraveyard+YouCtrl | GainTextAbilities$ VolrathDiscard | Description$ As long as the top card of your graveyard is a creature card, CARDNAME has the full text of that card and has the text "{2}: Discard a card." (CARDNAME has that card's name, mana cost, color, types, abilities, power, and toughness.)
|
||||
|
||||
SVar:VolrathDiscard:AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card.
|
||||
|
||||
|
||||
SVar:NeedsOrderedGraveyard:TRUE
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/volraths_shapeshifter.jpg
|
||||
Oracle:As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card." (Volrath's Shapeshifter has that card's name, mana cost, color, types, abilities, power, and toughness.)\n{2}: Discard a card.
|
||||
Oracle:As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card." (Volrath's Shapeshifter has that card's name, mana cost, color, types, abilities, power, and toughness.)\n{2}: Discard a card.
|
||||
|
||||
@@ -19,7 +19,6 @@ import com.google.common.collect.Sets;
|
||||
|
||||
import forge.FThreads;
|
||||
import forge.assets.FSkinProp;
|
||||
import forge.card.CardStateName;
|
||||
import forge.game.GameView;
|
||||
import forge.game.card.CardView;
|
||||
import forge.game.card.CardView.CardStateView;
|
||||
@@ -178,8 +177,7 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards {
|
||||
|
||||
switch (altState.getState()) {
|
||||
case Original:
|
||||
final CardStateView currentState = cv.getCurrentState();
|
||||
if (currentState.getState() == CardStateName.FaceDown) {
|
||||
if (cv.isFaceDown()) {
|
||||
return getCurrentPlayer() == null || cv.canFaceDownBeShownToAny(getLocalPlayers());
|
||||
}
|
||||
return true; //original can always be shown if not a face down that can't be shown
|
||||
|
||||
Reference in New Issue
Block a user