From 4e4b1a48706720d4427a673b6d73f747478584f6 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 12:51:37 -0400 Subject: [PATCH 01/79] lantern_flare.txt --- forge-gui/res/cardsfolder/upcoming/lantern_flare.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/lantern_flare.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt b/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt new file mode 100644 index 00000000000..a8af859f7e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lantern_flare.txt @@ -0,0 +1,11 @@ +Name:Lantern Flare +ManaCost:1 W +Types:Instant +A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ Y | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.] +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ Y +A:SP$ DealDamage | Cost$ X R W | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X | PrecostDesc$ Cleave | SubAbility$ DBGainLifeC | CostDesc$ {X}{R}{W} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +SVar:DBGainLifeC:DB$ GainLife | Defined$ You | LifeAmount$ X +SVar:X:Count$xPaid +SVar:Y:Count$TypeYouCtrl.Creature +DeckHas:Ability$LifeGain +Oracle:Cleave {X}{R}{W} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nLantern Flare deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.] From 3d0751eb6aa8f3d2782f1dd2d68f50fb3495e62f Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 14:57:14 -0400 Subject: [PATCH 02/79] laid_to_rest.txt --- forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt diff --git a/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt b/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt new file mode 100644 index 00000000000..2ba70d54e82 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/laid_to_rest.txt @@ -0,0 +1,10 @@ +Name:Laid to Rest +ManaCost:3 G +Types:Enchantment +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Human.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a Human you control dies, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | ValidCard$ Creature.YouCtrl+counters_GE1_P1P1 | Execute$ DBGainLife | TriggerDescription$ Whenever a creature you control with a +1/+1 counter on it dies, you gain 2 life. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2 +DeckNeeds:Type$Human & Ability$Counters +DeckHas:Ability$LifeGain +Oracle:Whenever a Human you control dies, draw a card.\nWhenever a creature you control with a +1/+1 counter on it dies, you gain 2 life. From 4385a022dd8907397ccd16e5bfd6df6904fa8ac5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 14:57:36 -0400 Subject: [PATCH 03/79] cemetery_protector.txt add DeckHints --- forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt b/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt index b4b85814bea..913eea7fe6e 100644 --- a/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt +++ b/forge-gui/res/cardsfolder/upcoming/cemetery_protector.txt @@ -11,4 +11,5 @@ SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_human T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True DeckHas:Ability$Token +DeckHints:Ability$Graveyard & Ability$Discard Oracle:Flash\nWhen Cemetery Protector enters the battlefield, exile a card from a graveyard.\nWhenever you play a land or cast a spell, if it shares a card type with the exiled card, create a 1/1 white Human creature token. From 569c802591daf46573c3c37c4f9747722b6299ba Mon Sep 17 00:00:00 2001 From: Andreas Bendel Date: Wed, 3 Nov 2021 19:56:07 +0000 Subject: [PATCH 04/79] Update de-DE.properties translated the new soundset lines --- forge-gui/res/languages/de-DE.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 04e44b97f85..3dc78e26dbc 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -111,7 +111,7 @@ cbpGameLogEntryType=Spielberichtsumfang cbpCloseAction=Beenden cbpDefaultFontSize=Standard Schriftgröße cbpCardArtFormat=Kartenbildformat -cbpSoundSets=Sound Set +cbpSoundSets=Sound-Set cbpAiProfiles=KI Persönlichkeit cbpStackAdditions=Nachricht bei Stapeländerung cbpDisplayCurrentCardColors=Zeige detaillierte Kartenfarben @@ -142,7 +142,7 @@ nlCompactMainMenu=Aktiviere, um im Seitenmenü platzsparend immer nur eine Menü nlUseSentry=Aktiviere, um automatische Fehlerberichte an die Entwickler zu senden. GamePlay=Spiel nlpMulliganRule=Wähle die Version der Mulligan Regel -nlpSoundSets=Choose the sound set from the ones present in the "sound" folder in your Forge cache directory +nlpSoundSets=Wähle eines der Sound-Sets aus dem "Sound"-Ordner in deinem Forge-Cache-Verzeichnis. nlpAiProfiles=Wähle die Spielweise deines KI-Gegners. nlpStackAdditions=Wähle, wann du über Änderungen am Stapel benachrichtigt werden möchtest: Niemals, immer oder nur für durch andere Spieler ausgelöste Effekte und Fähigkeiten nlAnte=Entscheidet, ob um einen Einsatz (Ante) gespielt wird. From b06ed827b3925276120fe48f2efc5866f42a53d4 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 20:06:02 -0400 Subject: [PATCH 05/79] diver_skaab.txt --- forge-gui/res/cardsfolder/upcoming/diver_skaab.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/diver_skaab.txt diff --git a/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt b/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt new file mode 100644 index 00000000000..1620ab76ade --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/diver_skaab.txt @@ -0,0 +1,9 @@ +Name:Diver Skaab +ManaCost:3 U U +Types:Creature Zombie +PT:3/5 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature | ValidSource$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigSubmerge | TriggerDescription$ When CARDNAME exploits a creature, target creature's owner puts it on the top or bottom of their library. +SVar:TrigSubmerge:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | AlternativeDecider$ TargetedController | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | DestinationAlternative$ Library | LibraryPositionAlternative$ -1 | AlternativeDestinationMessage$ Would you like to put the card on the top of your library (and not on the bottom)? +DeckHas:Ability$Sacrifice +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhen Diver Skaab exploits a creature, target creature's owner puts it on the top or bottom of their library. From 86ba85d5529cfcb63c376ced40fc536961e64ef9 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 20:24:04 -0400 Subject: [PATCH 06/79] retrieve.txt --- forge-gui/res/cardsfolder/upcoming/retrieve.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/retrieve.txt diff --git a/forge-gui/res/cardsfolder/upcoming/retrieve.txt b/forge-gui/res/cardsfolder/upcoming/retrieve.txt new file mode 100644 index 00000000000..1aa9072c706 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/retrieve.txt @@ -0,0 +1,7 @@ +Name:Retrieve +ManaCost:2 G +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select up to one target creature card in your graveyard | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.YouOwn | SubAbility$ DBReturn | StackDescription$ SpellDescription | SpellDescription$ Return up to one target creature card +SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Land.YouOwn | TgtPrompt$ Select up to one target noncreature permanent card in your graveyard | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ and up to one target noncreature permanent card +SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | StackDescription$ SpellDescription | SpellDescription$ to your hand. Exile CARDNAME. +Oracle:Return up to one target creature card and up to one target noncreature permanent card from your graveyard to your hand. Exile Retrieve. From ea677a9f2351952045dbc3dff5d1383394201e78 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 22:20:50 -0400 Subject: [PATCH 07/79] magma_pummeler.txt --- .../res/cardsfolder/upcoming/magma_pummeler.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt b/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt new file mode 100644 index 00000000000..038e0fb97dd --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/magma_pummeler.txt @@ -0,0 +1,15 @@ +Name:Magma Pummeler +ManaCost:X R R +Types:Creature Elemental +PT:0/0 +K:etbCounter:P1P1:X +SVar:X:Count$xPaid +R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self+counters_GE1_P1P1 | ReplaceWith$ Counters | PreventionEffect$ True | AlwaysReplace$ True | Description$ If damage would be dealt to CARDNAME while it has a +1/+1 counter on it, prevent that damage and remove that many +1/+1 counters from it. When one or more counters are removed from Magma Pummeler this way, it deals that much damage to any target. +SVar:Counters:DB$ RemoveCounter | Defined$ ReplacedTarget | CounterType$ P1P1 | CounterNum$ Y | RememberRemoved$ True | SubAbility$ DBImmediateTrigger +SVar:Y:ReplaceCount$DamageAmount +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | SubAbility$ DBCleanup | TriggerDescription$ When one or more counters are removed from CARDNAME this way, it deals that much damage to any target. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ Z +SVar:Z:Count$RememberedSize +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Counters +Oracle:Magma Pummeler enters the battlefield with X +1/+1 counters on it.\nIf damage would be dealt to Magma Pummeler while it has a +1/+1 counter on it, prevent that damage and remove that many +1/+1 counters from it. When one or more counters are removed from Magma Pummeler this way, it deals that much damage to any target. From 439a0a9c6aa1f9eeeecf3bd992443242c64824e0 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 22:43:50 -0400 Subject: [PATCH 08/79] ollenbock_escort.txt --- .../res/cardsfolder/upcoming/ollenbock_escort.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt b/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt new file mode 100644 index 00000000000..cbcfdb7ecd3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ollenbock_escort.txt @@ -0,0 +1,10 @@ +Name:Ollenbock Escort +ManaCost:W +Types:Creature Human Cleric +PT:1/1 +K:Vigilance +A:AB$ Pump | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl+counters_GE1_P1P1 | TgtPrompt$ Select target creature you control with a +1/+1 counter on it | KW$ Lifelink & Indestructible | SpellDescription$ Target creature you control with a +1/+1 counter on it gains lifelink and indestructible until end of turn. +AI:RemoveDeck:Random +DeckNeeds:Ability$Counters +DeckHas:Ability$Sacrifice & Ability$LifeGain +Oracle:Vigilance\nSacrifice Ollenbock Escort: Target creature you control with a +1/+1 counter on it gains lifelink and indestructible until end of turn. From 68d71e2a17c3f12c4b7774d109fbc1b1fcce5b32 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 22:46:25 -0400 Subject: [PATCH 09/79] resistance_squad.txt --- forge-gui/res/cardsfolder/upcoming/resistance_squad.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/resistance_squad.txt diff --git a/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt b/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt new file mode 100644 index 00000000000..ba74e33c079 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/resistance_squad.txt @@ -0,0 +1,8 @@ +Name:Resistance Squad +ManaCost:2 W +Types:Creature Human Soldier +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | IsPresent$ Human.Other+YouCtrl | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, if you control another Human, draw a card. +SVar:TrigDraw:DB$ Draw | NumCards$ 1 +DeckNeeds:Type$Human +Oracle:When Resistance Squad enters the battlefield, if you control another Human, draw a card. From 982caaefe2ca275ac410b6da8be8773b7345d69b Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 3 Nov 2021 22:51:19 -0400 Subject: [PATCH 10/79] howlpack_piper_wildsong_howler.txt (Suthro) --- .../howlpack_piper_wildsong_howler.txt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt b/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt new file mode 100644 index 00000000000..bff1a2b379b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/howlpack_piper_wildsong_howler.txt @@ -0,0 +1,25 @@ +Name:Howlpack Piper +ManaCost:3 G +Types:Creature Human Werewolf +PT:2/2 +K:CARDNAME can't be countered. +A:AB$ ChangeZone | Cost$ 1 G T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | SorcerySpeed$ True | RememberChanged$ True | SubAbility$ DBUntap | StackDescription$ You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap CARDNAME. | SpellDescription$ You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap CARDNAME. Activate only as a sorcery. +SVar:DBUntap:DB$ Untap | Defined$ Self | ConditionDefined$ Remembered | ConditionPresent$ Wolf,Werewolf | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Daybound +AlternateMode:DoubleFaced +DeckHints:Type$Wolf|Werewolf +Oracle:This spell can't be countered.\n{1}{G}, {T}: You may put a creature card from your hand onto the battlefield. If it's a Wolf or Werewolf, untap Howlpack Piper. Activate only as a sorcery.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Wildsong Howler +ManaCost:no cost +Colors:green +Types:Creature Werewolf +PT:4/4 +T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Whenever this creature enters the battlefield or transforms into CARDNAME, look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigDig | Secondary$ True | TriggerDescription$ Whenever this creature enters the battlefield or transforms into CARDNAME, look at the top six cards of your library. You may reveal a creature 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$ 6 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Card.Creature | RestRandomOrder$ True | ForceRevealToController$ True +K:Nightbound +Oracle:Whenever this creature enters the battlefield or transforms into Wildsong Howler, look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) From b92c331646f14a9c8edbe2c4a5a5c965dc689fea Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Thu, 4 Nov 2021 10:20:25 +0300 Subject: [PATCH 11/79] - Fix Living Weapon AI --- forge-ai/src/main/java/forge/ai/ability/AttachAi.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index bb444e4fd66..5540f3fec3b 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -1745,6 +1745,10 @@ public class AttachAi extends SpellAbilityAi { sa.getTargets().add(tgt); } return sa.isTargetNumberValid(); + } else if ("Remembered".equals(sa.getParam("Defined")) && sa.getParent() != null + && sa.getParent().getApi() == ApiType.Token && sa.getParent().hasParam("RememberTokens")) { + // Living Weapon or similar + return true; } return false; } From 2ddf38a60e4004ef32b7b96661ef8f93fd6002c4 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Thu, 4 Nov 2021 10:59:49 +0300 Subject: [PATCH 12/79] - Improve AI logic for bouncing creatures, e.g. Restoration Angel. --- .../java/forge/ai/ability/ChangeZoneAi.java | 45 ++++++++++++++++--- .../res/cardsfolder/r/restoration_angel.txt | 2 +- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 2c22a67411d..207d81d6aed 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -2,6 +2,8 @@ package forge.ai.ability; import java.util.*; +import forge.game.card.*; +import forge.game.keyword.Keyword; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Predicate; @@ -32,14 +34,7 @@ import forge.game.GlobalRuleChange; import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; -import forge.game.card.Card; -import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardLists; -import forge.game.card.CardPredicates; import forge.game.card.CardPredicates.Presets; -import forge.game.card.CardUtil; -import forge.game.card.CounterEnumType; import forge.game.combat.Combat; import forge.game.cost.Cost; import forge.game.cost.CostDiscard; @@ -1397,6 +1392,42 @@ public class ChangeZoneAi extends SpellAbilityAi { } } } + // Reload Undying and Persist, get rid of -1/-1 counters, get rid of enemy auras if able + for (Card c : aiPermanents) { + if (c.isCreature()) { + boolean hasValuableAttachments = false; + boolean hasOppAttachments = false; + int numNegativeCounters = 0; + int numTotalCounters = 0; + for (Card attached : c.getAttachedCards()) { + if (attached.isAura()) { + if (attached.getController() == c.getController()) { + hasValuableAttachments = true; + } else if (attached.getController().isOpponentOf(c.getController())) { + hasOppAttachments = true; + } + } + } + Map counters = c.getCounters(); + for (CounterType ct : counters.keySet()) { + int amount = counters.get(ct); + if (ComputerUtil.isNegativeCounter(ct, c)) { + numNegativeCounters += amount; + } + numTotalCounters += amount; + } + if (hasValuableAttachments || (ComputerUtilCard.isUselessCreature(ai, c) && !hasOppAttachments)) { + continue; + } + + if ((c.hasKeyword(Keyword.PERSIST) || c.hasKeyword(Keyword.UNDYING)) + && !ComputerUtilCard.hasActiveUndyingOrPersist(c)) { + return c; + } else if (hasOppAttachments || (numTotalCounters > 0 && numNegativeCounters > numTotalCounters / 2)) { + return c; + } + } + } return null; } diff --git a/forge-gui/res/cardsfolder/r/restoration_angel.txt b/forge-gui/res/cardsfolder/r/restoration_angel.txt index 4768ef5fc76..96811a8d1e2 100644 --- a/forge-gui/res/cardsfolder/r/restoration_angel.txt +++ b/forge-gui/res/cardsfolder/r/restoration_angel.txt @@ -5,7 +5,7 @@ PT:3/4 K:Flash K:Flying T:Mode$ ChangesZone | ValidCard$ Creature.Self | Origin$ Any | Destination$ Battlefield | Execute$ RestorationExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target non-Angel creature you control, then return that creature to the battlefield under your control. -SVar:RestorationExile:DB$ ChangeZone | ValidTgts$ Creature.nonAngel+YouCtrl | TgtPrompt$ Select target non-Angel creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | AILogic$ BounceOnce | SubAbility$ RestorationReturn +SVar:RestorationExile:DB$ ChangeZone | ValidTgts$ Creature.nonAngel+YouCtrl | TgtPrompt$ Select target non-Angel creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ RestorationReturn SVar:RestorationReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/restoration_angel.jpg Oracle:Flash\nFlying\nWhen Restoration Angel enters the battlefield, you may exile target non-Angel creature you control, then return that card to the battlefield under your control. From b362402d33feeb4f88acd138f20cc08004f7522b Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 06:44:53 -0400 Subject: [PATCH 13/79] suspicious_stowaway_seafaring_werewolf.txt --- .../cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt b/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt index 3fa1167dc45..8b04f582145 100644 --- a/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt +++ b/forge-gui/res/cardsfolder/s/suspicious_stowaway_seafaring_werewolf.txt @@ -19,7 +19,7 @@ Colors:green Types:Creature Werewolf PT:2/1 K:Unblockable -T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDrawN | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card, then discard a card. +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDrawN | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card. SVar:TrigDrawN:DB$ Draw | NumCards$ 1 | Defined$ You K:Nightbound Oracle:Seafaring Werewolf can't be blocked.\nWhenever Seafaring Werewolf deals combat damage to a player, draw a card.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) From 7851f8c94c81769edbc3d5b9b5bec14c92ab51cd Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 12:13:20 -0400 Subject: [PATCH 14/79] arm_the_cathars.txt --- forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt diff --git a/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt b/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt new file mode 100644 index 00000000000..f9301006cd2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/arm_the_cathars.txt @@ -0,0 +1,8 @@ +Name:Arm the Cathars +ManaCost:1 W W +Types:Sorcery +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature (+3/+3) | NumAtt$ 3 | NumDef$ 3 | KW$ Vigilance | SubAbility$ DBPump | StackDescription$ Until end of turn, {c:ThisTargetedCard} gets +3/+3, | SpellDescription$ Until end of turn, target creature gets +3/+3, +SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select up to one other target creature (+2/+2) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ 2 | NumDef$ 2 | KW$ Vigilance | TargetUnique$ True | SubAbility$ DBPump2 | StackDescription$ SpellDescription | SpellDescription$ up to one other target creature gets +2/+2, +SVar:DBPump2:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select up to one other target creature (+1/+1) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ 1 | NumDef$ 1 | KW$ Vigilance | TargetUnique$ True | SubAbility$ DBPump3 | StackDescription$ SpellDescription | SpellDescription$ and up to one other target creature gets +1/1. +SVar:DBPump3:DB$ Pump | Defined$ Targeted | KW$ Vigilance | StackDescription$ SpellDescription | SpellDescription$ Those creatures gain vigilance until end of turn. +Oracle:Until end of turn, target creature gets +3/+3, up to one other target creature gets +2/+2, and up to one other target creature gets +1/+1. Those creatures gain vigilance until end of turn. From 3cde05539a77a0fb4450948c1bacc708a513a0ce Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 19:38:46 -0400 Subject: [PATCH 15/79] dollhouse_of_horrors.txt --- .../res/cardsfolder/upcoming/dollhouse_of_horrors.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt b/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt new file mode 100644 index 00000000000..b95d6d1ef97 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dollhouse_of_horrors.txt @@ -0,0 +1,10 @@ +Name:Dollhouse of Horrors +ManaCost:5 +Types:Artifact +A:AB$ CopyPermanent | Cost$ 1 T ExileFromGrave<1/Creature> | Defined$ Exiled | SetPower$ 0 | SetToughness$ 0 | AddTypes$ Construct & Artifact | AddStaticAbilities$ ConstructBuff | SorcerySpeed$ True | SubAbility$ DBPump | StackDescription$ Create a token that's a copy of {c:Exiled}, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." | SpellDescription$ Create a token that's a copy of the exiled card, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." +SVar:DBPump:DB$ Pump | Defined$ Exiled | StackDescription$ That creature gains haste until end of turn. | SpellDescription$ That creature gains haste until end of turn. Activate only as a sorcery. +SVar:ConstructBuff:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ This creature gets +1/+1 for each Construct you control. +SVar:X:Count$Valid Construct.YouCtrl +DeckHas:Ability$Token & Ability$Graveyard & Type$Artifact +DeckHints:Type$Construct +Oracle:{1}, {T}: Exile a creature card from your graveyard: Create a token that's a copy of the exiled card, except it's a 0/0 Construct artifact in addition to its other types and it has "This creature gets +1/+1 for each Construct you control." That creature gains haste until end of turn. Activate only as a sorcery. From 5d0b36fc05e51ee6f88355ef55154d1592238ca4 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 19:44:54 -0400 Subject: [PATCH 16/79] sigardas_imprisonment.txt --- .../cardsfolder/upcoming/sigardas_imprisonment.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt b/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt new file mode 100644 index 00000000000..ffc534c6b77 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sigardas_imprisonment.txt @@ -0,0 +1,11 @@ +Name:Sigarda's Imprisonment +ManaCost:2 W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Curse +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ Enchanted creature can't attack or block. +A:AB$ ChangeZone | Cost$ 4 W | Defined$ Enchanted | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBToken | SpellDescription$ Exile enchanted creature. +SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw | SpellDescription$ Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:NonStackingAttachEffect:True +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:Enchant creature\nEnchanted creature can't attack or block.\n{4}{W}: Exile enchanted creature. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") From 9a477bce778cd90b4c35c49603cf9011963142da Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 20:04:05 -0400 Subject: [PATCH 17/79] falkenrath_forebear.txt --- .../res/cardsfolder/upcoming/falkenrath_forebear.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt diff --git a/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt b/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt new file mode 100644 index 00000000000..56eed23a8dc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/falkenrath_forebear.txt @@ -0,0 +1,11 @@ +Name:Falkenrath Forebear +ManaCost:2 B +Types:Creature Vampire +PT:3/1 +K:Flying +K:CARDNAME can't block. +T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a Blood token. +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +A:AB$ ChangeZone | Cost$ B Sac<2/Blood.token/Blood token> | Origin$ Graveyard | Destination$ Battlefield | ActivationZone$ Graveyard | SpellDescription$ Return CARDNAME from your graveyard to the battlefield. +DeckHas:Ability$Token & Ability$Sacrifice & Ability$Graveyard & Type$Blood +Oracle:Flying\nFalkenrath Forebear can't block.\nWhenever Falkenrath Forebear deals combat damage to a player, create a Blood token.\n{B}, Sacrifice two Blood tokens: Return Falkenrath Forebear from your graveyard to the battlefield. From 5d3d93226c8c29e4fd9c127b5b6144ae003c419b Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 20:04:25 -0400 Subject: [PATCH 18/79] wedding_security.txt --- .../res/cardsfolder/upcoming/wedding_security.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/wedding_security.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wedding_security.txt b/forge-gui/res/cardsfolder/upcoming/wedding_security.txt new file mode 100644 index 00000000000..12c6cc951d9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wedding_security.txt @@ -0,0 +1,11 @@ +Name:Wedding Security +ManaCost:3 B B +Types:Creature Vampire Soldier +PT:4/4 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPutCounter | IsPresent$ Blood.token+YouCtrl | TriggerDescription$ Whenever CARDNAME attacks, you may sacrifice a Blood token. If you do, put a +1/+1 counter on CARDNAME and draw a card. +SVar:TrigPutCounter:AB$ PutCounter | Cost$ Sac<1/Blood.token/Blood token> | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 1 +DeckNeeds:Type$Blood +DeckHas:Ability$Counters & Ability$Sacrifice +SVar:HasAttackEffect:TRUE +Oracle:Whenever Wedding Security attacks, you may sacrifice a Blood token. If you do, put a +1/+1 counter on Wedding Security and draw a card. From b1ab16cc63ea4a4e4192df9a6d13e577662dff25 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 20:06:36 -0400 Subject: [PATCH 19/79] type capping can/should be dealt with elsewhere --- forge-game/src/main/java/forge/game/cost/Cost.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/Cost.java b/forge-game/src/main/java/forge/game/cost/Cost.java index ab62db3a7d3..84f2e52229c 100644 --- a/forge-game/src/main/java/forge/game/cost/Cost.java +++ b/forge-game/src/main/java/forge/game/cost/Cost.java @@ -832,12 +832,7 @@ public class Cost implements Serializable { sb.append(Cost.NUM_NAMES[i]); } - sb.append(" "); - char firstChar = type.charAt(0); - if (Character.isUpperCase(firstChar)) { //fix case of type before appending - type = Character.toLowerCase(firstChar) + type.substring(1); - } - sb.append(type); + sb.append(" ").append(type); if (1 != i) { sb.append("s"); } From c3e8b911ac97c0751fe2473e3eb5a59e4d1b0d2e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 20:43:14 -0400 Subject: [PATCH 20/79] whispering_wizard.txt --- forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt b/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt new file mode 100644 index 00000000000..67533617bc2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/whispering_wizard.txt @@ -0,0 +1,9 @@ +Name:Whispering Wizard +ManaCost:3 U +Types:Creature Human Wizard +PT:3/2 +T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | ActivationLimit$ 1 | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast a noncreature spell, create a 1/1 white Spirit creature token with flying. This ability triggers only once each turn. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_spirit_flying +SVar:BuffedBy:Card.nonLand+nonCreature +DeckHas:Ability$Token +Oracle:Whenever you cast a noncreature spell, create a 1/1 white Spirit creature token with flying. This ability triggers only once each turn. From 808621c041354069a7453b9372b4348935cae928 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 21:25:21 -0400 Subject: [PATCH 21/79] mischievous_catgeist_catlike_curiosity.txt --- ...mischievous_catgeist_catlike_curiosity.txt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt b/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt new file mode 100644 index 00000000000..0a4f8ebe170 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mischievous_catgeist_catlike_curiosity.txt @@ -0,0 +1,24 @@ +Name:Mischievous Catgeist +ManaCost:1 U +Types:Creature Cat Spirit +PT:1/1 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +K:Disturb:2 U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Whenever Mischievous Catgeist deals combat damage to a player, draw card.\nDisturb {2}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Catlike Curiosity +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nWhenever enchanted creature deals combat damage to a player, draw a card.\nIf Catlike Curiosity would be put into a graveyard from anywhere, exile it instead. From daf67043dd0172190fcdab2af9463bd4dbbb4be8 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 21:31:24 -0400 Subject: [PATCH 22/79] lantern_bearer_lanterns_lift.txt --- .../upcoming/lantern_bearer_lanterns_lift.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt b/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt new file mode 100644 index 00000000000..9d44901737b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lantern_bearer_lanterns_lift.txt @@ -0,0 +1,22 @@ +Name:Lantern Bearer +ManaCost:U +Types:Creature Spirit +PT:1/1 +K:Flying +K:Disturb:2 U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Flying\nDisturb {2}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Lanterns' Lift +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | Description$ Enchanted creature gets +1/+1 and has flying. +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has flying.\nIf Lanterns' Lift would be put into a graveyard from anywhere, exile it instead. From 0ad17ed9a994afce7824d6c23df7aeaed754c8ab Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 21:49:09 -0400 Subject: [PATCH 23/79] cultivator_colossus.txt --- .../cardsfolder/upcoming/cultivator_colossus.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt b/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt new file mode 100644 index 00000000000..7a7196f519a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cultivator_colossus.txt @@ -0,0 +1,15 @@ +Name:Cultivator Colossus +ManaCost:4 G G G +Types:Creature Plant Beast +PT:*/* +K:Trample +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of lands you control. +SVar:X:Count$Valid Land.YouCtrl +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigRepeat | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. +SVar:TrigRepeat:DB$ Repeat | RepeatSubAbility$ DBClear | RepeatDefined$ Remembered | RepeatPresent$ Card | RepeatSVarCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBClear:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.YouOwn | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:BuffedBy:Land +Oracle:Trample\nCultivator Colossus's power and toughness are each equal to the number of lands you control.\nWhen Cultivator Colossus enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. From 590e4909327f25d6ea600b5feb08d7de423a1e34 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 21:52:48 -0400 Subject: [PATCH 24/79] inspired_idea.txt --- forge-gui/res/cardsfolder/upcoming/inspired_idea.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/inspired_idea.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt b/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt new file mode 100644 index 00000000000..f5adfe28c7c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/inspired_idea.txt @@ -0,0 +1,8 @@ +Name:Inspired Idea +ManaCost:2 U +Types:Sorcery +A:SP$ Draw | NumCards$ 3 | SubAbility$ DBEffect | SpellDescription$ Draw three cards. [Your maximum hand size is reduced by three for the rest of the game.] +SVar:DBEffect:DB$ Effect | StaticAbilities$ ReduceHand | Duration$ Permanent +SVar:ReduceHand:Mode$ Continuous | Affected$ You | RaiseMaxHandSize$ -3 | Description$ Your maximum hand size is reduced by three for the rest of the game. +A:SP$ Draw | Cost$ 3 U U | NumCards$ 3 | PrecostDesc$ Cleave | CostDesc$ {3}{U}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +Oracle:Cleave {3}{U}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nDraw three cards. [Your maximum hand size is reduced by three for the rest of the game.] From 20aa7600071b0110bd82bdb41eee582210ff102e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 22:18:56 -0400 Subject: [PATCH 25/79] ascendant_packleader.txt (Suthro) --- .../res/cardsfolder/upcoming/ascendant_packleader.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt b/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt new file mode 100644 index 00000000000..5264d0fde28 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ascendant_packleader.txt @@ -0,0 +1,10 @@ +Name:Ascendant Packleader +ManaCost:G +Types:Creature Wolf +PT:2/1 +K:etbCounter:P1P1:1:IsPresent$ Permanent.YouCtrl+cmcGE4:CARDNAME enters the battlefield with a +1/+1 counter on it if you control a permanent with mana value 4 or greater. +T:Mode$ SpellCast | ValidCard$ Card.cmcGE4 | ValidActivatingPlayer$ You | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a spell with mana value 4 or greater, put a +1/+1 counter on CARDNAME. +SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters +SVar:BuffedBy:Permanent.cmcGE4 +Oracle:Ascendant Packleader enters the battlefield with a +1/+1 counter on it if you control a permanent with mana value 4 or greater.\nWhenever you cast a spell with mana value 4 or greater, put a +1/+1 counter on Ascendant Packleader. From 636ce397bc79d8d8e56e4f78b0d0b54629f29700 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 22:23:48 -0400 Subject: [PATCH 26/79] hamlet_vanguard.txt --- forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt b/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt new file mode 100644 index 00000000000..622fa53e9f4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hamlet_vanguard.txt @@ -0,0 +1,10 @@ +Name:Hamlet Vanguard +ManaCost:2 G +Types:Creature Human Warrior +PT:1/1 +K:Ward:2 +K:etbCounter:P1P1:X:no Condition:CARDNAME enters the battlefield with two +1/+1 counters on it for each other nontoken Human you control. +SVar:X:Count$Valid Human.nonToken+YouCtrl/Times.2 +DeckNeeds:Type$Human +DeckHas:Ability$Counters +Oracle:Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.)\nHamlet Vanguard enters the battlefield with two +1/+1 counters on it for each other nontoken Human you control. From 721b3fc6b5da1e404fa492d1ff45be3bd8031ac1 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 22:42:32 -0400 Subject: [PATCH 27/79] concealing_curtains_revealing_eye.txt --- .../concealing_curtains_revealing_eye.txt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt diff --git a/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt b/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt new file mode 100644 index 00000000000..48128627453 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/concealing_curtains_revealing_eye.txt @@ -0,0 +1,25 @@ +Name:Concealing Curtains +ManaCost:B +Types:Creature Wall +PT:0/4 +K:Defender +A:AB$ SetState | Cost$ 2 B | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | SpellDescription$ Transform CARDNAME. Activate only as a sorcery. +AlternateMode:DoubleFaced +Oracle:Defender\n{2}{B}: Transform Concealing Curtains. Activate only as a sorcery. + +ALTERNATE + +Name:Revealing Eye +ManaCost:no cost +Colors:black +Types:Creature Eye Horror +PT:3/4 +K:Menace +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescription$ When this creature transforms into CARDNAME, target opponent reveals their hand. You may choose a nonland card from it. If you do, that player discards that card, then draws a card. +SVar:TrigReveal:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberRevealed$ True | SubAbility$ DBChoose +SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | SubAbility$ DBDiscard | ChoiceTitle$ You may choose a nonland card +SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ Targeted | NumCards$ 1 | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True +DeckHas:Ability$Discard +Oracle:Menace\nWhen this creature transforms into Revealing Eye, target opponent reveals their hand. You may choose a nonland card from it. If you do, that player discards that card, then draws a card. From 7f98ab938ea105d8f43fdd949e634140ec2be498 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 4 Nov 2021 22:42:38 -0400 Subject: [PATCH 28/79] distracting_geist_clever_distraction.txt --- .../distracting_geist_clever_distraction.txt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt diff --git a/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt b/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt new file mode 100644 index 00000000000..04c3f04a297 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/distracting_geist_clever_distraction.txt @@ -0,0 +1,27 @@ +Name:Distracting Geist +ManaCost:2 W +Types:Creature Spirit +PT:2/1 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature defending player controls. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target creature defending player controls +SVar:HasAttackEffect:TRUE +K:Disturb:4 W +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:Whenever Distracting Geist attacks, tap target creature defending player controls.\nDisturb {4}{W} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Clever Distraction +ManaCost:no cost +Colors:white +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddTrigger$ AttackTrigger | AddSVar$ AE | Description$ Enchanted creature has "Whenever this creature attacks, tap target creature defending player controls." +SVar:AttackTrigger:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature defending player controls. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target creature defending player controls +SVar:AE:SVar:HasAttackEffect:TRUE +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +Oracle:Enchant creature\nEnchanted creature has "Whenever this creature attacks, tap target creature defending player controls." If Clever Distraction would be put into a graveyard from anywhere, exile it instead. From 40ce78401b4bc597db3ddd3431b8d641cf4401ad Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Fri, 5 Nov 2021 08:33:18 +0300 Subject: [PATCH 29/79] - Fix Pardic Firecat --- forge-gui/res/cardsfolder/p/pardic_firecat.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/p/pardic_firecat.txt b/forge-gui/res/cardsfolder/p/pardic_firecat.txt index 6eba5248653..5d6394eadbd 100644 --- a/forge-gui/res/cardsfolder/p/pardic_firecat.txt +++ b/forge-gui/res/cardsfolder/p/pardic_firecat.txt @@ -3,7 +3,7 @@ ManaCost:3 R Types:Creature Elemental Cat PT:2/3 K:Haste -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Flame Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AffectedZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Flame Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. DeckHints:Name$Flame Burst|Pardic Firecat SVar:Picture:http://www.wizards.com/global/images/magic/general/pardic_firecat.jpg Oracle:Haste\nIf Pardic Firecat is in a graveyard, effects from spells named Flame Burst count it as a card named Flame Burst. From 987dc3e48a14bf3e07fe354768327fdc93b04599 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Fri, 5 Nov 2021 08:33:43 +0300 Subject: [PATCH 30/79] - Fix Diligent Farmhand --- forge-gui/res/cardsfolder/d/diligent_farmhand.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/d/diligent_farmhand.txt b/forge-gui/res/cardsfolder/d/diligent_farmhand.txt index 9f601d50012..6265dd8ac75 100644 --- a/forge-gui/res/cardsfolder/d/diligent_farmhand.txt +++ b/forge-gui/res/cardsfolder/d/diligent_farmhand.txt @@ -3,7 +3,7 @@ ManaCost:G Types:Creature Human Druid PT:1/1 A:AB$ ChangeZone | Cost$ 1 G Sac<1/CARDNAME> | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Muscle Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Graveyard | AffectedZone$ Graveyard | AddHiddenKeyword$ CARDNAME count as Muscle Burst. | Description$ If CARDNAME is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. DeckHints:Name$Diligent Farmhand|Muscle Burst SVar:Picture:http://www.wizards.com/global/images/magic/general/diligent_farmhand.jpg Oracle:{1}{G}, Sacrifice Diligent Farmhand: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle.\nIf Diligent Farmhand is in a graveyard, effects from spells named Muscle Burst count it as a card named Muscle Burst. From 117ff621be48f008848f8ee3c904852449346f8b Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Fri, 5 Nov 2021 08:41:16 +0300 Subject: [PATCH 31/79] - Improve the bounce permanent logic a little. --- .../java/forge/ai/ability/ChangeZoneAi.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 207d81d6aed..9eb152ca4a0 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -1393,6 +1393,8 @@ public class ChangeZoneAi extends SpellAbilityAi { } } // Reload Undying and Persist, get rid of -1/-1 counters, get rid of enemy auras if able + Card bestChoice = null; + int bestEval = 0; for (Card c : aiPermanents) { if (c.isCreature()) { boolean hasValuableAttachments = false; @@ -1420,14 +1422,27 @@ public class ChangeZoneAi extends SpellAbilityAi { continue; } + Card considered = null; if ((c.hasKeyword(Keyword.PERSIST) || c.hasKeyword(Keyword.UNDYING)) && !ComputerUtilCard.hasActiveUndyingOrPersist(c)) { - return c; + considered = c; } else if (hasOppAttachments || (numTotalCounters > 0 && numNegativeCounters > numTotalCounters / 2)) { - return c; + considered = c; + } + + if (considered != null) { + int eval = ComputerUtilCard.evaluateCreature(c); + if (eval > bestEval) { + bestEval = eval; + bestChoice = considered; + } } } } + if (bestChoice != null) { + return bestChoice; + } + return null; } From 537cd7684b1fe575838e3109547e75d8792f7118 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 08:13:54 -0400 Subject: [PATCH 32/79] voice_of_the_blessed.txt --- .../res/cardsfolder/upcoming/voice_of_the_blessed.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt diff --git a/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt b/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt new file mode 100644 index 00000000000..46f428fb2d3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/voice_of_the_blessed.txt @@ -0,0 +1,11 @@ +Name:Voice of the Blessed +ManaCost:W W +Types:Creature Spirit Cleric +PT:2/2 +T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +S:Mode$ Continuous | Affected$ Card.Self+counters_GE4_P1P1 | AddKeyword$ Flying & Vigilance | Description$ As long as CARDNAME has four or more +1/+1 counters on it, it has flying and vigilance. +S:Mode$ Continuous | Affected$ Card.Self+counters_GE10_P1P1 | AddKeyword$ Indestructible | Description$ As long as CARDNAME has ten or more +1/+1 counters on it, it has indestructible. +DeckHints:Ability$LifeGain +DeckHas:Ability$Counters +Oracle:Whenever you gain life, put a +1/+1 counter on Voice of the Blessed.\nAs long as Voice of the Blessed has four or more +1/+1 counters on it, it has flying and vigilance.\nAs long as Voice of the Blessed has ten or more +1/+1 counters on it, it has indestructible. From f81850c0a85631a9e8132884670495eb5ef33527 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 08:14:05 -0400 Subject: [PATCH 33/79] patchwork_crawler.txt --- .../res/cardsfolder/upcoming/patchwork_crawler.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt b/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt new file mode 100644 index 00000000000..2c3c9a4317a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/patchwork_crawler.txt @@ -0,0 +1,12 @@ +Name:Patchwork Crawler +ManaCost:1 U +Types:Creature Zombie Horror +PT:1/2 +A:AB$ ChangeZone | Cost$ 2 U | ValidTgts$ Creature.YouOwn | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target creature from your graveyard | SubAbility$ DBCounter | SpellDescription$ Exile target creature from your graveyard and put a +1/+1 counter on CARDNAME. +SVar:DBCounter:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | Defined$ Self +T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Creature.ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all creature cards exiled with it. +DeckHas:Ability$Counters & Ability$Graveyard +DeckHints:Ability$Discard +Oracle:{2}{U}: Exile target creature card from your graveyard and put a +1/+1 counter on Patchwork Crawler.\nPatchwork Crawler has all activated abilities of all creature cards exiled with it. From c9a2d28188f6ab81a5d58f091908ac094072cbcd Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 08:28:34 -0400 Subject: [PATCH 34/79] honored_heirloom.txt --- forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt diff --git a/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt b/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt new file mode 100644 index 00000000000..f562cb8bbe9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/honored_heirloom.txt @@ -0,0 +1,5 @@ +Name:Honored Heirloom +Types:Artifact +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +A:AB$ ChangeZone | Cost$ 2 T | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target card in a graveyard | ValidTgts$ Card | SpellDescription$ Exile target card from a graveyard. +Oracle:{T}: Add one mana of any color.\n{2}, {T}: Exile target card from a graveyard. From 2bc48f25aeadb61e7259e8b1e7a67fdb336d7edc Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 08:32:04 -0400 Subject: [PATCH 35/79] edgars_awakening.txt --- .../res/cardsfolder/upcoming/edgars_awakening.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt diff --git a/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt b/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt new file mode 100644 index 00000000000..25cefb617a0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/edgars_awakening.txt @@ -0,0 +1,10 @@ +Name:Edgar's Awakening +ManaCost:3 B B +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouOwn | SpellDescription$ Return target creature card from your graveyard to the battlefield. +T:Mode$ Discarded | ValidCard$ Card.Self | Execute$ TrigImmediateTrig | TriggerController$ TriggeredCardController | TriggerDescription$ When you discard CARDNAME, you may pay {B}. When you do, return target creature card from your graveyard to your hand. +SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ B | Execute$ TrigReturn | TriggerDescription$ When you do, return target creature card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouOwn | Origin$ Graveyard | Destination$ Hand +DeckHints:Ability$Discard +DeckHas:Ability$Graveyard +Oracle:Return target creature card from your graveyard to the battlefield.\nWhen you discard Edgar's Awakening, you may pay {B}. When you do, return target creature card from your graveyard to your hand. From ad0b59d8dce0f31e2dd2aebf0145e6eb38232468 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 09:08:57 -0400 Subject: [PATCH 36/79] dying_to_serve.txt --- forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt b/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt new file mode 100644 index 00000000000..731fe77d5b8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dying_to_serve.txt @@ -0,0 +1,8 @@ +Name:Dying to Serve +ManaCost:2 B +Types:Enchantment +T:Mode$ DiscardedAll | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | ActivationLimit$ 1 | TriggerDescription$ Whenever you discard one or more cards, create a tapped 2/2 black Zombie creature token. This ability triggers only once each turn. +SVar:TrigToken:DB$ Token | TokenTapped$ True | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token & Type$Zombie +DeckHints:Ability$Discard & Ability$Graveyard +Oracle:Whenever you discard one or more cards, create a tapped 2/2 black Zombie creature token. This ability triggers only once each turn. From 4567df070cff43326343283e686a15416ddef478 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 09:11:34 -0400 Subject: [PATCH 37/79] breathkeeper_seraph.txt (Marvel) --- .../res/cardsfolder/upcoming/breathkeeper_seraph.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt diff --git a/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt b/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt new file mode 100644 index 00000000000..36318a7a6d4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/breathkeeper_seraph.txt @@ -0,0 +1,11 @@ +Name:Breathkeeper Seraph +ManaCost:4 W W +Types:Creature Angel +PT:4/4 +K:Flying +K:Soulbond +S:Mode$ Continuous | Affected$ Creature.PairedWith,Creature.Self+Paired | AddTrigger$ DeathTrigger | AddSVar$ DelayedReturn,TrigReturn | Description$ As long as CARDNAME is paired with another creature, each of those creatures have "When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep." +SVar:DeathTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ DelayedReturn | TriggerDescription$ When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep. +SVar:DelayedReturn:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | OptionalDecider$ You | Execute$ TrigReturn | RememberObjects$ TriggeredNewCardLKICopy | TriggerDescription$ You may return it to the battlefield under its owner's control at the beginning of your next upkeep. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Graveyard | Destination$ Battlefield +Oracle:Flying, soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.)\nAs long as Breathkeeper Seraph is paired with another creature, each of those creatures has "When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep." From 81e118fa2f267d7d793b650d43a32643f37d74ea Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 09:22:59 -0400 Subject: [PATCH 38/79] markov_retribution.txt --- .../res/cardsfolder/upcoming/markov_retribution.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/markov_retribution.txt diff --git a/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt b/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt new file mode 100644 index 00000000000..6004c6a844c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_retribution.txt @@ -0,0 +1,10 @@ +Name:Markov Retribution +ManaCost:2 R +Types:Sorcery +A:SP$ Charm | MinCharmNum$ 1 | CharmNum$ 2 | Choices$ DBPumpAll,DBBite +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +1 | SpellDescription$ Creatures you control get +1/+0 until end of turn. +SVar:DBBite:DB$ Pump | ValidTgts$ Vampire.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target Vampire you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target Vampire you control deals damage equal to its power to another target creature. +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature | AILogic$ PowerDmg | TgtPrompt$ Select another target creature | TargetUnique$ True | NumDmg$ X | DamageSource$ ParentTarget | StackDescription$ {c:ParentTarget} deals damage equal to its power to {c:ThisTargetedCard}. +SVar:X:ParentTargeted$CardPower +DeckHints:Type$Vampire +Oracle:Choose one or both —\n• Creatures you control get +1/+0 until end of turn.\n• Target Vampire you control deals damage equal to its power to another target creature. From 2e9afce987cb45ecf5a77bb1b010d8fccbf6d35e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 09:42:40 -0400 Subject: [PATCH 39/79] headless_rider.txt --- forge-gui/res/cardsfolder/upcoming/headless_rider.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/headless_rider.txt diff --git a/forge-gui/res/cardsfolder/upcoming/headless_rider.txt b/forge-gui/res/cardsfolder/upcoming/headless_rider.txt new file mode 100644 index 00000000000..17eea2fdfb5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/headless_rider.txt @@ -0,0 +1,10 @@ +Name:Headless Rider +ManaCost:2 B +Types:Creature Zombie +PT:3/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Zombie.nonToken+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token +DeckHints:Type$Zombie +Oracle:Whenever Headless Rider or another nontoken Zombie you control dies, create a 2/2 black Zombie creature token. From dd2c6c67bec8323b2e1fb92a72cace3eb83746ea Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 10:28:33 -0400 Subject: [PATCH 40/79] bloodvial_purveyor.txt --- .../res/cardsfolder/upcoming/bloodvial_purveyor.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt b/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt new file mode 100644 index 00000000000..86f4b915622 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bloodvial_purveyor.txt @@ -0,0 +1,13 @@ +Name:Bloodvial Purveyor +ManaCost:2 B B +Types:Creature Vampire +PT:5/6 +K:Flying +K:Trample +T:Mode$ SpellCast | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever an opponent casts a spell, that player creates a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw | TokenOwner$ TriggeredActivator +T:Mode$ Attacks | ValidCard$ Card.Self | IsPresent$ Blood.token+DefendingPlayerCtrl | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, it gets +1/+0 until end of turn for each Blood token defending player controls. +SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X +SVar:X:Count$Valid Blood.token+DefendingPlayerCtrl +SVar:HasAttackEffect:TRUE +Oracle:Flying, trample\nWhenever an opponent casts a spell, that player creates a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\nWhenever Bloodvial Purveyor attacks, it gets +1/+0 until end of turn for each Blood token defending player controls. From 3426e73ec4b4a64070386136e001071aa36c729a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 10:45:59 -0400 Subject: [PATCH 41/79] honeymoon_hearse.txt --- forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt diff --git a/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt b/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt new file mode 100644 index 00000000000..2889a417b94 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/honeymoon_hearse.txt @@ -0,0 +1,7 @@ +Name:Honeymoon Hearse +ManaCost:2 R +Types:Artifact Vehicle +PT:5/5 +K:Trample +A:AB$ Animate | Cost$ tapXType<2/Creature/creature> | Types$ Artifact,Creature | RemoveCardTypes$ True | StackDescription$ SpellDescription | SpellDescription$ CARDNAME becomes an artifact creature until end of turn. +Oracle:Trample\nTap two untapped creatures you control: Honeymoon Hearse becomes an artifact creature until end of turn. From 483823a99bc93ed739f8711249dc01b551b1698a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 13:51:44 -0400 Subject: [PATCH 42/79] boarded_window.txt --- forge-gui/res/cardsfolder/upcoming/boarded_window.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/boarded_window.txt diff --git a/forge-gui/res/cardsfolder/upcoming/boarded_window.txt b/forge-gui/res/cardsfolder/upcoming/boarded_window.txt new file mode 100644 index 00000000000..15bd91760d8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/boarded_window.txt @@ -0,0 +1,8 @@ +Name:Boarded Window +ManaCost:3 +Types:Artifact +S:Mode$ Continuous | Affected$ Creature.attackingYou | AddPower$ -1 | Description$ Creatures attacking you get -1/-0. +T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE4 | Execute$ TrigExile | TriggerDescription$ At the beginning of each end step, if you were dealt 4 or more damage this turn, exile CARDNAME. +SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile +SVar:X:Count$LifeYouLostThisTurn +Oracle:Creatures attacking you get -1/-0.\nAt the beginning of each end step, if you were dealt 4 or more damage this turn, exile Boarded Window. From ad029ffc687277641347548fc7a57b1e3d60a411 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 14:33:16 -0400 Subject: [PATCH 43/79] ancient_lumberknot.txt --- forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt b/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt new file mode 100644 index 00000000000..48f7d04ea4d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ancient_lumberknot.txt @@ -0,0 +1,6 @@ +Name:Ancient Lumberknot +ManaCost:2 B G +Types:Creature Treefolk +PT:1/4 +S:Mode$ Continuous | Affected$ Creature.powerLTtoughness+YouCtrl | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ Each creature you control with toughness greater than its power assigns combat damage equal to its toughness rather than its power. +Oracle:Each creature you control with toughness greater than its power assigns combat damage equal to its toughness rather than its power. From 32758c696a106c8b0e278d7ac8d20b972a29494a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 14:39:41 -0400 Subject: [PATCH 44/79] weaver_of_blossoms_blossom_clad_werewolf.txt --- ...aver_of_blossoms_blossom_clad_werewolf.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt diff --git a/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt b/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt new file mode 100644 index 00000000000..66dec84cb53 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/weaver_of_blossoms_blossom_clad_werewolf.txt @@ -0,0 +1,19 @@ +Name:Weaver of Blossoms +ManaCost:2 G +Types:Creature Human Werewolf +PT:2/3 +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +K:Daybound +AlternateMode:DoubleFaced +Oracle:{T}: Add one mana of any color.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Blossom-Clad Werewolf +ManaCost:no cost +Colors:green +Types:Creature Werewolf +PT:3/4 +A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 2 | SpellDescription$ Add two mana of any one color. +K:Nightbound +Oracle:{T}: Add two mana of any one color.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) From c47811ed80f259ecdc5c6de3f1fa368bd019894d Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 19:45:19 -0400 Subject: [PATCH 45/79] undead_butler.txt --- forge-gui/res/cardsfolder/upcoming/undead_butler.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/undead_butler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undead_butler.txt b/forge-gui/res/cardsfolder/upcoming/undead_butler.txt new file mode 100644 index 00000000000..5a5d43dca2e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/undead_butler.txt @@ -0,0 +1,12 @@ +Name:Undead Butler +ManaCost:1 B +Types:Creature Zombie +PT:1/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigMill | TriggerDescription$ When CARDNAME enters the battlefield, mill three cards. (Put the top three cards of your library into your graveyard.) +SVar:TrigMill:DB$ Mill | NumCards$ 3 | Defined$ You +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it. When you do, return target creature card from your graveyard to your hand. +SVar:TrigExile:DB$ ChangeZone | Destination$ Exile | Defined$ TriggeredNewCardLKICopy | RememberChanged$ True | SubAbility$ DBImmediateTrig +SVar:DBImmediateTrig:DB$ ImmediateTrigger | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ DBCleanup | TriggerDescription$ When you do, return target creature card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select target creature card in your graveyard +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:When Undead Butler enters the battlefield, mill three cards. (Put the top three cards of your library into your graveyard.)\nWhen Undead Butler dies, you may exile it. When you do, return target creature card from your graveyard to your hand. From 172415891bfe7423ac070096731a07c1965d34ad Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 20:08:04 -0400 Subject: [PATCH 46/79] magda_brazen_outlaw.txt remove unneeded --- forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt b/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt index bf4eec8f373..79cb7d22cdd 100644 --- a/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt +++ b/forge-gui/res/cardsfolder/m/magda_brazen_outlaw.txt @@ -5,7 +5,7 @@ PT:2/1 S:Mode$ Continuous | Affected$ Dwarf.Other+YouCtrl | AddPower$ 1 | Description$ Other Dwarves you control get +1/+0. T:Mode$ Taps | ValidCard$ Dwarf.YouCtrl | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Dwarf you control becomes tapped, create a Treasure token. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You -A:AB$ ChangeZone | Cost$ Sac<5/Treasure> | CostDesc$ Sacrifice five Treasures: | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Artifact,Card.Dragon | ChangeNum$ 1 | Mandatory$ True | StackDescription$ {p:You} searches their library for an Artifact or Dragon card, puts that card onto the battlefield, then shuffles their library. | SpellDescription$ Search your library for an artifact or Dragon card, put that card onto the battlefield, then shuffle. +A:AB$ ChangeZone | Cost$ Sac<5/Treasure> | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Artifact,Card.Dragon | ChangeNum$ 1 | Mandatory$ True | StackDescription$ {p:You} searches their library for an Artifact or Dragon card, puts that card onto the battlefield, then shuffles their library. | SpellDescription$ Search your library for an artifact or Dragon card, put that card onto the battlefield, then shuffle. SVar:BuffedBy:Dwarf SVar:PlayMain1:TRUE DeckNeeds:Type$Dwarf From 92818fb8ddf67ee55513253b69a91e233099f4b8 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 21:25:27 -0400 Subject: [PATCH 47/79] consuming_tide.txt --- forge-gui/res/cardsfolder/upcoming/consuming_tide.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/consuming_tide.txt diff --git a/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt b/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt new file mode 100644 index 00000000000..79d30e9e8b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/consuming_tide.txt @@ -0,0 +1,11 @@ +Name:Consuming Tide +ManaCost:2 U U +Types:Sorcery +A:SP$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBChooseCard | SubAbility$ DBReturnAll | SpellDescription$ Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their owners' hands. Then you draw a card for each opponent who has more cards in their hand than you. +SVar:DBChooseCard:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Permanent.nonLand+RememberedPlayerCtrl | ChoiceTitle$ Choose a nonland permanent you control | RememberChosen$ True | AILogic$ BestCard +SVar:DBReturnAll:DB$ ChangeZoneAll | ChangeType$ Permanent.nonLand+IsNotRemembered | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ X | StackDescription$ None | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:PlayerCountOpponents$HasPropertyHasCardsInHand_Card_GTY +SVar:Y:Count$CardsInYourHand +Oracle:Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their owners' hands. Then you draw a card for each opponent who has more cards in their hand than you. From 71adea6531a49dd8002cded0e88ac2e03971ef0e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 21:55:40 -0400 Subject: [PATCH 48/79] sigardian_paladin.txt --- .../res/cardsfolder/upcoming/sigardian_paladin.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt b/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt new file mode 100644 index 00000000000..a31376d48aa --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sigardian_paladin.txt @@ -0,0 +1,10 @@ +Name:Sigardian Paladin +ManaCost:2 G W +Types:Creature Human Knight +PT:4/4 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Trample & Lifelink | CheckSVar$ X | Description$ As long as you've put one or more +1/+1 counters on a creature this turn, Sigardian Paladin has trample and lifelink. +SVar:X:Count$CountersAddedThisTurn P1P1 You Creature +A:AB$ Pump | Cost$ 1 G W | ValidTgts$ Creature.YouCtrl+counters_GE1_P1P1 | TgtPrompt$ Select target creature with a +1/+1 counter on it | KW$ Trample & Lifelink | SpellDescription$ Target creature you control with a +1/+1 counter on it gains trample and lifelink until end of turn. +DeckNeeds:Ability$Counters +DeckHas:Ability$LifeGain +Oracle:As long as you've put one or more +1/+1 counters on a creature this turn, Sigardian Paladin has trample and lifelink.\n{1}{G}{W}: Target creature you control with a +1/+1 counter on it gains trample and lifelink until end of turn. From 9472df663a02f58566729adb7203eefc11016106 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 22:15:58 -0400 Subject: [PATCH 49/79] chandra_dressed_to_kill.txt (medusa) --- .../upcoming/chandra_dressed_to_kill.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt b/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt new file mode 100644 index 00000000000..d9977f7a496 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/chandra_dressed_to_kill.txt @@ -0,0 +1,19 @@ +Name:Chandra, Dressed to Kill +ManaCost:1 R R +Types:Legendary Planeswalker Chandra +Loyalty:3 +A:AB$ Mana | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Produced$ R | SubAbility$ DBDealDamage | SpellDescription$ Add {R}. CARDNAME deals 1 damage to up to one target player or planeswalker. +SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Player,Planeswalker | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target player or planeswalker | NumDmg$ 1 +A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. If it's red, you may cast it this turn. +SVar:DBEffect:DB$ Effect | ConditionDefined$ Remembered | ConditionPresent$ Card.Red | ConditionCompare$ GE1 | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | AffectedZone$ Exile | Description$ You may cast the exiled card this turn. +A:AB$ Dig | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Defined$ You | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect2 | StackDescription$ SpellDescription | SpellDescription$ Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." +SVar:DBEffect2:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay2 | SubAbility$ DBEffect3 | ForgetOnMoved$ Exile +SVar:DBEffect3:DB$ Effect | Name$ Emblem - Chandra, Dressed to Kill | Triggers$ TRSpellCast | Duration$ Permanent | SubAbility$ DBCleanup +SVar:STPlay2:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered+Red+nonLand | AffectedZone$ Exile | Description$ You may cast red spells from among the exiled cards this turn. +SVar:TRSpellCast:Mode$ SpellCast | ValidCard$ Card.Red | ValidActivatingPlayer$ You | TriggerZones$ Command | Execute$ TrigDealDamage | TriggerDescription$ Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." +SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X +SVar:X:Count$TriggeredManaSpent +SVar:BuffedBy:Card.Red +Oracle:[+1]: Add {R}. Chandra, Dressed to Kill deals 1 damage to up to one target player or planeswalker.\n[+1]: Exile the top card of your library. If it's red, you may cast it this turn.\n[-7]: Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." From 6ef39f971e41602ee9385d776a1845adceaca85e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 22:48:39 -0400 Subject: [PATCH 50/79] henrika_domnathi_henrika_infernal_seer.txt (Marvel) --- ...henrika_domnathi_henrika_infernal_seer.txt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt b/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt new file mode 100644 index 00000000000..76c447f6f42 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/henrika_domnathi_henrika_infernal_seer.txt @@ -0,0 +1,28 @@ +Name:Henrika Domnathi +ManaCost:2 B B +Types:Legendary Creature Vampire +PT:1/3 +K:Flying +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ SacDom,DrawDom,TransDom | ChoiceRestriction$ ThisGame | CharmNum$ 1 +SVar:SacDom:DB$ Sacrifice | Amount$ 1 | SacValid$ Creature | Defined$ Player | SpellDescription$ Each player sacrifices a creature. +SVar:DrawDom:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife | SpellDescription$ You draw a card and you lose 1 life. +SVar:DBLoseLife:DB$ LoseLife | Defined$ You | LifeAmount$ 1 | StackDescription$ None +SVar:TransDom:DB$ SetState | Defined$ Self | Mode$ Transform | SpellDescription$ Transform CARDNAME. +AlternateMode:DoubleFaced +DeckHas:Ability$Sacrifice +Oracle:Flying\nAt the beginning of combat on your turn, choose one that hasn't been chosen –\n• Each player sacrifices a creature.\n• You draw a card and you lose 1 life.\n•Transform Henrika Domnathi. + +ALTERNATE + +Name:Henrika, Infernal Seer +ManaCost:no cost +Colors:black +Types:Legendary Creature Vampire +PT:3/4 +K:Flying +K:Deathtouch +K:Lifelink +A:AB$ PumpAll | Cost$ 1 B B | ValidCards$ Creature.YouCtrl+withFlying,Creature.YouCtrl+withLifelink,Creature.YouCtrl+withDeathtouch | NumAtt$ +1 | SpellDescription$ Each creature you control with flying, deathtouch and/or lifelink gets +1/+0 until end of turn. +DeckHas:Ability$LifeGain +Oracle:Flying, deathtouch, lifelink\n{1}{B}{B}: Each creature you control with flying, deathtouch and/or lifelink gets +1/+0 until end of turn. \ No newline at end of file From c797a5bc61a3a0dc7b1f927445fc1d5330c344dd Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 22:54:39 -0400 Subject: [PATCH 51/79] voltaic_visionary_volt_charged_berserker.txt --- ...ltaic_visionary_volt_charged_berserker.txt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt b/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt new file mode 100644 index 00000000000..59bb7222dcc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/voltaic_visionary_volt_charged_berserker.txt @@ -0,0 +1,28 @@ +Name:Voltaic Visionary +ManaCost:1 R +Types:Creature Human Wizard +PT:3/1 +A:AB$ DealDamage | Cost$ T | NumDmg$ 2 | Defined$ You | SorcerySpeed$ True | SubAbility$ DBExile | SpellDescription$ CARDNAME deals 2 damage to you. +SVar:DBExile:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Imprint$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | StackDescription$ SpellDescription | SpellDescription$ You may play that card this turn. Activate only as a sorcery. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play the exiled card this turn. +T:Mode$ SpellCast | ValidCard$ Card.IsImprinted | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ Whenever you play a card exiled with CARDNAME, transform it. +T:Mode$ LandPlayed | ValidCard$ Land.IsImprinted+YouCtrl | Execute$ TrigTransform | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever you play a card exiled with CARDNAME, transform it. +SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform +T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBClear | Static$ True +SVar:DBClear:DB$ Cleanup | ClearImprinted$ True +T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted+ExiledWithSource | Execute$ DBForget +SVar:DBForget:DB$ Pump | ForgetImprinted$ TriggeredCard +AlternateMode:DoubleFaced +Oracle:{T}: Voltaic Visionary deals 2 damage to you. Exile the top card of your library. You may play that card this turn. Activate only as a sorcery.\nWhenever you play a card exiled with Voltaic Visionary, transform it. + +ALTERNATE + +Name:Volt-Charged Berserker +ManaCost:no cost +Colors:red +Types:Creature Human Berserker +PT:4/3 +K:CARDNAME can't block. +Oracle:Volt-Charged Berserker can't block. From 528f2c65c61bb9318765da8443b3aa6e54e457c9 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Fri, 5 Nov 2021 22:56:19 -0400 Subject: [PATCH 52/79] reckless_impulse.txt --- forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt diff --git a/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt b/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt new file mode 100644 index 00000000000..f3289a7a5ab --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reckless_impulse.txt @@ -0,0 +1,8 @@ +Name:Reckless Impulse +ManaCost:1 R +Types:Sorcery +A:SP$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Imprint$ True | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Exile the top two cards of your library. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | Duration$ UntilTheEndOfYourNextTurn | StackDescription$ SpellDescription | SpellDescription$ Until the end of your next turn, you may play those cards. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play the exiled cards. +Oracle:Exile the top two cards of your library. Until the end of your next turn, you may play those cards. From 21abdd462c55fdde1560ef73ba46395972eb195e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 09:37:18 -0400 Subject: [PATCH 53/79] glorious_sunrise.txt --- .../res/cardsfolder/upcoming/glorious_sunrise.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt diff --git a/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt b/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt new file mode 100644 index 00000000000..af2a9588ab2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/glorious_sunrise.txt @@ -0,0 +1,12 @@ +Name:Glorious Sunrise +ManaCost:3 G G +Types:Enchantment +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ PumpAll,Animate,Draw,Gain | CharmNum$ 1 +SVar:PumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Trample | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ Creatures you control get +1/+1 and gain trample until end of turn. +SVar:Animate:DB$ Animate | ValidTgts$ Land | TgtPrompt$ Select target land | Abilities$ ThreeG | SpellDescription$ Target land gains "{T}: Add {G}{G}{G}" until end of turn. +SVar:ThreeG:AB$ Mana | Cost$ T | Produced$ G | Amount$ 3 | SpellDescription$ Add {G}{G}{G} +SVar:Draw:DB$ Draw | Defined$ You | NumCards$ 1 | ConditionPresent$ Creature.YouCtrl+powerGE3 | SpellDescription$ Draw a card if you control a creature with power 3 or greater. +SVar:Gain:DB$ GainLife | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +DeckHas:Ability$LifeGain +Oracle:At the beginning of combat on your turn, choose one —\n• Creatures you control get +1/+1 and gain trample until end of turn.\n• Target land gains "{T}: Add {G}{G}{G}" until end of turn.\n• Draw a card if you control a creature with power 3 or greater.\n• You gain 3 life. From f16e470fb66b7d66e61ad745b8ae2984fb4b22ba Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 09:44:46 -0400 Subject: [PATCH 54/79] belligerent_guest.txt --- forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt diff --git a/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt b/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt new file mode 100644 index 00000000000..582bf5d0f67 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/belligerent_guest.txt @@ -0,0 +1,9 @@ +Name:Belligerent Guest +ManaCost:2 R +Types:Creature Vampire +PT:3/2 +K:Trample +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:Trample\nWhenever Belligerent Guest deals combat damage to a player, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") From a440e7b413807e555fc651248be5642c161db108 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 09:47:37 -0400 Subject: [PATCH 55/79] scattered_thoughts.txt --- forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt diff --git a/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt b/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt new file mode 100644 index 00000000000..3631dbe3f42 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/scattered_thoughts.txt @@ -0,0 +1,6 @@ +Name:Scattered Thoughts +ManaCost:3 U +Types:Instant +A:SP$ Dig | DigNum$ 4 | ChangeNum$ 2 | DestinationZone2$ Graveyard | StackDescription$ SpellDescription | SpellDescription$ Look at the top four cards of your library. Put two of those cards into your hand and the rest into your graveyard. +DeckHas:Ability$Graveyard +Oracle:Look at the top four cards of your library. Put two of those cards into your hand and the rest into your graveyard. From a1636fba81c62711629d96cd274041f66bc237ee Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 10:38:28 -0400 Subject: [PATCH 56/79] into_the_night.txt --- forge-gui/res/cardsfolder/upcoming/into_the_night.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/into_the_night.txt diff --git a/forge-gui/res/cardsfolder/upcoming/into_the_night.txt b/forge-gui/res/cardsfolder/upcoming/into_the_night.txt new file mode 100644 index 00000000000..28f74d88108 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/into_the_night.txt @@ -0,0 +1,9 @@ +Name:Into the Night +ManaCost:3 R +Types:Sorcery +A:SP$ DayTime | Value$ Night | SubAbility$ DBDiscard | SpellDescription$ It becomes night. +SVar:DBDiscard:DB$ Discard | AnyNumber$ True | Optional$ True | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBDraw | StackDescription$ {p:You} discards any number of cards, | SpellDescription$ Discard any number of cards, +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBCleanup | StackDescription$ then draws that many cards plus one. | SpellDescription$ then draw that many cards plus one. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Y:Remembered$Amount.Plus.1 +Oracle:It becomes night. Discard any number of cards, then draw that many cards plus one. From 1b4a80b99a2b20c0797e4b45e6df34fb274a193a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 10:40:39 -0400 Subject: [PATCH 57/79] runebound_wolf.txt --- forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt diff --git a/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt b/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt new file mode 100644 index 00000000000..805cdf38265 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/runebound_wolf.txt @@ -0,0 +1,8 @@ +Name:Runebound Wolf +ManaCost:1 R +Types:Creature Wolf +PT:2/2 +A:AB$ DealDamage | Cost$ 3 R T | NumDmg$ X | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ CARDNAME deals damage equal to the number of Wolves and Werewolves you control to target opponent. +SVar:X:Count$Valid Wolf.YouCtrl,Werewolf.YouCtrl +DeckHints:Type$Wolf|Werewolf +Oracle:{3}{R}, {T}: Runebound Wolf deals damage equal to the number of Wolves and Werewolves you control to target opponent. From 54b22dd9884fef1ac69c6518cb40893171cefd71 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 10:42:52 -0400 Subject: [PATCH 58/79] sanctify.txt --- forge-gui/res/cardsfolder/upcoming/sanctify.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/sanctify.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sanctify.txt b/forge-gui/res/cardsfolder/upcoming/sanctify.txt new file mode 100644 index 00000000000..f1082f6ec75 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sanctify.txt @@ -0,0 +1,8 @@ +Name:Sanctify +ManaCost:1 W +Types:Sorcery +A:SP$ Destroy | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SubAbility$ DBGainLife | SpellDescription$ Destroy target artifact or enchantment. You gain 3 life. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 +DeckHas:Ability$LifeGain +AI:RemoveDeck:Random +Oracle:Destroy target artifact or enchantment. You gain 3 life. From 57539db39e0b8efdbaa63353ff89c1bfa344b4d5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 11:04:19 -0400 Subject: [PATCH 59/79] wandering_mind.txt --- forge-gui/res/cardsfolder/upcoming/wandering_mind.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/wandering_mind.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt b/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt new file mode 100644 index 00000000000..da5868dee0c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wandering_mind.txt @@ -0,0 +1,8 @@ +Name:Wandering Mind +ManaCost:1 U R +Types:Creature Horror +PT:2/1 +K:Flying +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top six cards of your library. You may reveal a noncreature, nonland 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$ 6 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Card.nonCreature+nonLand | RestRandomOrder$ True +Oracle:Flying\nWhen Wandering Mind enters the battlefield, look at the top six cards of your library. You may reveal a noncreature, nonland card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. From 4b0cd677fd9818ece70444d104e55c8e5adf4485 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 11:16:54 -0400 Subject: [PATCH 60/79] alluring_suitor_deadly_dancer.txt --- .../alluring_suitor_deadly_dancer.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt b/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt new file mode 100644 index 00000000000..e2ef867f1b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/alluring_suitor_deadly_dancer.txt @@ -0,0 +1,22 @@ +Name:Alluring Suitor +ManaCost:2 R +Types:Creature Vampire +PT:2/3 +T:Mode$ AttackersDeclared | Execute$ TrigTransform | IsPresent$ Creature.attacking | PresentCompare$ EQ2 | NoResolvingCheck$ True | TriggerZones$ Battlefield | AttackingPlayer$ You | TriggerDescription$ When you attack with exactly two creatures, transform CARDNAME. +SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform +AlternateMode:DoubleFaced +Oracle:When you attack with exactly two creatures, transform Alluring Suitor. + +ALTERNATE + +Name:Deadly Dancer +ManaCost:no cost +Colors:red +Types:Creature Vampire +PT:3/3 +K:Trample +T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigMana | TriggerDescription$ When this creature transforms into CARDNAME, add {R}{R}. Until end of turn, you don't lose this mana as steps and phases end. +SVar:TrigMana:DB$ Mana | Produced$ R | Amount$ 2 | PersistentMana$ True +A:AB$ Pump | Cost$ R R | Defined$ Self | NumAtt$ +1 | SubAbility$ DBPump | StackDescription$ CARDNAME and | SpellDescription$ CARDNAME and another target creature each get +1/+0 until end of turn. +SVar:DBPump:DB$ Pump | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | NumAtt$ +1 | StackDescription$ {c:Targeted} each get +1/+0 until end of turn. +Oracle:Trample\nWhen this creature transforms into Deadly Dancer, add {R}{R}. Until end of turn, you don't lose this mana as steps and phases end.\n{R}{R}: Deadly Dancer and another target creature each get +1/+0 until end of turn. From 7f6a45ac9f68a53e1588102441f427b154d721ba Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 11:17:04 -0400 Subject: [PATCH 61/79] graf_reaver.txt --- forge-gui/res/cardsfolder/upcoming/graf_reaver.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/graf_reaver.txt diff --git a/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt b/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt new file mode 100644 index 00000000000..78be73efa2b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/graf_reaver.txt @@ -0,0 +1,11 @@ +Name:Graf Reaver +ManaCost:1 B +Types:Creature Zombie Warrior +PT:3/3 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature | ValidSource$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME exploits a creature, destroy target planeswalker. +SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Planeswalker | TgtPrompt$ Select target planeswalker +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 1 damage to you. +SVar:TrigDealDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1 +AI:RemoveDeck:Random +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhen Graf Reaver exploits a creature, destroy target planeswalker.\nAt the beginning of your upkeep, Graf Reaver deals 1 damage to you. From cc30ebf885094e8c0ae5e2edd2e686ae21ec4fd5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 11:20:49 -0400 Subject: [PATCH 62/79] parasitic_grasp.txt --- forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt diff --git a/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt b/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt new file mode 100644 index 00000000000..8c805304c94 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/parasitic_grasp.txt @@ -0,0 +1,8 @@ +Name:Parasitic Grasp +ManaCost:1 B +Types:Instant +A:SP$ DealDamage | NumDmg$ 3 | ValidTgts$ Creature.Human | TgtPrompt$ Select target Human creature | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to target [Human] creature. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +A:SP$ DealDamage | Cost$ 1 B B | NumDmg$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBGainLife | PrecostDesc$ Cleave | CostDesc$ {1}{B}{B} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) +DeckHas:Ability$LifeGain +Oracle:Cleave {1}{B}{B} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nParasitic Grasp deals 3 damage to target [Human] creature. You gain 3 life. From 3daacb57bcbf58c7be71774a97f9afb1ec751ee5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 13:34:05 -0400 Subject: [PATCH 63/79] followed_footsteps.txt tidy --- forge-gui/res/cardsfolder/f/followed_footsteps.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/f/followed_footsteps.txt b/forge-gui/res/cardsfolder/f/followed_footsteps.txt index 936b1af41c2..ce02d3e03a9 100644 --- a/forge-gui/res/cardsfolder/f/followed_footsteps.txt +++ b/forge-gui/res/cardsfolder/f/followed_footsteps.txt @@ -2,8 +2,7 @@ Name:Followed Footsteps ManaCost:3 U U Types:Enchantment Aura K:Enchant creature -A:SP$ Attach | Cost$ 3 U U | ValidTgts$ Creature | AILogic$ Curse +A:SP$ Attach | ValidTgts$ Creature | AILogic$ HighestEvaluation T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. -SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | SpellDescription$ At the beginning of your upkeep, put a token that's a copy of enchanted creature onto the battlefield. -SVar:Picture:http://www.wizards.com/global/images/magic/general/followed_footsteps.jpg +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature. From 68d352862c477c01a94af788c7f1f53aee55cd78 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 13:46:44 -0400 Subject: [PATCH 64/79] bramble_wurm.txt --- forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt b/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt new file mode 100644 index 00000000000..85186be8fa5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bramble_wurm.txt @@ -0,0 +1,11 @@ +Name:Bramble Wurm +ManaCost:6 G +Types:Creature Wurm +PT:7/6 +K:Reach +K:Trample +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME enters the battlefield, you gain 5 life. +SVar:TrigGainLife:DB$ GainLife | LifeAmount$ 5 +A:AB$ GainLife | Cost$ 2 G ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | LifeAmount$ 5 | SpellDescription$ You gain 5 life. +DeckHas:Ability$LifeGain +Oracle:Reach, trample\nWhen Bramble Wurm enters the battlefield, you gain 5 life.\n{2}{G}, Exile Bramble Wurm from your graveyard: You gain 5 life. From 1f6a12329c902c99db68317a648ee68c153ed180 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 13:52:20 -0400 Subject: [PATCH 65/79] screaming_swarm.txt --- .../res/cardsfolder/upcoming/screaming_swarm.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt b/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt new file mode 100644 index 00000000000..b532bf245df --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/screaming_swarm.txt @@ -0,0 +1,12 @@ +Name:Screaming Swarm +ManaCost:5 U +Types:Creature Bird Horror +PT:4/4 +K:Flying +Oracle:Flying +T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you attack with one or more creatures, target player mills that many cards. (To mill a card, a player puts the top card of their library into their graveyard.) +SVar:TrigMill:DB$ Mill | NumCards$ X | ValidTgts$ Player | TgtPrompt$ Choose a player +SVar:X:TriggerObjectsAttackers$Valid Creature.YouCtrl +A:AB$ ChangeZone | Cost$ 2 U | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 1 | ActivationZone$ Graveyard | StackDescription$ SpellDescription | SpellDescription$ Put CARDNAME from your graveyard into your library second from the top. +DeckHas:Ability$Mill & Ability$Graveyard +Oracle:Whenever you attack with one or more creatures, target player mills that many cards. (To mill a card, a player puts the top card of their library into their graveyard.)\n{2}{U}: Put Screaming Swarm from your graveyard into your library second from the top. From 4d04c30e4c9eb7ab2a595584eb2fd7a5f33ea890 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 13:52:28 -0400 Subject: [PATCH 66/79] mirrorhall_mimic_ghastly_mimicry.txt --- .../mirrorhall_mimic_ghastly_mimicry.txt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt b/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt new file mode 100644 index 00000000000..493b98516f8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mirrorhall_mimic_ghastly_mimicry.txt @@ -0,0 +1,25 @@ +Name:Mirrorhall Mimic +ManaCost:3 U +Types:Creature Spirit +PT:0/0 +K:ETBReplacement:Copy:DBCopy:Optional +SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | ChoiceTitle$ Choose a creature on the battlefield to copy | AddTypes$ Spirit | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it's an Spirit in addition to its other types. +K:Disturb:3 U U +AlternateMode:DoubleFaced +DeckHas:Ability$Graveyard +Oracle:You may have Mirrorhall Mimic enter the battlefield as a copy of any creature on the battlefield, except it's a Spirit in addition to its other types.\nDisturb {3}{U}{U} (You may cast this card from your graveyard transformed for its disturb cost.) + +ALTERNATE + +Name:Ghastly Mimicry +ManaCost:no cost +Colors:blue +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ HighestEvaluation +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | AddTypes$ Spirit | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. +R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +DeckHas:Ability$Token +Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types.\nIf Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead. From d610a37acbc51a199373ab4c9e2318d4f46020ae Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 13:59:29 -0400 Subject: [PATCH 67/79] markov_purifier.txt --- .../res/cardsfolder/upcoming/markov_purifier.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/markov_purifier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt b/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt new file mode 100644 index 00000000000..2f73ba6b2a3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_purifier.txt @@ -0,0 +1,11 @@ +Name:Markov Purifier +ManaCost:1 W B +Types:Creature Vampire Cleric +PT:2/3 +K:Lifelink +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigDraw | TriggerDescription$ At the beginning of your end step, if you gained life this turn, you may pay {2}. If you do, draw a card. +SVar:TrigDraw:AB$ Draw | Cost$ 2 | NumCards$ 1 | SpellDescription$ Draw a card. +SVar:X:Count$LifeYouGainedThisTurn +DeckHas:Ability$LifeGain +DeckHints:Ability$LifeGain +Oracle:Lifelink\nAt the beginning of your end step, if you gained life this turn, you may pay {2}. If you do, draw a card. From 567398d09838ab7b6552a46335c2f4f66c58abd1 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 14:07:59 -0400 Subject: [PATCH 68/79] skull_skaab.txt --- forge-gui/res/cardsfolder/upcoming/skull_skaab.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/skull_skaab.txt diff --git a/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt b/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt new file mode 100644 index 00000000000..81808e83cb0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/skull_skaab.txt @@ -0,0 +1,10 @@ +Name:Skull Skaab +ManaCost:U B +Types:Creature Zombie +PT:2/2 +K:Exploit +T:Mode$ Exploited | ValidCard$ Creature.nonToken | ValidSource$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a creature you control exploits a nontoken creature, create a 2/2 black Zombie creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_2_2_zombie +DeckHas:Ability$Token & Ability$Sacrifice +DeckHints:Keyword$Exploit +Oracle:Exploit (When this creature enters the battlefield, you may sacrifice a creature.)\nWhenever a creature you control exploits a nontoken creature, create a 2/2 black Zombie creature token. From 2081c3631acb214a0afcc0509e2f9764ddf74a69 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 14:20:43 -0400 Subject: [PATCH 69/79] child_of_the_pack_savage_packmate.txt --- .../child_of_the_pack_savage_packmate.txt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt b/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt new file mode 100644 index 00000000000..54fd2a38655 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/child_of_the_pack_savage_packmate.txt @@ -0,0 +1,21 @@ +Name:Child of the Pack +ManaCost:2 R G +Types:Creature Human Werewolf +PT:2/5 +A:AB$ Token | Cost$ 2 R G | TokenScript$ g_2_2_wolf | StackDescription$ SpellDescription | SpellDescription$ Create a 2/2 green Wolf creature token. +K:Daybound +AlternateMode:DoubleFaced +DeckHas:Ability$Token & Type$Wolf +Oracle:{2}{R}{G}: Create a 2/2 green Wolf creature token.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.) + +ALTERNATE + +Name:Savage Packmate +ManaCost:no cost +Colors:red,green +Types:Creature Werewolf +PT:5/5 +K:Trample +S:Mode$ Continuous | Affected$ Creature.Other+YouCtrl | AddPower$ 1 | Description$ Other creatures you control get +1/+0. +K:Nightbound +Oracle:Trample\nOther creatures you control get +1/+0.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) From 5cb2d8c6eb897b26b2d04acda513eb7603b11171 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 14:24:26 -0400 Subject: [PATCH 70/79] bloodtithe_harvester.txt --- .../res/cardsfolder/upcoming/bloodtithe_harvester.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt b/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt new file mode 100644 index 00000000000..40bd3cfbc91 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bloodtithe_harvester.txt @@ -0,0 +1,10 @@ +Name:Bloodtithe Harvester +ManaCost:B R +Types:Creature Vampire +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") +SVar:TrigToken:DB$ Token | TokenScript$ c_a_blood_draw +A:AB$ Pump | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -X | NumDef$ -X | SorcerySpeed$ True | AILogic$ Curse | SpellDescription$ Target creature gets -X/-X until end of turn, where X is twice the number of Blood tokens you control. Activate only as a sorcery. +SVar:X:Count$Valid Blood.token+YouCtrl/Twice +DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood +Oracle:When Bloodtithe Harvester enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\n{T}, Sacrifice Bloodtithe Harvester: Target creature gets -X/-X until end of turn, where X is twice the number of Blood tokens you control. Activate only as a sorcery. From 09f46cfe109fca52b4a235458e8fc85fa8f2c602 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 19:39:00 -0400 Subject: [PATCH 71/79] markov_waltzer.txt --- forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt b/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt new file mode 100644 index 00000000000..589ece30792 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/markov_waltzer.txt @@ -0,0 +1,9 @@ +Name:Markov Waltzer +ManaCost:2 R W +Types:Creature Vampire +PT:1/3 +K:Flying +K:Haste +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, up to two target creatures you control each get +1/+0 until end of turn. +SVar:TrigPump:DB$ Pump | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to two target creatures you control | NumAtt$ +1 +Oracle:Flying, haste\nAt the beginning of combat on your turn, up to two target creatures you control each get +1/+0 until end of turn. From 6393ee6d68a72045754a426f407d9f5756cb64ac Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 19:55:33 -0400 Subject: [PATCH 72/79] spiked_ripsaw.txt --- forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt diff --git a/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt b/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt new file mode 100644 index 00000000000..c70c48aea79 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/spiked_ripsaw.txt @@ -0,0 +1,9 @@ +Name:Spiked Ripsaw +ManaCost:2 G +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddSVar$ AE | Description$ Equipped creature gets +3/+3. +T:Mode$ Attacks | ValidCard$ Creature.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn. +SVar:TrigPump:AB$ Pump | Cost$ Sac<1/Forest> | Defined$ TriggeredAttacker | KW$ Trample +K:Equip:3 +SVar:AE:SVar:HasAttackEffect:TRUE +Oracle:Equipped creature gets +3/+3.\nWhenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) From 786437cef639589134b9ade6ff390628f9503b74 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 19:55:43 -0400 Subject: [PATCH 73/79] blood_hypnotist.txt --- forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt b/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt new file mode 100644 index 00000000000..a87f420e7c6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blood_hypnotist.txt @@ -0,0 +1,9 @@ +Name:Blood Hypnotist +ManaCost:2 R +Types:Creature Vampire +PT:3/3 +K:CARDNAME can't block. +T:Mode$ Sacrificed | ValidCard$ Blood.token+YouCtrl | TriggerZone$ Battlefield | Execute$ TrigPump | ActivationLimit$ 1 | TriggerDescription$ Whenever you sacrifice one or more Blood tokens, target creature can't block this turn. This ability triggers only once each turn. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True +DeckNeeds:Type$Blood +Oracle:Blood Hypnotist can't block.\nWhenever you sacrifice one or more Blood tokens, target creature can't block this turn. This ability triggers only once each turn. From 1420c2e27637d9cdf9f5a1d9b39f87a3d4552a85 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 20:33:50 -0400 Subject: [PATCH 74/79] reclusive_taxidermist.txt --- .../res/cardsfolder/upcoming/reclusive_taxidermist.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt b/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt new file mode 100644 index 00000000000..4d55a7c4807 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/reclusive_taxidermist.txt @@ -0,0 +1,8 @@ +Name:Reclusive Taxidermist +ManaCost:1 G +Types:Creature Human Druid +PT:1/2 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 2 | IsPresent$ Creature | PresentCompare$ GE4 | PresentZone$ Graveyard | Description$ CARDNAME gets +3/+2 as long as there are four or more creature cards in your graveyard. +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +DeckHints:Ability$Graveyard & Ability$Discard +Oracle:Reclusive Taxidermist gets +3/+2 as long as there are four or more creature cards in your graveyard.\n{T}: Add one mana of any color. From bdb5d5593a460c4de8d996006e73ca8a8e1565da Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 20:44:34 -0400 Subject: [PATCH 75/79] dreamshackle_geist.txt --- .../res/cardsfolder/upcoming/dreamshackle_geist.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt b/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt new file mode 100644 index 00000000000..29644fa782b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dreamshackle_geist.txt @@ -0,0 +1,10 @@ +Name:Dreamshackle Geist +ManaCost:1 U U +Types:Creature Spirit +PT:3/1 +K:Flying +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ Tap,Freeze | CharmNum$ 1 +SVar:Tap:DB$ Tap | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Tap target creature. +SVar:Freeze:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step. +Oracle:Flying\nAt the beginning of combat on your turn, choose up to one —\n• Tap target creature.\n• Target creature doesn't untap during its controller's next untap step. From d04d66db41ef31bc9847931aa2e59409ae5462f6 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 20:45:05 -0400 Subject: [PATCH 76/79] hiveheart_shaman.txt --- .../res/cardsfolder/upcoming/hiveheart_shaman.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt b/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt new file mode 100644 index 00000000000..60550258cff --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hiveheart_shaman.txt @@ -0,0 +1,15 @@ +Name:Hiveheart Shaman +ManaCost:3 G +Types:Creature Human Shaman +PT:3/5 +T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME attacks, you may search your library for a basic land card that doesn't share a land type with a land you control, put that card onto the battlefield, then shuffle. +SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic+!sharesLandTypeWith Valid Land.YouCtrl | ChangeNum$ 1 | ShuffleNonMandatory$ True +A:AB$ Token | Cost$ 5 G | TokenScript$ g_1_1_insect | RememberTokens$ True | SorcerySpeed$ True | SubAbility$ DBCounters | StackDescription$ SpellDescription | SpellDescription$ Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. +SVar:DBCounters:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | StackDescription$ None | SubAbility$ DBCleanup | SpellDescription$ Activate only as a sorcery. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$Domain +SVar:BuffedBy:Plains,Island,Swamp,Mountain,Forest +SVar:HasAttackEffect:TRUE +DeckHints:Color$White|Blue|Red|Black +DeckHas:Ability$Token & Ability$Counters +Oracle:Whenever Hiveheart Shaman attacks, you may search your library for a basic land card that doesn't share a land type with a land you control, put that card onto the battlefield, then shuffle.\n{5}{G}: Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. Activate only as a sorcery. From b0da2cd79c053caf0bbcbe7cdb91770a7e69ee96 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 20:45:41 -0400 Subject: [PATCH 77/79] support "sharesLandTypeWith" for Hiveheart Shaman --- .../src/main/java/forge/game/card/CardPredicates.java | 9 +++++++++ .../src/main/java/forge/game/card/CardProperty.java | 5 +++++ .../src/main/java/forge/gui/card/CardScriptParser.java | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardPredicates.java b/forge-game/src/main/java/forge/game/card/CardPredicates.java index 0ed368fdecd..736e629647b 100644 --- a/forge-game/src/main/java/forge/game/card/CardPredicates.java +++ b/forge-game/src/main/java/forge/game/card/CardPredicates.java @@ -197,6 +197,15 @@ public final class CardPredicates { }; } + public static Predicate sharesLandTypeWith(final Card card) { + return new Predicate() { + @Override + public boolean apply(final Card c) { + return c.sharesLandTypeWith(card); + } + }; + } + public static final Predicate possibleBlockers(final Card attacker) { return new Predicate() { @Override diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 98cfe6cd7d9..8efc6986776 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -825,6 +825,11 @@ public class CardProperty { } } } + } else if (property.startsWith("sharesLandTypeWith")) { + final String restriction = property.split("sharesLandTypeWith ")[1]; + if (!Iterables.any(AbilityUtils.getDefinedCards(source, restriction, spellAbility), CardPredicates.sharesLandTypeWith(card))) { + return false; + } } else if (property.equals("sharesPermanentTypeWith")) { if (!card.sharesPermanentTypeWith(source)) { return false; diff --git a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java index 4c148d3fa7e..f374adc7930 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java +++ b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java @@ -451,7 +451,7 @@ public final class CardScriptParser { "ControllerControls", "AttachedTo", "EnchantedBy", "NotEnchantedBy", "TopGraveyard", "SharesColorWith", "MostProminentColor", "notSharesColorWith", - "sharesCreatureTypeWith", "sharesCardTypeWith", + "sharesCreatureTypeWith", "sharesCardTypeWith", "sharesLandTypeWith", "sharesNameWith", "doesNotShareNameWith", "sharesControllerWith", "sharesOwnerWith", "ThisTurnEntered", "ControlledByPlayerInTheDirection", From 408ae823519fcb7eb852678d362fbeb8a9fee910 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sat, 6 Nov 2021 20:46:35 -0400 Subject: [PATCH 78/79] strefan_maurer_progenitor.txt fix Pump --- .../res/cardsfolder/upcoming/strefan_maurer_progenitor.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt b/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt index cd5b95581c2..a1207c697b4 100644 --- a/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt +++ b/forge-gui/res/cardsfolder/upcoming/strefan_maurer_progenitor.txt @@ -8,7 +8,7 @@ SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ c_a_blood_draw SVar:X:PlayerCountPlayers$HasPropertyLostLifeThisTurn T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ Whenever NICKNAME attacks, you may sacrifice two Blood tokens. If you do, you may put a Vampire card from your hand onto the battlefield tapped and attacking. It gains indestructible until end of turn. SVar:TrigChangeZone:AB$ ChangeZone | Cost$ Sac<2/Blood.token/Blood token> | Origin$ Hand | Destination$ Battlefield | SelectPrompt$ You may select a Vampire card from your hand | ChangeType$ Vampire | Tapped$ True | Attacking$ True | RememberChanged$ True | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Indestructible | SubAbility$ DBCleanup +SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ Indestructible | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:HasAttackEffect:TRUE DeckHas:Ability$Token & Ability$Sacrifice From 2242e164c88c37c3ec595d72fc3dcc46132d77d5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 7 Nov 2021 20:41:00 -0500 Subject: [PATCH 79/79] demonic_tutor.txt fix stackdesc --- forge-gui/res/cardsfolder/d/demonic_tutor.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/d/demonic_tutor.txt b/forge-gui/res/cardsfolder/d/demonic_tutor.txt index 467678aacce..e920eb4c323 100644 --- a/forge-gui/res/cardsfolder/d/demonic_tutor.txt +++ b/forge-gui/res/cardsfolder/d/demonic_tutor.txt @@ -1,8 +1,7 @@ Name:Demonic Tutor ManaCost:1 B Types:Sorcery -A:SP$ ChangeZone | Cost$ 1 B | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | SpellDescription$ Search your library for a card, put that card into your hand, then shuffle. +A:SP$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Search your library for a card, put that card into your hand, then shuffle. #TODO: Improve the tutoring logic for the AI. Currently will generally look for the most expensive castable thing in the library (which can, of course, be used to advantage in properly constructed AI decks). AI:RemoveDeck:Random -SVar:Picture:http://resources.wizards.com/magic/cards/3e/en-us/card1155.jpg Oracle:Search your library for a card, put that card into your hand, then shuffle.