From d76b7985264c76bdb1ed7feb77a0f16dddf5f306 Mon Sep 17 00:00:00 2001 From: Fulgur14 <54345051+Fulgur14@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:24:44 +0200 Subject: [PATCH] 4 DSK + 7 DSC cards (#6099) * Support The Tale of Tamiyo * Support Kianne, Corrupted Memory --- .../java/forge/game/card/CardFactoryUtil.java | 2 +- .../java/forge/game/card/CardProperty.java | 30 ++++++++++--------- .../a/ashling_the_extinguisher.txt | 2 +- .../res/cardsfolder/e/extinction_event.txt | 5 ++-- .../res/cardsfolder/i/invoke_prejudice.txt | 2 +- .../res/cardsfolder/j/jaded_response.txt | 2 +- .../res/cardsfolder/upcoming/baseball_bat.txt | 10 +++++++ .../cardsfolder/upcoming/curator_beastie.txt | 12 ++++++++ .../upcoming/giggling_skitterspike.txt | 14 +++++++++ .../upcoming/glitch_interpreter.txt | 11 +++++++ .../upcoming/kianne_corrupted_memory.txt | 9 ++++++ .../cardsfolder/upcoming/rite_of_the_moth.txt | 7 +++++ .../upcoming/shriekwood_devourer.txt | 9 ++++++ .../upcoming/the_tale_of_tamiyo.txt | 15 ++++++++++ .../upcoming/they_came_from_the_pipes.txt | 2 +- .../upcoming/victor_valgavoths_seneschal.txt | 6 ++-- .../upcoming/wildfire_wickerfolk.txt | 9 ++++++ .../upcoming/zimones_hypothesis.txt | 8 +++++ 18 files changed, 130 insertions(+), 25 deletions(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/baseball_bat.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/curator_beastie.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/giggling_skitterspike.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/glitch_interpreter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/kianne_corrupted_memory.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/rite_of_the_moth.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/shriekwood_devourer.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/the_tale_of_tamiyo.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/wildfire_wickerfolk.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/zimones_hypothesis.txt diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index bafa7a238f5..f41c599030b 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3999,7 +3999,7 @@ public class CardFactoryUtil { " | Description$ Horsemanship (" + inst.getReminderText() + ")"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.equals("Intimidate")) { - String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonArtifact+notSharesColorWith | Secondary$ True " + + String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonArtifact+!SharesColorWith | Secondary$ True " + " | Description$ Intimidate (" + inst.getReminderText() + ")"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.startsWith("Landwalk")) { 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 edf4a71747e..d8649bd4ebc 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -726,7 +726,6 @@ public class CardProperty { } final String restriction = property.split("SharesColorWith ")[1]; - switch (restriction) { case "MostProminentColor": byte mask = CardFactoryUtil.getMostProminentColors(game.getCardsIn(ZoneType.Battlefield)); @@ -778,19 +777,6 @@ public class CardProperty { byte mostProm = CardFactoryUtil.getMostProminentColors(game.getCardsIn(ZoneType.Battlefield)); return ColorSet.fromMask(mostProm).hasAnyColor(MagicColor.fromName(color)); - } else if (property.startsWith("notSharesColorWith")) { - if (property.equals("notSharesColorWith")) { - if (card.sharesColorWith(source)) { - return false; - } - } else { - final String restriction = property.split("notSharesColorWith ")[1]; - for (final Card c : sourceController.getCardsIn(ZoneType.Battlefield)) { - if (c.isValid(restriction, sourceController, source, spellAbility) && card.sharesColorWith(c)) { - return false; - } - } - } } else if (property.startsWith("MostProminentCreatureTypeInLibrary")) { final CardCollectionView list = sourceController.getCardsIn(ZoneType.Library); for (String s : CardFactoryUtil.getMostProminentCreatureType(list)) { @@ -849,6 +835,14 @@ public class CardProperty { return false; } } else { + // Special case to prevent list from comparing with itself + if (property.startsWith("sharesCardTypeWithOther")) { + final String restriction = property.split("sharesCardTypeWithOther ")[1]; + CardCollection list = AbilityUtils.getDefinedCards(source, restriction, spellAbility); + list.remove(card); + return Iterables.any(list, CardPredicates.sharesCardTypeWith(card)); + } + final String restriction = property.split("sharesCardTypeWith ")[1]; switch (restriction) { case "Imprinted": @@ -1507,6 +1501,14 @@ public class CardProperty { if (card.getCMC() % 2 != 1) { return false; } + } else if (property.equals("powerEven")) { + if (card.getNetPower() % 2 != 0) { + return false; + } + } else if (property.equals("powerOdd")) { + if (card.getNetPower() % 2 != 1) { + return false; + } } else if (property.equals("cmcChosenEvenOdd")) { if (!source.hasChosenEvenOdd()) { return false; diff --git a/forge-gui/res/cardsfolder/a/ashling_the_extinguisher.txt b/forge-gui/res/cardsfolder/a/ashling_the_extinguisher.txt index bbfd5f55ca0..5630f9e8050 100644 --- a/forge-gui/res/cardsfolder/a/ashling_the_extinguisher.txt +++ b/forge-gui/res/cardsfolder/a/ashling_the_extinguisher.txt @@ -3,6 +3,6 @@ ManaCost:2 B B Types:Legendary Creature Elemental Shaman PT:4/4 T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDestroy | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, choose target creature that player controls. The player sacrifices that creature. -SVar:TrigDestroy:DB$ SacrificeAll | Defined ThisTargeted | ValidTgts$ Creature.ControlledBy TriggeredTarget | TgtPrompt$ Select target creature that player controls +SVar:TrigDestroy:DB$ SacrificeAll | Defined$ Targeted | ValidTgts$ Creature.ControlledBy TriggeredTarget | TgtPrompt$ Select target creature that player controls SVar:MustBeBlocked:True Oracle:Whenever Ashling, the Extinguisher deals combat damage to a player, choose target creature that player controls. The player sacrifices that creature. diff --git a/forge-gui/res/cardsfolder/e/extinction_event.txt b/forge-gui/res/cardsfolder/e/extinction_event.txt index 2f196aebb24..fb49ac5c482 100644 --- a/forge-gui/res/cardsfolder/e/extinction_event.txt +++ b/forge-gui/res/cardsfolder/e/extinction_event.txt @@ -1,7 +1,6 @@ Name:Extinction Event ManaCost:3 B Types:Sorcery -A:SP$ GenericChoice | Choices$ Odd,Even | Defined$ You | StackDescription$ SpellDescription | SpellDescription$ Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.) -SVar:Odd:DB$ ChangeZoneAll | ChangeType$ Creature.cmcOdd | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Odd -SVar:Even:DB$ ChangeZoneAll | ChangeType$ Creature.cmcEven | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Even +A:SP$ ChooseEvenOdd | StackDescription$ SpellDescription | SubAbility$ DBExile | SpellDescription$ Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.) +SVar:DBExile:DB$ ChangeZoneAll | ChangeType$ Creature.cmcChosenEvenOdd | Origin$ Battlefield | Destination$ Exile Oracle:Choose odd or even. Exile each creature with mana value of the chosen quality. (Zero is even.) diff --git a/forge-gui/res/cardsfolder/i/invoke_prejudice.txt b/forge-gui/res/cardsfolder/i/invoke_prejudice.txt index aa4d0319b39..0061700ff46 100644 --- a/forge-gui/res/cardsfolder/i/invoke_prejudice.txt +++ b/forge-gui/res/cardsfolder/i/invoke_prejudice.txt @@ -1,7 +1,7 @@ Name:Invoke Prejudice ManaCost:U U U U Types:Enchantment -T:Mode$ SpellCast | ValidCard$ Creature.OppCtrl+notSharesColorWith Creature.YouCtrl | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value. +T:Mode$ SpellCast | ValidCard$ Creature.OppCtrl+!SharesColorWith Valid Creature.YouCtrl | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value. SVar:TrigCounter:DB$ Counter | Defined$ TriggeredSpellAbility | UnlessCost$ X | UnlessPayer$ TriggeredActivator SVar:X:TriggeredCard$CardManaCost Oracle:Whenever an opponent casts a creature spell that doesn't share a color with a creature you control, counter that spell unless that player pays {X}, where X is its mana value. diff --git a/forge-gui/res/cardsfolder/j/jaded_response.txt b/forge-gui/res/cardsfolder/j/jaded_response.txt index c1c117bee6e..b1201decd9e 100644 --- a/forge-gui/res/cardsfolder/j/jaded_response.txt +++ b/forge-gui/res/cardsfolder/j/jaded_response.txt @@ -1,5 +1,5 @@ Name:Jaded Response ManaCost:1 U Types:Instant -A:SP$ Counter | TargetType$ Spell | ValidTgts$ Card | AITgts$ Card.SharesColorWith Valid Creature.YouCtrl | ConditionDefined$ Targeted | ConditionPresent$ Spell.SharesColorWith Creature.YouCtrl | SpellDescription$ Counter target spell if it shares a color with a creature you control. +A:SP$ Counter | TargetType$ Spell | ValidTgts$ Card | AITgts$ Card.SharesColorWith Valid Creature.YouCtrl | ConditionDefined$ Targeted | ConditionPresent$ Spell.SharesColorWith Valid Creature.YouCtrl | SpellDescription$ Counter target spell if it shares a color with a creature you control. Oracle:Counter target spell if it shares a color with a creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/baseball_bat.txt b/forge-gui/res/cardsfolder/upcoming/baseball_bat.txt new file mode 100644 index 00000000000..0295afea282 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/baseball_bat.txt @@ -0,0 +1,10 @@ +Name:Baseball Bat +ManaCost:G W +Types:Artifact Equipment +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters, attach it to target creature you control. +SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Equipped creature gets +1/+1. +T:Mode$ Attacks | ValidCard$ Card.AttachedBy | Execute$ TrigTap | TriggerDescription$ Whenever equipped creature attacks, tap up to one target creature. +SVar:TrigTap:DB$ Tap | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | TgtPrompt$ Select target creature +K:Equip:3 +Oracle:When Baseball Bat enters, attach it to target creature you control.\nEquipped creature gets +1/+1.\nWhenever equipped creature attacks, tap up to one target creature.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/curator_beastie.txt b/forge-gui/res/cardsfolder/upcoming/curator_beastie.txt new file mode 100644 index 00000000000..75f37ca7466 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/curator_beastie.txt @@ -0,0 +1,12 @@ +Name:Curator Beastie +ManaCost:4 G G +Types:Creature Beast +PT:6/6 +K:Reach +K:ETBReplacement:Other:AddExtraCounter:Mandatory:Battlefield:Creature.Colorless+YouCtrl +SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 2 | SpellDescription$ Colorless creatures you control enter with two additional +1/+1 counters on them. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDread | TriggerDescription$ Whenever CARDNAME enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.) +T:Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True | Execute$ TrigDread | TriggerDescription$ Whenever CARDNAME enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.) +SVar:TrigDread:DB$ Manifest | Dread$ True +DeckHas:Ability$Counters +Oracle:Reach\nColorless creatures you control enter with two additional +1/+1 counters on them.\nWhenever Curator Beastie enters or attacks, manifest dread. (Look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.) diff --git a/forge-gui/res/cardsfolder/upcoming/giggling_skitterspike.txt b/forge-gui/res/cardsfolder/upcoming/giggling_skitterspike.txt new file mode 100644 index 00000000000..abd8dd70f86 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/giggling_skitterspike.txt @@ -0,0 +1,14 @@ +Name:Giggling Skitterspike +ManaCost:4 +Types:Artifact Creature Toy +PT:1/1 +K:Indestructible +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent. +T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigDealDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent. +T:Mode$ BecomesTarget | ValidTarget$ Card.Self | ValidSource$ Spell | TriggerZones$ Battlefield | Execute$ TrigDealDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent. +SVar:TrigDealDamage:DB$ DealDamage | Defined$ Opponent | NumDmg$ X +K:Monstrosity:5:5 +SVar:X:Count$CardPower +SVar:HasAttackEffect:TRUE +SVar:HasBlockEffect:TRUE +Oracle:Indestructible\nWhenever Giggling Skitterspike attacks, blocks, or becomes the target of a spell, it deals damage equal to its power to each opponent.\n{5}: Monstrosity 5. (If this creature isn't monstrous, put five +1/+1 counters on it and it becomes monstrous.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/glitch_interpreter.txt b/forge-gui/res/cardsfolder/upcoming/glitch_interpreter.txt new file mode 100644 index 00000000000..3c37f1b1a4b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/glitch_interpreter.txt @@ -0,0 +1,11 @@ +Name:Glitch Interpreter +ManaCost:2 U +Types:Creature Human Wizard +PT:2/3 +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | IsPresent$ Permanent.faceDown+YouCtrl | PresentCompare$ EQ0 | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters, if you control no face-down permanents, return CARDNAME to its owner's hand and manifest dread. +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBDread +SVar:DBDread:DB$ Manifest | Dread$ True +T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.Colorless+YouCtrl | TriggerZones$ Battlefield | ValidTarget$ Player | Execute$ TrigDraw | TriggerDescription$ Whenever one or more colorless creatures you control deal combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw +SVar:PlayMain1:TRUE +Oracle:When Glitch Interpreter enters, if you control no face-down permanents, return Glitch Interpreter to its owner's hand and manifest dread.\nWhenever one or more colorless creatures you control deal combat damage to a player, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/kianne_corrupted_memory.txt b/forge-gui/res/cardsfolder/upcoming/kianne_corrupted_memory.txt new file mode 100644 index 00000000000..3c18c3a157e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kianne_corrupted_memory.txt @@ -0,0 +1,9 @@ +Name:Kianne, Corrupted Memory +ManaCost:2 G U +Types:Legendary Creature Illusion +PT:2/2 +S:Mode$ CastWithFlash | ValidCard$ Card.nonCreature | ValidSA$ Spell | Caster$ You | IsPresent$ Card.Self+powerEven | Description$ As long as NICKNAME's power is even, you may cast noncreature spells as though they had flash. +S:Mode$ CastWithFlash | ValidCard$ Creature | ValidSA$ Spell | Caster$ You | IsPresent$ Card.Self+powerOdd | Description$ As long as NICKNAME's power is odd, you may cast creature spells as though they had flash. +T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw a card, put a +1/+1 counter on NICKNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +Oracle:As long as Kianne's power is even, you may cast noncreature spells as though they had flash.\nAs long as Kianne's power is odd, you may cast creature spells as though they had flash.\nWhenever you draw a card, put a +1/+1 counter on Kianne. diff --git a/forge-gui/res/cardsfolder/upcoming/rite_of_the_moth.txt b/forge-gui/res/cardsfolder/upcoming/rite_of_the_moth.txt new file mode 100644 index 00000000000..50f884a84e8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rite_of_the_moth.txt @@ -0,0 +1,7 @@ +Name:Rite of the Moth +ManaCost:1 W B B +Types:Sorcery +K:Flashback:3 W W B +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | WithCountersType$ FINALITY | SpellDescription$ Return target creature card from your graveyard to the battlefield with a finality counter on it. (If a creature with a finality counter on it would die, exile it instead.) +SVar:DiscardMe:1 +Oracle:Return target creature card from your graveyard to the battlefield with a finality counter on it. (If a creature with a finality counter on it would die, exile it instead.)\nFlashback {3}{W}{W}{B} (You may cast this card from your graveyard for its flashback cost. Then exile it.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/shriekwood_devourer.txt b/forge-gui/res/cardsfolder/upcoming/shriekwood_devourer.txt new file mode 100644 index 00000000000..b97fb45fb70 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/shriekwood_devourer.txt @@ -0,0 +1,9 @@ +Name:Shriekwood Devourer +ManaCost:5 G G +Types:Creature Treefolk +PT:7/5 +K:Trample +T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever you attack with one or more creatures, untap up to X lands, where X is the greatest power among those creatures. +SVar:TrigUntap:DB$ Untap | UntapUpTo$ True | UntapType$ Land | Amount$ X +SVar:X:TriggerObjectsAttackers$GreatestPower +Oracle:Trample\nWhenever you attack with one or more creatures, untap up to X lands, where X is the greatest power among those creatures. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_tale_of_tamiyo.txt b/forge-gui/res/cardsfolder/upcoming/the_tale_of_tamiyo.txt new file mode 100644 index 00000000000..d12f5317b61 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_tale_of_tamiyo.txt @@ -0,0 +1,15 @@ +Name:The Tale of Tamiyo +ManaCost:2 U +Types:Legendary Enchantment Saga +K:Chapter:4:DBRepeat,DBRepeat,DBRepeat,DBChangeZone +SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ DBCleanAndGrind | MaxRepeat$ MaxRepeats | RepeatCheckSVar$ MilledSharesType | RepeatSVarCompare$ GE2 | SubAbility$ DBCleanup | SpellDescription$ Mill two cards. If two cards that share a card type were milled this way, draw a card and repeat this process. +SVar:DBCleanAndGrind:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBGrind +SVar:DBGrind:DB$ Mill | NumCards$ 2 | NoReveal$ True | RememberMilled$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | ConditionCheckSVar$ MilledSharesType | ConditionSVarCompare$ GE2 +SVar:MaxRepeats:Count$InYourLibrary +SVar:MilledSharesType:Remembered$Valid Card.sharesCardTypeWithOther Remembered +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ Yard | TgtPrompt$ Select any number of target instant, sorcery, and/or Tamiyo planeswalker cards in your graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn,Planeswalker.Tamiyo+YouOwn | RememberChanged$ True | SubAbility$ DBPlay | StackDescription$ SpellDescription | SpellDescription$ Exile any number of target instant, sorcery, and/or Tamiyo planeswalker cards from your graveyard. Copy them. You may cast any number of the copies. +SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | Controller$ You | CopyCard$ True | ValidSA$ Spell | Optional$ True | Amount$ All | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Yard:Count$InYourYard +Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.)\nI, II, III — Mill two cards. If two cards that share a card type were milled this way, draw a card and repeat this process.\nIV — Exile any number of target instant, sorcery, and/or Tamiyo planeswalker cards from your graveyard. Copy them. You may cast any number of the copies. diff --git a/forge-gui/res/cardsfolder/upcoming/they_came_from_the_pipes.txt b/forge-gui/res/cardsfolder/upcoming/they_came_from_the_pipes.txt index 4adf583608f..0fc59a0c3bb 100644 --- a/forge-gui/res/cardsfolder/upcoming/they_came_from_the_pipes.txt +++ b/forge-gui/res/cardsfolder/upcoming/they_came_from_the_pipes.txt @@ -5,4 +5,4 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigDread:DB$ Manifest | Dread$ True | Times$ 2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.faceDown+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a face-down creature you control enters, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 -Oracle:When They Came from the Pipes enters, manifest dread twice. (To manifest dread, look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)\nWhenever a face-down creature you control enters, draw a card. \ No newline at end of file +Oracle:When They Came from the Pipes enters, manifest dread twice. (To manifest dread, look at the top two cards of your library. Put one onto the battlefield face down as a 2/2 creature and the other into your graveyard. Turn it face up any time for its mana cost if it's a creature card.)\nWhenever a face-down creature you control enters, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/victor_valgavoths_seneschal.txt b/forge-gui/res/cardsfolder/upcoming/victor_valgavoths_seneschal.txt index 42f6853c264..f05d8b303dd 100644 --- a/forge-gui/res/cardsfolder/upcoming/victor_valgavoths_seneschal.txt +++ b/forge-gui/res/cardsfolder/upcoming/victor_valgavoths_seneschal.txt @@ -8,9 +8,9 @@ T:Mode$ FullyUnlock | ValidCard$ Card.Room | ValidPlayer$ You | Secondary$ True SVar:TrigSurveil:DB$ Surveil | Amount$ 2 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBDiscard SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | Mode$ TgtChoose | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ2 | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | Mandatory$ True | GainControl$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ3 | SelectPrompt$ Select a creature card to return to the battlefield | Hidden$ True | SubAbility$ DBLog -SVar:DBLog:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ X/Plus.1 -SVar:X:Number$0 +SVar:DBLog:DB$ StoreSVar | SVar$ X | Type$ CountSVar | Expression$ X/Plus.1 +SVar:X:Number$1 T:Mode$ Phase | Phase$ Cleanup | TriggerZones$ Battlefield | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ 0 +SVar:DBCleanup:DB$ StoreSVar | SVar$ X | Type$ Number | Expression$ 1 DeckNeeds:Type$Enchantment Oracle:Eerie — Whenever an enchantment you control enters and whenever you fully unlock a Room, surveil 2 if this is the first time this ability has resolved this turn. If it's the second time, each opponent discards a card. If it's the third time, put a creature card from a graveyard onto the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/upcoming/wildfire_wickerfolk.txt b/forge-gui/res/cardsfolder/upcoming/wildfire_wickerfolk.txt new file mode 100644 index 00000000000..6566789f15e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wildfire_wickerfolk.txt @@ -0,0 +1,9 @@ +Name:Wildfire Wickerfolk +ManaCost:R G +Types:Artifact Creature Scarecrow +PT:3/2 +K:Haste +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Trample | Condition$ Delirium | Description$ Delirium — CARDNAME gets +1/+1 and has trample as long as there are four or more card types among cards in your graveyard. +DeckHints:Ability$Graveyard|Discard +DeckHas:Ability$Delirium +Oracle:Haste\nDelirium — Wildfire Wickerfolk gets +1/+1 and has trample as long as there are four or more card types among cards in your graveyard. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/zimones_hypothesis.txt b/forge-gui/res/cardsfolder/upcoming/zimones_hypothesis.txt new file mode 100644 index 00000000000..2e451ac8e49 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/zimones_hypothesis.txt @@ -0,0 +1,8 @@ +Name:Zimone's Hypothesis +ManaCost:3 U U +Types:Instant +A:SP$ PutCounter | Choices$ Creature | ChoiceTitle$ Choose a creature | CounterType$ P1P1 | CounterNum$ 1 | Optional$ True | SubAbility$ DBGenericChoice | SpellDescription$ You may put a +1/+1 counter on a creature. Then choose odd or even. Return each creature with power of the chosen quality to its owner's hand. (Zero is even.) +SVar:DBGenericChoice:DB$ GenericChoice | Choices$ Odd,Even +SVar:Odd:DB$ ChangeZoneAll | ChangeType$ Creature.powerOdd | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Odd +SVar:Even:DB$ ChangeZoneAll | ChangeType$ Creature.powerEven | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Even +Oracle:You may put a +1/+1 counter on a creature. Then choose odd or even. Return each creature with power of the chosen quality to its owner's hand. (Zero is even.)