From 2eda6ea8dc281e29c2e64fcb6843c04d908378f3 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 30 May 2019 08:29:18 +0100 Subject: [PATCH 01/28] More MH1 spoilers from forgeScribe --- .../res/cardsfolder/upcoming/answered_prayers.txt | 8 ++++++++ .../res/cardsfolder/upcoming/dead_of_winter.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/endling.txt | 12 ++++++++++++ .../upcoming/hall_of_heliods_generosity.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/icehide_golem.txt | 6 ++++++ .../res/cardsfolder/upcoming/llanowar_tribe.txt | 6 ++++++ .../res/cardsfolder/upcoming/mist_syndicate_naga.txt | 9 +++++++++ forge-gui/res/cardsfolder/upcoming/pashalik_mons.txt | 12 ++++++++++++ forge-gui/res/cardsfolder/upcoming/shenanigans.txt | 6 ++++++ .../res/cardsfolder/upcoming/throes_of_chaos.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/tribute_mage.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/vesperlark.txt | 9 +++++++++ 13 files changed, 102 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/answered_prayers.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/endling.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/icehide_golem.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/pashalik_mons.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/shenanigans.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/tribute_mage.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/vesperlark.txt diff --git a/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt new file mode 100644 index 00000000000..d9cb33dd7bb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt @@ -0,0 +1,8 @@ +Name:Answered Prayers +ManaCost:1 W W +Types:Enchantment +T:Mode$ ChangesZone | ValidCard$ Creature.YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature enters the battlefield under your control, you gain 1 life. If CARDNAME isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. +SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 | SubAbility$ DBAnimate +SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Power$ 3 | Toughness$ 3 | Types$ Creature,Angel | Keywords$ Flying +SVar:BuffedBy:Creature +Oracle:Whenever a creature enters the battlefield under your control, you gain 1 life. If Answered Prayers isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt b/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt new file mode 100644 index 00000000000..6900dff33e9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt @@ -0,0 +1,7 @@ +Name:Dead of Winter +ManaCost:2 B +Types:Sorcery +A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature.Snow | NumAtt$ -X | NumDef$ -X | References$ X | SpellDescription$ All nonsnow creatures get -X/-X until end of turn, where X is the number of snow permanents you control. +SVar:X:Count$Valid Permanent.Snow+YouCtrl +AI:RemoveDeck:Random +Oracle:All nonsnow creatures get -X/-X until end of turn, where X is the number of snow permanents you control. diff --git a/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt b/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt new file mode 100644 index 00000000000..6ca9cbf4966 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt @@ -0,0 +1,7 @@ +Name:Echo of Eons +ManaCost:4 U U +Types:Sorcery +A:SP$ ChangeZoneAll | Cost$ 4 U U | ChangeType$ Card | Origin$ Hand,Graveyard | Destination$ Library | Shuffle$ True | Random$ True | SubAbility$ DBDraw | UseAllOriginZones$ True | AILogic$ TimeTwister | SpellDescription$ Each player shuffles their graveyard and hand into their library, then draws seven cards. +SVar:DBDraw:DB$ Draw | NumCards$ 7 | Defined$ Player +K:Flashback:2 U +Oracle:Each player shuffles their hand and graveyard into their library, then draws seven cards.\nFlashback {2}{U} (You may cast this card from your graveyard for its flashback cost. Then exile it.) diff --git a/forge-gui/res/cardsfolder/upcoming/endling.txt b/forge-gui/res/cardsfolder/upcoming/endling.txt new file mode 100644 index 00000000000..03872fa08a0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/endling.txt @@ -0,0 +1,12 @@ +Name:Endling +ManaCost:2 B B +Types:Creature Zombie Shapeshifter +PT:3/3 +A:AB$ Pump | Cost$ B | KW$ Menace | Defined$ Self | SpellDescription$ CARDNAME gains gains menace until end of turn. +AI:RemoveDeck:Random +A:AB$ Pump | Cost$ B | Defined$ Self | KW$ Deathtouch | SpellDescription$ CARDNAME gains deathtouch until end of turn. +A:AB$ Pump | Cost$ B | Defined$ Self | KW$ Undying | SpellDescription$ CARDNAME gains undying until end of turn. +AI:RemoveDeck:All +A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ -1 | SpellDescription$ CARDNAME gets +1/-1 until end of turn. +A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ +1 | SpellDescription$ CARDNAME gets -1/+1 until end of turn. +Oracle:{B}: Endling gains menace until end of turn.\n{B}: Endling gains deathtouch until end of turn.\n{B}: Endling gains undying until end of turn. (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)\n{1}: Endling gets +1/-1 or -1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt b/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt new file mode 100644 index 00000000000..5d3f282e9e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt @@ -0,0 +1,6 @@ +Name:Hall of Heliod's Generosity +ManaCost: +Types:Legendary Land +A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. +A:AB$ ChangeZone | Cost$ 1 W T | TgtPrompt$ Choose target enchantment card in your graveyard | ValidTgts$ Enchantment.YouCtrl | Origin$ Graveyard | Destination$ Library | SpellDescription$ Put target enchantment card from your graveyard on top of your library. +Oracle:{T}: Add {C}.\n{1}{W}, {T}: Put target enchantment card from your graveyard on top of your library. diff --git a/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt new file mode 100644 index 00000000000..d5d1d87861a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt @@ -0,0 +1,6 @@ +Name:Icehide Golem +ManaCost:S +Types:Snow Artifact Creature Golem +PT:2/2 +Colors:green +Oracle:({S} can be paid with one mana from a snow permanent.) diff --git a/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt b/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt new file mode 100644 index 00000000000..4aa4f57d48b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt @@ -0,0 +1,6 @@ +Name:Llanowar Tribe +ManaCost:G G G +Types:Creature Elf Druid +PT:3/3 +A:AB$ Mana | Cost$ T | Produced$ G | Amount$ 3 | SpellDescription$ Add {G}{G}{G}. +Oracle:{T}: Add {G}{G}{G}. diff --git a/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt b/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt new file mode 100644 index 00000000000..6ec111b66c4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt @@ -0,0 +1,9 @@ +Name:Mist-Syndicate Naga +ManaCost:2 U +Types:Creature Naga Ninja +PT:3/1 +K:Ninjutsu:2 U +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a token that's a copy of CARDNAME. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Self | NumCopies$ 1 +DeckHas:Ability$Token +Oracle:Ninjutsu {2}{U} ({2}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Mist-Syndicate Naga deals combat damage to a player, create a token that's a copy of Mist-Syndicate Naga. diff --git a/forge-gui/res/cardsfolder/upcoming/pashalik_mons.txt b/forge-gui/res/cardsfolder/upcoming/pashalik_mons.txt new file mode 100644 index 00000000000..5fe749c875f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/pashalik_mons.txt @@ -0,0 +1,12 @@ +Name:Pashalik Mons +ManaCost:2 R +Types:Legendary Creature Goblin Warrior +PT:2/2 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Self | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another Goblin you control dies, CARDNAME deals 1 damage to any target. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Goblin.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Goblin you control dies, CARDNAME deals 1 damage to any target. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 +AI:RemoveDeck:Random +SVar:SacMe:1 +A:AB$ Token | Cost$ 3 R Sac<1/Goblin> | TokenAmount$ 2 | TokenScript$ r_1_1_goblin | TokenOwner$ You | LegacyImage$ r 1 1 goblin mh1 | SpellDescription$ Create two 1/1 red Goblin creature tokens. +DeckHas:Ability$Token +Oracle:Whenever Pashalik Mons or another Goblin you control dies, Pashalik Mons deals 1 damage to any target.\n{3}{R}, Sacrifice a Goblin: Create two 1/1 red Goblin creature tokens. diff --git a/forge-gui/res/cardsfolder/upcoming/shenanigans.txt b/forge-gui/res/cardsfolder/upcoming/shenanigans.txt new file mode 100644 index 00000000000..bc81bac5970 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/shenanigans.txt @@ -0,0 +1,6 @@ +Name:Shenanigans +ManaCost:1 R +Types:Sorcery +A:SP$ Destroy | Cost$ 1 R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | SpellDescription$ Destroy target artifact. +K:Dredge:1 +Oracle:Destroy target artifact.\nDredge 1 (If you would draw a card, instead you may put exactly one card from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.) diff --git a/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt new file mode 100644 index 00000000000..f6fc8d3061a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt @@ -0,0 +1,7 @@ +Name:Throes of Chaos +ManaCost:3 R +Types:Sorcery +K:Cascade +SVar:PlayMain1:TRUE +K:Retrace +Oracle:Cascade (When you cast a spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)\nRetrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) diff --git a/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt b/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt new file mode 100644 index 00000000000..9cf25b454da --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt @@ -0,0 +1,7 @@ +Name:Tribute Mage +ManaCost:2 U +Types:Creature Human Wizard +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact card with converted mana cost 2, reveal that card, put it into your hand, then shuffle your library. +SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcEQ2 | ChangeNum$ 1 | ShuffleNonMandatory$ True +Oracle:When Tribute Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 2, reveal that card, put it into your hand, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/upcoming/vesperlark.txt b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt new file mode 100644 index 00000000000..d1707bfb7d9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt @@ -0,0 +1,9 @@ +Name:Vesperlark +ManaCost:2 W +Types:Creature Elemental +PT:2/1 +K:Flying +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield. +SVar:TrigChangeZone:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl+powerLE1 | TgtPrompt$ Select target creature card with power 1 or less in your graveyard +K:Evoke:1 W +Oracle:Flying\nWhen Vesperlark leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield.\nEvoke {1}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) From 9fc01d2e8354f2234dd5368988899f4691b33867 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 30 May 2019 08:29:18 +0100 Subject: [PATCH 02/28] More MH1 spoilers from forgeScribe --- .../res/cardsfolder/upcoming/answered_prayers.txt | 8 ++++++++ .../res/cardsfolder/upcoming/dead_of_winter.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/endling.txt | 12 ++++++++++++ .../upcoming/hall_of_heliods_generosity.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/icehide_golem.txt | 6 ++++++ .../res/cardsfolder/upcoming/llanowar_tribe.txt | 6 ++++++ .../res/cardsfolder/upcoming/mist_syndicate_naga.txt | 9 +++++++++ forge-gui/res/cardsfolder/upcoming/shenanigans.txt | 6 ++++++ .../res/cardsfolder/upcoming/throes_of_chaos.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/tribute_mage.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/vesperlark.txt | 9 +++++++++ 12 files changed, 90 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/answered_prayers.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/endling.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/icehide_golem.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/shenanigans.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/tribute_mage.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/vesperlark.txt diff --git a/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt new file mode 100644 index 00000000000..d9cb33dd7bb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt @@ -0,0 +1,8 @@ +Name:Answered Prayers +ManaCost:1 W W +Types:Enchantment +T:Mode$ ChangesZone | ValidCard$ Creature.YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature enters the battlefield under your control, you gain 1 life. If CARDNAME isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. +SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 | SubAbility$ DBAnimate +SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Power$ 3 | Toughness$ 3 | Types$ Creature,Angel | Keywords$ Flying +SVar:BuffedBy:Creature +Oracle:Whenever a creature enters the battlefield under your control, you gain 1 life. If Answered Prayers isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt b/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt new file mode 100644 index 00000000000..6900dff33e9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dead_of_winter.txt @@ -0,0 +1,7 @@ +Name:Dead of Winter +ManaCost:2 B +Types:Sorcery +A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature.Snow | NumAtt$ -X | NumDef$ -X | References$ X | SpellDescription$ All nonsnow creatures get -X/-X until end of turn, where X is the number of snow permanents you control. +SVar:X:Count$Valid Permanent.Snow+YouCtrl +AI:RemoveDeck:Random +Oracle:All nonsnow creatures get -X/-X until end of turn, where X is the number of snow permanents you control. diff --git a/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt b/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt new file mode 100644 index 00000000000..6ca9cbf4966 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/echo_of_eons.txt @@ -0,0 +1,7 @@ +Name:Echo of Eons +ManaCost:4 U U +Types:Sorcery +A:SP$ ChangeZoneAll | Cost$ 4 U U | ChangeType$ Card | Origin$ Hand,Graveyard | Destination$ Library | Shuffle$ True | Random$ True | SubAbility$ DBDraw | UseAllOriginZones$ True | AILogic$ TimeTwister | SpellDescription$ Each player shuffles their graveyard and hand into their library, then draws seven cards. +SVar:DBDraw:DB$ Draw | NumCards$ 7 | Defined$ Player +K:Flashback:2 U +Oracle:Each player shuffles their hand and graveyard into their library, then draws seven cards.\nFlashback {2}{U} (You may cast this card from your graveyard for its flashback cost. Then exile it.) diff --git a/forge-gui/res/cardsfolder/upcoming/endling.txt b/forge-gui/res/cardsfolder/upcoming/endling.txt new file mode 100644 index 00000000000..03872fa08a0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/endling.txt @@ -0,0 +1,12 @@ +Name:Endling +ManaCost:2 B B +Types:Creature Zombie Shapeshifter +PT:3/3 +A:AB$ Pump | Cost$ B | KW$ Menace | Defined$ Self | SpellDescription$ CARDNAME gains gains menace until end of turn. +AI:RemoveDeck:Random +A:AB$ Pump | Cost$ B | Defined$ Self | KW$ Deathtouch | SpellDescription$ CARDNAME gains deathtouch until end of turn. +A:AB$ Pump | Cost$ B | Defined$ Self | KW$ Undying | SpellDescription$ CARDNAME gains undying until end of turn. +AI:RemoveDeck:All +A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ -1 | SpellDescription$ CARDNAME gets +1/-1 until end of turn. +A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ +1 | SpellDescription$ CARDNAME gets -1/+1 until end of turn. +Oracle:{B}: Endling gains menace until end of turn.\n{B}: Endling gains deathtouch until end of turn.\n{B}: Endling gains undying until end of turn. (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)\n{1}: Endling gets +1/-1 or -1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt b/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt new file mode 100644 index 00000000000..5d3f282e9e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hall_of_heliods_generosity.txt @@ -0,0 +1,6 @@ +Name:Hall of Heliod's Generosity +ManaCost: +Types:Legendary Land +A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. +A:AB$ ChangeZone | Cost$ 1 W T | TgtPrompt$ Choose target enchantment card in your graveyard | ValidTgts$ Enchantment.YouCtrl | Origin$ Graveyard | Destination$ Library | SpellDescription$ Put target enchantment card from your graveyard on top of your library. +Oracle:{T}: Add {C}.\n{1}{W}, {T}: Put target enchantment card from your graveyard on top of your library. diff --git a/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt new file mode 100644 index 00000000000..d5d1d87861a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt @@ -0,0 +1,6 @@ +Name:Icehide Golem +ManaCost:S +Types:Snow Artifact Creature Golem +PT:2/2 +Colors:green +Oracle:({S} can be paid with one mana from a snow permanent.) diff --git a/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt b/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt new file mode 100644 index 00000000000..4aa4f57d48b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/llanowar_tribe.txt @@ -0,0 +1,6 @@ +Name:Llanowar Tribe +ManaCost:G G G +Types:Creature Elf Druid +PT:3/3 +A:AB$ Mana | Cost$ T | Produced$ G | Amount$ 3 | SpellDescription$ Add {G}{G}{G}. +Oracle:{T}: Add {G}{G}{G}. diff --git a/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt b/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt new file mode 100644 index 00000000000..6ec111b66c4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mist_syndicate_naga.txt @@ -0,0 +1,9 @@ +Name:Mist-Syndicate Naga +ManaCost:2 U +Types:Creature Naga Ninja +PT:3/1 +K:Ninjutsu:2 U +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a token that's a copy of CARDNAME. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Self | NumCopies$ 1 +DeckHas:Ability$Token +Oracle:Ninjutsu {2}{U} ({2}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Mist-Syndicate Naga deals combat damage to a player, create a token that's a copy of Mist-Syndicate Naga. diff --git a/forge-gui/res/cardsfolder/upcoming/shenanigans.txt b/forge-gui/res/cardsfolder/upcoming/shenanigans.txt new file mode 100644 index 00000000000..bc81bac5970 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/shenanigans.txt @@ -0,0 +1,6 @@ +Name:Shenanigans +ManaCost:1 R +Types:Sorcery +A:SP$ Destroy | Cost$ 1 R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | SpellDescription$ Destroy target artifact. +K:Dredge:1 +Oracle:Destroy target artifact.\nDredge 1 (If you would draw a card, instead you may put exactly one card from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.) diff --git a/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt new file mode 100644 index 00000000000..f6fc8d3061a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt @@ -0,0 +1,7 @@ +Name:Throes of Chaos +ManaCost:3 R +Types:Sorcery +K:Cascade +SVar:PlayMain1:TRUE +K:Retrace +Oracle:Cascade (When you cast a spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)\nRetrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) diff --git a/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt b/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt new file mode 100644 index 00000000000..9cf25b454da --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tribute_mage.txt @@ -0,0 +1,7 @@ +Name:Tribute Mage +ManaCost:2 U +Types:Creature Human Wizard +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact card with converted mana cost 2, reveal that card, put it into your hand, then shuffle your library. +SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcEQ2 | ChangeNum$ 1 | ShuffleNonMandatory$ True +Oracle:When Tribute Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 2, reveal that card, put it into your hand, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/upcoming/vesperlark.txt b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt new file mode 100644 index 00000000000..d1707bfb7d9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt @@ -0,0 +1,9 @@ +Name:Vesperlark +ManaCost:2 W +Types:Creature Elemental +PT:2/1 +K:Flying +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield. +SVar:TrigChangeZone:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl+powerLE1 | TgtPrompt$ Select target creature card with power 1 or less in your graveyard +K:Evoke:1 W +Oracle:Flying\nWhen Vesperlark leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield.\nEvoke {1}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) From cd587694c20dcbc5527f399c368db25ad2e0c71c Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 30 May 2019 13:52:07 +0300 Subject: [PATCH 03/28] - Fixed Master of Waves --- forge-gui/res/cardsfolder/m/master_of_waves.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/m/master_of_waves.txt b/forge-gui/res/cardsfolder/m/master_of_waves.txt index 8675e18ae1b..3348035bebe 100644 --- a/forge-gui/res/cardsfolder/m/master_of_waves.txt +++ b/forge-gui/res/cardsfolder/m/master_of_waves.txt @@ -2,7 +2,7 @@ Name:Master of Waves ManaCost:3 U Types:Creature Merfolk Wizard PT:2/1 -K:Protection from creatures +K:Protection from red S:Mode$ Continuous | Affected$ Creature.Elemental+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Elemental creatures you control get +1/+1. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a number of 1/0 blue Elemental creature tokens equal to your devotion to blue. (Each {U} in the mana costs of permanents you control counts toward your devotion to blue.) SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ u_1_0_elemental | TokenOwner$ You | References$ X | LegacyImage$ u 1 0 elemental ths From ab14324f8821d84a14a331802ca60d2035abf391 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 30 May 2019 16:13:06 +0100 Subject: [PATCH 04/28] More MH1 spoilers from forgeScribe --- forge-gui/res/cardsfolder/upcoming/defile.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/faerie_seer.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/geomancers_gambit.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/magmatic_sinkhole.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/reap_the_past.txt | 7 +++++++ .../res/cardsfolder/upcoming/universal_automaton.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/unsettled_mariner.txt | 8 ++++++++ 7 files changed, 49 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/defile.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/faerie_seer.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/geomancers_gambit.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/magmatic_sinkhole.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/reap_the_past.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/universal_automaton.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/unsettled_mariner.txt diff --git a/forge-gui/res/cardsfolder/upcoming/defile.txt b/forge-gui/res/cardsfolder/upcoming/defile.txt new file mode 100644 index 00000000000..576429e8d56 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/defile.txt @@ -0,0 +1,6 @@ +Name:Defile +ManaCost:B +Types:Instant +A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -X | NumDef$ -X | IsCurse$ True | References$ X | SpellDescription$ Target creature gets -1/-1 until end of turn for each Swamp you control. +SVar:X:Count$TypeYouCtrl.Swamp +Oracle:Target creature gets -1/-1 until end of turn for each Swamp you control. diff --git a/forge-gui/res/cardsfolder/upcoming/faerie_seer.txt b/forge-gui/res/cardsfolder/upcoming/faerie_seer.txt new file mode 100644 index 00000000000..3595739ae49 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/faerie_seer.txt @@ -0,0 +1,8 @@ +Name:Faerie Seer +ManaCost:U +Types:Creature Faerie Wizard +PT:1/1 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When CARDNAME enters the battlefield, scry 2. +SVar:TrigScry:DB$ Scry | ScryNum$ 2 +Oracle:Flying\nWhen Faerie Seer enters the battlefield, scry 2. diff --git a/forge-gui/res/cardsfolder/upcoming/geomancers_gambit.txt b/forge-gui/res/cardsfolder/upcoming/geomancers_gambit.txt new file mode 100644 index 00000000000..9cdfed1fbe7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/geomancers_gambit.txt @@ -0,0 +1,7 @@ +Name:Geomancer's Gambit +ManaCost:2 R +Types:Sorcery +A:SP$ Destroy | Cost$ 2 R | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBChange | SpellDescription$ Destroy target land. Its controller may search their library for a basic land card, put it onto the battlefield, then shuffle their library. +SVar:DBChange:DB$ ChangeZone | Optional$ True | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | DefinedPlayer$ TargetedController | ShuffleNonMandatory$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. +Oracle:Destroy target land. Its controller may search their library for a basic land card, put it onto the battlefield, then shuffle their library.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/magmatic_sinkhole.txt b/forge-gui/res/cardsfolder/upcoming/magmatic_sinkhole.txt new file mode 100644 index 00000000000..835ab0b9bbf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/magmatic_sinkhole.txt @@ -0,0 +1,7 @@ +Name:Magmatic Sinkhole +ManaCost:5 R +Types:Instant +K:Delve +DeckHints:Ability$Graveyard +A:SP$ DealDamage | Cost$ 5 R | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 5 | SpellDescription$ CARDNAME deals 5 damage to target creature or planeswalker. +Oracle:Delve (Each spell you exile from your graveyard while casting this spell pays for {1})\nMagmatic Sinkhole deals 5 damage to target creature or planeswalker. diff --git a/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt b/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt new file mode 100644 index 00000000000..fab25d4dbdd --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt @@ -0,0 +1,7 @@ +Name:Reap The Past +ManaCost:X R G +Types:Sorcery +A:SP$ ChangeZone | Cost$ X R G | Origin$ Graveyard | Destination$ Hand | ChangeType$ Card.YouOwn | TgtPrompt$ Select target creature | TargetMin$ 0 | TargetMax$ X | AtRandom$ True | SubAbility$ DBExile | References$ X | SpellDescription$ Return X cards at random from your graveyard to your hand. Exile CARDNAME. +SVar:X:Count$xPaid +SVar:DBExile:DB$ChangeZone | Origin$ Stack | Destination$ Exile +Oracle:Return X cards at random from your graveyard to your hand. Exile Reap The Past. diff --git a/forge-gui/res/cardsfolder/upcoming/universal_automaton.txt b/forge-gui/res/cardsfolder/upcoming/universal_automaton.txt new file mode 100644 index 00000000000..ef8a5c54135 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/universal_automaton.txt @@ -0,0 +1,6 @@ +Name:Universal Automaton +ManaCost:1 +Types:Artifact Creature Shapeshifter +PT:1/1 +K:Changeling +Oracle:Changeling (This card is every creature type.) diff --git a/forge-gui/res/cardsfolder/upcoming/unsettled_mariner.txt b/forge-gui/res/cardsfolder/upcoming/unsettled_mariner.txt new file mode 100644 index 00000000000..dfac24f6f14 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/unsettled_mariner.txt @@ -0,0 +1,8 @@ +Name:Unsettled Mariner +ManaCost:W U +Types:Creature Shapeshifter +PT:2/2 +K:Changeling +T:Mode$ BecomesTarget | ValidTarget$ You,Permanent.YouCtrl+inZoneBattlefield | ValidSource$ Card.OppCtrl | TriggerZones$ Battlefield | Execute$ TrigCounter | TriggerDescription$ Whenever you or a permanent you control becomes the target of a spell or ability an opponent controls, counter that spell or ability unless its controller pays {1}. +SVar:TrigCounter:DB$ Counter | Defined$ TriggeredSourceSA | UnlessCost$ 1 | UnlessPayer$ TriggeredSourceSAController +Oracle:Changeling (This card is every creature type.)\nWhenever you or a permanent you control becomes the target of a spell or ability an opponent controls, counter that spell or ability unless its controller pays {1}. From d0b8f38b7e215972e92694600306cccfae7abcfb Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 30 May 2019 17:14:16 +0100 Subject: [PATCH 05/28] Updated editions file --- forge-gui/res/editions/Modern Horizons.txt | 39 +++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/editions/Modern Horizons.txt b/forge-gui/res/editions/Modern Horizons.txt index bb1f6c99c7d..dbc0056a1cc 100644 --- a/forge-gui/res/editions/Modern Horizons.txt +++ b/forge-gui/res/editions/Modern Horizons.txt @@ -8,22 +8,27 @@ Type=Other [cards] 1 M Morophon, the Boundless +2 C Answered Prayers 3 R Astral Drift 4 U Battle Screech 5 U Dismantling Blow -8 C Enduring Sliver +6 C Enduring Sliver +7 C Ephemerate 10 R Force of Virtue 11 U Generous Gift +12 C Gilded Light 13 R Giver of Runes 14 C Impostor of the Sixth Pride 16 U King of the Pride 19 C Martyr's Soul +20 R On Thin Ice 21 M Ranger-Captain of Eos 25 C Segovian Angel 26 M Serra the Benevolent 29 R Sisay, Weatherlight Captain 31 U Splicer's Skill 34 U Valiant Changeling +35 U Vesperlark 36 C Wall of One Thousand Cuts 37 R Winds of Abandon 38 U Wing Shards @@ -32,25 +37,36 @@ Type=Other 41 R Bazaar Trademage 43 C Chillerpillar 44 C Choking Tethers +46 M Echo of Eons +47 U Everdream 48 U Exclude 50 U Fact or Fiction +51 C Faerie Seer 52 R Force of Negation 53 R Future Sight 55 C Man-o'-War +57 R Mirrodin Besieged +58 R Mist-Syndicate Naga 63 C Pondering Mage 64 C Prohibit +66 U Rebuild 67 C Scour All Possibilities 68 U Scuttling Sliver 70 C Spell Snuff 71 C Stream of Thought 72 C String of Disappearances +73 U Tribute Mage +74 U Twisted Reflection 75 M Urza, Lord High Artificer 80 R Cabal Therapist +81 U Carrion Feeder 82 C Changeling Outcast 84 U Crypt Rats 85 R Dead of Winter +86 C Defile 87 C Diabolic Edict 88 U Dregscape Sliver +89 R Endling 90 U Feaster of Fools 92 R Force of Despair 95 C Headless Specter @@ -59,6 +75,7 @@ Type=Other 108 U Sling-Gang Lieutenant 111 C Umezawa's Charm 112 U Undead Augur +113 C Unearth 114 C Venomous Changeling 116 M Yawgmoth, Thran Physician 118 R Aria of Flame @@ -66,6 +83,7 @@ Type=Other 122 U Firebolt 123 C Fists of Flame 124 R Force of Rage +125 C Geomancer's Gambit 126 C Goatnap 127 C Goblin Champion 128 R Goblin Engineer @@ -74,13 +92,19 @@ Type=Other 131 C Goblin War Party 132 U Hollowhead Sliver 134 C Lava Dart +135 C Magmatic Sinkhole 136 C Orcish Hellraiser 137 U Ore-Scale Guardian +138 R Pashalik Mons 139 U Pillage 140 R Planebound Accomplice 141 C Pyrophobia 143 U Ravenous Giant +144 C Reckless Charge 145 M Seasoned Pyromancer +146 C Shenanigans +148 R Spiteful Sliver +149 R Tectonic Reformation 150 U Throes of Chaos 155 R Ayula, Queen Among Bears 156 R Ayula's Influence @@ -92,6 +116,8 @@ Type=Other 166 R Genesis 167 U Glacial Revelation 168 M Hexdrinker +169 C Krosan Tusker +170 U Llanowar Tribe 171 C Mother Bear 173 U Nantuko Cultivator 174 C Nimble Mongoose @@ -113,6 +139,7 @@ Type=Other 199 R Fallen Shinobi 200 M The First Sliver 201 U Good-Fortune Unicorn +202 R Hogaak, Arisen Necropolis 203 R Ice-Fang Coatl 204 U Ingenious Infiltrator 205 R Kaya's Guile @@ -121,12 +148,15 @@ Type=Other 208 R Lightning Skelemental 209 U Munitions Expert 210 C Nature's Chant +211 R Reap The Past 213 U Ruination Rioter 215 U Thundering Djinn +216 R Unsettled Mariner 217 M Wrenn and Six 218 R Altar of Dementia 220 C Arcum's Astrolabe 222 U Farmstead Gleaner +224 U Icehide Golem 225 U Lesser Masticore 226 M Mox Tantalite 227 R Scrapyard Recombiner @@ -137,12 +167,19 @@ Type=Other 232 U Talisman of Curiosity 233 U Talisman of Hierarchy 234 U Talisman of Resilience +235 C Universal Automaton +236 U Barren Moor 238 R Fiery Islet +239 U Forgotten Cave 240 U Frostwalk Bastion +241 R Hall of Heliod's Generosity +242 U Lonely Sandbar 243 R Nurturing Peatland 244 R Prismatic Vista +245 U Secluded Steppe 246 R Silent Clearing 247 R Sunbaked Canyon +248 U Tranquil Thicket 249 R Waterlogged Grove 250 L Snow-Covered Plains 251 L Snow-Covered Island From cd2044325539c65ffd105d86cacd39821e339720 Mon Sep 17 00:00:00 2001 From: Chris H Date: Thu, 30 May 2019 22:55:31 -0400 Subject: [PATCH 06/28] Add a feature to be able to Sideboard for the AI --- .../java/forge/ai/PlayerControllerAi.java | 2 +- .../src/main/java/forge/game/GameRules.java | 9 ++++++ .../src/main/java/forge/game/Match.java | 31 ++++++++++++++++--- .../forge/game/player/PlayerController.java | 2 +- .../src/main/java/forge/gui/GuiChoose.java | 4 +-- .../home/settings/CSubmenuPreferences.java | 3 +- .../home/settings/VSubmenuPreferences.java | 8 +++++ .../java/forge/screens/match/CMatchUI.java | 4 +-- .../util/PlayerControllerForTests.java | 2 +- .../src/forge/deck/FSideboardDialog.java | 4 +-- .../forge/screens/match/MatchController.java | 4 +-- forge-gui/res/languages/en-US.properties | 2 ++ .../main/java/forge/interfaces/IGuiGame.java | 2 +- .../main/java/forge/match/HostedMatch.java | 1 + .../java/forge/net/server/NetGuiGame.java | 4 +-- .../forge/player/PlayerControllerHuman.java | 7 ++--- .../forge/properties/ForgePreferences.java | 1 + 17 files changed, 67 insertions(+), 23 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 4fabb5db0c8..df39977f5a8 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -91,7 +91,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public List sideboard(Deck deck, GameType gameType) { + public List sideboard(Deck deck, GameType gameType, String message) { // AI does not know how to sideboard return null; } diff --git a/forge-game/src/main/java/forge/game/GameRules.java b/forge-game/src/main/java/forge/game/GameRules.java index 5e6876e9801..46ceb450cb5 100644 --- a/forge-game/src/main/java/forge/game/GameRules.java +++ b/forge-game/src/main/java/forge/game/GameRules.java @@ -11,6 +11,7 @@ public class GameRules { private int gamesToWinMatch = 2; private boolean playForAnte = false; private boolean matchAnteRarity = false; + private boolean sideboardForAI = false; private final Set appliedVariants = EnumSet.noneOf(GameType.class); // it's a preference, not rule... but I could hardly find a better place for it @@ -65,6 +66,14 @@ public class GameRules { matchAnteRarity = matchRarity; } + public boolean getSideboardForAI() { + return sideboardForAI; + } + + public void setSideboardForAI(final boolean sideboard) { + sideboardForAI = sideboard; + } + public int getGamesToWinMatch() { return gamesToWinMatch; } diff --git a/forge-game/src/main/java/forge/game/Match.java b/forge-game/src/main/java/forge/game/Match.java index 18c4e017e35..c716709122b 100644 --- a/forge-game/src/main/java/forge/game/Match.java +++ b/forge-game/src/main/java/forge/game/Match.java @@ -4,12 +4,14 @@ import com.google.common.collect.*; import forge.LobbyPlayer; import forge.deck.CardPool; import forge.deck.Deck; +import forge.deck.DeckFormat; import forge.deck.DeckSection; import forge.game.card.Card; import forge.game.card.CardCollectionView; import forge.game.event.GameEventAnteCardsSelected; import forge.game.event.GameEventGameFinished; import forge.game.player.Player; +import forge.game.player.PlayerController; import forge.game.player.RegisteredPlayer; import forge.game.trigger.Trigger; import forge.game.zone.PlayerZone; @@ -208,18 +210,39 @@ public class Match { Multimap rAICards = HashMultimap.create(); Multimap removedAnteCards = ArrayListMultimap.create(); - boolean isFirstGame = game.getMatch().getPlayedGames().isEmpty(); - boolean canSideBoard = !isFirstGame && rules.getGameType().isSideboardingAllowed(); - final FCollectionView players = game.getPlayers(); final List playersConditions = game.getMatch().getPlayers(); + + boolean isFirstGame = game.getMatch().getPlayedGames().isEmpty(); + boolean canSideBoard = !isFirstGame && rules.getGameType().isSideboardingAllowed(); + // Only allow this if feature flag is on AND for certain match types + boolean sideboardForAIs = rules.getSideboardForAI() && + rules.getGameType().getDeckFormat().equals(DeckFormat.Constructed); + PlayerController sideboardProxy = null; + if (canSideBoard && sideboardForAIs) { + for (int i = 0; i < playersConditions.size(); i++) { + final Player player = players.get(i); + final RegisteredPlayer psc = playersConditions.get(i); + if (!player.getController().isAI()) { + sideboardProxy = player.getController(); + break; + } + } + } + for (int i = 0; i < playersConditions.size(); i++) { final Player player = players.get(i); final RegisteredPlayer psc = playersConditions.get(i); if (canSideBoard) { + PlayerController person = player.getController(); + if (sideboardProxy != null && person.isAI()) { + person = sideboardProxy; + } + + String forPlayer = " for " + player.getName(); Deck toChange = psc.getDeck(); - List newMain = player.getController().sideboard(toChange, rules.getGameType()); + List newMain = person.sideboard(toChange, rules.getGameType(), forPlayer); if (null != newMain) { CardPool allCards = new CardPool(); allCards.addAll(toChange.get(DeckSection.Main)); diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 527dd1d198d..fc0c09a2625 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -91,7 +91,7 @@ public abstract class PlayerController { public abstract void playSpellAbilityForFree(SpellAbility copySA, boolean mayChoseNewTargets); public abstract void playSpellAbilityNoStack(SpellAbility effectSA, boolean mayChoseNewTargets); - public abstract List sideboard(final Deck deck, GameType gameType); + public abstract List sideboard(final Deck deck, GameType gameType, String message); public abstract List chooseCardsYouWonToAddToDeck(List losses); public abstract Map assignCombatDamage(Card attacker, CardCollectionView blockers, int damageDealt, GameEntity defender, boolean overrideOrder); diff --git a/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java b/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java index 070d21fd1c0..a5db47f9733 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java +++ b/forge-gui-desktop/src/main/java/forge/gui/GuiChoose.java @@ -234,10 +234,10 @@ public class GuiChoose { return null; } - public static > List sideboard(final CMatchUI matchUI, final List sideboard, final List deck) { + public static > List sideboard(final CMatchUI matchUI, final List sideboard, final List deck, final String message) { Collections.sort(deck); Collections.sort(sideboard); - return order("Sideboard", "Main Deck", -1, -1, sideboard, deck, null, true, matchUI); + return order("Sideboard" + message, "Main Deck", -1, -1, sideboard, deck, null, true, matchUI); } public static List order(final String title, final String top, final int remainingObjectsMin, final int remainingObjectsMax, diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 47585f63f08..62c0be34a84 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -107,6 +107,7 @@ public enum CSubmenuPreferences implements ICDoc { lstControls.add(Pair.of(view.getCbRandomArtInPools(), FPref.UI_RANDOM_ART_IN_POOLS)); lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY)); lstControls.add(Pair.of(view.getCbPerformanceMode(), FPref.PERFORMANCE_MODE)); + lstControls.add(Pair.of(view.getCbSideboardForAI(), FPref.MATCH_SIDEBOARD_FOR_AI)); lstControls.add(Pair.of(view.getCbFilteredHands(), FPref.FILTERED_HANDS)); lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE)); lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL)); @@ -147,7 +148,7 @@ public enum CSubmenuPreferences implements ICDoc { for(final Pair kv : lstControls) { - kv.getKey().addItemListener(new ItemListener() { + kv.getKey().addItemListener(new ItemListener() { @Override public void itemStateChanged(final ItemEvent arg0) { if (updating) { return; } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index b1cebaa82a6..11499dd475e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -75,6 +75,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbLoadHistoricFormats = new OptionsCheckBox(localizer.getMessage("cbLoadHistoricFormats")); private final JCheckBox cbWorkshopSyntax = new OptionsCheckBox(localizer.getMessage("cbWorkshopSyntax")); private final JCheckBox cbEnforceDeckLegality = new OptionsCheckBox(localizer.getMessage("cbEnforceDeckLegality")); + private final JCheckBox cbSideboardForAI = new OptionsCheckBox(localizer.getMessage("cbSideboardForAI")); private final JCheckBox cbPerformanceMode = new OptionsCheckBox(localizer.getMessage("cbPerformanceMode")); private final JCheckBox cbFilteredHands = new OptionsCheckBox(localizer.getMessage("cbFilteredHands")); private final JCheckBox cbImageFetcher = new OptionsCheckBox(localizer.getMessage("cbImageFetcher")); @@ -195,6 +196,9 @@ public enum VSubmenuPreferences implements IVSubmenu { pnlPrefs.add(cbPerformanceMode, titleConstraints); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlPerformanceMode")), descriptionConstraints); + pnlPrefs.add(cbSideboardForAI, titleConstraints); + pnlPrefs.add(new NoteLabel(localizer.getMessage("nlSideboardForAI")), descriptionConstraints); + pnlPrefs.add(cbFilteredHands, titleConstraints); pnlPrefs.add(new NoteLabel(localizer.getMessage("nlFilteredHands")), descriptionConstraints); @@ -680,6 +684,10 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbPerformanceMode; } + public JCheckBox getCbSideboardForAI() { + return cbSideboardForAI; + } + /** @return {@link javax.swing.JCheckBox} */ public JCheckBox getCbFilteredHands() { return cbFilteredHands; diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index ee280f85f0b..fb9a3ee19be 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -1022,8 +1022,8 @@ public final class CMatchUI } @Override - public List sideboard(final CardPool sideboard, final CardPool main) { - return GuiChoose.sideboard(this, sideboard.toFlatList(), main.toFlatList()); + public List sideboard(final CardPool sideboard, final CardPool main, final String message) { + return GuiChoose.sideboard(this, sideboard.toFlatList(), main.toFlatList(), message); } @Override diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index da8d1191e82..2e7bfcafb12 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -112,7 +112,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public List sideboard(Deck deck, GameType gameType) { + public List sideboard(Deck deck, GameType gameType, String message) { return null; // refused to side } diff --git a/forge-gui-mobile/src/forge/deck/FSideboardDialog.java b/forge-gui-mobile/src/forge/deck/FSideboardDialog.java index 860ec12f46e..dc2c6ea5abe 100644 --- a/forge-gui-mobile/src/forge/deck/FSideboardDialog.java +++ b/forge-gui-mobile/src/forge/deck/FSideboardDialog.java @@ -23,8 +23,8 @@ public class FSideboardDialog extends FDialog { private final SideboardTabs tabs; private final Callback> callback; - public FSideboardDialog(CardPool sideboard, CardPool main, final Callback> callback0) { - super("Update main deck from sideboard", 1); + public FSideboardDialog(CardPool sideboard, CardPool main, final Callback> callback0, String message) { + super("Update main deck from sideboard" + message, 1); callback = callback0; tabs = add(new SideboardTabs(sideboard, main)); diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java index 0a5a83b664a..83a9c1d5a65 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchController.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java @@ -481,11 +481,11 @@ public class MatchController extends AbstractGuiGame { } @Override - public List sideboard(final CardPool sideboard, final CardPool main) { + public List sideboard(final CardPool sideboard, final CardPool main, final String message) { return new WaitCallback>() { @Override public void run() { - final FSideboardDialog sideboardDialog = new FSideboardDialog(sideboard, main, this); + final FSideboardDialog sideboardDialog = new FSideboardDialog(sideboard, main, this, message); sideboardDialog.show(); } }.invokeAndWait(); diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 4be74394616..164fc2726c2 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -33,6 +33,7 @@ cbLoadCardsLazily = Load Card Scripts Lazily cbLoadHistoricFormats = Load Historic Formats cbWorkshopSyntax = Workshop Syntax Checker cbEnforceDeckLegality = Deck Conformance +cbSideboardForAI = Human Sideboard for AI cbPerformanceMode = Performance Mode cbFilteredHands = Filtered Hands cbImageFetcher = Automatically Download Missing Card Art @@ -86,6 +87,7 @@ nlEnableAICheats = Allow the AI to cheat to gain advantage (for personalities th nlManaBurn = Play with mana burn (from pre-Magic 2010 rules). nlManaLostPrompt = When enabled, you get a warning if passing priority would cause you to lose mana in your mana pool. nlEnforceDeckLegality = Enforces deck legality relevant to each environment (minimum deck sizes, max card count etc). +nlSideboardForAI = Allows users to sideboard with the AIs deck and sideboard in constructed game formats. nlPerformanceMode = Disables additional static abilities checks to speed up the game engine. (Warning: breaks some 'as if had flash' scenarios when casting cards owned by opponents). nlFilteredHands = Generates two starting hands and keeps the one with the closest to average land count for the deck. (Requires restart) nlCloneImgSource = When enabled clones will use their original art instead of the cloned card's art. diff --git a/forge-gui/src/main/java/forge/interfaces/IGuiGame.java b/forge-gui/src/main/java/forge/interfaces/IGuiGame.java index 3c9b08f4679..9b53c385e45 100644 --- a/forge-gui/src/main/java/forge/interfaces/IGuiGame.java +++ b/forge-gui/src/main/java/forge/interfaces/IGuiGame.java @@ -144,7 +144,7 @@ public interface IGuiGame { */ List insertInList(String title, T newItem, List oldItems); - List sideboard(CardPool sideboard, CardPool main); + List sideboard(CardPool sideboard, CardPool main, String message); GameEntityView chooseSingleEntityForEffect(String title, List optionList, DelayedReveal delayedReveal, boolean isOptional); List chooseEntitiesForEffect(String title, List optionList, int min, int max, DelayedReveal delayedReveal); diff --git a/forge-gui/src/main/java/forge/match/HostedMatch.java b/forge-gui/src/main/java/forge/match/HostedMatch.java index d42aaa68072..7535a28d20f 100644 --- a/forge-gui/src/main/java/forge/match/HostedMatch.java +++ b/forge-gui/src/main/java/forge/match/HostedMatch.java @@ -79,6 +79,7 @@ public class HostedMatch { gameRules.setPlayForAnte(FModel.getPreferences().getPrefBoolean(FPref.UI_ANTE)); gameRules.setMatchAnteRarity(FModel.getPreferences().getPrefBoolean(FPref.UI_ANTE_MATCH_RARITY)); gameRules.setManaBurn(FModel.getPreferences().getPrefBoolean(FPref.UI_MANABURN)); + gameRules.setSideboardForAI(FModel.getPreferences().getPrefBoolean(FPref.MATCH_SIDEBOARD_FOR_AI)); gameRules.setCanCloneUseTargetsImage(FModel.getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE)); return gameRules; } diff --git a/forge-gui/src/main/java/forge/net/server/NetGuiGame.java b/forge-gui/src/main/java/forge/net/server/NetGuiGame.java index 4d1174c1760..73fe66fc626 100644 --- a/forge-gui/src/main/java/forge/net/server/NetGuiGame.java +++ b/forge-gui/src/main/java/forge/net/server/NetGuiGame.java @@ -234,8 +234,8 @@ public class NetGuiGame extends AbstractGuiGame { } @Override - public List sideboard(final CardPool sideboard, final CardPool main) { - return sendAndWait(ProtocolMethod.sideboard, sideboard, main); + public List sideboard(final CardPool sideboard, final CardPool main, final String message) { + return sendAndWait(ProtocolMethod.sideboard, sideboard, main, message); } @Override diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 8ec57be16e6..c011bccd12e 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -209,11 +209,10 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont } @Override - public List sideboard(final Deck deck, final GameType gameType) { + public List sideboard(final Deck deck, final GameType gameType, String message) { CardPool sideboard = deck.get(DeckSection.Sideboard); if (sideboard == null) { - // Use an empty cardpool instead of null for 75/0 sideboarding - // scenario. + // Use an empty cardpool instead of null for 75/0 sideboarding scenario. sideboard = new CardPool(); } @@ -253,7 +252,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont // Sideboard rules have changed for M14, just need to consider min // maindeck and max sideboard sizes // No longer need 1:1 sideboarding in non-limited formats - Object resp = getGui().sideboard(sideboard, main); + Object resp = getGui().sideboard(sideboard, main, message); if (resp instanceof List && !((List) resp).isEmpty() && ((List) resp).get(0) instanceof PaperCard) { diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 8caea6fe279..747392138d7 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -156,6 +156,7 @@ public class ForgePreferences extends PreferencesStore { SUBMENU_SETTINGS ("false"), SUBMENU_UTILITIES ("false"), + MATCH_SIDEBOARD_FOR_AI("true"), // TODO What do when AI knows how to SIdeboard? ENFORCE_DECK_LEGALITY ("true"), PERFORMANCE_MODE ("false"), FILTERED_HANDS ("false"), From 79be6b8a8b1010807cf6b3e5ebed83ca1649330d Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 07:12:44 +0100 Subject: [PATCH 07/28] Sisay from Cryptix --- .../cardsfolder/upcoming/sisay_weatherlight_captain.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt b/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt new file mode 100644 index 00000000000..a6fd4a168c2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt @@ -0,0 +1,9 @@ +Name:Sisay, Weatherlight Captain +ManaCost:2 W +Types:Legendary Creature Human Soldier +PT:2/2 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | References$ X | Description$ Equipped creature gets +1/+1 for each color among permanents you control. +SVar:X:Count$ColorsCtrl Permanent.YouCtrl+Legendary+inZoneBattlefield +A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Library | Destination$ Battlefield | ChangeType$ Permanent.Legendary+cmcLEY | ChangeNum$ 1 | References$ Y | SpellDescription$ Search your library for a legendary permanent card with converted mana cost less than Sisay’s power, put that card onto the battlefield, then shuffle your library. +SVar:Y:Count$CardPower +Oracle:Sisay, Weatherlight Captain gets +1/+1 for each color among other legendary permanents you control.\n{W}{U}{B}{R}{G}: Search your library for a legendary permanent card with converted mana cost less than Sisay’s power, put that card onto the battlefield, then shuffle your library. From 92792996dadc2dae2cb87db1fde3bbc425b1e75f Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 07:52:44 +0100 Subject: [PATCH 08/28] More MH1 spoilers from forgescribe --- forge-gui/res/cardsfolder/upcoming/alpine_guide.txt | 10 ++++++++++ .../res/cardsfolder/upcoming/cordial_vampire.txt | 10 ++++++++++ forge-gui/res/cardsfolder/upcoming/frostwalla.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/mind_rake.txt | 6 ++++++ .../res/cardsfolder/upcoming/moonblade_shinobi.txt | 8 ++++++++ .../cardsfolder/upcoming/ninja_of_the_new_moon.txt | 6 ++++++ .../res/cardsfolder/upcoming/phantom_ninja.txt | 6 ++++++ .../res/cardsfolder/upcoming/rotwidow_pack.txt | 10 ++++++++++ .../res/cardsfolder/upcoming/smiting_helix.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/soulherder.txt | 13 +++++++++++++ forge-gui/res/cardsfolder/upcoming/thornado.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/throatseeker.txt | 7 +++++++ 12 files changed, 95 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/alpine_guide.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/frostwalla.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mind_rake.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/moonblade_shinobi.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ninja_of_the_new_moon.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/phantom_ninja.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/smiting_helix.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/soulherder.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/thornado.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/throatseeker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt b/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt new file mode 100644 index 00000000000..3f9e15ad54f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt @@ -0,0 +1,10 @@ +Name:Alpine Guide +ManaCost:2 R +Types:Snow Creature Human Scout +PT:3/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Mountain card, put that card onto the battlefield tapped, then shuffle your library. +SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Mountain | ChangeNum$ 1 | ShuffleNonMandatory$ True +K:CARDNAME attacks each combat if able. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME leaves the battlefield, sacrifice a Mountain. +SVar:TrigSac:DB$Sacrifice | SacValid$ Mountain | Defined$ You +Oracle:When Alpine Guide enters the battlefield, you may search your library for a Mountain card, put that card onto the battlefield tapped, then shuffle your library.\nAlpine Guide attacks each combat if able.\nWhen Alpine Guide leaves the battlefield, sacrifice a Mountain. diff --git a/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt b/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt new file mode 100644 index 00000000000..d2f7bd1c790 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt @@ -0,0 +1,10 @@ +Name:Cordial Vampire +ManaCost:B B +Types:Creature Vampire +PT:1/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each flying creature you control. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigPutCounters | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each flying creature you control. +SVar:TrigPutCounters:DB$ PutCounterAll | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters +DeckNeeds:Type$Vampire +Oracle:Whenever Cordial Vampire or another creature dies, put a +1/+1 counter on each vampire creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/frostwalla.txt b/forge-gui/res/cardsfolder/upcoming/frostwalla.txt new file mode 100644 index 00000000000..1fe01130a4f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/frostwalla.txt @@ -0,0 +1,6 @@ +Name:Frostwalla +ManaCost:2 G +Types:Snow Creature Lizard +PT:2/2 +A:AB$ Pump | Cost$ S | NumAtt$ +2 | NumDef$ +2 | ActivationLimit$ 1 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. Activate this ability only once each turn. +Oracle:{S}: Frostwalla gets +2/+2 until end of turn. Activate this ability only once each turn. ({S} can be paid with one mana from a snow permanent.) diff --git a/forge-gui/res/cardsfolder/upcoming/mind_rake.txt b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt new file mode 100644 index 00000000000..3328edb485f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt @@ -0,0 +1,6 @@ +Name:Mind Rake +ManaCost:2 B +Types:Sorcery +A:SP$ Discard | Cost$ 2 B | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. +A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. +Oracle:Target player discards two cards.\nOverload {1}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each".) diff --git a/forge-gui/res/cardsfolder/upcoming/moonblade_shinobi.txt b/forge-gui/res/cardsfolder/upcoming/moonblade_shinobi.txt new file mode 100644 index 00000000000..4f7e4d4b16f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/moonblade_shinobi.txt @@ -0,0 +1,8 @@ +Name:Moonblade Shinobi +ManaCost:3 U +Types:Creature Human Ninja +PT:3/2 +K:Ninjutsu:2 U +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a 1/1 blue Illusion creature token with flying. +SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenScript$ u_1_1_illusion_flying | TokenOwner$ You | LegacyImage$ u 1 1 illusion flying mh1 +Oracle:Ninjutsu {2}{U} ({2}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Moonblade Shinobi deals combat damage to a player, create a 1/1 blue Illusion creature token with flying. diff --git a/forge-gui/res/cardsfolder/upcoming/ninja_of_the_new_moon.txt b/forge-gui/res/cardsfolder/upcoming/ninja_of_the_new_moon.txt new file mode 100644 index 00000000000..d63bac30a69 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ninja_of_the_new_moon.txt @@ -0,0 +1,6 @@ +Name:Ninja of the New Moon +ManaCost:3 B B +Types:Creature Spirit Ninja +PT:6/3 +K:Ninjutsu:3 B +Oracle:Ninjutsu {3}{B} ({3}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) diff --git a/forge-gui/res/cardsfolder/upcoming/phantom_ninja.txt b/forge-gui/res/cardsfolder/upcoming/phantom_ninja.txt new file mode 100644 index 00000000000..1bfe0cc41dc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/phantom_ninja.txt @@ -0,0 +1,6 @@ +Name:Phantom Ninja +ManaCost:1 U U +Types:Creature Illusion Ninja +PT:2/2 +K:Unblockable +Oracle:Phantom Ninja can't be blocked. diff --git a/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt b/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt new file mode 100644 index 00000000000..a4b3b3206e1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt @@ -0,0 +1,10 @@ +Name:Rotwidow Pack +ManaCost:2 B G +Types:Creature Spider +PT:2/4 +K:Reach +A:AB$ Token | Cost$ 3 B G ExileFromGrave<1/Creature> | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ Player.IsRemembered | LegacyImage$ g 1 2 spider reach mh1 | SubAbility$ DBLoseLife | SpellDescription$ Create a 1/2 green Spider creature token with reach, then each opponent loses 1 life for each Spider you control. +SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ X | References$ X +SVar:X:Count$Valid Card.Spider+YouCtrl+Spider +SVar:NeedsToPlayVar:X GE3 +Oracle:Reach\n{3}{B}{G}, Exile a creature card from your graveyard: Create a 1/2 green Spider creature token with reach, then each opponent loses 1 life for each Spider you control. diff --git a/forge-gui/res/cardsfolder/upcoming/smiting_helix.txt b/forge-gui/res/cardsfolder/upcoming/smiting_helix.txt new file mode 100644 index 00000000000..e150b258784 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/smiting_helix.txt @@ -0,0 +1,7 @@ +Name:Smiting Helix +ManaCost:3 B +Types:Sorcery +A:SP$ DealDamage | Cost$ 3 B | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to any target and you gain 3 life. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 +K:Flashback:R W +Oracle:Smiting Helix deals 3 damage to any target and you gain 3 life.\nFlashback {R}{W} (You may cast this card from your graveyard for its flashback cost. Then exile it.) diff --git a/forge-gui/res/cardsfolder/upcoming/soulherder.txt b/forge-gui/res/cardsfolder/upcoming/soulherder.txt new file mode 100644 index 00000000000..f3f6df3d943 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/soulherder.txt @@ -0,0 +1,13 @@ +Name:Soulherder +ManaCost:1 W U +Types:Creature Spirit +PT:1/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Exile | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature is exiled from the battlefield, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +SVar:PlayMain1:TRUE +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ ConjurerExile | OptionalDecider$ You | TriggerDescription$ At the beginning of your end step, you may exile another target creature you control, then return it to the battlefield under its owner's control. +SVar:ConjurerExile:DB$ ChangeZone | ValidTgts$ Creature.Other+YouCtrl | TgtPrompt$ Select another target creature you control | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ ConjurerReturn +SVar:RestorationReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +AI:RemoveDeck:All +Oracle:Whenever a creature is exiled from the battlefield, put a +1/+1 counter on Soulherder.\nAt the beginning of your end step, you may exile another target creature you control, then return that card to the battlefield under its owner's control. diff --git a/forge-gui/res/cardsfolder/upcoming/thornado.txt b/forge-gui/res/cardsfolder/upcoming/thornado.txt new file mode 100644 index 00000000000..e883b7fd8c9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/thornado.txt @@ -0,0 +1,6 @@ +Name:Thornado +ManaCost:2 G +Types:Instant +A:SP$ Destroy | Cost$ 2 G | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | SpellDescription$ Destroy target creature with flying. +K:Cycling:1 G +Oracle:Destroy target creature with flying.\nCycling {1}{G} ({1}{G}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/upcoming/throatseeker.txt b/forge-gui/res/cardsfolder/upcoming/throatseeker.txt new file mode 100644 index 00000000000..4cf546ada03 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/throatseeker.txt @@ -0,0 +1,7 @@ +Name:Throatseeker +ManaCost:2 B +Types:Creature Vampire Ninja +PT:3/2 +S:Mode$ Continuous | Affected$ Ninja.attacking+unblocked | AddKeyword$ Lifelink | Description$ Unblocked attacking Ninjas you control have lifelink. +SVar:PlayMain1:TRUE +Oracle:Unblocked attacking Ninjas you control have lifelink. From 072877d644675998784c6bb62b4f464a30b9b15e Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 07:57:18 +0100 Subject: [PATCH 09/28] Updated editions file --- forge-gui/res/editions/Modern Horizons.txt | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/editions/Modern Horizons.txt b/forge-gui/res/editions/Modern Horizons.txt index dbc0056a1cc..4b4cab4a4a1 100644 --- a/forge-gui/res/editions/Modern Horizons.txt +++ b/forge-gui/res/editions/Modern Horizons.txt @@ -45,8 +45,11 @@ Type=Other 52 R Force of Negation 53 R Future Sight 55 C Man-o'-War +56 R Marit Lage's Slumber 57 R Mirrodin Besieged 58 R Mist-Syndicate Naga +59 C Moonblade Shinobi +62 C Phantom Ninja 63 C Pondering Mage 64 C Prohibit 66 U Rebuild @@ -58,9 +61,11 @@ Type=Other 73 U Tribute Mage 74 U Twisted Reflection 75 M Urza, Lord High Artificer +76 U Watcher for Tomorrow 80 R Cabal Therapist 81 U Carrion Feeder 82 C Changeling Outcast +83 R Cordial Vampire 84 U Crypt Rats 85 R Dead of Winter 86 C Defile @@ -70,14 +75,19 @@ Type=Other 90 U Feaster of Fools 92 R Force of Despair 95 C Headless Specter +96 C Mind Rake 98 R Nether Spirit +99 C Ninja of the New Moon 100 R Plague Engineer 108 U Sling-Gang Lieutenant +109 U Smiting Helix +110 U Throatseeker 111 C Umezawa's Charm 112 U Undead Augur 113 C Unearth 114 C Venomous Changeling 116 M Yawgmoth, Thran Physician +117 U Alpine Guide 118 R Aria of Flame 119 C Bladeback Sliver 122 U Firebolt @@ -106,6 +116,7 @@ Type=Other 148 R Spiteful Sliver 149 R Tectonic Reformation 150 U Throes of Chaos +151 U Urza's Rage 155 R Ayula, Queen Among Bears 156 R Ayula's Influence 158 R Collector Ouphe @@ -113,6 +124,7 @@ Type=Other 161 R Deep Forest Hermit 162 C Elvish Fury 164 R Force of Vigor +165 C Frostwalla 166 R Genesis 167 U Glacial Revelation 168 M Hexdrinker @@ -128,7 +140,9 @@ Type=Other 181 C Springbloom Druid 182 U Squirrel Nest 183 U Tempered Sliver +184 C Thornado 189 M Unbound Flourishing +190 U Wall of Blossoms 191 C Weather the Storm 192 U Webweaver Changeling 194 U Abominable Treefolk @@ -148,8 +162,10 @@ Type=Other 208 R Lightning Skelemental 209 U Munitions Expert 210 C Nature's Chant -211 R Reap The Past +211 R Reap the Past +212 U Rotwidow Pack 213 U Ruination Rioter +214 U Soulherder 215 U Thundering Djinn 216 R Unsettled Mariner 217 M Wrenn and Six @@ -197,4 +213,7 @@ r_1_1_goblin g_2_2_bear r_1_1_elemental g_3_3_elephant -g_4_4_rhino_trample \ No newline at end of file +g_4_4_rhino_trample +u_1_1_illusion_flying +g_1_2_spider_reach +wb_1_1_spirit_flying \ No newline at end of file From 687ad1703653633749d91d96c228d96dcc75f252 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 20:50:48 +0100 Subject: [PATCH 10/28] Fixes suggested in MR --- forge-gui/res/cardsfolder/upcoming/icehide_golem.txt | 1 - forge-gui/res/cardsfolder/upcoming/mind_rake.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt index d5d1d87861a..0e991572b50 100644 --- a/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt +++ b/forge-gui/res/cardsfolder/upcoming/icehide_golem.txt @@ -2,5 +2,4 @@ Name:Icehide Golem ManaCost:S Types:Snow Artifact Creature Golem PT:2/2 -Colors:green Oracle:({S} can be paid with one mana from a snow permanent.) diff --git a/forge-gui/res/cardsfolder/upcoming/mind_rake.txt b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt index 3328edb485f..2b6801ba4e3 100644 --- a/forge-gui/res/cardsfolder/upcoming/mind_rake.txt +++ b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt @@ -2,5 +2,5 @@ Name:Mind Rake ManaCost:2 B Types:Sorcery A:SP$ Discard | Cost$ 2 B | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. -A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. +A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Each player discards two cards. Oracle:Target player discards two cards.\nOverload {1}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each".) From a4ca3c77d83114e48c5d7765d0871de61a4db3bf Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Sat, 1 Jun 2019 02:24:26 +0000 Subject: [PATCH 11/28] Added a way to specify a NeedsToPlay variable for Evoke. --- forge-ai/src/main/java/forge/ai/ComputerUtilCard.java | 9 +++++++++ forge-gui/res/cardsfolder/a/aethersnipe.txt | 1 + forge-gui/res/cardsfolder/b/briarhorn.txt | 1 + forge-gui/res/cardsfolder/f/faultgrinder.txt | 1 + forge-gui/res/cardsfolder/i/ingot_chewer.txt | 1 + forge-gui/res/cardsfolder/i/inner_flame_acolyte.txt | 1 + forge-gui/res/cardsfolder/m/meadowboon.txt | 2 ++ forge-gui/res/cardsfolder/n/nevermaker.txt | 1 + forge-gui/res/cardsfolder/n/night_incarnate.txt | 2 ++ forge-gui/res/cardsfolder/o/offalsnout.txt | 2 ++ forge-gui/res/cardsfolder/r/reveillark.txt | 2 ++ forge-gui/res/cardsfolder/s/shriekmaw.txt | 1 + forge-gui/res/cardsfolder/s/spitebellows.txt | 1 + forge-gui/res/cardsfolder/w/wispmare.txt | 1 + 14 files changed, 26 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java index c643a567a42..12f984154c9 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCard.java @@ -1842,6 +1842,15 @@ public class ComputerUtilCard { String needsToPlayName = isRightSplit ? "SplitNeedsToPlay" : "NeedsToPlay"; String needsToPlayVarName = isRightSplit ? "SplitNeedsToPlayVar" : "NeedsToPlayVar"; + if (sa != null && sa.isEvoke()) { + if (card.hasSVar("NeedsToPlayEvoked")) { + needsToPlayName = "NeedsToPlayEvoked"; + } + if (card.hasSVar("NeedsToPlayEvokedVar")) { + needsToPlayVarName = "NeedsToPlayEvokedVar"; + } + } + if (card.hasSVar(needsToPlayName)) { final String needsToPlay = card.getSVar(needsToPlayName); CardCollectionView list = game.getCardsIn(ZoneType.Battlefield); diff --git a/forge-gui/res/cardsfolder/a/aethersnipe.txt b/forge-gui/res/cardsfolder/a/aethersnipe.txt index e3fdb1e161c..7e38c14ee01 100644 --- a/forge-gui/res/cardsfolder/a/aethersnipe.txt +++ b/forge-gui/res/cardsfolder/a/aethersnipe.txt @@ -5,5 +5,6 @@ PT:4/4 K:Evoke:1 U U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigBounce | TriggerDescription$ When CARDNAME enters the battlefield, return target nonland permanent to its owner's hand. SVar:TrigBounce:DB$ChangeZone | ValidTgts$ Permanent.nonLand | TgtPrompt$ Choose target non-Land permanent. | Origin$ Battlefield | Destination$ Hand +SVar:NeedsToPlayEvoked:Card.nonLand+OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/aethersnipe.jpg Oracle:When Aethersnipe enters the battlefield, return target nonland permanent to its owner's hand.\nEvoke {1}{U}{U} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/b/briarhorn.txt b/forge-gui/res/cardsfolder/b/briarhorn.txt index 7e04060ff24..135141788c2 100644 --- a/forge-gui/res/cardsfolder/b/briarhorn.txt +++ b/forge-gui/res/cardsfolder/b/briarhorn.txt @@ -6,6 +6,7 @@ K:Evoke:1 G T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature gets +3/+3 until end of turn. SVar:TrigPump:DB$Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | NumDef$ +3 SVar:PlayMain1:TRUE +SVar:NeedsToPlayEvoked:Creature.YouCtrl K:Flash SVar:Picture:http://www.wizards.com/global/images/magic/general/briarhorn.jpg Oracle:Flash\nWhen Briarhorn enters the battlefield, target creature gets +3/+3 until end of turn.\nEvoke {1}{G} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/f/faultgrinder.txt b/forge-gui/res/cardsfolder/f/faultgrinder.txt index 4d5eb7b4b16..30c12405c26 100644 --- a/forge-gui/res/cardsfolder/f/faultgrinder.txt +++ b/forge-gui/res/cardsfolder/f/faultgrinder.txt @@ -6,5 +6,6 @@ K:Trample K:Evoke:4 R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target land. SVar:TrigDestroy:DB$Destroy | ValidTgts$ Land | TgtPrompt$ Select a land. +SVar:NeedsToPlayEvoked:Land.OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/faultgrinder.jpg Oracle:Trample\nWhen Faultgrinder enters the battlefield, destroy target land.\nEvoke {4}{R} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/i/ingot_chewer.txt b/forge-gui/res/cardsfolder/i/ingot_chewer.txt index 01bb6e50bd5..f28863e8284 100644 --- a/forge-gui/res/cardsfolder/i/ingot_chewer.txt +++ b/forge-gui/res/cardsfolder/i/ingot_chewer.txt @@ -5,5 +5,6 @@ PT:3/3 K:Evoke:R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target artifact. SVar:TrigDestroy:DB$Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. +SVar:NeedsToPlayEvoked:Artifact.OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/ingot_chewer.jpg Oracle:When Ingot Chewer enters the battlefield, destroy target artifact.\nEvoke {R} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/i/inner_flame_acolyte.txt b/forge-gui/res/cardsfolder/i/inner_flame_acolyte.txt index b2a5615f44c..e6d38e88ce2 100644 --- a/forge-gui/res/cardsfolder/i/inner_flame_acolyte.txt +++ b/forge-gui/res/cardsfolder/i/inner_flame_acolyte.txt @@ -6,5 +6,6 @@ K:Evoke:R T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature gets +2/+0 and gains haste until end of turn. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | KW$ Haste SVar:PlayMain1:ALWAYS +SVar:NeedsToPlayEvoked:Creature.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/inner_flame_acolyte.jpg Oracle:When Inner-Flame Acolyte enters the battlefield, target creature gets +2/+0 and gains haste until end of turn.\nEvoke {R} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/m/meadowboon.txt b/forge-gui/res/cardsfolder/m/meadowboon.txt index 4703789b36a..b18d7a6b1a8 100644 --- a/forge-gui/res/cardsfolder/m/meadowboon.txt +++ b/forge-gui/res/cardsfolder/m/meadowboon.txt @@ -6,4 +6,6 @@ K:Evoke:3 W T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigPutCounterAll | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, put a +1/+1 counter on each creature target player controls. SVar:TrigPutCounterAll:DB$ PutCounterAll | ValidTgts$ Player | TgtPrompt$ Select a player | ValidCards$ Creature | CounterType$ P1P1 | CounterNum$ 1 SVar:Picture:http://www.wizards.com/global/images/magic/general/meadowboon.jpg +SVar:NeedsToPlayEvokedVar:Z GE2 +SVar:Z:Count$Valid Creature.YouCtrl Oracle:When Meadowboon leaves the battlefield, put a +1/+1 counter on each creature target player controls.\nEvoke {3}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/n/nevermaker.txt b/forge-gui/res/cardsfolder/n/nevermaker.txt index a3ac8845d75..b5e742a561f 100644 --- a/forge-gui/res/cardsfolder/n/nevermaker.txt +++ b/forge-gui/res/cardsfolder/n/nevermaker.txt @@ -6,5 +6,6 @@ K:Flying K:Evoke:3 U T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigBounce | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, put target nonland permanent on top of its owner's library. SVar:TrigBounce:DB$ChangeZone | ValidTgts$ Permanent.nonLand | TgtPrompt$ Choose target non-Land permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 +SVar:NeedsToPlayEvoked:Card.nonLand+OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/nevermaker.jpg Oracle:Flying\nWhen Nevermaker leaves the battlefield, put target nonland permanent on top of its owner's library.\nEvoke {3}{U} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/n/night_incarnate.txt b/forge-gui/res/cardsfolder/n/night_incarnate.txt index d2ac8cec734..ffa8653a6a7 100644 --- a/forge-gui/res/cardsfolder/n/night_incarnate.txt +++ b/forge-gui/res/cardsfolder/n/night_incarnate.txt @@ -6,4 +6,6 @@ K:Deathtouch K:Evoke:3 B T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, all creatures get -3/-3 until end of turn. SVar:TrigPumpAll:DB$PumpAll | ValidCards$ Creature | NumAtt$ -3 | NumDef$ -3 | IsCurse$ True +SVar:NeedsToPlayEvokedVar:Z GE2 +SVar:Z:Count$Valid Creature.OppCtrl+toughnessLE3 Oracle:Deathtouch\nWhen Night Incarnate leaves the battlefield, all creatures get -3/-3 until end of turn.\nEvoke {3}{B} (You may cast this spell for its evoke cost. If you do, it's sacrifices when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/o/offalsnout.txt b/forge-gui/res/cardsfolder/o/offalsnout.txt index 55236e0778a..8c75b5a6cb1 100644 --- a/forge-gui/res/cardsfolder/o/offalsnout.txt +++ b/forge-gui/res/cardsfolder/o/offalsnout.txt @@ -7,5 +7,7 @@ K:Evoke:B T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigExile | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, exile target card from a graveyard. SVar:TrigExile:DB$ChangeZone | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target card in a graveyard | ValidTgts$ Card AI:RemoveDeck:All +SVar:NeedsToPlayEvokedVar:Z GE1 +SVar:Z:Count$ValidGraveyard Card.OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/offalsnout.jpg Oracle:Flash\nWhen Offalsnout leaves the battlefield, exile target card from a graveyard.\nEvoke {B} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/r/reveillark.txt b/forge-gui/res/cardsfolder/r/reveillark.txt index 05ad2830f27..0628e50232e 100644 --- a/forge-gui/res/cardsfolder/r/reveillark.txt +++ b/forge-gui/res/cardsfolder/r/reveillark.txt @@ -6,5 +6,7 @@ K:Flying K:Evoke:5 W T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturnCreatures | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return up to two target creature cards with power 2 or less from your graveyard to the battlefield. SVar:TrigReturnCreatures:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.powerLE2 | TargetsWithDefinedController$ TriggeredCardController | TgtPrompt$ Choose target creature +SVar:NeedsToPlayEvokedVar:Z GE2 +SVar:Z:Count$ValidGraveyard Creature.YouCtrl+powerLE2 SVar:Picture:http://www.wizards.com/global/images/magic/general/reveillark.jpg Oracle:Flying\nWhen Reveillark leaves the battlefield, return up to two target creature cards with power 2 or less from your graveyard to the battlefield.\nEvoke {5}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/s/shriekmaw.txt b/forge-gui/res/cardsfolder/s/shriekmaw.txt index fc4a89c7170..da2b9a78479 100644 --- a/forge-gui/res/cardsfolder/s/shriekmaw.txt +++ b/forge-gui/res/cardsfolder/s/shriekmaw.txt @@ -6,5 +6,6 @@ K:Fear K:Evoke:1 B T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target nonartifact, nonblack creature. SVar:TrigDestroy:DB$Destroy | ValidTgts$ Creature.nonBlack+nonArtifact | TgtPrompt$ Select target nonartifact, nonblack creature. +SVar:NeedsToPlayEvoked:Creature.OppCtrl+nonArtifact+nonBlack SVar:Picture:http://www.wizards.com/global/images/magic/general/shriekmaw.jpg Oracle:Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)\nWhen Shriekmaw enters the battlefield, destroy target nonartifact, nonblack creature.\nEvoke {1}{B} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/s/spitebellows.txt b/forge-gui/res/cardsfolder/s/spitebellows.txt index 00f6a065259..e06565c6e2d 100644 --- a/forge-gui/res/cardsfolder/s/spitebellows.txt +++ b/forge-gui/res/cardsfolder/s/spitebellows.txt @@ -6,4 +6,5 @@ K:Evoke:1 R R T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigDamageCreature | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, it deals 6 damage to target creature. SVar:TrigDamageCreature:DB$DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 6 SVar:Picture:http://www.wizards.com/global/images/magic/general/spitebellows.jpg +SVar:NeedsToPlayEvoked:Creature.OppCtrl+toughnessLE6 Oracle:When Spitebellows leaves the battlefield, it deals 6 damage to target creature.\nEvoke {1}{R}{R} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) diff --git a/forge-gui/res/cardsfolder/w/wispmare.txt b/forge-gui/res/cardsfolder/w/wispmare.txt index b094efab928..c3333a18b99 100644 --- a/forge-gui/res/cardsfolder/w/wispmare.txt +++ b/forge-gui/res/cardsfolder/w/wispmare.txt @@ -6,5 +6,6 @@ K:Flying K:Evoke:W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target enchantment. SVar:TrigDestroy:DB$Destroy | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment +SVar:NeedsToPlayEvoked:Enchantment.OppCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/wispmare.jpg Oracle:Flying\nWhen Wispmare enters the battlefield, destroy target enchantment.\nEvoke {W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) From 2100d20bfd343754a4232d8de0d4ef9e90521ce0 Mon Sep 17 00:00:00 2001 From: Charles Baker Date: Sat, 1 Jun 2019 02:30:34 +0000 Subject: [PATCH 12/28] Twisted Reflection --- forge-gui/res/cardsfolder/upcoming/twisted_reflection.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/twisted_reflection.txt diff --git a/forge-gui/res/cardsfolder/upcoming/twisted_reflection.txt b/forge-gui/res/cardsfolder/upcoming/twisted_reflection.txt new file mode 100644 index 00000000000..dcabd1b3081 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/twisted_reflection.txt @@ -0,0 +1,8 @@ +Name:Twisted Reflection +Types:Instant +ManaCost:1 U +K:Entwine:B +A:SP$ Charm | Cost$ 1 U | Choices$ DBCurse,DBSwitch +SVar:DBCurse:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature to get -6/-0 | NumAtt$ -6 | IsCurse$ True | SpellDescription$ Target creature gets -6/-0 until end of turn. +SVar:DBSwitch:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME's power and toughness are switched | SpellDescription$ Switch target creature's power and toughness until end of turn. +Oracle:Choose one —\n• Target creature gets -6/-0 until end of turn. \n• Switch target creatures's power and toughness until end of turn.\nEntwine {B} (Choose all if you pay the entwine cost.) \ No newline at end of file From 866994028315aa4bb091eb5106775f8458a83f1a Mon Sep 17 00:00:00 2001 From: Charles Baker Date: Sat, 1 Jun 2019 03:02:10 +0000 Subject: [PATCH 13/28] Watcher for Tomorrow --- .../res/cardsfolder/upcoming/watcher_for_tomorrow.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/watcher_for_tomorrow.txt diff --git a/forge-gui/res/cardsfolder/upcoming/watcher_for_tomorrow.txt b/forge-gui/res/cardsfolder/upcoming/watcher_for_tomorrow.txt new file mode 100644 index 00000000000..785dc23918c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/watcher_for_tomorrow.txt @@ -0,0 +1,8 @@ +Name:Watcher for Tomorrow +ManaCost:1 U +Types:Creature Human Wizard +PT:2/1 +K:Hideaway +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | TriggerController$ TriggeredCardController | Execute$ DBReturn | TriggerDescription$ When Watcher for Tomorrow leaves the battlefield, put the exiled card into its owner's hand. +SVar:DBReturn:DB$ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Hand +Oracle:Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nWhen Watcher for Tomorrow leaves the battlefield, put the exiled card into its owner's hand. \ No newline at end of file From 75bf338e8415d9910e7e452258a2bc85809b8e19 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 1 Jun 2019 06:08:26 +0300 Subject: [PATCH 14/28] - Vesperlark: added an AI Evoke hint --- forge-gui/res/cardsfolder/upcoming/vesperlark.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/forge-gui/res/cardsfolder/upcoming/vesperlark.txt b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt index d1707bfb7d9..b4a810ef00a 100644 --- a/forge-gui/res/cardsfolder/upcoming/vesperlark.txt +++ b/forge-gui/res/cardsfolder/upcoming/vesperlark.txt @@ -6,4 +6,6 @@ K:Flying T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield. SVar:TrigChangeZone:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl+powerLE1 | TgtPrompt$ Select target creature card with power 1 or less in your graveyard K:Evoke:1 W +SVar:NeedsToPlayEvokedVar:Z GE1 +SVar:Z:Count$ValidGraveyard Creature.YouCtrl+powerLE1 Oracle:Flying\nWhen Vesperlark leaves the battlefield, return target creature card with power 1 or less from your graveyard to the battlefield.\nEvoke {1}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) From 79a056d12684599e43b11682ffd0b05c04e2bcb0 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 1 Jun 2019 11:53:00 +0800 Subject: [PATCH 15/28] Update some scripts --- forge-gui/res/cardsfolder/upcoming/alpine_guide.txt | 2 +- forge-gui/res/cardsfolder/upcoming/answered_prayers.txt | 2 +- forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt | 6 +++--- forge-gui/res/cardsfolder/upcoming/reap_the_past.txt | 2 +- forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt | 4 ++-- .../res/cardsfolder/upcoming/sisay_weatherlight_captain.txt | 2 +- forge-gui/res/cardsfolder/upcoming/soulherder.txt | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt b/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt index 3f9e15ad54f..6d22e7f75b8 100644 --- a/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt +++ b/forge-gui/res/cardsfolder/upcoming/alpine_guide.txt @@ -5,6 +5,6 @@ PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Mountain card, put that card onto the battlefield tapped, then shuffle your library. SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Mountain | ChangeNum$ 1 | ShuffleNonMandatory$ True K:CARDNAME attacks each combat if able. -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME leaves the battlefield, sacrifice a Mountain. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigSac | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, sacrifice a Mountain. SVar:TrigSac:DB$Sacrifice | SacValid$ Mountain | Defined$ You Oracle:When Alpine Guide enters the battlefield, you may search your library for a Mountain card, put that card onto the battlefield tapped, then shuffle your library.\nAlpine Guide attacks each combat if able.\nWhen Alpine Guide leaves the battlefield, sacrifice a Mountain. diff --git a/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt index d9cb33dd7bb..dda86b2a2c1 100644 --- a/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt +++ b/forge-gui/res/cardsfolder/upcoming/answered_prayers.txt @@ -3,6 +3,6 @@ ManaCost:1 W W Types:Enchantment T:Mode$ ChangesZone | ValidCard$ Creature.YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature enters the battlefield under your control, you gain 1 life. If CARDNAME isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 | SubAbility$ DBAnimate -SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Power$ 3 | Toughness$ 3 | Types$ Creature,Angel | Keywords$ Flying +SVar:DBAnimate:DB$ Animate | Defined$ TriggeredCard | Power$ 3 | Toughness$ 3 | Types$ Creature,Angel | Keywords$ Flying | ConditionDefined$ Self | ConditionPresent$ Card.nonCreature SVar:BuffedBy:Creature Oracle:Whenever a creature enters the battlefield under your control, you gain 1 life. If Answered Prayers isn't a creature, it becomes a 3/3 Angel creature with flying in addition to its other types until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt b/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt index d2f7bd1c790..102bc82c3db 100644 --- a/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt +++ b/forge-gui/res/cardsfolder/upcoming/cordial_vampire.txt @@ -2,9 +2,9 @@ Name:Cordial Vampire ManaCost:B B Types:Creature Vampire PT:1/1 -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each flying creature you control. -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigPutCounters | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each flying creature you control. -SVar:TrigPutCounters:DB$ PutCounterAll | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigPutCounters | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each vampire creature you control. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerController$ TriggeredCardController | Execute$ TrigPutCounters | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, put a +1/+1 counter on each vampire creature you control. +SVar:TrigPutCounters:DB$ PutCounterAll | ValidCards$ Creature.Vampire+YouCtrl | CounterType$ P1P1 | CounterNum$ 1 DeckHas:Ability$Counters DeckNeeds:Type$Vampire Oracle:Whenever Cordial Vampire or another creature dies, put a +1/+1 counter on each vampire creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt b/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt index fab25d4dbdd..02d5a5f92e1 100644 --- a/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt +++ b/forge-gui/res/cardsfolder/upcoming/reap_the_past.txt @@ -1,7 +1,7 @@ Name:Reap The Past ManaCost:X R G Types:Sorcery -A:SP$ ChangeZone | Cost$ X R G | Origin$ Graveyard | Destination$ Hand | ChangeType$ Card.YouOwn | TgtPrompt$ Select target creature | TargetMin$ 0 | TargetMax$ X | AtRandom$ True | SubAbility$ DBExile | References$ X | SpellDescription$ Return X cards at random from your graveyard to your hand. Exile CARDNAME. +A:SP$ ChangeZone | Cost$ X R G | Origin$ Graveyard | Destination$ Hand | ChangeType$ Card.YouOwn | ChangeNum$ X | Hidden$ True | AtRandom$ True | SubAbility$ DBExile | References$ X | SpellDescription$ Return X cards at random from your graveyard to your hand. Exile CARDNAME. SVar:X:Count$xPaid SVar:DBExile:DB$ChangeZone | Origin$ Stack | Destination$ Exile Oracle:Return X cards at random from your graveyard to your hand. Exile Reap The Past. diff --git a/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt b/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt index a4b3b3206e1..14d289193b9 100644 --- a/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt +++ b/forge-gui/res/cardsfolder/upcoming/rotwidow_pack.txt @@ -3,8 +3,8 @@ ManaCost:2 B G Types:Creature Spider PT:2/4 K:Reach -A:AB$ Token | Cost$ 3 B G ExileFromGrave<1/Creature> | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ Player.IsRemembered | LegacyImage$ g 1 2 spider reach mh1 | SubAbility$ DBLoseLife | SpellDescription$ Create a 1/2 green Spider creature token with reach, then each opponent loses 1 life for each Spider you control. +A:AB$ Token | Cost$ 3 B G ExileFromGrave<1/Creature> | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ You | LegacyImage$ g 1 2 spider reach mh1 | SubAbility$ DBLoseLife | SpellDescription$ Create a 1/2 green Spider creature token with reach, then each opponent loses 1 life for each Spider you control. SVar:DBLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ X | References$ X -SVar:X:Count$Valid Card.Spider+YouCtrl+Spider +SVar:X:Count$Valid Spider.YouCtrl SVar:NeedsToPlayVar:X GE3 Oracle:Reach\n{3}{B}{G}, Exile a creature card from your graveyard: Create a 1/2 green Spider creature token with reach, then each opponent loses 1 life for each Spider you control. diff --git a/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt b/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt index a6fd4a168c2..1702aaf01f3 100644 --- a/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt +++ b/forge-gui/res/cardsfolder/upcoming/sisay_weatherlight_captain.txt @@ -4,6 +4,6 @@ Types:Legendary Creature Human Soldier PT:2/2 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | References$ X | Description$ Equipped creature gets +1/+1 for each color among permanents you control. SVar:X:Count$ColorsCtrl Permanent.YouCtrl+Legendary+inZoneBattlefield -A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Library | Destination$ Battlefield | ChangeType$ Permanent.Legendary+cmcLEY | ChangeNum$ 1 | References$ Y | SpellDescription$ Search your library for a legendary permanent card with converted mana cost less than Sisay’s power, put that card onto the battlefield, then shuffle your library. +A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Library | Destination$ Battlefield | ChangeType$ Permanent.Legendary+cmcLEY | ChangeNum$ 1 | References$ Y | SpellDescription$ Search your library for a legendary permanent card with converted mana cost less than CARDNAME’s power, put that card onto the battlefield, then shuffle your library. SVar:Y:Count$CardPower Oracle:Sisay, Weatherlight Captain gets +1/+1 for each color among other legendary permanents you control.\n{W}{U}{B}{R}{G}: Search your library for a legendary permanent card with converted mana cost less than Sisay’s power, put that card onto the battlefield, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/upcoming/soulherder.txt b/forge-gui/res/cardsfolder/upcoming/soulherder.txt index f3f6df3d943..027744d245f 100644 --- a/forge-gui/res/cardsfolder/upcoming/soulherder.txt +++ b/forge-gui/res/cardsfolder/upcoming/soulherder.txt @@ -6,8 +6,8 @@ T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Exile | ValidCard$ Crea SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:PlayMain1:TRUE T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ ConjurerExile | OptionalDecider$ You | TriggerDescription$ At the beginning of your end step, you may exile another target creature you control, then return it to the battlefield under its owner's control. -SVar:ConjurerExile:DB$ ChangeZone | ValidTgts$ Creature.Other+YouCtrl | TgtPrompt$ Select another target creature you control | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ ConjurerReturn -SVar:RestorationReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup +SVar:ConjurerExile:DB$ ChangeZone | ChangeType$ Creature.Other+YouCtrl | ChangeNum$ 1 | Hidden$ True | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ ConjurerReturn +SVar:ConjurerReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:Whenever a creature is exiled from the battlefield, put a +1/+1 counter on Soulherder.\nAt the beginning of your end step, you may exile another target creature you control, then return that card to the battlefield under its owner's control. From 5336b42a01e8197b1ae090fc3533902c61122b99 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 1 Jun 2019 12:11:25 +0800 Subject: [PATCH 16/28] Update Throes of Chaos --- forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt index f6fc8d3061a..c1e6879b49c 100644 --- a/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt +++ b/forge-gui/res/cardsfolder/upcoming/throes_of_chaos.txt @@ -4,4 +4,6 @@ Types:Sorcery K:Cascade SVar:PlayMain1:TRUE K:Retrace +A:SP$ Pump | Cost$ 3 R | StackDescription$ None +AI:RemoveDeck:All Oracle:Cascade (When you cast a spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)\nRetrace (You may cast this card from your graveyard by discarding a land card in addition to paying its other costs.) From f25f497314e36041ddf04c24515db09183de28ba Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 22:35:32 +0100 Subject: [PATCH 17/28] Final day spoilers from forgescribe --- forge-gui/res/cardsfolder/s/soul_diviner.txt | 2 +- forge-gui/res/cardsfolder/upcoming/amorphous_axe.txt | 6 ++++++ .../res/cardsfolder/upcoming/azra_smokeshaper.txt | 9 +++++++++ .../res/cardsfolder/upcoming/birthing_boughs.txt | 5 +++++ .../cardsfolder/upcoming/bogardan_dragonheart.txt | 8 ++++++++ .../res/cardsfolder/upcoming/cave_of_temptation.txt | 8 ++++++++ .../res/cardsfolder/upcoming/cleaving_sliver.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/conifer_wurm.txt | 9 +++++++++ .../res/cardsfolder/upcoming/cunning_evasion.txt | 6 ++++++ .../res/cardsfolder/upcoming/excavating_anurid.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/eyekite.txt | 9 +++++++++ .../res/cardsfolder/upcoming/face_of_divinity.txt | 9 +++++++++ .../cardsfolder/upcoming/first_slivers_chosen.txt | 7 +++++++ .../cardsfolder/upcoming/first_sphere_gargantua.txt | 9 +++++++++ .../res/cardsfolder/upcoming/fountain_of_ichor.txt | 7 +++++++ .../res/cardsfolder/upcoming/gluttonous_slug.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/graveshifter.txt | 8 ++++++++ .../res/cardsfolder/upcoming/iceberg_cancrix.txt | 8 ++++++++ .../res/cardsfolder/upcoming/igneous_elemental.txt | 10 ++++++++++ .../res/cardsfolder/upcoming/irregular_cohort.txt | 8 ++++++++ .../cardsfolder/upcoming/knight_of_old_benalia.txt | 9 +++++++++ forge-gui/res/cardsfolder/upcoming/lancer_sliver.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/mob.txt | 6 ++++++ .../res/cardsfolder/upcoming/murasa_behemoth.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/oneirophage.txt | 8 ++++++++ .../res/cardsfolder/upcoming/phantasmal_form.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/putrid_goblin.txt | 6 ++++++ .../res/cardsfolder/upcoming/quakefoot_cyclops.txt | 11 +++++++++++ .../res/cardsfolder/upcoming/rain_of_revelation.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/rank_officer.txt | 9 +++++++++ .../res/cardsfolder/upcoming/ransack_the_lab.txt | 6 ++++++ .../res/cardsfolder/upcoming/recruit_the_worthy.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/reprobation.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/rhox_veteran.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/rime_tender.txt | 7 +++++++ .../res/cardsfolder/upcoming/saddled_rimestag.txt | 7 +++++++ forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt | 9 +++++++++ .../res/cardsfolder/upcoming/spinehorn_minotaur.txt | 7 +++++++ .../res/cardsfolder/upcoming/stirring_address.txt | 6 ++++++ .../res/cardsfolder/upcoming/treefolk_umbra.txt | 8 ++++++++ .../res/cardsfolder/upcoming/treetop_ambusher.txt | 9 +++++++++ .../res/cardsfolder/upcoming/trumpeting_herd.txt | 6 ++++++ .../res/cardsfolder/upcoming/trustworthy_scout.txt | 7 +++++++ .../res/cardsfolder/upcoming/twin_silk_spider.txt | 8 ++++++++ .../res/cardsfolder/upcoming/vengeful_devil.txt | 8 ++++++++ .../cardsfolder/upcoming/viashino_sandsprinter.txt | 12 ++++++++++++ .../res/cardsfolder/upcoming/volatile_claws.txt | 5 +++++ forge-gui/res/cardsfolder/upcoming/warteye_witch.txt | 8 ++++++++ .../res/cardsfolder/upcoming/windcaller_aven.txt | 9 +++++++++ forge-gui/res/cardsfolder/upcoming/winters_rest.txt | 10 ++++++++++ 50 files changed, 383 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/amorphous_axe.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/azra_smokeshaper.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/birthing_boughs.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/cleaving_sliver.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/conifer_wurm.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/excavating_anurid.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/eyekite.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/face_of_divinity.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/first_slivers_chosen.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/first_sphere_gargantua.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/fountain_of_ichor.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/gluttonous_slug.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/graveshifter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/iceberg_cancrix.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/igneous_elemental.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/irregular_cohort.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/knight_of_old_benalia.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/lancer_sliver.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mob.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/murasa_behemoth.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/oneirophage.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/putrid_goblin.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rain_of_revelation.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rank_officer.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ransack_the_lab.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/reprobation.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rhox_veteran.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rime_tender.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/spinehorn_minotaur.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/stirring_address.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/treefolk_umbra.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/treetop_ambusher.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/trumpeting_herd.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/twin_silk_spider.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/vengeful_devil.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/viashino_sandsprinter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/volatile_claws.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/warteye_witch.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/windcaller_aven.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/winters_rest.txt diff --git a/forge-gui/res/cardsfolder/s/soul_diviner.txt b/forge-gui/res/cardsfolder/s/soul_diviner.txt index ee5b4f516fa..fce88bb9066 100644 --- a/forge-gui/res/cardsfolder/s/soul_diviner.txt +++ b/forge-gui/res/cardsfolder/s/soul_diviner.txt @@ -3,5 +3,5 @@ ManaCost:U B Types:Creature Zombie Wizard PT:2/3 A:AB$ Draw | Cost$ T RemoveAnyCounter<1/Card.Artifact;Card.Creature;Card.Land;Card.Planeswalker/artifact, creature, land or planeswalker> | NumCards$ 1 | SpellDescription$ Draw a card. -AI:RemoveDeck:Random +AI:RemoveDeck:All Oracle:{T}, Remove a counter from an artifact, creature, land, or planeswalker you control: Draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/amorphous_axe.txt b/forge-gui/res/cardsfolder/upcoming/amorphous_axe.txt new file mode 100644 index 00000000000..4b0bb3e258a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/amorphous_axe.txt @@ -0,0 +1,6 @@ +Name:Amorphous Axe +ManaCost:2 +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddType$ AllCreatureTypes | Description$ Equipped creature gets +3/+0 and is every creature type. +K:Equip:3 +Oracle:Equipped creature gets +3/+0 and is every creature type.\nEquip {3} diff --git a/forge-gui/res/cardsfolder/upcoming/azra_smokeshaper.txt b/forge-gui/res/cardsfolder/upcoming/azra_smokeshaper.txt new file mode 100644 index 00000000000..366d10eaff4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/azra_smokeshaper.txt @@ -0,0 +1,9 @@ +Name:Azra Smokeshaper +ManaCost:3 B +Types:Creature Azra Ninja +PT:3/3 +K:Ninjutsu:1 B +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature you control gains indestructible until end of turn. +SVar:TrigPump:DB$Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Indestructible +SVar:PlayMain1:TRUE +Oracle:Ninjutsu {1}{B} ({1}{B}, Return an unblocked attacker you control to your hand: Put this card onto the battlefield tapped and attacking)\nWhen Azra Smokeshaper enters the battlefield, target creature you control gains indestructible until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/birthing_boughs.txt b/forge-gui/res/cardsfolder/upcoming/birthing_boughs.txt new file mode 100644 index 00000000000..69b042d9a3e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/birthing_boughs.txt @@ -0,0 +1,5 @@ +Name:Birthing Boughs +ManaCost:3 +Types:Artifact +A:AB$ Token | Cost$ 4 T | LegacyImage$ c 2 2 shapeshifter changeling mh1 | TokenAmount$ 1 | TokenScript$ c_2_2_shapeshifter_changeling | TokenOwner$ You | SpellDescription$ Create a 2/2 colorless Shapeshifter creature token with changeling. (It has every creature type.) +Oracle:{4}, {T}: Create a 2/2 colorless Shapeshifter creature token with changeling. (It has every creature type.) diff --git a/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt b/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt new file mode 100644 index 00000000000..e4a7f78a652 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt @@ -0,0 +1,8 @@ +Name:Bogardan Dragonheart +ManaCost:2 R +Types:Creature Human Shaman +PT:2/2 +A:AB$ Animate | Cost$ Sac<1/Creature.Other/another creature> | Power$ 4 | Toughness$ 4 | Types$ Dragon | RemoveCreatureTypes$ True | SpellDescription$ Until end of turn, CARDNAME becomes a Dragon with base power and toughness 4/4, flying, and haste. +SVar:AIPreference:SacCost$Creature.token +AI:RemoveDeck:All +Oracle:Sacrifice another creature: Until end of turn, Bogardan Dragonheart becomes a Dragon with base power and toughness 4/4, flying, and haste. diff --git a/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt b/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt new file mode 100644 index 00000000000..b51fdd8a157 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt @@ -0,0 +1,8 @@ +Name:Cave of Temptation +ManaCost: +Types:Land +A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. +A:AB$ Mana | Cost$ 1 T | Produced$ Any | SpellDescription$ Add one mana of any color. +AI:RemoveDeck:All +A:AB$ PutCounter | Cost$ 4 T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 2 | SorcerySpeed$ True | SpellDescription$ Put two +1/+1 counters on target creature. Activate this ability only any time you could cast a sorcery. +Oracle:{T}: Add {C}.\n{1}, {T}: Add one mana of any color.\n{4}, {T}, Sacrifice Cave of Temptation: Put two +1/+1 counters on target creature. Activate this ability only any time you could cast a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/cleaving_sliver.txt b/forge-gui/res/cardsfolder/upcoming/cleaving_sliver.txt new file mode 100644 index 00000000000..544d1a3d5a5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cleaving_sliver.txt @@ -0,0 +1,8 @@ +Name:Cleaving Sliver +ManaCost:3 R +Types:Creature Sliver +PT:2/2 +S:Mode$ Continuous | Affected$ Creature.Sliver+YouCtrl | AddPower$ 2 | Description$ Sliver creatures you control get +2/+0. +SVar:PlayMain1:TRUE +SVar:BuffedBy:Sliver +Oracle:Sliver creatures you control get +2/+0. diff --git a/forge-gui/res/cardsfolder/upcoming/conifer_wurm.txt b/forge-gui/res/cardsfolder/upcoming/conifer_wurm.txt new file mode 100644 index 00000000000..9088ae34f87 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/conifer_wurm.txt @@ -0,0 +1,9 @@ +Name:Conifer Wurm +ManaCost:4 G +Types:Snow Creature Wurm +PT:4/4 +K:Trample +A:AB$ Pump | Cost$ 3 G | NumAtt$ +X | NumDef$ +X | SpellDescription$ CARDNAME gets +X/+X until end of turn, where X is the number of snow permanents you control. +SVar:X:Count$Valid Permanent.Snow+YouCtrl +AI:RemoveDeck:Random +Oracle:Trample\n{3}{G}: Conifer Wurm gets +X/+X until end of turn, where X is the number of snow permanents you control. diff --git a/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt b/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt new file mode 100644 index 00000000000..c88a743a252 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt @@ -0,0 +1,6 @@ +Name:Cunning Evasion +ManaCost:1 U +Types:Enchantment +T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | Execute$ TrigBounce | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control becomes blocked, you may return it to its owner's hand. +SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ TriggeredSource +Oracle:Whenever a creature you control becomes blocked, you may return it to its owner's hand. diff --git a/forge-gui/res/cardsfolder/upcoming/excavating_anurid.txt b/forge-gui/res/cardsfolder/upcoming/excavating_anurid.txt new file mode 100644 index 00000000000..7ce7f396d4e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/excavating_anurid.txt @@ -0,0 +1,8 @@ +Name:Excavating Anurid +ManaCost:4 G +Types:Creature Frog Beast +PT:4/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, you may sacrifice a land. If you do, draw a card. +SVar:TrigDraw:AB$ Draw | Cost$ Sac<1/Land> | Defined$ You | NumCards$ 1 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Vigilance | Condition$ Threshold | Description$ Threshold Whenver As long as seven or more cards are in your graveyard, CARDNAME gets +1/+1 and has vigilance. +Oracle:When Excavating Anurid enters the battlefield, you may sacrifice a land. If you do, draw a card.\nThreshold — As long as seven or more cards are in your graveyard, Excavating Anurid gets +1/+1 and has vigilance. diff --git a/forge-gui/res/cardsfolder/upcoming/eyekite.txt b/forge-gui/res/cardsfolder/upcoming/eyekite.txt new file mode 100644 index 00000000000..20044bafee4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/eyekite.txt @@ -0,0 +1,9 @@ +Name:Eyekite +ManaCost:1 U +Types:Creature Drake +PT:1/2 +K:Flying +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | CheckSVar$ X | SVarCompare$ GE2 | Description$ CARDNAME gets +2/+0 as long as you've drawn two or more cards this turn. +SVar:X:Count$YouDrewThisTurn +AI:RemoveDeck:All +Oracle:Flying\nEyekite gets +2/+0 as long as you've drawn two or more cards this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/face_of_divinity.txt b/forge-gui/res/cardsfolder/upcoming/face_of_divinity.txt new file mode 100644 index 00000000000..5ea6cc3bed6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/face_of_divinity.txt @@ -0,0 +1,9 @@ +Name:Face of Divinity +ManaCost:2 W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Enchanted creature gets +2/+2. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy Aura.Other | AddKeyword$ First Strike & Lifelink | Description$ As long as another Aura is attached to enchanted creature, it has first strike and lifelink. +SVar:EnchantMe:Multiple +Oracle:Enchant creature\nEnchanted creature gets +2/+2.\nAs long as another Aura is attached to enchanted creature, it has first strike and lifelink. diff --git a/forge-gui/res/cardsfolder/upcoming/first_slivers_chosen.txt b/forge-gui/res/cardsfolder/upcoming/first_slivers_chosen.txt new file mode 100644 index 00000000000..edfa5b62fe5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/first_slivers_chosen.txt @@ -0,0 +1,7 @@ +Name:First Sliver's Chosen +ManaCost:4 W +Types:Creature Sliver +PT:3/3 +S:Mode$ Continuous | Affected$ Creature.Sliver+YouCtrl | AddKeyword$ Exalted | Description$ Sliver creatures you control have Exalted. +SVar:PlayMain1:TRUE +Oracle:Sliver creatures you control have exalted. (Whenever a creature you control attacks alone, it gets +1/+1 until end of turn for each instance of exalted among permanents you control.) diff --git a/forge-gui/res/cardsfolder/upcoming/first_sphere_gargantua.txt b/forge-gui/res/cardsfolder/upcoming/first_sphere_gargantua.txt new file mode 100644 index 00000000000..359d9bbdf0d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/first_sphere_gargantua.txt @@ -0,0 +1,9 @@ +Name:First-Sphere Gargantua +ManaCost:4 B B +Types:Creature Horror +PT:5/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, you draw a card and you lose 1 life. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1 +K:Unearth:2 B +Oracle:When First-Sphere Gargantua enters the battlefield, you draw a card and you lose 1 life.\nUnearth {2}{B} ({2}{B}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery) diff --git a/forge-gui/res/cardsfolder/upcoming/fountain_of_ichor.txt b/forge-gui/res/cardsfolder/upcoming/fountain_of_ichor.txt new file mode 100644 index 00000000000..36d44c9f583 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/fountain_of_ichor.txt @@ -0,0 +1,7 @@ +Name:Fountain of Ichor +ManaCost:3 +Types:Artifact +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +A:AB$ Animate | Cost$ 3 | Defined$ Self | Power$ 3 | Toughness$ 3 | Types$ Creature,Artifact,Dinosaur | SpellDescription$ CARDNAME becomes a 3/3 Dinosaur artifact creature until end of turn. +AI:RemoveDeck:Random +Oracle:{T}: Add one mana of any color.\n{3}: Fountain of Ichor becomes a 3/3 Dinosaur artifact creature until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/gluttonous_slug.txt b/forge-gui/res/cardsfolder/upcoming/gluttonous_slug.txt new file mode 100644 index 00000000000..00e358a4d68 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/gluttonous_slug.txt @@ -0,0 +1,8 @@ +Name:Gluttonous Slug +ManaCost:1 B +Types:Creature Slug Horror +PT:0/3 +K:Menace +K:Evolve +DeckHas:Ability$Counters +Oracle:Menace\nEvolve (Whenever a creature enters the battlefield under your control, if that creature has greater power or toughness than this creature, put a +1/+1 counter on this creature) diff --git a/forge-gui/res/cardsfolder/upcoming/graveshifter.txt b/forge-gui/res/cardsfolder/upcoming/graveshifter.txt new file mode 100644 index 00000000000..92295530a31 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/graveshifter.txt @@ -0,0 +1,8 @@ +Name:Graveshifter +ManaCost:3 B +Types:Creature Shapeshifter +PT:2/2 +K:Changeling +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may return target creature card from your graveyard to your hand. +SVar:TrigChangeZone:DB$ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl +Oracle:Changeling (This card is every creature type)\nWhen Graveshifter enters the battlefield, you may return target creature card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/iceberg_cancrix.txt b/forge-gui/res/cardsfolder/upcoming/iceberg_cancrix.txt new file mode 100644 index 00000000000..c57f3c5f7bc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/iceberg_cancrix.txt @@ -0,0 +1,8 @@ +Name:Iceberg Cancrix +ManaCost:1 U +Types:Snow Creature Crab +PT:0/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Permanent.Other+YouCtrl+Snow | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigMill | TriggerDescription$ Whenever another snow permanent enters the battlefield under your control, you may have target player put the top two cards of their library into their graveyard. +SVar:TrigMill:DB$Mill | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Choose a player +DeckHints:Type$Snow +Oracle:Whenever another snow permanent enters the battlefield under your control, you may have target player put the top two cards of their library into their graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/igneous_elemental.txt b/forge-gui/res/cardsfolder/upcoming/igneous_elemental.txt new file mode 100644 index 00000000000..b17af0c1025 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/igneous_elemental.txt @@ -0,0 +1,10 @@ +Name:Igneous Elemental +ManaCost:4 R R +Types:Creature Elemental +PT:4/3 +S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | EffectZone$ All | IsPresent$ Land.YouOwn | PresentZone$ Graveyard | PresentCompare$ GE1 | Description$ CARDNAME costs {2} less to cast if there is a land card in your graveyard. +AI:RemoveDeck:Random +SVar:SacMe:1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may have it deal 2 damage to target creature. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 2 +Oracle:This spell costs {2} less to cast if there is a land card in your graveyard.\nWhen Igneous Elemental enters the battlefield, you may have it deal 2 damage to target creature. diff --git a/forge-gui/res/cardsfolder/upcoming/irregular_cohort.txt b/forge-gui/res/cardsfolder/upcoming/irregular_cohort.txt new file mode 100644 index 00000000000..ce188211faf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/irregular_cohort.txt @@ -0,0 +1,8 @@ +Name:Irregular Cohort +ManaCost:2 W W +Types:Creature Shapeshifter +PT:2/2 +K:Changeling +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a colorless Shapeshifter creature token with changeling. +SVar:TrigToken:DB$ Token | LegacyImage$ c 2 2 shapeshifter changeling mh1 | TokenAmount$ 1 | TokenScript$ c_2_2_shapeshifter_changeling | TokenOwner$ You | SpellDescription$ Create a 2/2 colorless Shapeshifter creature token with changeling. (It has every creature type.) +Oracle:Changeling (This card is every creature type.)\nWhen Irregular Cohort enters the battlefield, create a 2/2 colorless Shapeshifter creature token with changeling. diff --git a/forge-gui/res/cardsfolder/upcoming/knight_of_old_benalia.txt b/forge-gui/res/cardsfolder/upcoming/knight_of_old_benalia.txt new file mode 100644 index 00000000000..b014184b6bc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/knight_of_old_benalia.txt @@ -0,0 +1,9 @@ +Name:Knight of Old Benalia +ManaCost:3 W W +Types:Creature Human Knight +PT:3/3 +K:Suspend:5:W +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ When CARDNAME enters the battlefield, other creatures you control get +1/+1 until end of turn. +SVar:TrigPumpAll:DB$PumpAll | ValidCards$ Creature.Other+YouCtrl | NumAtt$ +1 | NumDef$ +1 +SVar:PlayMain1:TRUE +Oracle:Suspend 5—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with five time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhen Knight of Old Benalia enters the battlefield, other creatures you control get +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/lancer_sliver.txt b/forge-gui/res/cardsfolder/upcoming/lancer_sliver.txt new file mode 100644 index 00000000000..28cc61a6a3b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lancer_sliver.txt @@ -0,0 +1,7 @@ +Name:Lancer Sliver +ManaCost:2 W +Types:Creature Sliver +PT:2/2 +S:Mode$ Continuous | Affected$ Creature.Sliver+YouCtrl | AddKeyword$ First Strike | Description$ Sliver creatures you control have first strike. +SVar:PlayMain1:TRUE +Oracle:Sliver creatures you control have first strike. diff --git a/forge-gui/res/cardsfolder/upcoming/mob.txt b/forge-gui/res/cardsfolder/upcoming/mob.txt new file mode 100644 index 00000000000..5db6a9a3d58 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mob.txt @@ -0,0 +1,6 @@ +Name:Mob +ManaCost:4 B +Types:Instant +K:Convoke +A:SP$ Destroy | Cost$ 4 B | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Destroy target creature. +Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nDestroy target creature. diff --git a/forge-gui/res/cardsfolder/upcoming/murasa_behemoth.txt b/forge-gui/res/cardsfolder/upcoming/murasa_behemoth.txt new file mode 100644 index 00000000000..44a9a367221 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/murasa_behemoth.txt @@ -0,0 +1,8 @@ +Name:Murasa Behemoth +ManaCost:4 G G +Types:Creature Beast +PT:5/5 +K:Trample +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME gets +3/+3 as long as there is a land card in your graveyard. +SVar:X:Count$TypeInYourYard.Land +Oracle:Trample\nMurasa Behemoth gets +3/+3 as long as there is a land card in your graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/oneirophage.txt b/forge-gui/res/cardsfolder/upcoming/oneirophage.txt new file mode 100644 index 00000000000..4ad3054d209 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/oneirophage.txt @@ -0,0 +1,8 @@ +Name:Oneirophage +ManaCost:3 U +Types:Creature Squid Illusion +PT:1/2 +K:Flying +T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw a card, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +Oracle:Flying\nWhenever you draw a card, put a +1/+1 counter on Oneirophage. diff --git a/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt b/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt new file mode 100644 index 00000000000..d20d9bc6c7b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt @@ -0,0 +1,8 @@ +Name:Phantasmal Form +ManaCost:2 U +Types:Instant +A:SP$ Animate | Cost$ 2 U | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | Power$ 3 | Toughness$ 3 | HiddenKeywords$ Flying | SubAbility$ DBAnimate | SpellDescription$ Until end of turn, up to two target creatures each have base power and toughness 3/3, gain flying, and become blue phase in addition to their other colors and types. +SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Power$ 3 | Toughness$ 3 | Keywords$ Flying | RemoveAllAbilities$ True | Colors$ Blue | Types$ Illusion | SubAbility$ DBDraw +AI:RemoveDeck:All +SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. +Oracle:Until end of turn, up to two target creatures each have base power and toughness 3/3, gain flying, and become blue Illusions in addition to their other colors and types.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/putrid_goblin.txt b/forge-gui/res/cardsfolder/upcoming/putrid_goblin.txt new file mode 100644 index 00000000000..e8874333be1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/putrid_goblin.txt @@ -0,0 +1,6 @@ +Name:Putrid Goblin +ManaCost:1 B +Types:Creature Zombie Goblin +PT:2/2 +K:Persist +Oracle:Persist (When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it.) diff --git a/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt b/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt new file mode 100644 index 00000000000..459ff2ebe26 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt @@ -0,0 +1,11 @@ +Name:Quakefoot Cyclops +ManaCost:4 R +Types:Creature Cyclops +PT:4/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, up to two target creatures can't block this turn. +SVar:TrigPump:DB$ Pump | TargetMin$ 0 | TargetMax$ 2 | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature +K:Cycling:1 R +T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ TrigCanNotBlock | TriggerDescription$ When you cycle CARDNAME, target creature can't block this turn. +SVar:TrigCanNotBlock:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't block. | TgtPrompt$ Select target creature. | IsCurse$ True | SpellDescription$ Target creature can't block this turn. +SVar:PlayMain1:TRUE +Oracle:When Quakefoot Cyclops enters the battlefield, up to two target creatures can't block this turn.\nCycling {1}{R} ({1}{R}, Discard this card: Draw a card.)\nWhen you cycle Quakefoot Cyclops, target creature can't block this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/rain_of_revelation.txt b/forge-gui/res/cardsfolder/upcoming/rain_of_revelation.txt new file mode 100644 index 00000000000..dc3fa73acac --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rain_of_revelation.txt @@ -0,0 +1,6 @@ +Name:Rain of Revelation +ManaCost:3 U +Types:Instant +A:SP$ Draw | Cost$ 3 U | NumCards$ 3 | SpellDescription$ Draw three cards, then discard a card. | SubAbility$ DBDiscard +SVar:DBDiscard:DB$Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose +Oracle:Draw three cards, then discard a card. diff --git a/forge-gui/res/cardsfolder/upcoming/rank_officer.txt b/forge-gui/res/cardsfolder/upcoming/rank_officer.txt new file mode 100644 index 00000000000..fd3402bfb6f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rank_officer.txt @@ -0,0 +1,9 @@ +Name:Rank Officer +ManaCost:3 B +Types:Creature Zombie Soldier +PT:3/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigDiscard | TriggerDescription$ When CARDNAME enters the battlefield, you may discard a card. If you do, create a 2/2 black Zombie creature token. +SVar:TrigDiscard:DB$ Discard | NumCards$ 1 | Mode$ TgtChoose | Optional$ True | SubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_2_zombie | TokenOwner$ You | LegacyImage$ b 2 2 zombie mh1 +A:AB$ LoseLife | Cost$ 1 B T ExileFromGrave<1/Creature> | Defined$ Player.Opponent | LifeAmount$ 2 | SpellDescription$ Each opponent loses 2 life. +Oracle:When Rank Officer enters the battlefield, you may discard a card. If you do, create a 2/2 black Zombie creature token.\n{1}{B}, {T}, Exile a creature card from your graveyard: Each opponent loses 2 life. diff --git a/forge-gui/res/cardsfolder/upcoming/ransack_the_lab.txt b/forge-gui/res/cardsfolder/upcoming/ransack_the_lab.txt new file mode 100644 index 00000000000..4c5f54f8a7d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ransack_the_lab.txt @@ -0,0 +1,6 @@ +Name:Ransack the Lab +ManaCost:1 B +Types:Sorcery +A:SP$ Dig | Cost$ 1 B | DigNum$ 3 | DestinationZone2$ Graveyard | SpellDescription$ Look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. +AI:RemoveDeck:All +Oracle:Look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt b/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt new file mode 100644 index 00000000000..9d2c7cd0d8f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt @@ -0,0 +1,6 @@ +Name:Recruit the Worthy +ManaCost:W +Types:Instant +K:Buyback:3 +A:SP$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier | TokenOwner$ You | LegacyImage$ w 1 1 soldier mh1 | SpellDescription$ Create a 1/1 white Soldier creature token. +Oracle:Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.)\nCreate a 1/1 white Soldier creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/reprobation.txt b/forge-gui/res/cardsfolder/upcoming/reprobation.txt new file mode 100644 index 00000000000..5ab14d536a9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reprobation.txt @@ -0,0 +1,8 @@ +Name:Reprobation +ManaCost:1 W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Curse +S:Mode$ Continuous | Affected$ Card.EnchantedBy | SetPower$ 0 | SetToughness$ 1 | RemoveAllAbilities$ True | AddType$ Coward | Description$ Enchanted creature loses all abilities and is a Berserker creature with base power and toughness 0/1. +AI:RemoveDeck:All +Oracle:Enchant creature\nEnchanted creature loses all abilities and is a Coward creature with base power and toughness 0/1. (It keeps all supertypes but loses all other types and creature types.) diff --git a/forge-gui/res/cardsfolder/upcoming/rhox_veteran.txt b/forge-gui/res/cardsfolder/upcoming/rhox_veteran.txt new file mode 100644 index 00000000000..0666de74a7e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rhox_veteran.txt @@ -0,0 +1,8 @@ +Name:Rhox Veteran +ManaCost:3 W +Types:Creature Rhino Soldier +PT:2/4 +K:Battle cry +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature an opponent controls. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls +Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)\nWhenever Rhox Veteran attacks, tap target creature an opponent controls. diff --git a/forge-gui/res/cardsfolder/upcoming/rime_tender.txt b/forge-gui/res/cardsfolder/upcoming/rime_tender.txt new file mode 100644 index 00000000000..a4ffa01b060 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rime_tender.txt @@ -0,0 +1,7 @@ +Name:Rime Tender +ManaCost:1 G +Types:Snow Creature Human Druid +PT:2/2 +A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Snow | TgtPrompt$ Select another target snow permanent | SpellDescription$ Untap another target snow permanent. +AI:RemoveDeck:Random +Oracle:{T}: Untap another target snow permanent. diff --git a/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt b/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt new file mode 100644 index 00000000000..7055686267d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt @@ -0,0 +1,7 @@ +Name:Saddled Rimestag +ManaCost:1 G +Types:Snow Creature Elk +PT:2/2 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME gets +2/+2 as long as you had another creature enter the battlefield under your control this turn. +SVar:X:Count$ThisTurnEntered.Creature.Other +Oracle:Saddled Rimestag gets +2/+2 as long as you had another creature enter the battlefield under your control this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt b/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt new file mode 100644 index 00000000000..e2c6ac24631 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt @@ -0,0 +1,9 @@ +Name:Smoke Shroud +ManaCost:1 U +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | Description$ Enchanted creature gets +1/+1 and has flying. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Ninja | TriggerZones$ Graveyard | OptionalDecider$ You | Execute$ TrigReturn | TriggerDescription$ When a Ninja enters the battlefield under your control, you may return CARDNAME from your graveyard to the battlefield attached to that creature. +SVar:TrigReturn:DB$ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | AttachedTo$ TriggeredCard +Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has flying.\nWhen a Ninja enters the battlefield under your control, you may return Smoke Shroud from your graveyard to the battlefield attached to that creature. diff --git a/forge-gui/res/cardsfolder/upcoming/spinehorn_minotaur.txt b/forge-gui/res/cardsfolder/upcoming/spinehorn_minotaur.txt new file mode 100644 index 00000000000..3e8431703f4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/spinehorn_minotaur.txt @@ -0,0 +1,7 @@ +Name:Spinehorn Minotaur +ManaCost:2 R +Types:Creature Minotaur Berserker +PT:2/3 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Double Strike | CheckSVar$ X | SVarCompare$ GE2 | Description$ As long as you've drawn two or more cards this turn, CARDNAME has double strike. +SVar:X:Count$YouDrewThisTurn +Oracle:As long as you've drawn two or more cards this turn, Spinehorn Minotaur has double strike. diff --git a/forge-gui/res/cardsfolder/upcoming/stirring_address.txt b/forge-gui/res/cardsfolder/upcoming/stirring_address.txt new file mode 100644 index 00000000000..b2ca9251b03 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/stirring_address.txt @@ -0,0 +1,6 @@ +Name:Stirring Address +ManaCost:1 W +Types:Instant +A:SP$ Pump | Cost$ 1 W | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Target creature you control gets +2/+2 until end of turn. +A:SP$ Pump | Cost$ 5 W | PrecostDesc$ Overload | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Each creature you control gets +2/+2 until end of turn. +Oracle:Target creature you control gets +2/+2 until end of turn.\nOverload {5}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/upcoming/treefolk_umbra.txt b/forge-gui/res/cardsfolder/upcoming/treefolk_umbra.txt new file mode 100644 index 00000000000..d1a3c4f3022 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/treefolk_umbra.txt @@ -0,0 +1,8 @@ +Name:Treefolk Umbra +ManaCost:2 G +Types:Enchantment Aura +K:Enchant creature +K:Totem armor +A:SP$ Attach | Cost$ 2 G | ValidTgts$ Creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ Enchanted creature gets +0/+2 and assigns combat damage equal to its toughness rather than its power. +Oracle:Enchant creature\nEnchanted creature gets +0/+2 and assigns combat damage equal to its toughness rather than its power.\nTotem armor (If enchanted creature would be destroyed, instead remove all damage from it and destroy this Aura.) diff --git a/forge-gui/res/cardsfolder/upcoming/treetop_ambusher.txt b/forge-gui/res/cardsfolder/upcoming/treetop_ambusher.txt new file mode 100644 index 00000000000..ef085db4d45 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/treetop_ambusher.txt @@ -0,0 +1,9 @@ +Name:Treetop Ambusher +ManaCost:1 G +Types:Creature Elf Berserker +PT:2/1 +K:Dash:1 G +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, target creature you control gets +1/+1 until end of turn. +SVar:TrigPump:DB$Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 1 | NumDef$ 1 +SVar:HasAttackEffect:TRUE +Oracle:Dash {1}{G} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.)\nWhenever Treetop Ambusher attacks, target creature you control gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/trumpeting_herd.txt b/forge-gui/res/cardsfolder/upcoming/trumpeting_herd.txt new file mode 100644 index 00000000000..f5fe639d7ed --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/trumpeting_herd.txt @@ -0,0 +1,6 @@ +Name:Trumpeting Herd +ManaCost:2 G G +Types:Sorcery +A:SP$ Token | Cost$ 2 G G | TokenAmount$ 1 | TokenScript$ g_3_3_elephant | TokenOwner$ You | LegacyImage$ g 3 3 elephant mh1 | SpellDescription$ Create a 3/3 green Elephant creature token. +K:Rebound +Oracle:Create a 3/3 green Elephant creature token.\nRebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt b/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt new file mode 100644 index 00000000000..331617755f8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt @@ -0,0 +1,7 @@ +Name:Trustworthy Scout +ManaCost:1 W +Types:Creature Human Scout +PT:2/2 +A:AB$ ChangeZone | Cost$ 1 W ExileFromGrave<1/CARDNAME> | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedCARDNAME | ChangeNum$ 1 | SpellDescription$ Search your library for a card named CARDNAME, reveal it, put it into your hand, then shuffle your library. +DeckHints:Name$CARDNAME +Oracle:{1}{W}, Exile Trustworthy Scout from your graveyard: Search your library for a card named Trustworthy Scout, reveal it, put it into your hand, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/upcoming/twin_silk_spider.txt b/forge-gui/res/cardsfolder/upcoming/twin_silk_spider.txt new file mode 100644 index 00000000000..cc1f05e5929 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/twin_silk_spider.txt @@ -0,0 +1,8 @@ +Name:Twin-Silk Spider +ManaCost:2 G +Types:Creature Spider +PT:1/2 +K:Reach +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 1/2 green Spider creature token with reach. +SVar:TrigToken:DB$ Token | LegacyImage$ g 1 2 spider reach mh1 | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ You +Oracle:Reach\nWhen Twin-Silk Spider enters the battlefield, create a 1/2 green Spider creature token with reach. diff --git a/forge-gui/res/cardsfolder/upcoming/vengeful_devil.txt b/forge-gui/res/cardsfolder/upcoming/vengeful_devil.txt new file mode 100644 index 00000000000..c1a1e48554e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vengeful_devil.txt @@ -0,0 +1,8 @@ +Name:Vengeful Devil +ManaCost:1 R +Types:Creature Devil +PT:1/1 +K:Haste +A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature,Player | TgtPrompt$ Select any target | NumDmg$ 1 | CheckSVar$ Morbid | SVarCompare$ GE1 | References$ Morbid | SpellDescription$ CARDNAME deals 1 damage to any target. Activate this ability only if a creature died this turn. +SVar:Morbid:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature +Oracle:Haste\nMorbid — {T}: Vengeful Devil deals 1 damage to any target. Activate this ability only if a creature died this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/viashino_sandsprinter.txt b/forge-gui/res/cardsfolder/upcoming/viashino_sandsprinter.txt new file mode 100644 index 00000000000..6c0dc9acd25 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/viashino_sandsprinter.txt @@ -0,0 +1,12 @@ +Name:Viashino Sandsprinter +ManaCost:1 R R +Types:Creature Viashino Warrior +PT:4/1 +K:Haste +K:Trample +T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ At the beginning of the end step, return CARDNAME to its owner's hand. +SVar:TrigReturn:DB$ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand +SVar:PlayMain1:TRUE +SVar:EndOfTurnLeavePlay:True +K:Cycling:R +Oracle:Trample, haste\nAt the beginning of the end step, return Viashino Sandsprinter to its owner's hand. (Return it only if it's on the battlefield.)\nCycling {R} ({R}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/upcoming/volatile_claws.txt b/forge-gui/res/cardsfolder/upcoming/volatile_claws.txt new file mode 100644 index 00000000000..1572cf3b3fe --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/volatile_claws.txt @@ -0,0 +1,5 @@ +Name:Volatile Claws +ManaCost:2 R +Types:Instant +A:SP$ PumpAll | Cost$ 2 R | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | Types$ AllCreatureTypes | SpellDescription$ Until end of turn, creatures you control get +2/+0 and gain all creature types. +Oracle:Until end of turn, creatures you control get +2/+0 and gain all creature types. diff --git a/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt b/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt new file mode 100644 index 00000000000..a6e8a08e22c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt @@ -0,0 +1,8 @@ +Name:Warteye Witch +ManaCost:2 B +Types:Creature Goblin Shaman +PT:3/2 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigScry | TriggerDescription$ Whenever CARDNAME or another creature dies, scry 1. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigScry | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, scry 1. +SVar:TrigScry:DB$ Scry | ScryNum$ 1 +Oracle:Whenever Warteye Witch or another creature dies, scry 1. diff --git a/forge-gui/res/cardsfolder/upcoming/windcaller_aven.txt b/forge-gui/res/cardsfolder/upcoming/windcaller_aven.txt new file mode 100644 index 00000000000..473291b9ad5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/windcaller_aven.txt @@ -0,0 +1,9 @@ +Name:Windcaller Aven +ManaCost:4 U U +Types:Creature Bird Wizard +PT:4/3 +K:Flying +K:Cycling:U +T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When you cycle CARDNAME, target creature gains flying until end of turn. +SVar:TrigPump:DB$Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying +Oracle:Flying\nCycling {U} ({U}, Discard this card: Draw a card.)\nWhen you cycle Windcaller Aven, target creature gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/winters_rest.txt b/forge-gui/res/cardsfolder/upcoming/winters_rest.txt new file mode 100644 index 00000000000..7454e6c2486 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/winters_rest.txt @@ -0,0 +1,10 @@ +Name:Winter's Rest +ManaCost:1 U +Types:Snow Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ KeepTapped +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, tap enchanted creature. +SVar:TrigTap:DB$ Tap | Defined$ Enchanted +S:Mode$ Continuous | Affected$ Creature.EnchantedBy+Snow+Permanent | AddKeyword$ HIDDEN CARDNAME doesn't untap during your untap step. | Description$ As long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. +AI:RemoveDeck:Random +Oracle:Enchant creature\nWhen Winter's Rest enters the battlefield, tap enchanted creature.\nAs long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. From a6b0c1c71bf6f2a86321fa7c94a3bdfd8355dbb3 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 22:41:22 +0100 Subject: [PATCH 18/28] Final day spoilers editions update --- forge-gui/res/editions/Modern Horizons.txt | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/forge-gui/res/editions/Modern Horizons.txt b/forge-gui/res/editions/Modern Horizons.txt index 4b4cab4a4a1..06136af0ee4 100644 --- a/forge-gui/res/editions/Modern Horizons.txt +++ b/forge-gui/res/editions/Modern Horizons.txt @@ -14,19 +14,32 @@ Type=Other 5 U Dismantling Blow 6 C Enduring Sliver 7 C Ephemerate +8 U Face of Divinity +9 U First Sliver's Chosen 10 R Force of Virtue 11 U Generous Gift 12 C Gilded Light 13 R Giver of Runes 14 C Impostor of the Sixth Pride +15 C Irregular Cohort 16 U King of the Pride +17 C Knight of Old Benalia +18 C Lancer Sliver 19 C Martyr's Soul 20 R On Thin Ice 21 M Ranger-Captain of Eos +22 C Recruit the Worthy +23 C Reprobation +24 C Rhox Veteran 25 C Segovian Angel 26 M Serra the Benevolent +27 C Settle Beyond Reality +28 C Shelter 29 R Sisay, Weatherlight Captain +30 C Soul-Strike Technique 31 U Splicer's Skill +32 C Stirring Address +33 C Trustworthy Scout 34 U Valiant Changeling 35 U Vesperlark 36 C Wall of One Thousand Cuts @@ -35,26 +48,34 @@ Type=Other 39 U Zhalfirin Decoy 40 R Archmage's Charm 41 R Bazaar Trademage +42 U Blizzard Strix 43 C Chillerpillar 44 C Choking Tethers +45 U Cunning Evasion 46 M Echo of Eons 47 U Everdream 48 U Exclude +49 C Eyekite 50 U Fact or Fiction 51 C Faerie Seer 52 R Force of Negation 53 R Future Sight +54 C Iceberg Cancrix 55 C Man-o'-War 56 R Marit Lage's Slumber 57 R Mirrodin Besieged 58 R Mist-Syndicate Naga 59 C Moonblade Shinobi +60 U Oneirophage +61 C Phantasmal Form 62 C Phantom Ninja 63 C Pondering Mage 64 C Prohibit +65 C Rain of Revelation 66 U Rebuild 67 C Scour All Possibilities 68 U Scuttling Sliver +69 C Smoke Shroud 70 C Spell Snuff 71 C Stream of Thought 72 C String of Disappearances @@ -62,6 +83,9 @@ Type=Other 74 U Twisted Reflection 75 M Urza, Lord High Artificer 76 U Watcher for Tomorrow +77 C Windcaller Aven +78 C Winter's Rest +79 C Azra Smokeshaper 80 R Cabal Therapist 81 U Carrion Feeder 82 C Changeling Outcast @@ -73,12 +97,23 @@ Type=Other 88 U Dregscape Sliver 89 R Endling 90 U Feaster of Fools +91 C First-Sphere Gargantua 92 R Force of Despair +93 C Gluttonous Slug +94 U Graveshifter 95 C Headless Specter 96 C Mind Rake +97 C Mob 98 R Nether Spirit 99 C Ninja of the New Moon 100 R Plague Engineer +101 C Putrid Goblin +102 C Rank Officer +103 C Ransack the Lab +104 C Return from Extinction +105 U Sadistic Obsession +106 U Shatter Assumptions +107 C Silumgar Scavenger 108 U Sling-Gang Lieutenant 109 U Smiting Helix 110 U Throatseeker @@ -86,10 +121,13 @@ Type=Other 112 U Undead Augur 113 C Unearth 114 C Venomous Changeling +115 C Warteye Witch 116 M Yawgmoth, Thran Physician 117 U Alpine Guide 118 R Aria of Flame 119 C Bladeback Sliver +120 C Bogardan Dragonheart +121 C Cleaving Sliver 122 U Firebolt 123 C Fists of Flame 124 R Force of Rage @@ -101,6 +139,7 @@ Type=Other 130 U Goblin Oriflamme 131 C Goblin War Party 132 U Hollowhead Sliver +133 C Igneous Elemental 134 C Lava Dart 135 C Magmatic Sinkhole 136 C Orcish Hellraiser @@ -109,20 +148,28 @@ Type=Other 139 U Pillage 140 R Planebound Accomplice 141 C Pyrophobia +142 C Quakefoot Cyclops 143 U Ravenous Giant 144 C Reckless Charge 145 M Seasoned Pyromancer 146 C Shenanigans +147 C Spinehorn Minotaur 148 R Spiteful Sliver 149 R Tectonic Reformation 150 U Throes of Chaos 151 U Urza's Rage +152 U Vengeful Devil +153 C Viashino Sandsprinter +154 C Volatile Claws 155 R Ayula, Queen Among Bears 156 R Ayula's Influence +157 C Bellowing Elk 158 R Collector Ouphe +159 U Conifer Wurm 160 R Crashing Footfalls 161 R Deep Forest Hermit 162 C Elvish Fury +163 C Excavating Anurid 164 R Force of Vigor 165 C Frostwalla 166 R Genesis @@ -131,9 +178,12 @@ Type=Other 169 C Krosan Tusker 170 U Llanowar Tribe 171 C Mother Bear +172 C Murasa Behemoth 173 U Nantuko Cultivator 174 C Nimble Mongoose 175 U Regrowth +176 C Rime Tender +177 U Saddled Rimestag 178 C Savage Swipe 179 U Scale Up 180 C Spore Frog @@ -141,10 +191,15 @@ Type=Other 182 U Squirrel Nest 183 U Tempered Sliver 184 C Thornado +185 C Treefolk Umbra +186 C Treetop Ambusher +187 C Trumpeting Herd +188 C Twin-Silk Spider 189 M Unbound Flourishing 190 U Wall of Blossoms 191 C Weather the Storm 192 U Webweaver Changeling +193 C Winding Way 194 U Abominable Treefolk 195 R Cloudshredder Sliver 196 R Collected Conjuring @@ -170,8 +225,11 @@ Type=Other 216 R Unsettled Mariner 217 M Wrenn and Six 218 R Altar of Dementia +219 C Amorphous Axe 220 C Arcum's Astrolabe +221 U Birthing Boughs 222 U Farmstead Gleaner +223 C Fountain of Ichor 224 U Icehide Golem 225 U Lesser Masticore 226 M Mox Tantalite @@ -185,6 +243,7 @@ Type=Other 234 U Talisman of Resilience 235 C Universal Automaton 236 U Barren Moor +237 C Cave of Temptation 238 R Fiery Islet 239 U Forgotten Cave 240 U Frostwalk Bastion From 37382af8255e3f2d2f178bab666d108472d6f1e2 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 22:45:35 +0100 Subject: [PATCH 19/28] Final day spoilers editions update --- forge-gui/res/editions/Modern Horizons.txt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/editions/Modern Horizons.txt b/forge-gui/res/editions/Modern Horizons.txt index 06136af0ee4..2fa2972acc4 100644 --- a/forge-gui/res/editions/Modern Horizons.txt +++ b/forge-gui/res/editions/Modern Horizons.txt @@ -265,14 +265,22 @@ Type=Other [tokens] -w_4_4_angel_flying_vigilance +b_2_2_zombie c_0_0_a_construct_total_artifacts +c_1_1_a_myr +c_2_2_shapeshifter_changeling +c_3_3_a_golem g_1_1_squirrel -r_1_1_goblin +g_1_2_spider_reach g_2_2_bear -r_1_1_elemental g_3_3_elephant g_4_4_rhino_trample +marit_lage +r_1_1_elemental +r_1_1_goblin +r_3_1_elemental_trample_haste u_1_1_illusion_flying -g_1_2_spider_reach +w_1_1_bird_flying +w_1_1_soldier +w_4_4_angel_flying_vigilance wb_1_1_spirit_flying \ No newline at end of file From 6f5c28e55558ec6b50aa2f36479e213b4e0732ea Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 22:46:04 +0100 Subject: [PATCH 20/28] Final day spoilers editions update --- .../res/tokenscripts/c_2_2_shapeshifter_changeling.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 forge-gui/res/tokenscripts/c_2_2_shapeshifter_changeling.txt diff --git a/forge-gui/res/tokenscripts/c_2_2_shapeshifter_changeling.txt b/forge-gui/res/tokenscripts/c_2_2_shapeshifter_changeling.txt new file mode 100644 index 00000000000..50a661a2063 --- /dev/null +++ b/forge-gui/res/tokenscripts/c_2_2_shapeshifter_changeling.txt @@ -0,0 +1,6 @@ +Name:Shapeshifter +ManaCost:no cost +Types:Creature Shapeshifter +PT:2/2 +K:Changeling +Oracle:Changeling (This token is every creature type.) \ No newline at end of file From 542a558a27bbf5a43623888621d985d05bd34901 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 May 2019 23:29:31 +0100 Subject: [PATCH 21/28] Fixed missing cost --- forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt b/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt index 9d2c7cd0d8f..8c4c81b114e 100644 --- a/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt +++ b/forge-gui/res/cardsfolder/upcoming/recruit_the_worthy.txt @@ -2,5 +2,5 @@ Name:Recruit the Worthy ManaCost:W Types:Instant K:Buyback:3 -A:SP$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier | TokenOwner$ You | LegacyImage$ w 1 1 soldier mh1 | SpellDescription$ Create a 1/1 white Soldier creature token. -Oracle:Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.)\nCreate a 1/1 white Soldier creature token. +A:SP$ Token | Cost$ W | TokenAmount$ 1 | TokenScript$ w_1_1_soldier | TokenOwner$ You | LegacyImage$ w 1 1 soldier mh1 | SpellDescription$ Create a 1/1 white Soldier creature token. +Oracle:Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.)\nCreate a 1/1 white Soldier creature token. \ No newline at end of file From 32f2be0d06c5b0bbc4c3be249806aef57e1770ec Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sat, 1 Jun 2019 06:49:16 +0100 Subject: [PATCH 22/28] Preparing for MH1 draft --- forge-gui/res/blockdata/blocks.txt | 3 +- forge-gui/res/draft/rankings.txt | 255 +++++++++++++++++++++++++++++ 2 files changed, 257 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/blockdata/blocks.txt b/forge-gui/res/blockdata/blocks.txt index c3cbcd177fb..aa33df81e26 100644 --- a/forge-gui/res/blockdata/blocks.txt +++ b/forge-gui/res/blockdata/blocks.txt @@ -79,4 +79,5 @@ Core Set 2019, 3/6/M19, M19 Guilds of Ravnica, 3/6/GRN, GRN Ultimate Masters, 3/6/M19, UMA Ravnica Allegiance, 3/6/RNA, RNA -War of the Spark, 3/6/WAR, WAR \ No newline at end of file +War of the Spark, 3/6/WAR, WAR +Modern Horizons, 3/6/MH1, MH1 \ No newline at end of file diff --git a/forge-gui/res/draft/rankings.txt b/forge-gui/res/draft/rankings.txt index 7f8b38be605..47e8b77bd0a 100644 --- a/forge-gui/res/draft/rankings.txt +++ b/forge-gui/res/draft/rankings.txt @@ -1,4 +1,259 @@ //Rank|Name|Rarity|Set +#1|Winds of Abandon|R|MH1 +#2|Serra the Benevolent|M|MH1 +#3|Sword of Truth and Justice|M|MH1 +#4|Pashalik Mons|R|MH1 +#5|Yawgmoth, Thran Physician|M|MH1 +#6|Hexdrinker|M|MH1 +#7|Endling|R|MH1 +#8|Sword of Sinew and Steel|M|MH1 +#9|Genesis|R|MH1 +#10|Ayula's Influence|R|MH1 +#11|Seasoned Pyromancer|M|MH1 +#12|On Thin Ice|R|MH1 +#13|Kess, Dissident Mage|M|MH1 +#14|Force of Virtue|R|MH1 +#15|Deep Forest Hermit|R|MH1 +#16|Cloudshredder Sliver|R|MH1 +#17|Unsettled Mariner|R|MH1 +#18|Future Sight|R|MH1 +#19|Wrenn and Six|M|MH1 +#20|Ayula, Queen Among Bears|R|MH1 +#21|Mob|C|MH1 +#22|Tectonic Reformation|R|MH1 +#23|Spiteful Sliver|R|MH1 +#24|Plague Engineer|R|MH1 +#25|Urza, Lord High Artificer|M|MH1 +#26|Astral Drift|R|MH1 +#27|Fallen Shinobi|R|MH1 +#28|Bazaar Trademage|R|MH1 +#29|Fact or Fiction|U|MH1 +#30|Twisted Reflection|U|MH1 +#31|Battle Screech|U|MH1 +#32|Thundering Djinn|U|MH1 +#33|Etchings of the Chosen|U|MH1 +#34|Giver of Runes|R|MH1 +#35|Firebolt|U|MH1 +#36|Ice-Fang Coatl|R|MH1 +#37|Graveshifter|U|MH1 +#38|Rotwidow Pack|U|MH1 +#39|Smiting Helix|U|MH1 +#40|Hogaak, Arisen Necropolis|R|MH1 +#41|Munitions Expert|U|MH1 +#42|Undead Augur|U|MH1 +#43|Magmatic Sinkhole|C|MH1 +#44|Crashing Footfalls|R|MH1 +#45|Talisman of Creativity|U|MH1 +#46|Talisman of Curiosity|U|MH1 +#47|Talisman of Hierarchy|U|MH1 +#48|Talisman of Resilience|U|MH1 +#49|Talisman of Conviction|U|MH1 +#50|Pyrophobia|C|MH1 +#51|Good-Fortune Unicorn|U|MH1 +#52|Oneirophage|U|MH1 +#53|Soulherder|U|MH1 +#54|Marit Lage's Slumber|R|MH1 +#55|Squirrel Nest|U|MH1 +#56|Regrowth|U|MH1 +#57|Morophon, the Boundless|M|MH1 +#58|Abominable Treefolk|U|MH1 +#59|Exclude|U|MH1 +#60|Urza's Rage|U|MH1 +#61|Mirrodin Besieged|R|MH1 +#62|Defile|C|MH1 +#63|Mist-Syndicate Naga|R|MH1 +#64|Kaya's Guile|R|MH1 +#65|Lesser Masticore|U|MH1 +#66|Sling-Gang Lieutenant|U|MH1 +#67|Feaster of Fools|U|MH1 +#68|Splicer's Skill|U|MH1 +#69|Scrapyard Recombiner|R|MH1 +#70|Dregscape Sliver|U|MH1 +#71|Man-o'-War|C|MH1 +#72|Wing Shards|U|MH1 +#73|Sadistic Obsession|U|MH1 +#74|Windcaller Aven|C|MH1 +#75|Irregular Cohort|C|MH1 +#76|Alpine Guide|U|MH1 +#77|Krosan Tusker|C|MH1 +#78|Forgotten Cave|U|MH1 +#79|Tranquil Thicket|U|MH1 +#80|Dead of Winter|R|MH1 +#81|Ore-Scale Guardian|U|MH1 +#82|Valiant Changeling|U|MH1 +#83|Nantuko Cultivator|U|MH1 +#84|Ranger-Captain of Eos|M|MH1 +#85|Crypt Rats|U|MH1 +#86|Scale Up|U|MH1 +#87|Force of Despair|R|MH1 +#88|Goblin Matron|U|MH1 +#89|Lightning Skelemental|R|MH1 +#90|Saddled Rimestag|U|MH1 +#91|Rime Tender|C|MH1 +#92|Vengeful Devil|U|MH1 +#93|Rhox Veteran|C|MH1 +#94|Wall of Blossoms|U|MH1 +#95|Watcher for Tomorrow|U|MH1 +#96|Reap the Past|R|MH1 +#97|Secluded Steppe|U|MH1 +#98|Lonely Sandbar|U|MH1 +#99|Barren Moor|U|MH1 +#100|Cordial Vampire|R|MH1 +#101|Carrion Feeder|U|MH1 +#102|Enduring Sliver|C|MH1 +#103|Webweaver Changeling|U|MH1 +#104|Ingenious Infiltrator|U|MH1 +#105|Hollowhead Sliver|U|MH1 +#106|Force of Rage|R|MH1 +#107|Mother Bear|C|MH1 +#108|Ravenous Giant|U|MH1 +#109|Lavabelly Sliver|U|MH1 +#110|Waterlogged Grove|R|MH1 +#111|Silent Clearing|R|MH1 +#112|Nurturing Peatland|R|MH1 +#113|Sunbaked Canyon|R|MH1 +#114|Fiery Islet|R|MH1 +#115|Pondering Mage|C|MH1 +#116|Snow-Covered Forest|L|MH1 +#117|Snow-Covered Island|L|MH1 +#118|Conifer Wurm|U|MH1 +#119|Quakefoot Cyclops|C|MH1 +#120|Cleaving Sliver|C|MH1 +#121|First-Sphere Gargantua|C|MH1 +#122|Settle Beyond Reality|C|MH1 +#123|First Sliver's Chosen|U|MH1 +#124|Throatseeker|U|MH1 +#125|Reckless Charge|C|MH1 +#126|Llanowar Tribe|U|MH1 +#127|Throes of Chaos|U|MH1 +#128|Ruination Rioter|U|MH1 +#129|Eladamri's Call|R|MH1 +#130|Archmage's Charm|R|MH1 +#131|King of the Pride|U|MH1 +#132|Mox Tantalite|M|MH1 +#133|Zhalfirin Decoy|U|MH1 +#134|Frostwalk Bastion|U|MH1 +#135|Venomous Changeling|C|MH1 +#136|Goblin War Party|C|MH1 +#137|Savage Swipe|C|MH1 +#138|Prismatic Vista|R|MH1 +#139|Cabal Therapist|R|MH1 +#140|Birthing Boughs|U|MH1 +#141|Twin-Silk Spider|C|MH1 +#142|Treefolk Umbra|C|MH1 +#143|Murasa Behemoth|C|MH1 +#144|Igneous Elemental|C|MH1 +#145|Silumgar Scavenger|C|MH1 +#146|Ransack the Lab|C|MH1 +#147|Putrid Goblin|C|MH1 +#148|Rain of Revelation|C|MH1 +#149|Blizzard Strix|U|MH1 +#150|Recruit the Worthy|C|MH1 +#151|Lancer Sliver|C|MH1 +#152|Moonblade Shinobi|C|MH1 +#153|Vesperlark|U|MH1 +#154|Answered Prayers|C|MH1 +#155|Unearth|C|MH1 +#156|Bladeback Sliver|C|MH1 +#157|Goblin Oriflamme|U|MH1 +#158|String of Disappearances|C|MH1 +#159|Orcish Hellraiser|C|MH1 +#160|Springbloom Druid|C|MH1 +#161|Farmstead Gleaner|U|MH1 +#162|Altar of Dementia|R|MH1 +#163|Tempered Sliver|U|MH1 +#164|Scour All Possibilities|C|MH1 +#165|Impostor of the Sixth Pride|C|MH1 +#166|Prohibit|C|MH1 +#167|Snow-Covered Mountain|L|MH1 +#168|Snow-Covered Swamp|L|MH1 +#169|Snow-Covered Plains|L|MH1 +#170|Cave of Temptation|C|MH1 +#171|Fountain of Ichor|C|MH1 +#172|Winding Way|C|MH1 +#173|Trumpeting Herd|C|MH1 +#174|Bellowing Elk|C|MH1 +#175|Warteye Witch|C|MH1 +#176|Return from Extinction|C|MH1 +#177|Gluttonous Slug|C|MH1 +#178|Winter's Rest|C|MH1 +#179|Phantasmal Form|C|MH1 +#180|Cunning Evasion|U|MH1 +#181|Reprobation|C|MH1 +#182|Phantom Ninja|C|MH1 +#183|Everdream|U|MH1 +#184|Goblin Champion|C|MH1 +#185|Scuttling Sliver|U|MH1 +#186|Pillage|U|MH1 +#187|Changeling Outcast|C|MH1 +#188|Chillerpillar|C|MH1 +#189|Elvish Fury|C|MH1 +#190|Martyr's Soul|C|MH1 +#191|Headless Specter|C|MH1 +#192|Choking Tethers|C|MH1 +#193|Force of Negation|R|MH1 +#194|Amorphous Axe|C|MH1 +#195|Treetop Ambusher|C|MH1 +#196|Glacial Revelation|U|MH1 +#197|Excavating Anurid|C|MH1 +#198|Volatile Claws|C|MH1 +#199|Spinehorn Minotaur|C|MH1 +#200|Bogardan Dragonheart|C|MH1 +#201|Rank Officer|C|MH1 +#202|Azra Smokeshaper|C|MH1 +#203|Smoke Shroud|C|MH1 +#204|Eyekite|C|MH1 +#205|Trustworthy Scout|C|MH1 +#206|Stirring Address|C|MH1 +#207|Shelter|C|MH1 +#208|Ninja of the New Moon|C|MH1 +#209|Universal Automaton|C|MH1 +#210|Faerie Seer|C|MH1 +#211|Tribute Mage|U|MH1 +#212|Spell Snuff|C|MH1 +#213|Umezawa's Charm|C|MH1 +#214|Lava Dart|C|MH1 +#215|Stream of Thought|C|MH1 +#216|Wall of One Thousand Cuts|C|MH1 +#217|Viashino Sandsprinter|C|MH1 +#218|Soul-Strike Technique|C|MH1 +#219|Knight of Old Benalia|C|MH1 +#220|Face of Divinity|U|MH1 +#221|Thornado|C|MH1 +#222|Frostwalla|C|MH1 +#223|Mind Rake|C|MH1 +#224|Ephemerate|C|MH1 +#225|Collector Ouphe|R|MH1 +#226|Goatnap|C|MH1 +#227|Generous Gift|U|MH1 +#228|Sisay, Weatherlight Captain|R|MH1 +#229|Diabolic Edict|C|MH1 +#230|Dismantling Blow|U|MH1 +#231|Nimble Mongoose|C|MH1 +#232|Iceberg Cancrix|C|MH1 +#233|Gilded Light|C|MH1 +#234|Echo of Eons|M|MH1 +#235|Arcum's Astrolabe|C|MH1 +#236|Icehide Golem|U|MH1 +#237|Hall of Heliod's Generosity|R|MH1 +#238|Unbound Flourishing|M|MH1 +#239|Aria of Flame|R|MH1 +#240|Force of Vigor|R|MH1 +#241|Fists of Flame|C|MH1 +#242|Rebuild|U|MH1 +#243|Segovian Angel|C|MH1 +#244|Weather the Storm|C|MH1 +#245|Nature's Chant|C|MH1 +#246|Collected Conjuring|R|MH1 +#247|Nether Spirit|R|MH1 +#248|Goblin Engineer|R|MH1 +#249|Shatter Assumptions|U|MH1 +#250|Geomancer's Gambit|C|MH1 +#251|Shenanigans|C|MH1 +#252|Planebound Accomplice|R|MH1 +#253|Spore Frog|C|MH1 +#254|The First Sliver|M|MH1 +//Rank|Name|Rarity|Set #1|Liliana, Dreadhorde General|M|WAR #2|God-Eternal Oketra|M|WAR #3|Roalesk, Apex Hybrid|M|WAR From 9f3c5e1ea1f1d722098265b7ceafd4d59b3e872a Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sat, 1 Jun 2019 06:54:55 +0100 Subject: [PATCH 23/28] Preparing for MH1 draft boosters --- forge-gui/res/blockdata/printsheets.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/blockdata/printsheets.txt b/forge-gui/res/blockdata/printsheets.txt index 4d5722eb393..af99de474f2 100644 --- a/forge-gui/res/blockdata/printsheets.txt +++ b/forge-gui/res/blockdata/printsheets.txt @@ -1442,4 +1442,19 @@ Guildpact Informant Jace's Projection Jace's Ruse Simic Guildgate|WAR -Tezzeret, Master of the Bridge \ No newline at end of file +Tezzeret, Master of the Bridge + +[MH1 Lands] +10 Snow-Covered Plains|MH1 +10 Snow-Covered Island|MH1 +10 Snow-Covered Swamp|MH1 +10 Snow-Covered Mountain|MH1 +10 Snow-Covered Forest|MH1 + +[MH1 Secret Cards] +Flusterstorm +Snow-Covered Plains +Snow-Covered Island +Snow-Covered Swamp +Snow-Covered Mountain +Snow-Covered Forest \ No newline at end of file From 81ff90870598b480570522b2df85cc2f86e6505e Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sat, 1 Jun 2019 07:31:09 +0100 Subject: [PATCH 24/28] Reverted soul diviner change now AI issue fixed --- forge-gui/res/cardsfolder/s/soul_diviner.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/soul_diviner.txt b/forge-gui/res/cardsfolder/s/soul_diviner.txt index fce88bb9066..ee5b4f516fa 100644 --- a/forge-gui/res/cardsfolder/s/soul_diviner.txt +++ b/forge-gui/res/cardsfolder/s/soul_diviner.txt @@ -3,5 +3,5 @@ ManaCost:U B Types:Creature Zombie Wizard PT:2/3 A:AB$ Draw | Cost$ T RemoveAnyCounter<1/Card.Artifact;Card.Creature;Card.Land;Card.Planeswalker/artifact, creature, land or planeswalker> | NumCards$ 1 | SpellDescription$ Draw a card. -AI:RemoveDeck:All +AI:RemoveDeck:Random Oracle:{T}, Remove a counter from an artifact, creature, land, or planeswalker you control: Draw a card. From 0dacd48c009d0ee096f168c9c770a9a5094a88c7 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 1 Jun 2019 10:05:43 +0300 Subject: [PATCH 25/28] - Add the Human Sideboard for AI option to mobile Forge. --- forge-gui-mobile/src/forge/screens/settings/SettingsPage.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java index 36c95917843..a880ff379fa 100644 --- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java +++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java @@ -121,6 +121,10 @@ public class SettingsPage extends TabPage { "Performance Mode", "Disables additional static abilities checks to speed up the game engine. (Warning: breaks some 'as if had flash' scenarios when casting cards owned by opponents)."), 1); + lstSettings.addItem(new BooleanSetting(FPref.MATCH_SIDEBOARD_FOR_AI, + "Human Sideboard for AI", + "Allows users to sideboard with the AIs deck and sideboard in constructed game formats."), + 1); lstSettings.addItem(new BooleanSetting(FPref.FILTERED_HANDS, "Filtered Hands", "Generates two starting hands and keeps the one with the closest to average land count for the deck. (Requires restart)"), From 29b35df7acce6d1907dc1f07ddc7ad2768efeb5b Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 1 Jun 2019 15:48:35 +0800 Subject: [PATCH 26/28] Update some scripts --- forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt | 2 +- forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt | 2 +- forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt | 2 +- forge-gui/res/cardsfolder/upcoming/mind_rake.txt | 2 +- forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt | 3 +-- forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt | 2 +- forge-gui/res/cardsfolder/upcoming/rank_officer.txt | 5 ++--- forge-gui/res/cardsfolder/upcoming/reprobation.txt | 2 +- forge-gui/res/cardsfolder/upcoming/rime_tender.txt | 2 +- forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt | 2 +- forge-gui/res/cardsfolder/upcoming/scale_up.txt | 2 +- forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt | 2 +- forge-gui/res/cardsfolder/upcoming/stirring_address.txt | 2 +- forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt | 3 +-- forge-gui/res/cardsfolder/upcoming/warteye_witch.txt | 2 +- forge-gui/res/cardsfolder/upcoming/winds_of_abandon.txt | 5 ----- forge-gui/res/cardsfolder/upcoming/winters_rest.txt | 2 +- 17 files changed, 17 insertions(+), 25 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt b/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt index e4a7f78a652..715809c675a 100644 --- a/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt +++ b/forge-gui/res/cardsfolder/upcoming/bogardan_dragonheart.txt @@ -2,7 +2,7 @@ Name:Bogardan Dragonheart ManaCost:2 R Types:Creature Human Shaman PT:2/2 -A:AB$ Animate | Cost$ Sac<1/Creature.Other/another creature> | Power$ 4 | Toughness$ 4 | Types$ Dragon | RemoveCreatureTypes$ True | SpellDescription$ Until end of turn, CARDNAME becomes a Dragon with base power and toughness 4/4, flying, and haste. +A:AB$ Animate | Cost$ Sac<1/Creature.Other/another creature> | Power$ 4 | Toughness$ 4 | Types$ Dragon | RemoveCreatureTypes$ True | Keywords$ Flying & Haste | SpellDescription$ Until end of turn, CARDNAME becomes a Dragon with base power and toughness 4/4, flying, and haste. SVar:AIPreference:SacCost$Creature.token AI:RemoveDeck:All Oracle:Sacrifice another creature: Until end of turn, Bogardan Dragonheart becomes a Dragon with base power and toughness 4/4, flying, and haste. diff --git a/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt b/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt index b51fdd8a157..343471c9d7c 100644 --- a/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt +++ b/forge-gui/res/cardsfolder/upcoming/cave_of_temptation.txt @@ -1,5 +1,5 @@ Name:Cave of Temptation -ManaCost: +ManaCost:no cost Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Mana | Cost$ 1 T | Produced$ Any | SpellDescription$ Add one mana of any color. diff --git a/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt b/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt index c88a743a252..3ca429261cb 100644 --- a/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt +++ b/forge-gui/res/cardsfolder/upcoming/cunning_evasion.txt @@ -2,5 +2,5 @@ Name:Cunning Evasion ManaCost:1 U Types:Enchantment T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | Execute$ TrigBounce | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control becomes blocked, you may return it to its owner's hand. -SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ TriggeredSource +SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ TriggeredAttacker Oracle:Whenever a creature you control becomes blocked, you may return it to its owner's hand. diff --git a/forge-gui/res/cardsfolder/upcoming/mind_rake.txt b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt index 2b6801ba4e3..3b734788478 100644 --- a/forge-gui/res/cardsfolder/upcoming/mind_rake.txt +++ b/forge-gui/res/cardsfolder/upcoming/mind_rake.txt @@ -2,5 +2,5 @@ Name:Mind Rake ManaCost:2 B Types:Sorcery A:SP$ Discard | Cost$ 2 B | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. -A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Each player discards two cards. +A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | CostDesc$ {1}{B} | NonBasicSpell$ True | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each player discards two cards. Oracle:Target player discards two cards.\nOverload {1}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each".) diff --git a/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt b/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt index d20d9bc6c7b..0b3075c873c 100644 --- a/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt +++ b/forge-gui/res/cardsfolder/upcoming/phantasmal_form.txt @@ -1,8 +1,7 @@ Name:Phantasmal Form ManaCost:2 U Types:Instant -A:SP$ Animate | Cost$ 2 U | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | Power$ 3 | Toughness$ 3 | HiddenKeywords$ Flying | SubAbility$ DBAnimate | SpellDescription$ Until end of turn, up to two target creatures each have base power and toughness 3/3, gain flying, and become blue phase in addition to their other colors and types. -SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Power$ 3 | Toughness$ 3 | Keywords$ Flying | RemoveAllAbilities$ True | Colors$ Blue | Types$ Illusion | SubAbility$ DBDraw +A:SP$ Animate | Cost$ 2 U | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | Power$ 3 | Toughness$ 3 | Keywords$ Flying | Colors$ Blue | Types$ Illusion | SpellDescription$ Until end of turn, up to two target creatures each have base power and toughness 3/3, gain flying, and become blue phase in addition to their other colors and types. AI:RemoveDeck:All SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. Oracle:Until end of turn, up to two target creatures each have base power and toughness 3/3, gain flying, and become blue Illusions in addition to their other colors and types.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt b/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt index 459ff2ebe26..ca753f235ef 100644 --- a/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt +++ b/forge-gui/res/cardsfolder/upcoming/quakefoot_cyclops.txt @@ -6,6 +6,6 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigPump:DB$ Pump | TargetMin$ 0 | TargetMax$ 2 | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature K:Cycling:1 R T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ TrigCanNotBlock | TriggerDescription$ When you cycle CARDNAME, target creature can't block this turn. -SVar:TrigCanNotBlock:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't block. | TgtPrompt$ Select target creature. | IsCurse$ True | SpellDescription$ Target creature can't block this turn. +SVar:TrigCanNotBlock:DB$ Pump | ValidTgts$ Creature | KW$ HIDDEN CARDNAME can't block. | TgtPrompt$ Select target creature. | IsCurse$ True SVar:PlayMain1:TRUE Oracle:When Quakefoot Cyclops enters the battlefield, up to two target creatures can't block this turn.\nCycling {1}{R} ({1}{R}, Discard this card: Draw a card.)\nWhen you cycle Quakefoot Cyclops, target creature can't block this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/rank_officer.txt b/forge-gui/res/cardsfolder/upcoming/rank_officer.txt index fd3402bfb6f..25de436829a 100644 --- a/forge-gui/res/cardsfolder/upcoming/rank_officer.txt +++ b/forge-gui/res/cardsfolder/upcoming/rank_officer.txt @@ -2,8 +2,7 @@ Name:Rank Officer ManaCost:3 B Types:Creature Zombie Soldier PT:3/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigDiscard | TriggerDescription$ When CARDNAME enters the battlefield, you may discard a card. If you do, create a 2/2 black Zombie creature token. -SVar:TrigDiscard:DB$ Discard | NumCards$ 1 | Mode$ TgtChoose | Optional$ True | SubAbility$ DBToken -SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_2_zombie | TokenOwner$ You | LegacyImage$ b 2 2 zombie mh1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ DBToken | TriggerDescription$ When CARDNAME enters the battlefield, you may discard a card. If you do, create a 2/2 black Zombie creature token. +SVar:DBToken:AB$ Token | Cost$ Discard<1/Card> | TokenAmount$ 1 | TokenScript$ b_2_2_zombie | TokenOwner$ You | LegacyImage$ b 2 2 zombie mh1 A:AB$ LoseLife | Cost$ 1 B T ExileFromGrave<1/Creature> | Defined$ Player.Opponent | LifeAmount$ 2 | SpellDescription$ Each opponent loses 2 life. Oracle:When Rank Officer enters the battlefield, you may discard a card. If you do, create a 2/2 black Zombie creature token.\n{1}{B}, {T}, Exile a creature card from your graveyard: Each opponent loses 2 life. diff --git a/forge-gui/res/cardsfolder/upcoming/reprobation.txt b/forge-gui/res/cardsfolder/upcoming/reprobation.txt index 5ab14d536a9..a7728ef50a1 100644 --- a/forge-gui/res/cardsfolder/upcoming/reprobation.txt +++ b/forge-gui/res/cardsfolder/upcoming/reprobation.txt @@ -3,6 +3,6 @@ ManaCost:1 W Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Curse -S:Mode$ Continuous | Affected$ Card.EnchantedBy | SetPower$ 0 | SetToughness$ 1 | RemoveAllAbilities$ True | AddType$ Coward | Description$ Enchanted creature loses all abilities and is a Berserker creature with base power and toughness 0/1. +S:Mode$ Continuous | Affected$ Card.EnchantedBy | SetPower$ 0 | SetToughness$ 1 | RemoveAllAbilities$ True | AddType$ Coward | Description$ Enchanted creature loses all abilities and is a Coward creature with base power and toughness 0/1. AI:RemoveDeck:All Oracle:Enchant creature\nEnchanted creature loses all abilities and is a Coward creature with base power and toughness 0/1. (It keeps all supertypes but loses all other types and creature types.) diff --git a/forge-gui/res/cardsfolder/upcoming/rime_tender.txt b/forge-gui/res/cardsfolder/upcoming/rime_tender.txt index a4ffa01b060..3d9336a8397 100644 --- a/forge-gui/res/cardsfolder/upcoming/rime_tender.txt +++ b/forge-gui/res/cardsfolder/upcoming/rime_tender.txt @@ -2,6 +2,6 @@ Name:Rime Tender ManaCost:1 G Types:Snow Creature Human Druid PT:2/2 -A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Snow | TgtPrompt$ Select another target snow permanent | SpellDescription$ Untap another target snow permanent. +A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Other+Snow | TgtPrompt$ Select another target snow permanent | SpellDescription$ Untap another target snow permanent. AI:RemoveDeck:Random Oracle:{T}: Untap another target snow permanent. diff --git a/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt b/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt index 7055686267d..2c7c2280335 100644 --- a/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt +++ b/forge-gui/res/cardsfolder/upcoming/saddled_rimestag.txt @@ -3,5 +3,5 @@ ManaCost:1 G Types:Snow Creature Elk PT:2/2 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME gets +2/+2 as long as you had another creature enter the battlefield under your control this turn. -SVar:X:Count$ThisTurnEntered.Creature.Other +SVar:X:Count$ThisTurnEntered_Battlefield_Creature.YouCtrl+Other Oracle:Saddled Rimestag gets +2/+2 as long as you had another creature enter the battlefield under your control this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/scale_up.txt b/forge-gui/res/cardsfolder/upcoming/scale_up.txt index a3534ca333b..0b757d1ddd9 100644 --- a/forge-gui/res/cardsfolder/upcoming/scale_up.txt +++ b/forge-gui/res/cardsfolder/upcoming/scale_up.txt @@ -2,5 +2,5 @@ Name:Scale Up ManaCost:G Types:Sorcery A:SP$ Animate | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. -A:SP$ AnimateAll | Cost$ 4 G G | PrecostDesc$ Overload | CostDesc$ {4}{G}{G} | ValidCards$ Creature.YouCtrl | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. +A:SP$ AnimateAll | Cost$ 4 G G | PrecostDesc$ Overload | CostDesc$ {4}{G}{G} | NonBasicSpell$ True | ValidCards$ Creature.YouCtrl | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. Oracle:Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4.\nOverload {4}{G}{G} diff --git a/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt b/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt index e2c6ac24631..7cca9abeb0f 100644 --- a/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt +++ b/forge-gui/res/cardsfolder/upcoming/smoke_shroud.txt @@ -4,6 +4,6 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | Description$ Enchanted creature gets +1/+1 and has flying. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Ninja | TriggerZones$ Graveyard | OptionalDecider$ You | Execute$ TrigReturn | TriggerDescription$ When a Ninja enters the battlefield under your control, you may return CARDNAME from your graveyard to the battlefield attached to that creature. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Ninja+YouCtrl | TriggerZones$ Graveyard | OptionalDecider$ You | Execute$ TrigReturn | TriggerDescription$ When a Ninja enters the battlefield under your control, you may return CARDNAME from your graveyard to the battlefield attached to that creature. SVar:TrigReturn:DB$ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | AttachedTo$ TriggeredCard Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has flying.\nWhen a Ninja enters the battlefield under your control, you may return Smoke Shroud from your graveyard to the battlefield attached to that creature. diff --git a/forge-gui/res/cardsfolder/upcoming/stirring_address.txt b/forge-gui/res/cardsfolder/upcoming/stirring_address.txt index b2ca9251b03..dabf2be4034 100644 --- a/forge-gui/res/cardsfolder/upcoming/stirring_address.txt +++ b/forge-gui/res/cardsfolder/upcoming/stirring_address.txt @@ -2,5 +2,5 @@ Name:Stirring Address ManaCost:1 W Types:Instant A:SP$ Pump | Cost$ 1 W | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Target creature you control gets +2/+2 until end of turn. -A:SP$ Pump | Cost$ 5 W | PrecostDesc$ Overload | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Each creature you control gets +2/+2 until end of turn. +A:SP$ Pump | Cost$ 5 W | PrecostDesc$ Overload | CostDesc$ {5}{W} | NonBasicSpell$ True | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you control gets +2/+2 until end of turn. Oracle:Target creature you control gets +2/+2 until end of turn.\nOverload {5}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt b/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt index 331617755f8..8a8df6d01b7 100644 --- a/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt +++ b/forge-gui/res/cardsfolder/upcoming/trustworthy_scout.txt @@ -2,6 +2,5 @@ Name:Trustworthy Scout ManaCost:1 W Types:Creature Human Scout PT:2/2 -A:AB$ ChangeZone | Cost$ 1 W ExileFromGrave<1/CARDNAME> | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedCARDNAME | ChangeNum$ 1 | SpellDescription$ Search your library for a card named CARDNAME, reveal it, put it into your hand, then shuffle your library. -DeckHints:Name$CARDNAME +A:AB$ ChangeZone | Cost$ 1 W ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedTrustworthy Scout | ChangeNum$ 1 | SpellDescription$ Search your library for a card named Trustworthy Scout, reveal it, put it into your hand, then shuffle your library. Oracle:{1}{W}, Exile Trustworthy Scout from your graveyard: Search your library for a card named Trustworthy Scout, reveal it, put it into your hand, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt b/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt index a6e8a08e22c..5b28599e63d 100644 --- a/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt +++ b/forge-gui/res/cardsfolder/upcoming/warteye_witch.txt @@ -3,6 +3,6 @@ ManaCost:2 B Types:Creature Goblin Shaman PT:3/2 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigScry | TriggerDescription$ Whenever CARDNAME or another creature dies, scry 1. -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigScry | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, scry 1. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigScry | TriggerController$ TriggeredCardController | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature dies, scry 1. SVar:TrigScry:DB$ Scry | ScryNum$ 1 Oracle:Whenever Warteye Witch or another creature dies, scry 1. diff --git a/forge-gui/res/cardsfolder/upcoming/winds_of_abandon.txt b/forge-gui/res/cardsfolder/upcoming/winds_of_abandon.txt index f14c79bea93..454f79fbe8a 100644 --- a/forge-gui/res/cardsfolder/upcoming/winds_of_abandon.txt +++ b/forge-gui/res/cardsfolder/upcoming/winds_of_abandon.txt @@ -1,15 +1,10 @@ Name:Winds of Abandon ManaCost:1 W Types:Sorcery - A:SP$ ChangeZone | Cost$ 1 W | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SubAbility$ DBGetLands | RememberLKI$ True | SpellDescription$ Exile target creature you don’t control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle their libraries. - A:SP$ ChangeZoneAll | Cost$ 4 W W | ChangeType$ Creature.YouDontCtrl | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBRepeat | PrecostDesc$ Overload | CostDesc$ {4}{W}{W} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") - SVar:DBGetLandsAll:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBGetLandsOne | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True - SVar:DBGetLandsOne:DB$ ChangeZone | Optional$ True | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ X | References$ X | DefinedPlayer$ Player.IsRemembered | ShuffleNonMandatory$ False SVar:X:RememberedLKI$FilterControlledByRemembered_Number$1 - Oracle:Exile target creature you don’t control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle their libraries.\nOverload {4}{W}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of “target” with “each.”) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/winters_rest.txt b/forge-gui/res/cardsfolder/upcoming/winters_rest.txt index 7454e6c2486..b6727e0d52f 100644 --- a/forge-gui/res/cardsfolder/upcoming/winters_rest.txt +++ b/forge-gui/res/cardsfolder/upcoming/winters_rest.txt @@ -5,6 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ KeepTapped T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, tap enchanted creature. SVar:TrigTap:DB$ Tap | Defined$ Enchanted -S:Mode$ Continuous | Affected$ Creature.EnchantedBy+Snow+Permanent | AddKeyword$ HIDDEN CARDNAME doesn't untap during your untap step. | Description$ As long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ HIDDEN CARDNAME doesn't untap during your untap step. | IsPresent$ Permanent.Snow+Other+YouCtrl | Description$ As long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. AI:RemoveDeck:Random Oracle:Enchant creature\nWhen Winter's Rest enters the battlefield, tap enchanted creature.\nAs long as you control another snow permanent, enchanted creature doesn't untap during its controller's untap step. From 86bc2b215ea01a28ae9d03322195c8384ad90d90 Mon Sep 17 00:00:00 2001 From: Charles Baker Date: Sat, 1 Jun 2019 11:24:59 +0000 Subject: [PATCH 27/28] Ephemerate --- forge-gui/res/cardsfolder/upcoming/ephemerate.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/ephemerate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ephemerate.txt b/forge-gui/res/cardsfolder/upcoming/ephemerate.txt new file mode 100644 index 00000000000..785917f4fc9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ephemerate.txt @@ -0,0 +1,8 @@ +Name:Ephemerate +ManaCost:W +Types:Instant +K:Rebound +A:SP$ ChangeZone | Cost$ W | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you control, then return that card to the battlefield under your control. +SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Exile target creature you control, then return that card to the battlefield under your control. \nRebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may case this card from exile without paying its mana cost.) \ No newline at end of file From 095fbda8a3eed7219fc11c3351b4840ec5e50302 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 1 Jun 2019 19:13:27 +0300 Subject: [PATCH 28/28] - Fix a reference in Finale of Devastation. --- forge-gui/res/cardsfolder/f/finale_of_devastation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/f/finale_of_devastation.txt b/forge-gui/res/cardsfolder/f/finale_of_devastation.txt index ebfcf16973b..acf224c4426 100644 --- a/forge-gui/res/cardsfolder/f/finale_of_devastation.txt +++ b/forge-gui/res/cardsfolder/f/finale_of_devastation.txt @@ -1,7 +1,7 @@ Name:Finale of Devastation ManaCost:X G G Types:Sorcery -A:SP$ ChangeZone | Cost$ X G G | ChangeType$ Creature.YouCtrl+cmcLEX | Hidden$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ShuffleNonMandatory$ True | SubAbility$ DBPump | SpellDescription$ Search your library and/or graveyard for a creature card with converted mana cost X or less and put it onto the battlefield. If you search your library this way, shuffle it. If X is 10 or more, creatures you control get +X/+X and gain haste until end of turn. +A:SP$ ChangeZone | Cost$ X G G | ChangeType$ Creature.YouCtrl+cmcLEX | Hidden$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ShuffleNonMandatory$ True | SubAbility$ DBPump | References$ X | SpellDescription$ Search your library and/or graveyard for a creature card with converted mana cost X or less and put it onto the battlefield. If you search your library this way, shuffle it. If X is 10 or more, creatures you control get +X/+X and gain haste until end of turn. SVar:DBPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Haste | NumAtt$ X | NumDef$ X | References$ X | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 SVar:X:Count$xPaid Oracle:Search your library and/or graveyard for a creature card with converted mana cost X or less and put it onto the battlefield. If you search your library this way, shuffle it. If X is 10 or more, creatures you control get +X/+X and gain haste until end of turn.