From 0306817ac861260e590eb11ec4a028053a22ffa8 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 10:29:14 -0400 Subject: [PATCH 01/14] inferno_project.txt --- .../res/cardsfolder/upcoming/inferno_project.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/inferno_project.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inferno_project.txt b/forge-gui/res/cardsfolder/upcoming/inferno_project.txt new file mode 100644 index 00000000000..9aa0b5b85cc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/inferno_project.txt @@ -0,0 +1,12 @@ +Name:Inferno Project +ManaCost:6 R +Types:Creature Elemental +PT:0/0 +K:Trample +K:etbCounter:P1P1:X:no Condition:CARDNAME enters the battlefield with X +1/+1 counters on it, where X is the total mana value of instant and sorcery cards in your graveyard. +SVar:X:Count$SumCMCGraveyard_Instant.YouOwn,Sorcery.YouOwn +DeckHas:Ability$Counters +DeckNeeds:Type$Instant|Sorcery +AI:RemoveDeck:Random +SVar:NeedsToPlayVar:X GE7 +Oracle:Trample\nInferno Project enters the battlefield with X +1/+1 counters on it, where X is the total mana value of instant and sorcery cards in your graveyard. From 75f03f1fd1b0e77f6fc50921ed194e89095f89a4 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 10:30:01 -0400 Subject: [PATCH 02/14] support for SumCMCGraveyard (Inferno Project) --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 3de33d2fae0..03d951c7b19 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1286,9 +1286,13 @@ public class CardFactoryUtil { } // Count$SumCMC_valid if (sq[0].contains("SumCMC")) { + ZoneType zone = ZoneType.Battlefield; + //graveyard support for Inferno Project (may need other zones or multi-zone in future) + if (sq[0].contains("Graveyard")) + zone = ZoneType.Graveyard; final String[] restrictions = l[0].split("_"); final String[] rest = restrictions[1].split(","); - CardCollectionView cardsonbattlefield = game.getCardsIn(ZoneType.Battlefield); + CardCollectionView cardsonbattlefield = game.getCardsIn(zone); CardCollection filteredCards = CardLists.getValidCards(cardsonbattlefield, rest, cc, c, null); return Aggregates.sum(filteredCards, CardPredicates.Accessors.fnGetCmc); } From 92ffb0b1e5af94b8febb0619d980d0e7085876e7 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 10:44:21 -0400 Subject: [PATCH 03/14] rionya_fire_dancer.txt --- .../res/cardsfolder/upcoming/rionya_fire_dancer.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/rionya_fire_dancer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rionya_fire_dancer.txt b/forge-gui/res/cardsfolder/upcoming/rionya_fire_dancer.txt new file mode 100644 index 00000000000..b2dc77907f7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rionya_fire_dancer.txt @@ -0,0 +1,10 @@ +Name:Rionya, Fire Dancer +ManaCost:3 R R +Types:Legendary Creature Human Wizard +PT:3/4 +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, create X tokens that are copies of another target creature you control, where X is one plus the number of instant and sorcery spells you’ve cast this turn. They gain haste. Exile them at the beginning of the next end step. +SVar:TrigCopy:DB$ CopyPermanent | NumCopies$ X | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select another target creature you control | AddKeywords$ Haste | AtEOT$ Exile +SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl/Plus.1 +DeckNeeds:Type$Instant|Sorcery +DeckHas:Ability$Token +Oracle:At the beginning of combat on your turn, create X tokens that are copies of another target creature you control, where X is one plus the number of instant and sorcery spells you’ve cast this turn. They gain haste. Exile them at the beginning of the next end step. From 6cef7fd6b67cf5dd1d21f7d849c6e204c1486648 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 11:14:38 -0400 Subject: [PATCH 04/14] creative_technique.txt --- forge-gui/res/cardsfolder/upcoming/creative_technique.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/creative_technique.txt diff --git a/forge-gui/res/cardsfolder/upcoming/creative_technique.txt b/forge-gui/res/cardsfolder/upcoming/creative_technique.txt new file mode 100644 index 00000000000..d2439a203e6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/creative_technique.txt @@ -0,0 +1,8 @@ +Name:Creative Technique +ManaCost:4 R +Types:Sorcery +K:Demonstrate +A:SP$ Shuffle | SubAbility$ DBDigUntil | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library, +SVar:DBDigUntil:DB$ DigUntil | Defined$ You | Valid$ Card.nonLand | FoundDestination$ Exile | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | RememberFound$ True | SubAbility$ DBPlay | StackDescription$ then reveals cards from the top of it until they reveal a nonland card. {p:You} exiles that card and puts the rest on the bottom of their library in a random order. | SpellDescription$ then reveal cards from the top of it until you reveal a nonland card. Exile that card and put the rest on the bottom of your library in a random order. +SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | StackDescription$ {p:You} may cast the exiled card without paying its mana cost. | SpellDescription$ You may cast the exiled card without paying its mana cost. +Oracle:Demonstrate (When you cast this spell, you may copy it. If you do, choose an opponent to also copy it.)\nShuffle your library, then reveal cards from the top of it until you reveal a nonland card. Exile that card and put the rest on the bottom of your library in a random order. You may cast the exiled card without paying its mana cost. From d418ad8369d0805db5897243ed5e805bb9d98127 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 12:46:48 -0400 Subject: [PATCH 05/14] fractal_harness.txt --- .../res/cardsfolder/upcoming/fractal_harness.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/fractal_harness.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fractal_harness.txt b/forge-gui/res/cardsfolder/upcoming/fractal_harness.txt new file mode 100644 index 00000000000..24a1f8f78f8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/fractal_harness.txt @@ -0,0 +1,16 @@ +Name:Fractal Harness +ManaCost:X 2 G +Types:Artifact Equipment +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it and attach CARDNAME to it. +SVar:TrigToken:DB$ Token | TokenScript$ gu_0_0_fractal | RememberTokens$ True | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBAttach +SVar:DBAttach:DB$ Attach | Defined$ Remembered | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$xPaid +T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ TrigDoubleCounters | TriggerDescription$ Whenever equipped creature attacks, double the number of +1/+1 counters on it. +SVar:TrigDoubleCounters:DB$ MultiplyCounter | Defined$ TriggeredAttackerLKICopy | CounterType$ P1P1 +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddSVar$ AE | Secondary$ True | Description$ Add attack effect to attached +SVar:AE:SVar:HasAttackEffect:TRUE +K:Equip:2 +DeckHas:Ability$Token & Ability$Counters +Oracle:When Fractal Harness enters the battlefield, create a 0/0 blue and green Fractal creature token. Put X +1/+1 counters on it and attach Fractal Harness to it.\nWhenever equipped creature attacks, double the number of +1/+1 counters on it.\nEquip {2} From f1d52fb5301073149a65cc38d1bdbcf533102990 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 12:59:37 -0400 Subject: [PATCH 06/14] ruxa_patient_professor.txt (Suthro) --- .../cardsfolder/upcoming/ruxa_patient_professor.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/ruxa_patient_professor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ruxa_patient_professor.txt b/forge-gui/res/cardsfolder/upcoming/ruxa_patient_professor.txt new file mode 100644 index 00000000000..ed5677893a6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ruxa_patient_professor.txt @@ -0,0 +1,11 @@ +Name:Ruxa, Patient Professor +ManaCost:2 G G +Types:Legendary Creature Bear Druid +PT:4/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, return target creature card with no abilities from your graveyard to your hand. +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChange | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, return target creature card with no abilities from your graveyard to your hand. +SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.NoAbilities+YouOwn +S:Mode$ Continuous | Affected$ Creature.NoAbilities+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures you control with no abilities get +1/+1. +S:Mode$ Continuous | Affected$ Creature.NoAbilities+YouCtrl | AddHiddenKeyword$ You may have CARDNAME assign its combat damage as though it weren't blocked. | Description$ You may have creatures you control with no abilities assign their combat damage as though they weren't blocked. +SVar:HasAttackEffect:TRUE +Oracle:Whenever Ruxa, Patient Professor enters the battlefield or attacks, return target creature card with no abilities from your graveyard to your hand.\nCreatures you control with no abilities get +1/+1.\nYou may have creatures you control with no abilities assign their combat damage as though they weren't blocked. From 5ed21c3ce3da19814a11f9fe2b2477af063bc7c3 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 13:16:16 -0400 Subject: [PATCH 07/14] deekah_fractal_theorist.txt --- .../upcoming/deekah_fractal_theorist.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt b/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt new file mode 100644 index 00000000000..6a362c15129 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt @@ -0,0 +1,13 @@ +Name:Deekah, Fractal Theorist +ManaCost:4 U +Types:Legendary Creature Human Wizard +PT:3/3 +T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is that spell's mana value. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ gu_0_0_fractal | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:TriggerCount$CastSACMC +A:AB$ Pump | Cost$ 3 U | KW$ HIDDEN Unblockable | TgtPrompt$ Select target creature token | ValidTgts$ Creature.token | SpellDescription$ Target creature token can't be blocked this turn. +DeckHas:Ability$Token & Ability$Counters +DeckNeeds:Type$Instant|Sorcery +Oracle:Magecraft - Whenever you cast or copy an instant or sorcery spell, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is that spell's mana value.\n{3}{U}: Target creature token can't be blocked this turn. From 443b613513ca0afbd908181890812a87fa7b55f6 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 15:05:05 -0400 Subject: [PATCH 08/14] deekah_fractal_theorist.txt remove default params --- forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt b/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt index 6a362c15129..2e91aa2897d 100644 --- a/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt +++ b/forge-gui/res/cardsfolder/upcoming/deekah_fractal_theorist.txt @@ -3,7 +3,7 @@ ManaCost:4 U Types:Legendary Creature Human Wizard PT:3/3 T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is that spell's mana value. -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ gu_0_0_fractal | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBPutCounter +SVar:TrigToken:DB$ Token | TokenScript$ gu_0_0_fractal | RememberTokens$ True | SubAbility$ DBPutCounter SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:TriggerCount$CastSACMC From fbbdec5e4e62f19c2621d0c23ba54a9c4c9e1c1a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 15:33:51 -0400 Subject: [PATCH 09/14] oversimplify.txt --- forge-gui/res/cardsfolder/upcoming/oversimplify.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/oversimplify.txt diff --git a/forge-gui/res/cardsfolder/upcoming/oversimplify.txt b/forge-gui/res/cardsfolder/upcoming/oversimplify.txt new file mode 100644 index 00000000000..3873c6ddfa8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/oversimplify.txt @@ -0,0 +1,12 @@ +Name:Oversimplify +ManaCost:3 G U +Types:Sorcery +A:SP$ ChangeZoneAll | ChangeType$ Creature | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBRepeatEach | SpellDescription$ Exile all creatures. +SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | SpellDescription$ Each player +SVar:DBToken:DB$ Token | TokenScript$ gu_0_0_fractal | TokenOwner$ Player.IsRemembered | ImprintTokens$ True | SubAbility$ DBPutCounter | StackDescription$ SpellDescription | SpellDescription$ creates a 0/0 green and blue Fractal creature token +SVar:DBPutCounter:DB$ PutCounter | Defined$ Imprinted | CounterType$ P1P1 | CounterNum$ X | Placer$ Player.IsRemembered | SubAbility$ DBCleanImprinted | StackDescription$ SpellDescription | SpellDescription$ and puts a number of +1/+1 counters on it equal to the total power of creatures they controlled that were exiled this way. +SVar:DBCleanImprinted:DB$ Cleanup | ClearImprinted$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:RememberedLKI$FilterControlledByRemembered_Number$1 +DeckHas:Ability$Token & Ability$Counters +Oracle:Exile all creatures. Each player creates a 0/0 green and blue Fractal creature token and puts a number of +1/+1 counters on it equal to the total power of creatures they controlled that were exiled this way. From fd1ce7a750c08ce55a0fbd728203926460835a4b Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 15:53:26 -0400 Subject: [PATCH 10/14] geometric_nexus.txt --- .../res/cardsfolder/upcoming/geometric_nexus.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/geometric_nexus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/geometric_nexus.txt b/forge-gui/res/cardsfolder/upcoming/geometric_nexus.txt new file mode 100644 index 00000000000..dcbef1f2e24 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/geometric_nexus.txt @@ -0,0 +1,13 @@ +Name:Geometric Nexus +ManaCost:2 +Types:Artifact +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts an instant or sorcery spell, put a number of charge counters on CARDNAME equal to that spell's mana value. +SVar:TrigPutCounter:DB$ PutCounter | CounterType$ CHARGE | CounterNum$ Y +SVar:Y:TriggerCount$CastSACMC +A:AB$ Token | Cost$ 6 T SubCounter | CostDesc$ {6}, {T}, Remove all charge counters from CARDNAME: | TokenScript$ gu_0_0_fractal | RememberTokens$ True | SubAbility$ DBPutCounter | SpellDescription$ Create a 0/0 green and blue Fractal creature token. +SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ X | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ Put X +1/+1 counters on it, where X is the number of charge counters removed this way. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:SVar$CostCountersRemoved +DeckHas:Ability$Token & Ability$Counters +DeckNeeds:Type$Instant|Sorcery +Oracle:Whenever a player casts an instant or sorcery spell, put a number of charge counters on Geometric Nexus equal to that spell's mana value.\n{6}, {T}, Remove all charge counters from Geometric Nexus: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of charge counters removed this way. From 72c4c0007f0086df32104eb00cead8f9f1916b22 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 15:55:36 -0400 Subject: [PATCH 11/14] oversimplify.txt fix Descs --- forge-gui/res/cardsfolder/upcoming/oversimplify.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/oversimplify.txt b/forge-gui/res/cardsfolder/upcoming/oversimplify.txt index 3873c6ddfa8..14c89afaf1e 100644 --- a/forge-gui/res/cardsfolder/upcoming/oversimplify.txt +++ b/forge-gui/res/cardsfolder/upcoming/oversimplify.txt @@ -2,9 +2,9 @@ Name:Oversimplify ManaCost:3 G U Types:Sorcery A:SP$ ChangeZoneAll | ChangeType$ Creature | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBRepeatEach | SpellDescription$ Exile all creatures. -SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | SpellDescription$ Each player -SVar:DBToken:DB$ Token | TokenScript$ gu_0_0_fractal | TokenOwner$ Player.IsRemembered | ImprintTokens$ True | SubAbility$ DBPutCounter | StackDescription$ SpellDescription | SpellDescription$ creates a 0/0 green and blue Fractal creature token -SVar:DBPutCounter:DB$ PutCounter | Defined$ Imprinted | CounterType$ P1P1 | CounterNum$ X | Placer$ Player.IsRemembered | SubAbility$ DBCleanImprinted | StackDescription$ SpellDescription | SpellDescription$ and puts a number of +1/+1 counters on it equal to the total power of creatures they controlled that were exiled this way. +SVar:DBRepeatEach:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | SpellDescription$ Each player creates a 0/0 green and blue Fractal creature token and puts a number of +1/+1 counters on it equal to the total power of creatures they controlled that were exiled this way. +SVar:DBToken:DB$ Token | TokenScript$ gu_0_0_fractal | TokenOwner$ Player.IsRemembered | ImprintTokens$ True | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Imprinted | CounterType$ P1P1 | CounterNum$ X | Placer$ Player.IsRemembered | SubAbility$ DBCleanImprinted SVar:DBCleanImprinted:DB$ Cleanup | ClearImprinted$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:RememberedLKI$FilterControlledByRemembered_Number$1 From e379c676d0708d6d58fa09d28de09828d358a9e6 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 16:58:29 -0400 Subject: [PATCH 12/14] muse_vortex.txt --- forge-gui/res/cardsfolder/upcoming/muse_vortex.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/muse_vortex.txt diff --git a/forge-gui/res/cardsfolder/upcoming/muse_vortex.txt b/forge-gui/res/cardsfolder/upcoming/muse_vortex.txt new file mode 100644 index 00000000000..e611b04b852 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/muse_vortex.txt @@ -0,0 +1,12 @@ +Name:Muse Vortex +ManaCost:X U U +Types:Sorcery +A:SP$ Dig | Cost$ X U U | Defined$ You | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBPlay | StackDescription$ SpellDescription | SpellDescription$ Exile the top X cards of your library. You may cast an instant or sorcery spell with mana value X or less from among them without paying its mana cost. Then put the exiled instant or sorcery cards that weren’t cast this way into your hand the rest on the bottom of your library in a random order. +SVar:DBPlay:DB$ Play | Valid$ Instant.cmcLEX+IsRemembered+YouOwn,Sorcery.cmcLEX+IsRemembered+YouOwn | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | ForgetTargetRemembered$ True | Amount$ 1 | SubAbility$ DBHand | StackDescription$ None +SVar:DBHand:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Hand | ChangeType$ Instant.IsRemembered+YouOwn,Sorcery.IsRemembered+YouOwn | ForgetChanged$ True | SubAbility$ DBLibrary +SVar:DBLibrary:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Library | ChangeType$ Card.IsRemembered+YouOwn | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$xPaid +DeckNeeds:Type$Instant|Sorcery +AI:RemoveDeck:Random +Oracle:Exile the top X cards of your library. You may cast an instant or sorcery spell with mana value X or less from among them without paying its mana cost. Then put the exiled instant or sorcery cards that weren’t cast this way into your hand the rest on the bottom of your library in a random order. From 17bb74ff2525270fd563c83a62a2815b1339be7a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 21:19:44 -0400 Subject: [PATCH 13/14] commanders_insight.txt --- .../res/cardsfolder/upcoming/commanders_insight.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/commanders_insight.txt diff --git a/forge-gui/res/cardsfolder/upcoming/commanders_insight.txt b/forge-gui/res/cardsfolder/upcoming/commanders_insight.txt new file mode 100644 index 00000000000..07ce0415f6a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/commanders_insight.txt @@ -0,0 +1,9 @@ +Name:Commander's Insight +ManaCost:X U U U +Types:Instant +A:SP$ Draw | Cost$ X U U U | NumCards$ Z | ValidTgts$ Player | TgtPrompt$ Choose target player | SpellDescription$ Target player draws X cards plus an additional card for each time they've cast a commander from the command zone this game. +SVar:X:Count$xPaid +SVar:Y:TargetedPlayer$TotalCommanderCastFromCommandZone +SVar:Z:SVar$Y/Plus.X +AI:RemoveDeck:NonCommander +Oracle:Target player draws X cards plus an additional card for each time they've cast a commander from the command zone this game. From e807d9a3e7dd0171ee205aea895d497f3e478f24 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Apr 2021 21:22:21 -0400 Subject: [PATCH 14/14] support for playerXCount TotalCommanderCastFromCommandZone --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 03d951c7b19..cdd6468ba79 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -392,6 +392,14 @@ public class CardFactoryUtil { int n = 0; + if (l[0].startsWith("TotalCommanderCastFromCommandZone")) { + int totCast = 0; + for (Player p : players) { + totCast += p.getTotalCommanderCast(); + } + return doXMath(totCast, m, source); + } + // methods for getting the highest/lowest playerXCount from a range of players if (l[0].startsWith("Highest")) { for (final Player player : players) {