From 3fbb8582a0025da76d79c8184b4b1e57677bada4 Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Thu, 31 Mar 2022 09:20:59 +0100 Subject: [PATCH 1/8] 07 April 2022 Arena Rebalanced Cards --- ...s & Dragons Adventures in the Forgotten Realms.txt | 5 +++++ forge-gui/res/editions/Kaldheim.txt | 11 +++++++++++ forge-gui/res/editions/Strixhaven School of Mages.txt | 2 ++ forge-gui/res/editions/Zendikar Rising.txt | 5 +++++ 4 files changed, 23 insertions(+) diff --git a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt index 6afd16e2f65..9a0a23ab885 100644 --- a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt +++ b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt @@ -427,6 +427,8 @@ FatPackExtraSlots=20 BasicLands, 20 BasicLands+ [rebalanced] A7 U A-Cloister Gargoyle @Mark Zug +A14 C A-Dwarfhold Champion @Miguel Mercado +A32 U A-Plate Armor @Martina Pilcerova A53 M A-Demilich @Daniel Zrom A81 U A-Wizard Class @Marta Nael A87 M A-Acererak the Archlich @Andrey Kuzinskiy @@ -434,9 +436,12 @@ A95 U A-Death-Priest of Myrkul @Lius Lasahido A102 C A-Fates' Reversal @Alix Branwyn A115 C A-Precipitous Drop @Gabor Szikszai A118 C A-Sepulcher Ghoul @Jason A. Engle +A130 C A-Armory Veteran @Caio Monteiro A180 U A-Druid Class @Svetlin Velinov A181 M A-Ellywick Tumblestrum @Anna Steinbauer A183 C A-Find the Path @Lindsey Look +A219 U A-Bruenor Battlehammer @Wayne Reynolds +A231 U A-Shessra, Death's Whisper @Marie Magny A237 R A-Triumphant Adventurer @Alexander Mokhov A255 R A-Dungeon Descent @Kasia 'Kafis' Zielińska diff --git a/forge-gui/res/editions/Kaldheim.txt b/forge-gui/res/editions/Kaldheim.txt index 12c2609c4ab..a1db1e459a9 100644 --- a/forge-gui/res/editions/Kaldheim.txt +++ b/forge-gui/res/editions/Kaldheim.txt @@ -435,12 +435,23 @@ ScryfallCode=KHM A40 M A-Alrund, God of the Cosmos @Kieran Yanner A41 M A-Alrund's Epiphany @Kieran Yanner A51 R A-Cosmos Charger @Nils Hamm +A106 U A-Return Upon the Tide @Martina Fackova +A109 R A-Skemfar Avenger @Randy Vargas A139 M A-Goldspan Dragon @Andrew Mar +A165 C A-Elderleaf Mentor @Zoltan Boros +A166 U A-Elven Bow @Dallas Williams A169 R A-Esika's Chariot @Raoul Vitale +A198 M A-Tyvar Kell @Chris Rallis A224 U A-Narfi, Betrayer King @Daarken +A212 U A-Harald, King of Skemfar @Grzegorz Rutkowski +A213 R A-Harald Unites the Elves @Ryan Pancoast A233 U A-Vega, the Watcher @Paul Scott Canavan A237 R A-Cosmos Elixir @Volkan Baǵa A255 R A-Faceless Haven @Titus Lunter +A268 U A-Skemfar Elderhall @Johannes Voss +A378 R A-Canopy Tactician @Ekaterina Burmak +A385 U A-Elderfang Ritualist @Wisnu Tan +A387 U A-Thornmantle Striker @Magali Villeneuve [Snow Lands] 5 Snow-Covered Plains|KHM|1 diff --git a/forge-gui/res/editions/Strixhaven School of Mages.txt b/forge-gui/res/editions/Strixhaven School of Mages.txt index 8224ebdbb52..f4a3c6c0291 100644 --- a/forge-gui/res/editions/Strixhaven School of Mages.txt +++ b/forge-gui/res/editions/Strixhaven School of Mages.txt @@ -410,6 +410,8 @@ ScryfallCode=STX [rebalanced] A41 U A-Divide by Zero @Liiga Smilshkalne +A56 U A-Symmetry Sage @Jehan Choo +A258 U A-Spell Satchel @YW Tang [lesson] 2 Environmental Sciences diff --git a/forge-gui/res/editions/Zendikar Rising.txt b/forge-gui/res/editions/Zendikar Rising.txt index b9b8b29d055..1fd2b6e4fb5 100644 --- a/forge-gui/res/editions/Zendikar Rising.txt +++ b/forge-gui/res/editions/Zendikar Rising.txt @@ -419,8 +419,13 @@ ScryfallCode=ZNR [rebalanced] A24 R A-Luminarch Aspirant @Mads Ahm +A141 U A-Goma Fada Vanguard @Sean Sevestre +A145 R A-Kargan Intimidator @Kieran Yanner +A224 U A-Kargan Warleader @Colin Boyer +A230 M A-Nahiri, Heir of the Ancients @Anna Steinbauer A232 M A-Omnath, Locus of Creation @Chris Rahn A234 R A-Phylath, World Sculptor @Victor Adame Minguez +A257 U A-Base Camp @Jokubas Uogintas [ModalDoubleFaceCards] 1 Agadeem's Awakening|ZNR From 9a8f698b0dd9bbf327295fff5d2c7ca5eda06744 Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Mon, 4 Apr 2022 09:25:57 +0100 Subject: [PATCH 2/8] first round of cards --- .../res/cardsfolder/rebalanced/a-base_camp.txt | 8 ++++++++ .../rebalanced/a-canopy_tactician.txt | 8 ++++++++ .../rebalanced/a-elderfang_ritualist.txt | 12 ++++++++++++ .../rebalanced/a-elderleaf_mentor.txt | 8 ++++++++ .../res/cardsfolder/rebalanced/a-elven_bow.txt | 11 +++++++++++ .../rebalanced/a-harald_king_of_skemfar.txt | 9 +++++++++ .../rebalanced/a-harald_unites_the_elves.txt | 13 +++++++++++++ .../cardsfolder/rebalanced/a-plate_armor.txt | 7 +++++++ .../rebalanced/a-return_upon_the_tide.txt | 9 +++++++++ .../rebalanced/a-shessra_deaths_whisper.txt | 10 ++++++++++ .../rebalanced/a-skemfar_avenger.txt | 9 +++++++++ .../rebalanced/a-skemfar_elderhall.txt | 9 +++++++++ .../cardsfolder/rebalanced/a-spell_satchel.txt | 8 ++++++++ .../cardsfolder/rebalanced/a-symmetry_sage.txt | 8 ++++++++ .../rebalanced/a-thornmantle_striker.txt | 11 +++++++++++ .../res/cardsfolder/rebalanced/a-tyvar_kell.txt | 17 +++++++++++++++++ 16 files changed, 157 insertions(+) create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-base_camp.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-canopy_tactician.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-elderfang_ritualist.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-elderleaf_mentor.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-elven_bow.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-harald_unites_the_elves.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-shessra_deaths_whisper.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-skemfar_avenger.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-skemfar_elderhall.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-spell_satchel.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-symmetry_sage.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-thornmantle_striker.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-tyvar_kell.txt diff --git a/forge-gui/res/cardsfolder/rebalanced/a-base_camp.txt b/forge-gui/res/cardsfolder/rebalanced/a-base_camp.txt new file mode 100644 index 00000000000..16ecd747035 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-base_camp.txt @@ -0,0 +1,8 @@ +Name:A-Base Camp +ManaCost:no cost +Types:Land +A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. +A:AB$ Mana | Cost$ T | Produced$ Any | RestrictValid$ Spell.Cleric,Spell.Rogue,Spell.Warrior,Spell.Wizard,Activated.Cleric+inZoneBattlefield,Activated.Rogue+inZoneBattlefield,Activated.Warrior+inZoneBattlefield,Activated.Wizard+inZoneBattlefield | SpellDescription$ Add one mana of any color. Spend this mana only to cast a Cleric, Rogue, Warrior, or Wizard spell or to activate an ability of a Cleric, Rogue, Warrior, or Wizard. +DeckHas:Ability$Party +DeckHints:Type$Cleric|Rogue|Warrior|Wizard +Oracle:{T}: Add {C}.\n{T}: Add one mana of any color. Spend this mana only to cast a Cleric, Rogue, Warrior, or Wizard spell or to activate an ability of a Cleric, Rogue, Warrior, or Wizard. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-canopy_tactician.txt b/forge-gui/res/cardsfolder/rebalanced/a-canopy_tactician.txt new file mode 100644 index 00000000000..321d3f55d8d --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-canopy_tactician.txt @@ -0,0 +1,8 @@ +Name:A-Canopy Tactician +ManaCost:3 G +Types:Creature Elf Warrior +PT:3/4 +S:Mode$ Continuous | Affected$ Elf.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Elves you control get +1/+1. +A:AB$ Mana | Cost$ T | Produced$ G | Amount$ 3 | SpellDescription$ Add {G}{G}{G}. +DeckHints:Type$Elf +Oracle:Other Elves you control get +1/+1.\n{T}: Add {G}{G}{G}. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-elderfang_ritualist.txt b/forge-gui/res/cardsfolder/rebalanced/a-elderfang_ritualist.txt new file mode 100644 index 00000000000..24540397809 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-elderfang_ritualist.txt @@ -0,0 +1,12 @@ +Name:A-Elderfang Ritualist +ManaCost:1 B +Types:Creature Elf Cleric +PT:3/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it. If you do, return another target Elf or Tyvar card from your graveyard to your hand. +SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Exile | SubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Elf.Other+YouOwn,Tyvar.Other+YouOwn | TgtPrompt$ Select another target Elf or Tyvar card from your graveyard +SVar:SacMe:2 +DeckNeeds:Type$Elf +DeckHas:Ability$Graveyard +DeckHints:Type$Tyvar +Oracle:When Elderfang Ritualist dies, you may exile it. If you do, return another target Elf or Tyvar card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-elderleaf_mentor.txt b/forge-gui/res/cardsfolder/rebalanced/a-elderleaf_mentor.txt new file mode 100644 index 00000000000..34e89b0efd4 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-elderleaf_mentor.txt @@ -0,0 +1,8 @@ +Name:A-Elderleaf Mentor +ManaCost:2 G +Types:Creature Elf Warrior +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 1/1 green Elf Warrior creature token. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_elf_warrior | TokenOwner$ You +DeckHas:Ability$Token +Oracle:When Elderleaf Mentor enters the battlefield, create a 1/1 green Elf Warrior creature token. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-elven_bow.txt b/forge-gui/res/cardsfolder/rebalanced/a-elven_bow.txt new file mode 100644 index 00000000000..9746a1dbd41 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-elven_bow.txt @@ -0,0 +1,11 @@ +Name:A-Elven Bow +ManaCost:G +Types:Artifact Equipment +K:Equip:3 +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 2 | AddKeyword$ Reach | Description$ Equipped creature gets +1/+2 and has reach. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME enters the battlefield, you may pay {1}. If you do, create a 1/1 green Elf Warrior creature token, then attach CARDNAME to it. +SVar:TrigToken:AB$ Token | Cost$ 1 | TokenScript$ g_1_1_elf_warrior | RememberTokens$ True | SubAbility$ DBAttach +SVar:DBAttach:DB$ Attach | Object$ TriggeredCard | Defined$ Remembered | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Token +Oracle:When Elven Bow enters the battlefield, you may pay {1}. If you do, create a 1/1 green Elf Warrior creature token, then attach Elven Bow to it.\nEquipped creature gets +1/+2 and has reach.\nEquip {3} diff --git a/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt b/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt new file mode 100644 index 00000000000..54d7d237381 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt @@ -0,0 +1,9 @@ +Name:A-Harald, King of Skemfar +ManaCost:1 B G +Types:Legendary Creature Elf Warrior +PT:3/2 +K:Menace +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top seven cards of your library. You may reveal an Elf, Warrior, or Tyvar card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +SVar:TrigDig:DB$ Dig | DigNum$ 7 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Elf,Warrior,Tyvar | RestRandomOrder$ True +DeckHints:Type$Elf|Tyvar +Oracle:Menace (This creature can't be blocked except by two or more creatures.)\nWhen Harald, King of Skemfar enters the battlefield, look at the top seven cards of your library. You may reveal an Elf, Warrior, or Tyvar card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-harald_unites_the_elves.txt b/forge-gui/res/cardsfolder/rebalanced/a-harald_unites_the_elves.txt new file mode 100644 index 00000000000..eaf79629094 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-harald_unites_the_elves.txt @@ -0,0 +1,13 @@ +Name:A-Harald Unites the Elves +ManaCost:2 B G +Types:Enchantment Saga +K:Saga:3:DBMill,DBPutCounterAll,DBEffect +SVar:DBMill:DB$ Mill | NumCards$ 5 | Defined$ You | SubAbility$ DBChangeZone | SpellDescription$ Mill five cards. You may put an Elf card or Tyvar card from your graveyard onto the battlefield. +SVar:DBChangeZone:DB$ ChangeZone | Hidden$ True | ChangeType$ Elf.YouOwn,Tyvar.YouOwn | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Battlefield +SVar:DBPutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.Elf+YouCtrl | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on each Elf you control. +SVar:DBEffect:DB$ Effect | Triggers$ TrigAttack | SpellDescription$ Whenever an Elf you control attacks this turn, target creature an opponent controls gets -1/-1 until end of turn. +SVar:TrigAttack:Mode$ Attacks | ValidCard$ Creature.Elf+YouCtrl | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever an Elf you control attacks this turn, target creature an opponent controls gets -1/-1 until end of turn. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True +DeckHints:Type$Elf|Tyvar +DeckHas:Ability$Counters +Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Mill five cards. You may put an Elf or Tyvar card from your graveyard onto the battlefield.\nII — Put a +1/+1 counter on each Elf you control.\nIII — Whenever an Elf you control attacks this turn, target creature an opponent controls gets -1/-1 until end of turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt b/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt new file mode 100644 index 00000000000..ebc6152e8b3 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt @@ -0,0 +1,7 @@ +Name:A-Plate Armor +ManaCost:1 W +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddKeyword$ Ward:1 | Description$ Equipped creature gets +3/+3 and has ward {1}. (Whenever equipped creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.) +K:Equip:3:::ReduceCost$ Y:This ability costs {1} less to activate for each other Equipment you control +SVar:Y:Count$Valid Equipment.YouCtrl+Other +Oracle:Equipped creature gets +3/+3 and has ward {1}. (Whenever equipped creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.)\nEquip {3}. This ability costs {1} less to activate for each other Equipment you control. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt b/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt new file mode 100644 index 00000000000..c7cfbe5e96a --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt @@ -0,0 +1,9 @@ +Name:A-Return Upon the Tide +ManaCost:4 B +Types:Sorcery +A:SP$ ChangeZone | Cost$ 4 B | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SubAbility$ DBToken | SpellDescription$ Return target creature card from your graveyard to the battlefield. If it's an Elf, create three 1/1 green Elf Warrior creature tokens. +SVar:DBToken:DB$ Token | TokenAmount$ 3 | TokenScript$ g_1_1_elf_warrior | LegacyImage$ g 1 1 elf warrior khm | TokenOwner$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 +SVar:X:Targeted$Valid Elf +K:Foretell:3 B +DeckHas:Ability$Token +Oracle:Return target creature card from your graveyard to the battlefield. If it's an Elf, create three 1/1 green Elf Warrior creature tokens.\nForetell {3}{B} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.) diff --git a/forge-gui/res/cardsfolder/rebalanced/a-shessra_deaths_whisper.txt b/forge-gui/res/cardsfolder/rebalanced/a-shessra_deaths_whisper.txt new file mode 100644 index 00000000000..63f19bf8d0c --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-shessra_deaths_whisper.txt @@ -0,0 +1,10 @@ +Name:A-Shessra, Death's Whisper +ManaCost:1 B G +Types:Legendary Creature Human Elf Warlock +PT:1/4 +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigProvoke | TriggerDescription$ Bewitching Whispers — When CARDNAME enters the battlefield, target creature blocks this turn if able. +SVar:TrigProvoke:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME blocks each combat if able. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | OptionalDecider$ You | Execute$ TrigDraw | TriggerDescription$ Whispers of the Grave — At the beginning of your end step, if a creature died this turn, you may pay 2 life. If you do, draw a card. +SVar:TrigDraw:AB$ Draw | Cost$ PayLife<2> | NumCards$ 1 +SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature +Oracle:Bewitching Whispers — When Shessra, Death's Whisper enters the battlefield, target creature blocks this turn if able.\nWhispers of the Grave — At the beginning of your end step, if a creature died this turn, you may pay 2 life. If you do, draw a card. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-skemfar_avenger.txt b/forge-gui/res/cardsfolder/rebalanced/a-skemfar_avenger.txt new file mode 100644 index 00000000000..1dd2c12c364 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-skemfar_avenger.txt @@ -0,0 +1,9 @@ +Name:A-Skemfar Avenger +ManaCost:1 B +Types:Creature Elf Berserker +PT:3/1 +T:Mode$ ChangesZone | ValidCard$ Creature.Elf+Other+YouCtrl,Creature.Berserker+Other+YouCtrl | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever another Elf or Berserker you control dies, you draw a card and you lose 1 life. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife +SVar:DBLoseLife:DB$ LoseLife | Defined$ You | LifeAmount$ 1 +DeckHints:Type$Elf|Berserker +Oracle:Whenever another Elf or Berserker you control dies, you draw a card and you lose 1 life. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-skemfar_elderhall.txt b/forge-gui/res/cardsfolder/rebalanced/a-skemfar_elderhall.txt new file mode 100644 index 00000000000..82be52f090e --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-skemfar_elderhall.txt @@ -0,0 +1,9 @@ +Name:A-Skemfar Elderhall +ManaCost:no cost +Types:Land +K:CARDNAME enters the battlefield tapped. +A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}. +A:AB$ Pump | Cost$ 1 B B G T Sac<1/CARDNAME> | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select up to one target creature you don't control | NumAtt$ -2 | NumDef$ -2 | IsCurse$ True | SorcerySpeed$ True | SubAbility$ DBToken | StackDescription$ {c:Targeted} gets -2/-2 until end of turn. | SpellDescription$ Up to one target creature you don't control gets -2/-2 until end of turn. Create two 1/1 green Elf Warrior creature tokens. Activate only as a sorcery. +SVar:DBToken:DB$ Token | TokenAmount$ 2 | TokenScript$ g_1_1_elf_warrior | TokenOwner$ You | StackDescription$ {p:You} creates two 1/1 green Elf Warrior creature tokens. +DeckHas:Ability$Token|Sacrifice +Oracle:Skemfar Elderhall enters the battlefield tapped.\n{T}: Add {G}.\n{1}{B}{B}{G}, {T}, Sacrifice Skemfar Elderhall: Up to one target creature you don't control gets -2/-2 until end of turn. Create two 1/1 green Elf Warrior creature tokens. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-spell_satchel.txt b/forge-gui/res/cardsfolder/rebalanced/a-spell_satchel.txt new file mode 100644 index 00000000000..d301ff8dabc --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-spell_satchel.txt @@ -0,0 +1,8 @@ +Name:A-Spell Satchel +ManaCost:2 +Types:Artifact +T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, put a book counter on Spell Satchel. +A:AB$ Mana | Cost$ T SubCounter<1/BOOK> | Produced$ C | SpellDescription$ Add {C}. +A:AB$ Draw | Cost$ 2 T SubCounter<2/BOOK> | NumCards$ 1 | SpellDescription$ Draw a card. +SVar:TrigPutCounter:DB$ PutCounter | CounterType$ BOOK | CounterNum$ 1 | Defined$ Self +Oracle:Magecraft — Whenever you cast or copy an instant or sorcery spell, put a book counter on Spell Satchel.\n{T}, Remove a book counter from Spell Satchel: Add {C}.\n{2}, {T}, Remove two book counters from Spell Satchel: Draw a card. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-symmetry_sage.txt b/forge-gui/res/cardsfolder/rebalanced/a-symmetry_sage.txt new file mode 100644 index 00000000000..fa21f4f9609 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-symmetry_sage.txt @@ -0,0 +1,8 @@ +Name:A-Symmetry Sage +ManaCost:U +Types:Creature Human Wizard +PT:0/3 +K:Flying +T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPower | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, target creature you control has base power 3 until end of turn. +SVar:TrigPower:DB$ Animate | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Power$ 3 +Oracle:Flying\nMagecraft — Whenever you cast or copy an instant or sorcery spell, target creature you control has base power 3 until end of turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-thornmantle_striker.txt b/forge-gui/res/cardsfolder/rebalanced/a-thornmantle_striker.txt new file mode 100644 index 00000000000..a097012657d --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-thornmantle_striker.txt @@ -0,0 +1,11 @@ +Name:A-Thornmantle Striker +ManaCost:3 B +Types:Creature Elf Rogue +PT:4/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ DBRemoveCounter,DBPump +SVar:DBRemoveCounter:DB$ RemoveCounter | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | CounterType$ Any | CounterNum$ X | SpellDescription$ Remove X counters from target permanent, where X is the number of Elves you control. +SVar:DBPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | IsCurse$ True | NumAtt$ -X | NumDef$ -X | SpellDescription$ Target creature an opponent controls gets -X/-X until end of turn, where X is the number of Elves you control. +SVar:X:Count$Valid Elf.YouCtrl +DeckNeeds:Type$Elf +Oracle:When Thornmantle Striker enters the battlefield, choose one —\n• Remove X counters from target permanent, where X is the number of Elves you control.\n• Target creature an opponent controls gets -X/-X until end of turn, where X is the number of Elves you control. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-tyvar_kell.txt b/forge-gui/res/cardsfolder/rebalanced/a-tyvar_kell.txt new file mode 100644 index 00000000000..b768a5474dc --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-tyvar_kell.txt @@ -0,0 +1,17 @@ +Name:A-Tyvar Kell +ManaCost:2 G G +Types:Legendary Planeswalker Tyvar +Loyalty:4 +S:Mode$ Continuous | Affected$ Elf.YouCtrl | AddAbility$ Mana | Description$ Elves you control have "{T}: Add {B}." +SVar:Mana:AB$Mana | Cost$ T | Produced$ B | Amount$ 1 | SpellDescription$ Add {B}. +A:AB$ PutCounter | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Elf | TgtPrompt$ Select target Elf | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBUntap | SpellDescription$ Put two +1/+1 counters on up to one target Elf. Untap it. It gains deathtouch until end of turn. +SVar:DBUntap:DB$ Untap | Defined$ Targeted | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | KW$ Deathtouch | Defined$ Targeted +A:AB$ Token | Cost$ AddCounter<0/LOYALTY> | TokenAmount$ 1 | TokenScript$ g_1_1_elf_warrior | TokenOwner$ You | Planeswalker$ True | LegacyImage$ g 1 1 elf warrior khm | SpellDescription$ Create a 1/1 green Elf Warrior creature token. +A:AB$ Effect | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Tyvar Kell | Image$ emblem_tyvar_kell | Triggers$ TrigSpellCast | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards." +SVar:TrigSpellCast:Mode$ SpellCast | ValidCard$ Elf | ValidActivatingPlayer$ You | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards. +SVar:EffSpellCast:DB$ Animate | Defined$ TriggeredCard | Keywords$ Haste | SubAbility$ EffDraw +SVar:EffDraw:DB$ Draw | Defined$ You | NumCards$ 2 +DeckHints:Type$Elf +DeckHas:Ability$Counters|Token +Oracle:Elves you control have "{T}: Add {B}."\n[+1]: Put two +1/+1 counters on up to one target Elf. Untap it. It gains deathtouch until end of turn.\n[0]: Create a 1/1 green Elf Warrior creature token.\n[-7]: You get an emblem with "Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards." From b8af5e882037830e18577f184bdd94e1cf2f7f75 Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Tue, 5 Apr 2022 09:53:25 +0100 Subject: [PATCH 3/8] second round of cards --- forge-gui/res/cardsfolder/a/arms_scavenger.txt | 5 +++-- .../res/cardsfolder/e/expedition_supplier.txt | 6 +++--- .../cardsfolder/rebalanced/a-armory_veteran.txt | 8 ++++++++ .../rebalanced/a-bruenor_battlehammer.txt | 9 +++++++++ .../rebalanced/a-dwarfhold_champion.txt | 8 ++++++++ .../rebalanced/a-goma_fada_vanguard.txt | 10 ++++++++++ .../rebalanced/a-harald_king_of_skemfar.txt | 2 +- .../rebalanced/a-kargan_intimidator.txt | 11 +++++++++++ .../cardsfolder/rebalanced/a-kargan_warleader.txt | 9 +++++++++ .../rebalanced/a-nahiri_heir_of_the_ancients.txt | 15 +++++++++++++++ .../res/cardsfolder/rebalanced/a-plate_armor.txt | 4 ++-- .../rebalanced/a-return_upon_the_tide.txt | 2 +- 12 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-armory_veteran.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-bruenor_battlehammer.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-dwarfhold_champion.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-goma_fada_vanguard.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-kargan_intimidator.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-kargan_warleader.txt create mode 100644 forge-gui/res/cardsfolder/rebalanced/a-nahiri_heir_of_the_ancients.txt diff --git a/forge-gui/res/cardsfolder/a/arms_scavenger.txt b/forge-gui/res/cardsfolder/a/arms_scavenger.txt index 5e8d46d00eb..2058ae8b2e8 100644 --- a/forge-gui/res/cardsfolder/a/arms_scavenger.txt +++ b/forge-gui/res/cardsfolder/a/arms_scavenger.txt @@ -2,10 +2,11 @@ Name:Arms Scavenger ManaCost:1 R Types:Creature Human Warrior PT:2/2 -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraft | TriggerDescription$ At the beginning of your upkeep, draft a card from CARDNAME's spellbook, then exile it. Until the end of turn, you may play that card. +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraft | TriggerDescription$ At the beginning of your upkeep, draft a card from CARDNAME's spellbook, then exile it. Until end of turn, you may play that card. SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Boots of Speed,Cliffhaven Kitesail,Colossus Hammer,Dueling Rapier,Spare Dagger,Tormentor's Helm,Goldvein Pick,Jousting Lance,Mask of Immolation,Mirror Shield,Relic Axe,Rogue's Gloves,Scavenged Blade,Shield of the Realm,Ceremonial Knife | SubAbility$ DBMakeCard SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Exile | RememberMade$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | ExileOnMoved$ Exile | SubAbility$ DBCleanup SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of turn, you may play that card. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True -Oracle:At the beginning of your upkeep, draft a card from Arms Scavenger's spellbook, then exile it. Until the end of turn, you may play that card. +S:Mode$ ReduceCost | ValidCard$ Card | ValidSpell$ Activated.Equip | Activator$ You | Amount$ 1 | Condition$ PlayerTurn | Description$ Equip abilities you activate cost {1} less to activate. +Oracle:At the beginning of your upkeep, draft a card from Arms Scavenger's spellbook, then exile it. Until end of turn, you may play that card.\nEquip abilities you activate cost {1} less to activate. diff --git a/forge-gui/res/cardsfolder/e/expedition_supplier.txt b/forge-gui/res/cardsfolder/e/expedition_supplier.txt index f54a7f9ffb6..6ec1e8b518d 100644 --- a/forge-gui/res/cardsfolder/e/expedition_supplier.txt +++ b/forge-gui/res/cardsfolder/e/expedition_supplier.txt @@ -2,7 +2,7 @@ Name:Expedition Supplier ManaCost:2 W Types:Creature Human Warrior PT:2/2 -T:Mode$ ChangesZoneAll | ValidCards$ Human.YouCtrl | Destination$ Battlefield | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ DBMakeCard | TriggerDescription$ Whenever CARDNAME or another Human enters the battlefield under your control, conjure a card named Utility Knife onto the battlefield. This ability triggers only once each turn. +T:Mode$ ChangesZoneAll | ValidCards$ Human.YouCtrl,Warrior.YouCtrl | Destination$ Battlefield | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ DBMakeCard | TriggerDescription$ Whenever one or more Humans and/or Warriors enter the battlefield under your control, conjure a card named Utility Knife onto the battlefield. This ability triggers only once each turn. SVar:DBMakeCard:DB$ MakeCard | Name$ Utility Knife | Zone$ Battlefield | SpellDescription$ Conjure a card named Utility Knife onto the battlefield. -DeckHints:Type$Human -Oracle:Whenever Expedition Supplier or another Human enters the battlefield under your control, conjure a card named Utility Knife onto the battlefield. This ability triggers only once each turn. +DeckHints:Type$Human|Warrior +Oracle:Whenever one or more Humans and/or Warriors enter the battlefield under your control, conjure a card named Utility Knife onto the battlefield. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-armory_veteran.txt b/forge-gui/res/cardsfolder/rebalanced/a-armory_veteran.txt new file mode 100644 index 00000000000..cfbe12ce0ac --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-armory_veteran.txt @@ -0,0 +1,8 @@ +Name:A-Armory Veteran +ManaCost:1 R +Types:Creature Orc Warrior +PT:2/2 +K:Ward:PayLife<2> +S:Mode$ Continuous | Affected$ Card.Self+equipped | AddKeyword$ Menace | Description$ As long as CARDNAME is equipped, it has menace. +SVar:EquipMe:Once +Oracle:Ward—Pay 2 life.\nAs long as Armory Veteran is equipped, it has menace. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-bruenor_battlehammer.txt b/forge-gui/res/cardsfolder/rebalanced/a-bruenor_battlehammer.txt new file mode 100644 index 00000000000..11162b5502f --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-bruenor_battlehammer.txt @@ -0,0 +1,9 @@ +Name:A-Bruenor Battlehammer +ManaCost:2 R W +Types:Legendary Creature Dwarf Warrior +PT:5/4 +S:Mode$ Continuous | Affected$ Creature.YouCtrl | AffectedZone$ Battlefield | AddPower$ AffectedX | Description$ Each creature you control gets +2/+0 for each Equipment attached to it. +SVar:AffectedX:Count$Valid Equipment.Attached/Times.2 +A:AB$ Pump | Cost$ 0 | ValidTgts$ Equipment.YouCtrl | TgtPrompt$ Select target equipment you control | SubAbility$ BruenorAttach | SorcerySpeed$ True | ActivationLimit$ 1 | StackDescription$ None | SpellDescription$ Attach target Equipment you control to target creature you control. Activate only as a sorcery and only once each turn. +SVar:BruenorAttach:DB$ Attach | Object$ ParentTarget | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control. +Oracle:Each creature you control gets +2/+0 for each Equipment attached to it.\n{0}: Attach target Equipment you control to target creature you control. Activate only as a sorcery and only once each turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-dwarfhold_champion.txt b/forge-gui/res/cardsfolder/rebalanced/a-dwarfhold_champion.txt new file mode 100644 index 00000000000..215b01892b9 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-dwarfhold_champion.txt @@ -0,0 +1,8 @@ +Name:A-Dwarfhold Champion +ManaCost:1 W +Types:Creature Dwarf Warrior +PT:3/1 +K:Ward:1 +S:Mode$ Continuous | Affected$ Card.Self+equipped | AddPower$ 0 | AddToughness$ 2 | Description$ As long as CARDNAME is equipped, it gets +0/+2. +SVar:EquipMe:Once +Oracle:Ward {1}\nAs long as Dwarfhold Champion is equipped, it gets +0/+2. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-goma_fada_vanguard.txt b/forge-gui/res/cardsfolder/rebalanced/a-goma_fada_vanguard.txt new file mode 100644 index 00000000000..b4e4477b948 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-goma_fada_vanguard.txt @@ -0,0 +1,10 @@ +Name:A-Goma Fada Vanguard +ManaCost:1 R +Types:Creature Human Warrior +PT:2/2 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, target creature an opponent controls with power less than or equal to the number of Warriors and Equipment you control can't block this turn. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl+powerLEX | TgtPrompt$ Select target creature an opponent controls with power less than or equal to the number of Warriors and Equipment you control | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True +SVar:X:Count$Valid Warrior.YouCtrl,Equipment.YouCtrl +SVar:HasAttackEffect:TRUE +DeckHints:Type$Warrior +Oracle:Whenever Goma Fada Vanguard attacks, target creature an opponent controls with power less than or equal to the number of Warriors and Equipment you control can't block this turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt b/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt index 54d7d237381..3306f17e4f1 100644 --- a/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt +++ b/forge-gui/res/cardsfolder/rebalanced/a-harald_king_of_skemfar.txt @@ -6,4 +6,4 @@ K:Menace T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top seven cards of your library. You may reveal an Elf, Warrior, or Tyvar card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. SVar:TrigDig:DB$ Dig | DigNum$ 7 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Elf,Warrior,Tyvar | RestRandomOrder$ True DeckHints:Type$Elf|Tyvar -Oracle:Menace (This creature can't be blocked except by two or more creatures.)\nWhen Harald, King of Skemfar enters the battlefield, look at the top seven cards of your library. You may reveal an Elf, Warrior, or Tyvar card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +Oracle:Menace\nWhen Harald, King of Skemfar enters the battlefield, look at the top seven cards of your library. You may reveal an Elf, Warrior, or Tyvar card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-kargan_intimidator.txt b/forge-gui/res/cardsfolder/rebalanced/a-kargan_intimidator.txt new file mode 100644 index 00000000000..07057830c6c --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-kargan_intimidator.txt @@ -0,0 +1,11 @@ +Name:A-Kargan Intimidator +ManaCost:1 R +Types:Creature Human Warrior +PT:3/1 +S:Mode$ CantBlockBy | ValidAttacker$ Creature.Warrior | ValidBlocker$ Creature.Coward | Description$ Cowards can't block Warriors. +A:AB$ Charm | Cost$ 1 | Choices$ Pump,Coward | ChoiceRestriction$ ThisTurn | CharmNum$ 1 +SVar:Pump:DB$ Pump | ValidTgts$ Warrior | TgtPrompt$ Select target Warrior | NumAtt$ 1 | NumDef$ 1 | KW$ Trample | SpellDescription$ Target Warrior gets +1/+1 and gains trample until end of turn. +SVar:Coward:DB$ Animate | ValidTgts$ Creature | TgtPrompt$ Select target creature | Types$ Coward | RemoveCreatureTypes$ True | SpellDescription$ Target creature becomes a Coward until end of turn. +DeckHints:Type$Warrior +SVar:PlayMain1:TRUE +Oracle:Cowards can't block Warriors.\n{1}: Choose one that hasn't been chosen this turn —\n• Target Warrior gets +1/+1 and gains trample until end of turn.\n• Target creature becomes a Coward until end of turn. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-kargan_warleader.txt b/forge-gui/res/cardsfolder/rebalanced/a-kargan_warleader.txt new file mode 100644 index 00000000000..8ba405f265e --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-kargan_warleader.txt @@ -0,0 +1,9 @@ +Name:A-Kargan Warleader +ManaCost:1 R W +Types:Creature Human Warrior +PT:3/3 +K:Ward:1 +S:Mode$ Continuous | Affected$ Warrior.YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Ward:1 | Description$ Other Warriors you control get +1/+1 and have ward {1}. +SVar:PlayMain1:TRUE +DeckHints:Type$Warrior +Oracle:Ward {1}\nOther Warriors you control get +1/+1 and have ward {1}. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-nahiri_heir_of_the_ancients.txt b/forge-gui/res/cardsfolder/rebalanced/a-nahiri_heir_of_the_ancients.txt new file mode 100644 index 00000000000..9e2120bd7f1 --- /dev/null +++ b/forge-gui/res/cardsfolder/rebalanced/a-nahiri_heir_of_the_ancients.txt @@ -0,0 +1,15 @@ +Name:A-Nahiri, Heir of the Ancients +ManaCost:2 R W +Types:Legendary Planeswalker Nahiri +Loyalty:4 +A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | TokenAmount$ 1 | TokenScript$ w_1_1_kor_warrior | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBChooseToken | SpellDescription$ Create a 1/1 white Kor Warrior creature token. You may attach an Equipment you control to it. +SVar:DBChooseToken:DB$ ChooseCard | DefinedCards$ Remembered | Mandatory$ True | ChoiceTitle$ Choose a token | SubAbility$ DBAttach | StackDescription$ None +SVar:DBAttach:DB$ Attach | Optional$ True | Choices$ Equipment.YouCtrl | ChoiceTitle$ Choose an Equipment you control | Defined$ ChosenCard | SubAbility$ DBCleanup | StackDescription$ None +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True +A:AB$ DigMultiple | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | DigNum$ 6 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Card.Warrior,Card.Equipment | RestRandomOrder$ True | SpellDescription$ Look at the top six cards of your library. You may reveal a Warrior card and/or Equipment card from among them and put them into your hand. Put the rest on the bottom of your library in a random order. +A:AB$ DealDamage | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X | SpellDescription$ CARDNAME deals damage to target creature or planeswalker equal to twice the number of Warriors and Equipment you control. +SVar:X:Count$Valid Warrior.YouCtrl,Equipment.YouCtrl/Twice +DeckNeeds:Type$Equipment +DeckHints:Type$Warrior +DeckHas:Ability$Token +Oracle:[+1]: Create a 1/1 white Kor Warrior creature token. You may attach an Equipment you control to it.\n[-2]: Look at the top six cards of your library. You may reveal a Warrior card and/or Equipment card from among them and put them into your hand. Put the rest on the bottom of your library in a random order.\n[-3]: Nahiri, Heir of the Ancients deals damage to target creature or planeswalker equal to twice the number of Warriors and Equipment you control. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt b/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt index ebc6152e8b3..a980c19dec2 100644 --- a/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt +++ b/forge-gui/res/cardsfolder/rebalanced/a-plate_armor.txt @@ -1,7 +1,7 @@ Name:A-Plate Armor ManaCost:1 W Types:Artifact Equipment -S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddKeyword$ Ward:1 | Description$ Equipped creature gets +3/+3 and has ward {1}. (Whenever equipped creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.) +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddKeyword$ Ward:1 | Description$ Equipped creature gets +3/+3 and has ward {1}. K:Equip:3:::ReduceCost$ Y:This ability costs {1} less to activate for each other Equipment you control SVar:Y:Count$Valid Equipment.YouCtrl+Other -Oracle:Equipped creature gets +3/+3 and has ward {1}. (Whenever equipped creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.)\nEquip {3}. This ability costs {1} less to activate for each other Equipment you control. +Oracle:Equipped creature gets +3/+3 and has ward {1}.\nEquip {3}. This ability costs {1} less to activate for each other Equipment you control. diff --git a/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt b/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt index c7cfbe5e96a..e3322c2e7a1 100644 --- a/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt +++ b/forge-gui/res/cardsfolder/rebalanced/a-return_upon_the_tide.txt @@ -6,4 +6,4 @@ SVar:DBToken:DB$ Token | TokenAmount$ 3 | TokenScript$ g_1_1_elf_warrior | Legac SVar:X:Targeted$Valid Elf K:Foretell:3 B DeckHas:Ability$Token -Oracle:Return target creature card from your graveyard to the battlefield. If it's an Elf, create three 1/1 green Elf Warrior creature tokens.\nForetell {3}{B} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.) +Oracle:Return target creature card from your graveyard to the battlefield. If it's an Elf, create three 1/1 green Elf Warrior creature tokens.\nForetell {3}{B} From ce1cacbaee5fb9dc0a076256672eb7c617197815 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 5 Apr 2022 11:36:32 +0200 Subject: [PATCH 4/8] Don't clear attackedThisTurn too early --- forge-game/src/main/java/forge/game/Game.java | 2 ++ forge-game/src/main/java/forge/game/phase/PhaseHandler.java | 3 --- forge-gui/res/cardsfolder/d/disharmony.txt | 2 +- forge-gui/res/cardsfolder/r/reset.txt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index 18ffe6c2980..b9dfdf49c74 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -1093,6 +1093,8 @@ public class Game { public void onCleanupPhase() { clearCounterAddedThisTurn(); + // Reset the attackers this turn/last turn + resetPlayersAttackedOnNextTurn(); // some cards need this info updated even after a player lost, so don't skip them for (Player player : getRegisteredPlayers()) { player.onCleanupPhase(); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 1cef9a25eea..853102cabc3 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -379,9 +379,6 @@ public class PhaseHandler implements java.io.Serializable { playerTurn.getController().resetAtEndOfTurn(); } - // Reset the attackers this turn/last turn - game.resetPlayersAttackedOnNextTurn(); - game.getEndOfTurn().executeAt(); break; diff --git a/forge-gui/res/cardsfolder/d/disharmony.txt b/forge-gui/res/cardsfolder/d/disharmony.txt index 54c69d53b82..22ed1e303ce 100644 --- a/forge-gui/res/cardsfolder/d/disharmony.txt +++ b/forge-gui/res/cardsfolder/d/disharmony.txt @@ -1,7 +1,7 @@ Name:Disharmony ManaCost:2 R Types:Instant -Text:Cast Disharmony only during combat before blockers are declared. +Text:Cast CARDNAME only during combat before blockers are declared. A:SP$ Untap | Cost$ 2 R | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | ActivationPhases$ BeginCombat->Declare Attackers | SpellDescription$ Untap target attacking creature and remove it from combat. Gain control of that creature until end of turn. | SubAbility$ DBGainControl SVar:DBGainControl:DB$ GainControl | Defined$ Targeted | LoseControl$ EOT | SubAbility$ RemCombat SVar:RemCombat:DB$ RemoveFromCombat | Defined$ Targeted diff --git a/forge-gui/res/cardsfolder/r/reset.txt b/forge-gui/res/cardsfolder/r/reset.txt index 0077bf847c7..e034540de2f 100644 --- a/forge-gui/res/cardsfolder/r/reset.txt +++ b/forge-gui/res/cardsfolder/r/reset.txt @@ -1,6 +1,6 @@ Name:Reset ManaCost:U U Types:Instant -A:SP$ UntapAll | Cost$ U U | ValidCards$ Land.YouCtrl | OpponentTurn$ True | ActivationPhases$ Draw->Cleanup | SpellDescription$ Cast Reset only during an opponent's turn after their upkeep step. Untap all lands you control. +A:SP$ UntapAll | Cost$ U U | ValidCards$ Land.YouCtrl | OpponentTurn$ True | ActivationPhases$ Draw->Cleanup | SpellDescription$ Cast CARDNAME only during an opponent's turn after their upkeep step. Untap all lands you control. AI:RemoveDeck:All Oracle:Cast this spell only during an opponent's turn after their upkeep step.\nUntap all lands you control. From 806922dafaee1c457178a7198034c40044afaada Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 5 Apr 2022 11:48:52 +0200 Subject: [PATCH 5/8] Cleanup todo (actually fixes corner case with Chandra's Incinerator) --- forge-game/src/main/java/forge/game/phase/PhaseHandler.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 853102cabc3..8424b0cb609 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -427,10 +427,6 @@ public class PhaseHandler implements java.io.Serializable { for (Player player : game.getPlayers()) { player.getController().autoPassCancel(); // autopass won't wrap to next turn } - // TODO can probably be removed now that onCleanupPhase is done for all Registered - for (Player player : game.getLostPlayers()) { - player.clearAssignedDamage(); - } nUpkeepsThisTurn = 0; nMain2sThisTurn = 0; From 21043e50d5813233f0a30a3cb0e2ddf14a5ec2d9 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 5 Apr 2022 13:41:17 +0200 Subject: [PATCH 6/8] Fix Charm NPE --- forge-ai/src/main/java/forge/ai/ability/CharmAi.java | 2 +- .../main/java/forge/game/ability/effects/CharmEffect.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/CharmAi.java b/forge-ai/src/main/java/forge/ai/ability/CharmAi.java index 5772ba2dfb4..a78406df498 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CharmAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CharmAi.java @@ -34,7 +34,7 @@ public class CharmAi extends SpellAbilityAi { num = min = choices.size(); } else { num = AbilityUtils.calculateAmount(source, sa.getParamOrDefault("CharmNum", "1"), sa); - min = sa.hasParam("MinCharmNum") ? AbilityUtils.calculateAmount(source, sa.getParamOrDefault("MinCharmNum", "1"), sa) : num; + min = sa.hasParam("MinCharmNum") ? AbilityUtils.calculateAmount(source, sa.getParam("MinCharmNum"), sa) : num; } boolean timingRight = sa.isTrigger(); //is there a reason to play the charm now? diff --git a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java index 31addb73b60..76a06d60df2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java @@ -170,13 +170,14 @@ public class CharmEffect extends SpellAbilityEffect { Card source = sa.getHostCard(); Player activator = sa.getActivatingPlayer(); - final int num = Math.min(AbilityUtils.calculateAmount(source, sa.getParamOrDefault("CharmNum", "1"), sa), choices.size()); - final int min = sa.hasParam("MinCharmNum") ? AbilityUtils.calculateAmount(source, sa.getParamOrDefault("MinCharmNum", "1"), sa) : num; + int num = AbilityUtils.calculateAmount(source, sa.getParamOrDefault("CharmNum", "1"), sa); + final int min = sa.hasParam("MinCharmNum") ? AbilityUtils.calculateAmount(source, sa.getParam("MinCharmNum"), sa) : num; // if the amount of choices is smaller than min then they can't be chosen if (min > choices.size()) { return false; } + num = Math.min(num, choices.size()); boolean isOptional = sa.hasParam("Optional"); if (isOptional && !activator.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblWouldYouLikeCharm", CardTranslation.getTranslatedName(source.getName())))) { From 500789e42c6dbc3705035ecf5baae10015dc5120 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 5 Apr 2022 14:35:28 +0200 Subject: [PATCH 7/8] Update check --- .../src/main/java/forge/game/ability/effects/CharmEffect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java index 76a06d60df2..0cea936f918 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CharmEffect.java @@ -167,8 +167,8 @@ public class CharmEffect extends SpellAbilityEffect { return true; } - Card source = sa.getHostCard(); - Player activator = sa.getActivatingPlayer(); + final Card source = sa.getHostCard(); + final Player activator = sa.getActivatingPlayer(); int num = AbilityUtils.calculateAmount(source, sa.getParamOrDefault("CharmNum", "1"), sa); final int min = sa.hasParam("MinCharmNum") ? AbilityUtils.calculateAmount(source, sa.getParam("MinCharmNum"), sa) : num; From edac3edd73e33dbe0614aa06a5e397bb66a585fb Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 5 Apr 2022 18:26:03 +0200 Subject: [PATCH 8/8] Fix missing zones --- forge-gui/res/cardsfolder/c/collector_ouphe.txt | 2 +- forge-gui/res/cardsfolder/c/cursed_totem.txt | 2 +- forge-gui/res/cardsfolder/k/karn_the_great_creator.txt | 2 +- forge-gui/res/cardsfolder/l/linvala_keeper_of_silence.txt | 2 +- forge-gui/res/cardsfolder/m/meliras_keepers.txt | 2 +- forge-gui/res/cardsfolder/n/null_rod.txt | 2 +- forge-gui/res/cardsfolder/s/solemnity.txt | 2 +- forge-gui/res/cardsfolder/s/stony_silence.txt | 2 +- forge-gui/res/cardsfolder/t/tatterkite.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/collector_ouphe.txt b/forge-gui/res/cardsfolder/c/collector_ouphe.txt index a8d89891e3d..135aa0e6188 100644 --- a/forge-gui/res/cardsfolder/c/collector_ouphe.txt +++ b/forge-gui/res/cardsfolder/c/collector_ouphe.txt @@ -2,6 +2,6 @@ Name:Collector Ouphe ManaCost:1 G Types:Creature Ouphe PT:2/2 -S:Mode$ CantBeActivated | Activator$ Player | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. +S:Mode$ CantBeActivated | Activator$ Player | AffectedZone$ Battlefield | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. AI:RemoveDeck:Random Oracle:Activated abilities of artifacts can't be activated. diff --git a/forge-gui/res/cardsfolder/c/cursed_totem.txt b/forge-gui/res/cardsfolder/c/cursed_totem.txt index cab19853543..b700cf2e108 100644 --- a/forge-gui/res/cardsfolder/c/cursed_totem.txt +++ b/forge-gui/res/cardsfolder/c/cursed_totem.txt @@ -1,7 +1,7 @@ Name:Cursed Totem ManaCost:2 Types:Artifact -S:Mode$ CantBeActivated | Activator$ Player | ValidCard$ Creature | ValidSA$ Activated | Description$ Activated abilities of creatures can't be activated. +S:Mode$ CantBeActivated | Activator$ Player | AffectedZone$ Battlefield | ValidCard$ Creature | ValidSA$ Activated | Description$ Activated abilities of creatures can't be activated. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Activated abilities of creatures can't be activated. diff --git a/forge-gui/res/cardsfolder/k/karn_the_great_creator.txt b/forge-gui/res/cardsfolder/k/karn_the_great_creator.txt index 6be542c8516..c3cf71fa32d 100644 --- a/forge-gui/res/cardsfolder/k/karn_the_great_creator.txt +++ b/forge-gui/res/cardsfolder/k/karn_the_great_creator.txt @@ -2,7 +2,7 @@ Name:Karn, the Great Creator ManaCost:4 Types:Legendary Planeswalker Karn Loyalty:5 -S:Mode$ CantBeActivated | Activator$ Opponent | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts your opponents control can't be activated. +S:Mode$ CantBeActivated | Activator$ Opponent | AffectedZone$ Battlefield | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts your opponents control can't be activated. SVar:NonStackingEffect:True A:AB$ Animate | Cost$ AddCounter<1/LOYALTY> | TargetMin$ 0 | TargetMax$ 1 | Planeswalker$ True | ValidTgts$ Artifact.nonCreature | TgtPrompt$ Select target noncreature artifact | Power$ X | Toughness$ X | Types$ Artifact,Creature | Duration$ UntilYourNextTurn | AILogic$ PTByCMC | SpellDescription$ Until your next turn, up to one target noncreature artifact becomes an artifact creature with power and toughness each equal to its mana value. SVar:X:Targeted$CardManaCost diff --git a/forge-gui/res/cardsfolder/l/linvala_keeper_of_silence.txt b/forge-gui/res/cardsfolder/l/linvala_keeper_of_silence.txt index 71e37949af6..3a294c9c005 100644 --- a/forge-gui/res/cardsfolder/l/linvala_keeper_of_silence.txt +++ b/forge-gui/res/cardsfolder/l/linvala_keeper_of_silence.txt @@ -3,6 +3,6 @@ ManaCost:2 W W Types:Legendary Creature Angel PT:3/4 K:Flying -S:Mode$ CantBeActivated | Activator$ Opponent | ValidCard$ Creature | ValidSA$ Activated | Description$ Activated abilities of creatures your opponents control can't be activated. +S:Mode$ CantBeActivated | Activator$ Opponent | AffectedZone$ Battlefield | ValidCard$ Creature | ValidSA$ Activated | Description$ Activated abilities of creatures your opponents control can't be activated. SVar:PlayMain1:TRUE Oracle:Flying\nActivated abilities of creatures your opponents control can't be activated. diff --git a/forge-gui/res/cardsfolder/m/meliras_keepers.txt b/forge-gui/res/cardsfolder/m/meliras_keepers.txt index 0df1707ab31..3bce91d0e6a 100644 --- a/forge-gui/res/cardsfolder/m/meliras_keepers.txt +++ b/forge-gui/res/cardsfolder/m/meliras_keepers.txt @@ -2,5 +2,5 @@ Name:Melira's Keepers ManaCost:4 G Types:Creature Human Warrior PT:4/4 -S:Mode$ CantPutCounter | ValidCard$ Card.Self | Description$ CARDNAME can't have counters put on it. +S:Mode$ CantPutCounter | ValidCard$ Card.Self+inZoneBattlefield | Description$ CARDNAME can't have counters put on it. Oracle:Melira's Keepers can't have counters put on it. diff --git a/forge-gui/res/cardsfolder/n/null_rod.txt b/forge-gui/res/cardsfolder/n/null_rod.txt index 3b09d8ab759..2b2f891b167 100644 --- a/forge-gui/res/cardsfolder/n/null_rod.txt +++ b/forge-gui/res/cardsfolder/n/null_rod.txt @@ -1,7 +1,7 @@ Name:Null Rod ManaCost:2 Types:Artifact -S:Mode$ CantBeActivated | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. +S:Mode$ CantBeActivated | AffectedZone$ Battlefield | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Activated abilities of artifacts can't be activated. diff --git a/forge-gui/res/cardsfolder/s/solemnity.txt b/forge-gui/res/cardsfolder/s/solemnity.txt index 4efca9fd517..3057678c9c8 100644 --- a/forge-gui/res/cardsfolder/s/solemnity.txt +++ b/forge-gui/res/cardsfolder/s/solemnity.txt @@ -2,5 +2,5 @@ Name:Solemnity ManaCost:2 W Types:Enchantment S:Mode$ CantPutCounter | ValidPlayer$ Player | Description$ Players can't get counters. -S:Mode$ CantPutCounter | ValidCard$ Creature,Artifact,Enchantment,Land | Description$ Counters can't be put on artifacts, creatures, enchantments or lands. +S:Mode$ CantPutCounter | AffectedZone$ Battlefield | ValidCard$ Creature.inZoneBattlefield,Artifact.inZoneBattlefield,Enchantment.inZoneBattlefield,Land.inZoneBattlefield | Description$ Counters can't be put on artifacts, creatures, enchantments or lands. Oracle:Players can't get counters.\nCounters can't be put on artifacts, creatures, enchantments, or lands. diff --git a/forge-gui/res/cardsfolder/s/stony_silence.txt b/forge-gui/res/cardsfolder/s/stony_silence.txt index a757e1e9986..26d6181f2c1 100644 --- a/forge-gui/res/cardsfolder/s/stony_silence.txt +++ b/forge-gui/res/cardsfolder/s/stony_silence.txt @@ -1,7 +1,7 @@ Name:Stony Silence ManaCost:1 W Types:Enchantment -S:Mode$ CantBeActivated | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. +S:Mode$ CantBeActivated | AffectedZone$ Battlefield | ValidCard$ Artifact | ValidSA$ Activated | Description$ Activated abilities of artifacts can't be activated. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Activated abilities of artifacts can't be activated. diff --git a/forge-gui/res/cardsfolder/t/tatterkite.txt b/forge-gui/res/cardsfolder/t/tatterkite.txt index f67b62d7356..848dab0e5a2 100644 --- a/forge-gui/res/cardsfolder/t/tatterkite.txt +++ b/forge-gui/res/cardsfolder/t/tatterkite.txt @@ -3,5 +3,5 @@ ManaCost:3 Types:Artifact Creature Scarecrow PT:2/1 K:Flying -S:Mode$ CantPutCounter | ValidCard$ Card.Self | Description$ CARDNAME can't have counters put on it. +S:Mode$ CantPutCounter | ValidCard$ Card.Self+inZoneBattlefield | Description$ CARDNAME can't have counters put on it. Oracle:Flying\nTatterkite can't have counters put on it.