From e95326028cd959c4144ed31902db4e39596b2f84 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Mon, 10 Apr 2023 15:25:46 +0200 Subject: [PATCH 01/11] update --- .../cardsfolder/upcoming/begin_the_invasion.txt | 8 ++++++++ .../cardsfolder/upcoming/dance_with_calamity.txt | 11 +++++++++++ .../res/cardsfolder/upcoming/enigma_ridges.txt | 15 +++++++++++++++ forge-gui/res/cardsfolder/upcoming/ghirapur.txt | 10 ++++++++++ forge-gui/res/cardsfolder/upcoming/naktamun.txt | 8 ++++++++ .../cardsfolder/upcoming/rashmi_and_ragavan.txt | 14 ++++++++++++++ .../upcoming/saint_traft_and_rem_karolus.txt | 14 ++++++++++++++ .../cardsfolder/upcoming/ten_wizards_mountain.txt | 9 +++++++++ .../upcoming/the_golden_city_of_orazca.txt | 11 +++++++++++ forge-gui/res/cardsfolder/upcoming/the_pit.txt | 12 ++++++++++++ .../cardsfolder/upcoming/the_western_cloud.txt | 10 ++++++++++ .../res/cardsfolder/upcoming/valors_reach.txt | 9 +++++++++ 12 files changed, 131 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ghirapur.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/naktamun.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/saint_traft_and_rem_karolus.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/the_pit.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/valors_reach.txt diff --git a/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt b/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt new file mode 100644 index 00000000000..f1d79d6cbc2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt @@ -0,0 +1,8 @@ +Name:Begin the Invasion +ManaCost:X W U B R G +Types:Sorcery +A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Battle | ChangeNum$ X | SpellDescription$ Search your library for up to X battle cards with different names, put them onto the battlefield, then shuffle. +SVar:X:Count$xPaid +DeckNeeds:Type$Battle +AI:RemoveDeck:Random +Oracle:Search your library for up to X battle cards with different names, put them onto the battlefield, then shuffle. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt new file mode 100644 index 00000000000..cd95eae1293 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt @@ -0,0 +1,11 @@ +Name:Dance with Calamity +ManaCost:7 R +Types:Sorcery +A:SP$ Shuffle | SubAbility$ DBRepeat | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library. As many times as you choose, you may exile the top card of your library. If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. +SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ DBDig | RepeatOptional$ True | SubAbility$ DBPlay +SVar:DBDig:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Exile | RememberChanged$ True +SVar:DBPlay:DB$ Play | Defined$ Remembered | Amount$ All | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE13 +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Remembered$SumCMC +AI:RemoveDeck:Random +Oracle:Shuffle your library. As many times as you choose, you may exile the top card of your library. If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt new file mode 100644 index 00000000000..e06cf73bf56 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt @@ -0,0 +1,15 @@ +Name:Enigma Ridges +ManaCost:no cost +Types:Plane Echoir +T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerDescription$ When you planeswalk to CARDNAME, each player who controls fewer lands than the player who controls the most lands searches their library for a number of basic land cards less than or equal to the difference, reveals them, puts them into their hand, then shuffles. +SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ LTY | DefinedPlayer$ Remembered | Chooser$ Remembered | ChangeType$ Land.Basic | ChangeNum$ Z | Origin$ Library | Destination$ Battlefield | Tapped$ True +SVar:X:Count$Valid Land.RememberedPlayerCtrl +SVar:Y:PlayerCountPlayers$HighestValid Land.YouCtrl +SVar:Z:SVar$Y/Minus.X +SVar:Check1:Count$Valid Land.YouCtrl +SVar:Check2:SVar$Y/Minus.Check1 +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. +SVar:RolledChaos:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBChangeZoneBis +SVar:DBChangeZoneBis:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Optional$ You | ChangeType$ Land | ChangeNum$ 1 +Oracle:When you planeswalk to Enigma Ridges, each player who controls fewer lands than the player who controls the most lands searches their library for a number of basic land cards less than or equal to the difference, reveals them, puts them into their hand, then shuffles.\nWhenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ghirapur.txt b/forge-gui/res/cardsfolder/upcoming/ghirapur.txt new file mode 100644 index 00000000000..3efd5b3228d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ghirapur.txt @@ -0,0 +1,10 @@ +Name:Ghirapur +ManaCost:no cost +Types:Plane Kaladesh +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigAnimateAll | TriggerDescription$ At the beginning of combat on your turn, until end of turn, each noncreature, non-Vehicle artifact you control becomes a 5/3 Vehicle in addition to its other types and gains trample, haste, and crew 2. +SVar:TrigAnimateAll:DB$ AnimateAll | ValidCards$ Artifact.nonCreature+YouCtrl+nonVehicle | Power$ 5 | Toughness$ 3 | Types$ Vehicle | Keywords$ Crew:2 & Trample & Haste +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, return target noncreature artifact card from your graveyard to your hand. +SVar:RolledChaos:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.nonCreature+YouCtrl | TgtPrompt$ Select target noncreature artifact spell from your graveyard +DeckHas:Ability$Graveyard +DeckHints:Type$Artifact +Oracle:At the beginning of combat on your turn, until end of turn, each noncreature, non-Vehicle artifact you control becomes a 5/3 Vehicle in addition to its other types and gains trample, haste, and crew 2.\nWhenever chaos ensues, return target noncreature artifact card from your graveyard to your hand. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/naktamun.txt b/forge-gui/res/cardsfolder/upcoming/naktamun.txt new file mode 100644 index 00000000000..e2e3afe72d1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/naktamun.txt @@ -0,0 +1,8 @@ +Name:Naktamun +ManaCost:no cost +Types:Plane Amonkhet +S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AffectedZone$ Graveyard | AddKeyword$ Embalm:CardManaCost | Description$ Each creature card in your graveyard has embalm. Its embalm cost is equal to its mana cost. (Exile a creature card from your graveyard and pay its embalm cost: Create a token that's a copy of it, except it's a white Zombie in addition to its other types with no mana cost. Embalm only as a sorcery.) +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may discard a card. If you do, draw a card. +SVar:RolledChaos:AB$ Draw | Cost$ Discard<1/Card> +DeckHas:Ability$Graveyard|Token|Discard & Type$Zombie +Oracle:Each creature card in your graveyard has embalm. Its embalm cost is equal to its mana cost. (Exile a creature card from your graveyard and pay its embalm cost: Create a token that's a copy of it, except it's a white Zombie in addition to its other types with no mana cost. Embalm only as a sorcery.)\nWhenever chaos ensues, you may discard a card. If you do, draw a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt b/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt new file mode 100644 index 00000000000..186d7612a7c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt @@ -0,0 +1,14 @@ +Name:Rashmi and Ragavan +ManaCost:1 G U R +Types:Legendary Creature — Elf Monkey +PT:2/4 +T:Mode$ SpellCast | ValidActivatingPlayer$ You | ActivatorThisTurnCast$ EQ1 | NoResolvingCheck$ True | ValidCard$ Card | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast your first spell during each of your turns, exile the top card of target opponent's library and create a Treasure token. Then you may cast the exiled card without paying its mana cost if it's a spell with mana value less than the number of artifacts you control. If you don't cast it this way, you may cast it this turn. +SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ Targeted | ValidTgts$ Opponent | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBPlay +SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidSA$ Spell.cmcLEX | ValidZone$ Exile | ImprintPlayed$ True | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | ForgetOnMoved$ Exile | RememberObjects$ RememberedCard | ConditionDefined$ Imprinted | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup +SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | MayPlay$ True | AffectedZone$ Exile | Description$ Until the end of turn, you may play the exiled card. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True +SVar:X:Count$Valid Artifact.YouCtrl +DeckHints:Type$Artifact +Oracle:Whenever you cast your first spell during each of your turns, exile the top card of target opponent's library and create a Treasure token. Then you may cast the exiled card without paying its mana cost if it's a spell with mana value less than the number of artifacts you control. If you don't cast it this way, you may cast it this turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/saint_traft_and_rem_karolus.txt b/forge-gui/res/cardsfolder/upcoming/saint_traft_and_rem_karolus.txt new file mode 100644 index 00000000000..13460ce8685 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/saint_traft_and_rem_karolus.txt @@ -0,0 +1,14 @@ +Name:Saint Traft and Rem Karolus +ManaCost:U R W +Types:Legendary Creature Spirit Human +PT:3/4 +T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME becomes tapped, create a 1/1 red Human creature token if this is the first time this ability has resolved this turn. If it’s the second time, create a 1/1 blue Spirit creature token with flying. If it’s the third time, create a 4/4 white Angel creature token with flying. +SVar:TrigToken:DB$ Token | TokenScript$ r_1_1_human | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ1 | SubAbility$ DBTokenBis +SVar:DBTokenBis:DB$ Token | TokenScript$ u_1_1_spirit_flying | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ2 | SubAbility$ DBTokenTrice +SVar:DBTokenTrice:DB$ Token | TokenScript$w_4_4_angel_flying | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ3 +SVar:Resolved:Count$ResolvedThisTurn +T:Mode$ SpellCast | ValidCard$ Card.withConvoke | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever you cast a spell that has convoke, untap CARDNAME. +SVar:TrigUntap:DB$ Untap | Defined$ Self +DeckNeeds:Keyword$Convoke +DeckHas:Ability$Token & Type$Human|Angel|Spirit +Oracle:Whenever Saint Traft and Rem Karolus becomes tapped, create a 1/1 red Human creature token if this is the first time this ability has resolved this turn. If it's the second time, create a 1/1 blue Spirit creature token with flying. If it's the third time, create a 4/4 white Angel creature token with flying.\nWhenever you cast a spell that has convoke, untap Saint Traft and Rem Karolus. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt new file mode 100644 index 00000000000..f41fb45bccd --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt @@ -0,0 +1,9 @@ +Name:Ten Wizards Mountain +ManaCost:no cost +Types:Plane Shenmeng +T:Mode$ PlanarDice | TriggerZones$ Command | Execute$ RolledDie | TriggerDescription$ Whenever you roll the planar die, put a +1/+1 counter on up to one target creature. +SVar:RolledDie:DB$ PutCounter | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | CounterType$ P1P1 | CounterNum$ 1 +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, creatures you control gain flying until end of turn. +SVar:RolledChaos:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Flying | SpellDescription$ Creatures you control gain flying until end of turn. +DeckHas:Ability$Counters +Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt new file mode 100644 index 00000000000..2ec1f89694b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt @@ -0,0 +1,11 @@ +Name:The Golden City of Orazca +ManaCost:no cost +Types:Plane Ixalan +K:Ascend +T:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city’s blessing. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Condition$ Blessing +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. +SVar:RolledChaos:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Optional$ You | Tapped$ True | ChangeType$ Permanent | ChangeNum$ 1 +DeckHas:Ability$Token & Type$Treasure +Oracle:Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.)\nWhenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city's blessing.\nWhenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_pit.txt b/forge-gui/res/cardsfolder/upcoming/the_pit.txt new file mode 100644 index 00000000000..5fd0403f947 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_pit.txt @@ -0,0 +1,12 @@ +Name:The Pit +ManaCost:no cost +Types:Plane The Abyss +T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerZones$ Command | TriggerDescription$ When you planeswalk to CARDNAME, each player creates their choice of a 3/3 white Angel creature token with flying or a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you." +SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | ClearRememberedBeforeLoop$ True | RepeatSubAbility$ DBChoice +SVar:DBChoice:DB$ GenericChoice | Defined$ Player.IsRemembered | Choices$ Angel,Demon +SVar:Angel:DB$ Token | TokenScript$ w_3_3_angel_flying | TokenOwner$ Player.IsRemembered | SpellDescription$ Create a 3/3 white Angel creature token with flying +SVar:Demon:DB$ Token | TokenScript$ b_6_6_demon_flying_trample_aristocrat | TokenOwner$ Player.IsRemembered | SpellDescription$ a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you." +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, each player sacrifices a nontoken creature. +SVar:RolledChaos:DB$ Sacrifice | SacValid$ Creature.nonToken | Defined$ Player +DeckHas:Ability$Token|Sacrifice & Type$Demon|Angel +Oracle:When you planeswalk to The Pit, each player creates their choice of a 3/3 white Angel creature token with flying or a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you."\nWhenever chaos ensues, each player sacrifices a nontoken creature. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt b/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt new file mode 100644 index 00000000000..f279af3e6d1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt @@ -0,0 +1,10 @@ +Name:The Western Cloud +ManaCost:no cost +Types:Plane Gobakhan +R:Event$ DamageDone | ActiveZones$ Command | Prevent$ True | ValidTarget$ Planeswalker.YouCtrl,Creature.YouCtrl | Description$ Prevent all damage that would be dealt to creatures and planeswalkers you control. +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, create three tapped Treasure tokens. They each deal 1 damage to each creature and each planeswalker. +SVar:RolledChaos:DB$ Token | TokenAmount$ 3 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | RememberTokens$ True | TokenTapped$ True | SubAbility$ DBDamage +SVar:DBDamage:DB$ EachDamage | DefinedDamagers$ Remembered | Defined$ Valid Creature,Planeswalker | NumDmg$ 1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Token & Type$Treasure +Oracle:Prevent all damage that would be dealt to creatures and planeswalkers you control.\nWhenever chaos ensues, create three tapped Treasure tokens. They each deal 1 damage to each creature and each planeswalker. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/valors_reach.txt b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt new file mode 100644 index 00000000000..5abccc91ef9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt @@ -0,0 +1,9 @@ +Name:Valor's Reach +ManaCost:no cost +Types:Plane Kylem +T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YourTeamCtrl | Execute$ TrigPumpAll | IsPresent$ Creature.attacking | PresentCompare$ EQ2 | NoResolvingCheck$ True | TriggerZones$ Command | AttackingPlayer$ You | TriggerDescription$ Whenever your team attacks with exactly two creatures, those creatures gain double strike until end of turn. +SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YourTeamCtrl+attacking | KW$ Double Strike +T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, untap up to two target creatures your team controls. If it's a main phase, there is an additional combat phase after this phase, followed by an additional main phase. +SVar:RolledChaos:DB$ Untap | ValidTgts$ Creature.YourTeamCtrl | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures your team controls | SubAbility$ DBAddCombat +SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ Combat | FollowedBy$ Main2 | ConditionPhases$ Main1,Main2 +Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. \ No newline at end of file From 8c563d30ab77f5884800bf79ace6f000b87e06f6 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Mon, 10 Apr 2023 15:28:20 +0200 Subject: [PATCH 02/11] Update ten_wizards_mountain.txt --- forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt index f41fb45bccd..1c3b08ae609 100644 --- a/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt +++ b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt @@ -4,6 +4,6 @@ Types:Plane Shenmeng T:Mode$ PlanarDice | TriggerZones$ Command | Execute$ RolledDie | TriggerDescription$ Whenever you roll the planar die, put a +1/+1 counter on up to one target creature. SVar:RolledDie:DB$ PutCounter | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | CounterType$ P1P1 | CounterNum$ 1 T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, creatures you control gain flying until end of turn. -SVar:RolledChaos:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Flying | SpellDescription$ Creatures you control gain flying until end of turn. +SVar:RolledChaos:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Flying DeckHas:Ability$Counters -Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. \ No newline at end of file +Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. From f84804fd43e7575837e795459da4faa469c0bb38 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Mon, 10 Apr 2023 20:59:03 +0200 Subject: [PATCH 03/11] update --- forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt | 2 +- forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt | 4 +--- forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt | 8 ++++---- .../cardsfolder/upcoming/the_golden_city_of_orazca.txt | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt b/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt index f1d79d6cbc2..4307ab24a0c 100644 --- a/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt +++ b/forge-gui/res/cardsfolder/upcoming/begin_the_invasion.txt @@ -1,7 +1,7 @@ Name:Begin the Invasion ManaCost:X W U B R G Types:Sorcery -A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Battle | ChangeNum$ X | SpellDescription$ Search your library for up to X battle cards with different names, put them onto the battlefield, then shuffle. +A:SP$ ChangeZone | Origin$ Library | DifferentNames$ True | ChangeTypeDesc$ battle cards with different names | Destination$ Battlefield | ChangeType$ Card.Battle | ChangeNum$ X | SpellDescription$ Search your library for up to X battle cards with different names, put them onto the battlefield, then shuffle. SVar:X:Count$xPaid DeckNeeds:Type$Battle AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt index e06cf73bf56..7c013d669c4 100644 --- a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt +++ b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt @@ -3,12 +3,10 @@ ManaCost:no cost Types:Plane Echoir T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerDescription$ When you planeswalk to CARDNAME, each player who controls fewer lands than the player who controls the most lands searches their library for a number of basic land cards less than or equal to the difference, reveals them, puts them into their hand, then shuffles. SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ LTY | DefinedPlayer$ Remembered | Chooser$ Remembered | ChangeType$ Land.Basic | ChangeNum$ Z | Origin$ Library | Destination$ Battlefield | Tapped$ True +SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ LTY | DefinedPlayer$ Remembered | Chooser$ Remembered | ChangeType$ Land.Basic | ChangeNum$ Z | Origin$ Library | Destination$ Hand | Tapped$ True SVar:X:Count$Valid Land.RememberedPlayerCtrl SVar:Y:PlayerCountPlayers$HighestValid Land.YouCtrl SVar:Z:SVar$Y/Minus.X -SVar:Check1:Count$Valid Land.YouCtrl -SVar:Check2:SVar$Y/Minus.Check1 T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. SVar:RolledChaos:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBChangeZoneBis SVar:DBChangeZoneBis:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Optional$ You | ChangeType$ Land | ChangeNum$ 1 diff --git a/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt b/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt index 186d7612a7c..4519f0b04e2 100644 --- a/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt +++ b/forge-gui/res/cardsfolder/upcoming/rashmi_and_ragavan.txt @@ -1,13 +1,13 @@ Name:Rashmi and Ragavan ManaCost:1 G U R -Types:Legendary Creature — Elf Monkey +Types:Legendary Creature Elf Monkey PT:2/4 -T:Mode$ SpellCast | ValidActivatingPlayer$ You | ActivatorThisTurnCast$ EQ1 | NoResolvingCheck$ True | ValidCard$ Card | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast your first spell during each of your turns, exile the top card of target opponent's library and create a Treasure token. Then you may cast the exiled card without paying its mana cost if it's a spell with mana value less than the number of artifacts you control. If you don't cast it this way, you may cast it this turn. +T:Mode$ SpellCast | ValidActivatingPlayer$ You | ActivatorThisTurnCast$ EQ1 | PlayerTurn$ True | NoResolvingCheck$ True | ValidCard$ Card | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast your first spell during each of your turns, exile the top card of target opponent's library and create a Treasure token. Then you may cast the exiled card without paying its mana cost if it's a spell with mana value less than the number of artifacts you control. If you don't cast it this way, you may cast it this turn. SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ Targeted | ValidTgts$ Opponent | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBToken SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBPlay -SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidSA$ Spell.cmcLEX | ValidZone$ Exile | ImprintPlayed$ True | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBEffect +SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidSA$ Spell.cmcLTX | ValidZone$ Exile | ImprintPlayed$ True | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | ForgetOnMoved$ Exile | RememberObjects$ RememberedCard | ConditionDefined$ Imprinted | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup -SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | MayPlay$ True | AffectedZone$ Exile | Description$ Until the end of turn, you may play the exiled card. +SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | MayPlay$ True | AffectedZone$ Exile | Description$ Until the end of turn, you may play the exiled card. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True SVar:X:Count$Valid Artifact.YouCtrl DeckHints:Type$Artifact diff --git a/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt index 2ec1f89694b..7de5bac4fde 100644 --- a/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt +++ b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt @@ -2,7 +2,7 @@ Name:The Golden City of Orazca ManaCost:no cost Types:Plane Ixalan K:Ascend -T:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city’s blessing. +T:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city's blessing. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | Condition$ Blessing T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. From 3e76090d4b9250d034a043762c3d8e6b0a16b605 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 11 Apr 2023 16:17:58 +0200 Subject: [PATCH 04/11] update --- forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt | 6 +++--- forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt | 2 +- forge-gui/res/cardsfolder/upcoming/the_pit.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt index cd95eae1293..02ceb7b7a3d 100644 --- a/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt +++ b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt @@ -2,9 +2,9 @@ Name:Dance with Calamity ManaCost:7 R Types:Sorcery A:SP$ Shuffle | SubAbility$ DBRepeat | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library. As many times as you choose, you may exile the top card of your library. If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. -SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ DBDig | RepeatOptional$ True | SubAbility$ DBPlay -SVar:DBDig:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Exile | RememberChanged$ True -SVar:DBPlay:DB$ Play | Defined$ Remembered | Amount$ All | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE13 +SVar:DBRepeat:DB$ GenericChoice | Choices$ Exile,Play | Defined$ You | SubAbility$ DBCleanup +SVar:Exile:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBRepeat | SpellDescription$ As many times as you choose, you may exile the top card of your library +SVar:Play:DB$ Play | Defined$ Remembered | Amount$ All | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE13 | SpellDescription$ If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$SumCMC AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt index 7c013d669c4..77d5d4c4eed 100644 --- a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt +++ b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt @@ -3,7 +3,7 @@ ManaCost:no cost Types:Plane Echoir T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerDescription$ When you planeswalk to CARDNAME, each player who controls fewer lands than the player who controls the most lands searches their library for a number of basic land cards less than or equal to the difference, reveals them, puts them into their hand, then shuffles. SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ LTY | DefinedPlayer$ Remembered | Chooser$ Remembered | ChangeType$ Land.Basic | ChangeNum$ Z | Origin$ Library | Destination$ Hand | Tapped$ True +SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ LTY | DefinedPlayer$ Remembered | Chooser$ Remembered | ChangeType$ Land.Basic | ChangeNum$ Z | Origin$ Library | Destination$ Hand SVar:X:Count$Valid Land.RememberedPlayerCtrl SVar:Y:PlayerCountPlayers$HighestValid Land.YouCtrl SVar:Z:SVar$Y/Minus.X diff --git a/forge-gui/res/cardsfolder/upcoming/the_pit.txt b/forge-gui/res/cardsfolder/upcoming/the_pit.txt index 5fd0403f947..efbc58c2ffd 100644 --- a/forge-gui/res/cardsfolder/upcoming/the_pit.txt +++ b/forge-gui/res/cardsfolder/upcoming/the_pit.txt @@ -2,7 +2,7 @@ Name:The Pit ManaCost:no cost Types:Plane The Abyss T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigRepeatEach | TriggerZones$ Command | TriggerDescription$ When you planeswalk to CARDNAME, each player creates their choice of a 3/3 white Angel creature token with flying or a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you." -SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | ClearRememberedBeforeLoop$ True | RepeatSubAbility$ DBChoice +SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | ClearRememberedBeforeLoop$ True | ChangeZoneTable$ True | RepeatSubAbility$ DBChoice SVar:DBChoice:DB$ GenericChoice | Defined$ Player.IsRemembered | Choices$ Angel,Demon SVar:Angel:DB$ Token | TokenScript$ w_3_3_angel_flying | TokenOwner$ Player.IsRemembered | SpellDescription$ Create a 3/3 white Angel creature token with flying SVar:Demon:DB$ Token | TokenScript$ b_6_6_demon_flying_trample_aristocrat | TokenOwner$ Player.IsRemembered | SpellDescription$ a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you." From f2d98c4ec07d3713367072d96cdd11c30e232b86 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 11 Apr 2023 21:23:17 +0200 Subject: [PATCH 05/11] update --- .../res/cardsfolder/upcoming/dance_with_calamity.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt index 02ceb7b7a3d..42b5582b20a 100644 --- a/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt +++ b/forge-gui/res/cardsfolder/upcoming/dance_with_calamity.txt @@ -1,10 +1,11 @@ Name:Dance with Calamity ManaCost:7 R Types:Sorcery -A:SP$ Shuffle | SubAbility$ DBRepeat | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library. As many times as you choose, you may exile the top card of your library. If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. -SVar:DBRepeat:DB$ GenericChoice | Choices$ Exile,Play | Defined$ You | SubAbility$ DBCleanup -SVar:Exile:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBRepeat | SpellDescription$ As many times as you choose, you may exile the top card of your library -SVar:Play:DB$ Play | Defined$ Remembered | Amount$ All | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE13 | SpellDescription$ If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. +A:SP$ Shuffle | SubAbility$ DBChoose | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library. As many times as you choose, you may exile the top card of your library. If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. +SVar:DBChoose:DB$ GenericChoice | Choices$ DBRepeat,Play | Defined$ You +SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ DBDig | RepeatOptional$ True | SubAbility$ Play | SpellDescription$ As many times as you choose, you may exile the top card of your library +SVar:DBDig:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Exile | RememberChanged$ True +SVar:Play:DB$ Play | Defined$ Remembered | Amount$ All | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE13 | SubAbility$ DBCleanup | SpellDescription$ If the total mana value of the cards exiled this way is 13 or less, you may cast any number of spells from among those cards without paying their mana costs. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$SumCMC AI:RemoveDeck:Random From ec3b1befdec97f742ec73f918bea29e9bde29ab3 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 11 Apr 2023 21:46:00 +0200 Subject: [PATCH 06/11] Update CardFactoryUtil.java --- .../main/java/forge/game/card/CardFactoryUtil.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index ec684f4c3a9..79bd7dd7c12 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -819,7 +819,19 @@ public class CardFactoryUtil { inst.addTrigger(trigger); } else if (keyword.equals("Ascend")) { // Ascend trigger only for Permanent - if (card.isPermanent()) { + if (card.isPlane()) { // Ascend trigger for The Golden City of Orazca + final String trig = "Mode$ Always | TriggerZones$ Command | Secondary$ True" + + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; + + final String effect = "DB$ Ascend | Defined$ You"; + + final Trigger trigger = TriggerHandler.parseTrigger(trig, card, intrinsic); + trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card)); + + inst.addTrigger(trigger); + + } else if (card.isPermanent()) { final String trig = "Mode$ Always | TriggerZones$ Battlefield | Secondary$ True" + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; From 705acb013e3afe454979de82de27f87ce05bad22 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 22 Apr 2023 07:29:13 +0200 Subject: [PATCH 07/11] update --- .../java/forge/game/card/CardFactoryUtil.java | 28 ++++++++----------- .../cardsfolder/upcoming/enigma_ridges.txt | 2 +- .../res/cardsfolder/upcoming/ghirapur.txt | 2 +- .../res/cardsfolder/upcoming/naktamun.txt | 2 +- .../upcoming/ten_wizards_mountain.txt | 2 +- .../upcoming/the_golden_city_of_orazca.txt | 2 +- .../res/cardsfolder/upcoming/the_pit.txt | 2 +- .../upcoming/the_western_cloud.txt | 2 +- .../res/cardsfolder/upcoming/valors_reach.txt | 2 +- 9 files changed, 20 insertions(+), 24 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 79bd7dd7c12..a3349029889 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -818,31 +818,27 @@ public class CardFactoryUtil { inst.addTrigger(trigger); } else if (keyword.equals("Ascend")) { - // Ascend trigger only for Permanent - if (card.isPlane()) { // Ascend trigger for The Golden City of Orazca - final String trig = "Mode$ Always | TriggerZones$ Command | Secondary$ True" - + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " - + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; - - final String effect = "DB$ Ascend | Defined$ You"; - - final Trigger trigger = TriggerHandler.parseTrigger(trig, card, intrinsic); - trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card)); - - inst.addTrigger(trigger); - - } else if (card.isPermanent()) { + final String trig = "Mode$ Always | TriggerZones$ Battlefield | Secondary$ True" + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; + final String trigbis = "Mode$ Always | TriggerZones$ Command | Secondary$ True" + + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; + final String effect = "DB$ Ascend | Defined$ You"; final Trigger trigger = TriggerHandler.parseTrigger(trig, card, intrinsic); trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card)); - + + final Trigger triggerbis = TriggerHandler.parseTrigger(trigbis, card, intrinsic); + triggerbis.setOverridingAbility(AbilityFactory.getAbility(effect, card)); + inst.addTrigger(trigger); - } else { + inst.addTrigger(triggerbis); + } + else { SpellAbility sa = card.getFirstSpellAbility(); if (sa != null && sa.isSpell()) { sa.setBlessing(true); diff --git a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt index 77d5d4c4eed..af3971aa3dd 100644 --- a/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt +++ b/forge-gui/res/cardsfolder/upcoming/enigma_ridges.txt @@ -7,7 +7,7 @@ SVar:DBChangeZone:DB$ ChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ SVar:X:Count$Valid Land.RememberedPlayerCtrl SVar:Y:PlayerCountPlayers$HighestValid Land.YouCtrl SVar:Z:SVar$Y/Minus.X -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. SVar:RolledChaos:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBChangeZoneBis SVar:DBChangeZoneBis:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Optional$ You | ChangeType$ Land | ChangeNum$ 1 Oracle:When you planeswalk to Enigma Ridges, each player who controls fewer lands than the player who controls the most lands searches their library for a number of basic land cards less than or equal to the difference, reveals them, puts them into their hand, then shuffles.\nWhenever chaos ensues, draw a card, then you may put a land card from your hand onto the battlefield. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ghirapur.txt b/forge-gui/res/cardsfolder/upcoming/ghirapur.txt index 3efd5b3228d..098aefa91d6 100644 --- a/forge-gui/res/cardsfolder/upcoming/ghirapur.txt +++ b/forge-gui/res/cardsfolder/upcoming/ghirapur.txt @@ -3,7 +3,7 @@ ManaCost:no cost Types:Plane Kaladesh T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigAnimateAll | TriggerDescription$ At the beginning of combat on your turn, until end of turn, each noncreature, non-Vehicle artifact you control becomes a 5/3 Vehicle in addition to its other types and gains trample, haste, and crew 2. SVar:TrigAnimateAll:DB$ AnimateAll | ValidCards$ Artifact.nonCreature+YouCtrl+nonVehicle | Power$ 5 | Toughness$ 3 | Types$ Vehicle | Keywords$ Crew:2 & Trample & Haste -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, return target noncreature artifact card from your graveyard to your hand. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, return target noncreature artifact card from your graveyard to your hand. SVar:RolledChaos:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.nonCreature+YouCtrl | TgtPrompt$ Select target noncreature artifact spell from your graveyard DeckHas:Ability$Graveyard DeckHints:Type$Artifact diff --git a/forge-gui/res/cardsfolder/upcoming/naktamun.txt b/forge-gui/res/cardsfolder/upcoming/naktamun.txt index e2e3afe72d1..1379ce0e303 100644 --- a/forge-gui/res/cardsfolder/upcoming/naktamun.txt +++ b/forge-gui/res/cardsfolder/upcoming/naktamun.txt @@ -2,7 +2,7 @@ Name:Naktamun ManaCost:no cost Types:Plane Amonkhet S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AffectedZone$ Graveyard | AddKeyword$ Embalm:CardManaCost | Description$ Each creature card in your graveyard has embalm. Its embalm cost is equal to its mana cost. (Exile a creature card from your graveyard and pay its embalm cost: Create a token that's a copy of it, except it's a white Zombie in addition to its other types with no mana cost. Embalm only as a sorcery.) -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may discard a card. If you do, draw a card. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may discard a card. If you do, draw a card. SVar:RolledChaos:AB$ Draw | Cost$ Discard<1/Card> DeckHas:Ability$Graveyard|Token|Discard & Type$Zombie Oracle:Each creature card in your graveyard has embalm. Its embalm cost is equal to its mana cost. (Exile a creature card from your graveyard and pay its embalm cost: Create a token that's a copy of it, except it's a white Zombie in addition to its other types with no mana cost. Embalm only as a sorcery.)\nWhenever chaos ensues, you may discard a card. If you do, draw a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt index 1c3b08ae609..7d0cebd644e 100644 --- a/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt +++ b/forge-gui/res/cardsfolder/upcoming/ten_wizards_mountain.txt @@ -3,7 +3,7 @@ ManaCost:no cost Types:Plane Shenmeng T:Mode$ PlanarDice | TriggerZones$ Command | Execute$ RolledDie | TriggerDescription$ Whenever you roll the planar die, put a +1/+1 counter on up to one target creature. SVar:RolledDie:DB$ PutCounter | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | CounterType$ P1P1 | CounterNum$ 1 -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, creatures you control gain flying until end of turn. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, creatures you control gain flying until end of turn. SVar:RolledChaos:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Flying DeckHas:Ability$Counters Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt index 7de5bac4fde..0fb52cd5b57 100644 --- a/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt +++ b/forge-gui/res/cardsfolder/upcoming/the_golden_city_of_orazca.txt @@ -5,7 +5,7 @@ K:Ascend T:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city's blessing. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | Condition$ Blessing -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. SVar:RolledChaos:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Optional$ You | Tapped$ True | ChangeType$ Permanent | ChangeNum$ 1 DeckHas:Ability$Token & Type$Treasure Oracle:Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.)\nWhenever one or more creatures you control deal combat damage to a player, create a Treasure token. Then draw a card if you have the city's blessing.\nWhenever chaos ensues, you may put a permanent card from your hand onto the battlefield tapped. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_pit.txt b/forge-gui/res/cardsfolder/upcoming/the_pit.txt index efbc58c2ffd..288aee6fd0c 100644 --- a/forge-gui/res/cardsfolder/upcoming/the_pit.txt +++ b/forge-gui/res/cardsfolder/upcoming/the_pit.txt @@ -6,7 +6,7 @@ SVar:TrigRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | ClearRememberedBefo SVar:DBChoice:DB$ GenericChoice | Defined$ Player.IsRemembered | Choices$ Angel,Demon SVar:Angel:DB$ Token | TokenScript$ w_3_3_angel_flying | TokenOwner$ Player.IsRemembered | SpellDescription$ Create a 3/3 white Angel creature token with flying SVar:Demon:DB$ Token | TokenScript$ b_6_6_demon_flying_trample_aristocrat | TokenOwner$ Player.IsRemembered | SpellDescription$ a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you." -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, each player sacrifices a nontoken creature. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, each player sacrifices a nontoken creature. SVar:RolledChaos:DB$ Sacrifice | SacValid$ Creature.nonToken | Defined$ Player DeckHas:Ability$Token|Sacrifice & Type$Demon|Angel Oracle:When you planeswalk to The Pit, each player creates their choice of a 3/3 white Angel creature token with flying or a 6/6 black Demon creature token with flying, trample, and "At the beginning of your upkeep, sacrifice another creature. If you can't, this creature deals 6 damage to you."\nWhenever chaos ensues, each player sacrifices a nontoken creature. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt b/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt index f279af3e6d1..3f0c4eed868 100644 --- a/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt +++ b/forge-gui/res/cardsfolder/upcoming/the_western_cloud.txt @@ -2,7 +2,7 @@ Name:The Western Cloud ManaCost:no cost Types:Plane Gobakhan R:Event$ DamageDone | ActiveZones$ Command | Prevent$ True | ValidTarget$ Planeswalker.YouCtrl,Creature.YouCtrl | Description$ Prevent all damage that would be dealt to creatures and planeswalkers you control. -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, create three tapped Treasure tokens. They each deal 1 damage to each creature and each planeswalker. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, create three tapped Treasure tokens. They each deal 1 damage to each creature and each planeswalker. SVar:RolledChaos:DB$ Token | TokenAmount$ 3 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | RememberTokens$ True | TokenTapped$ True | SubAbility$ DBDamage SVar:DBDamage:DB$ EachDamage | DefinedDamagers$ Remembered | Defined$ Valid Creature,Planeswalker | NumDmg$ 1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/upcoming/valors_reach.txt b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt index 5abccc91ef9..ac164d031c3 100644 --- a/forge-gui/res/cardsfolder/upcoming/valors_reach.txt +++ b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt @@ -3,7 +3,7 @@ ManaCost:no cost Types:Plane Kylem T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YourTeamCtrl | Execute$ TrigPumpAll | IsPresent$ Creature.attacking | PresentCompare$ EQ2 | NoResolvingCheck$ True | TriggerZones$ Command | AttackingPlayer$ You | TriggerDescription$ Whenever your team attacks with exactly two creatures, those creatures gain double strike until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YourTeamCtrl+attacking | KW$ Double Strike -T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, untap up to two target creatures your team controls. If it's a main phase, there is an additional combat phase after this phase, followed by an additional main phase. +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, untap up to two target creatures your team controls. If it's a main phase, there is an additional combat phase after this phase, followed by an additional main phase. SVar:RolledChaos:DB$ Untap | ValidTgts$ Creature.YourTeamCtrl | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures your team controls | SubAbility$ DBAddCombat SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ Combat | FollowedBy$ Main2 | ConditionPhases$ Main1,Main2 Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. \ No newline at end of file From fdc28e7c19b138930a7d28f1b95ca65950c4fdc5 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 22 Apr 2023 07:32:12 +0200 Subject: [PATCH 08/11] update --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index c2e61676ed6..3dd961825c8 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -814,7 +814,8 @@ public class CardFactoryUtil { inst.addTrigger(trigger); } else if (keyword.equals("Ascend")) { - + // Ascend trigger only for Permanent + if (card.isPermanent()) { final String trig = "Mode$ Always | TriggerZones$ Battlefield | Secondary$ True" + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; From d1eefaa856d4f16e5770d027a0a1472585ef9a43 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 22 Apr 2023 07:43:25 +0200 Subject: [PATCH 09/11] update --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 3dd961825c8..5298e529565 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -815,7 +815,7 @@ public class CardFactoryUtil { inst.addTrigger(trigger); } else if (keyword.equals("Ascend")) { // Ascend trigger only for Permanent - if (card.isPermanent()) { + if (card.isPermanent() || card.isPlane()) { final String trig = "Mode$ Always | TriggerZones$ Battlefield | Secondary$ True" + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; From d142be485df2453df4725847bf3df880e4971fe0 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Sat, 22 Apr 2023 11:18:34 +0200 Subject: [PATCH 10/11] Clean up --- .../java/forge/game/card/CardFactoryUtil.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 5298e529565..10b77d3ee63 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -816,26 +816,17 @@ public class CardFactoryUtil { } else if (keyword.equals("Ascend")) { // Ascend trigger only for Permanent if (card.isPermanent() || card.isPlane()) { - final String trig = "Mode$ Always | TriggerZones$ Battlefield | Secondary$ True" - + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " + final String trig = "Mode$ Always | TriggerZones$ " + (card.isPlane() ? "Command" : "Battlefield") + + " | Secondary$ True | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10" + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; - final String trigbis = "Mode$ Always | TriggerZones$ Command | Secondary$ True" - + " | Static$ True | Blessing$ False | IsPresent$ Permanent.YouCtrl | PresentCompare$ GE10 " - + " | TriggerDescription$ Ascend (" + inst.getReminderText() + ")"; - final String effect = "DB$ Ascend | Defined$ You"; final Trigger trigger = TriggerHandler.parseTrigger(trig, card, intrinsic); trigger.setOverridingAbility(AbilityFactory.getAbility(effect, card)); - - final Trigger triggerbis = TriggerHandler.parseTrigger(trigbis, card, intrinsic); - triggerbis.setOverridingAbility(AbilityFactory.getAbility(effect, card)); - + inst.addTrigger(trigger); - inst.addTrigger(triggerbis); - } - else { + } else { SpellAbility sa = card.getFirstSpellAbility(); if (sa != null && sa.isSpell()) { sa.setBlessing(true); From 5342fe9ff5dbc30c78551924f9a5f46f14309576 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 22 Apr 2023 11:51:37 +0200 Subject: [PATCH 11/11] Update valors_reach.txt --- forge-gui/res/cardsfolder/upcoming/valors_reach.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/valors_reach.txt b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt index ac164d031c3..c2f73ebef04 100644 --- a/forge-gui/res/cardsfolder/upcoming/valors_reach.txt +++ b/forge-gui/res/cardsfolder/upcoming/valors_reach.txt @@ -6,4 +6,4 @@ SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YourTeamCtrl+attacking | KW$ T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, untap up to two target creatures your team controls. If it's a main phase, there is an additional combat phase after this phase, followed by an additional main phase. SVar:RolledChaos:DB$ Untap | ValidTgts$ Creature.YourTeamCtrl | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures your team controls | SubAbility$ DBAddCombat SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ Combat | FollowedBy$ Main2 | ConditionPhases$ Main1,Main2 -Oracle:Whenever you roll the planar die, put a +1/+1 counter on up to one target creature.\nWhenever chaos ensues, creatures you control gain flying until end of turn. \ No newline at end of file +Oracle:Whenever your team attacks with exactly two creatures, those creatures gain double strike until end of turn.\nWhenever chaos ensues, untap up to two target creatures your team controls. If it's a main phase, there is an additional combat phase after this phase, followed by an additional main phase.