From bb22ea3c8f0723f68df35baaba4ce8140fc658b6 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 11:03:49 -0400 Subject: [PATCH 01/13] AI logic for Elspeth Conquers Death --- .../forge/ai/ability/ChooseGenericEffectAi.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java index 567739d4053..31cb7b16ac2 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java @@ -158,6 +158,20 @@ public class ChooseGenericEffectAi extends SpellAbilityAi { } } return others; + } else if ("Counters").equals(logic)) { + SpellAbility p1p1 = null, loyalty = null; + for (final SpellAbility sp : spells) { + if (sp.getDescription().equals("P1P1")) { + p1p1 = sp; + } else { + loyalty = sp; + } + } + if (sa.getTargetCard().getType().isPlaneswalker()) { + return loyalty; + } else { + return p1p1; + } } else if ("Fatespinner".equals(logic)) { SpellAbility skipDraw = null, /*skipMain = null,*/ skipCombat = null; for (final SpellAbility sp : spells) { From dc56cb382b9df89df4bacfbc59390161bd1803a2 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 11:06:26 -0400 Subject: [PATCH 02/13] elspeth_conquers_death.txt improved AI tags --- forge-gui/res/cardsfolder/e/elspeth_conquers_death.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/e/elspeth_conquers_death.txt b/forge-gui/res/cardsfolder/e/elspeth_conquers_death.txt index d135548c24d..5a945fc5d4a 100755 --- a/forge-gui/res/cardsfolder/e/elspeth_conquers_death.txt +++ b/forge-gui/res/cardsfolder/e/elspeth_conquers_death.txt @@ -6,7 +6,7 @@ SVar:DBExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTg SVar:DBEffect:DB$ Effect | Duration$ UntilYourNextTurn | StaticAbilities$ RaiseCost | SpellDescription$ Noncreature spells your opponents cast cost {2} more to cast until your next turn. SVar:RaiseCost:Mode$ RaiseCost | ValidCard$ Card.nonCreature | Activator$ Opponent | Type$ Spell | Amount$ 2 | EffectZone$ Command | Description$ Noncreature spells your opponents cast cost {2} more to cast until your next turn. SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouOwn,Planeswalker.YouOwn | TgtPrompt$ Select target creature or planeswalker | RememberChanged$ True | SubAbility$ AddCounter | SpellDescription$ Return target creature or planeswalker card from your graveyard to the battlefield. Put a +1/+1 counter or a loyalty counter on it. -SVar:AddCounter:DB$ GenericChoice | Defined$ You | Choices$ P1P1,Loyalty +SVar:AddCounter:DB$ GenericChoice | Defined$ You | Choices$ P1P1,Loyalty | AILogic$ Counters SVar:P1P1:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBCleanup | SpellDescription$ Put a +1/+1 counter on it. SVar:Loyalty:DB$ PutCounter | Defined$ Remembered | CounterType$ LOYALTY | CounterNum$ 1 | SubAbility$ DBCleanup | SpellDescription$ Put a loyalty counter on it. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True @@ -14,5 +14,5 @@ SVar:PlayMain1:TRUE SVar:NeedsToPlayVar:Y GE1 SVar:Y:Count$ValidGraveyard Creature.YouOwn/Plus.Y1 SVar:Y1:Count$ValidGraveyard Planeswalker.YouOwn -DeckHas:Ability$Counters +DeckHas:Ability$Counters & Ability$Sacrifice & Ability$Graveyard Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Exile target permanent an opponent controls with converted mana cost 3 or greater.\nII — Noncreature spells your opponents cast cost {2} more to cast until your next turn.\nIII — Return target creature or planeswalker card from your graveyard to the battlefield. Put a +1/+1 counter or a loyalty counter on it. From e7a5ffdf5f16f0153f06f6961fb6b1e28a8fc89a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 11:07:16 -0400 Subject: [PATCH 03/13] containment_breach.txt fix ValidTgts --- forge-gui/res/cardsfolder/upcoming/containment_breach.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/containment_breach.txt b/forge-gui/res/cardsfolder/upcoming/containment_breach.txt index bb534014eb6..28d2feaf612 100644 --- a/forge-gui/res/cardsfolder/upcoming/containment_breach.txt +++ b/forge-gui/res/cardsfolder/upcoming/containment_breach.txt @@ -1,8 +1,8 @@ Name:Containment Breach ManaCost:2 G Types:Sorcery Lesson -A:SP$ Destroy | Cost$ 2 G | ValidTgts$ Artifact | SubAbility$ TrigToken | SpellDescription$ Destroy target artifact. If its mana value is 2 or less, create a 1/1 black and green Pest creature token with “When this creature dies, you gain 1 life.” -SVar:TrigToken:DB$Token | TokenScript$ bg_1_1_pest_lifegain | TokenOwner$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ LE2 +A:SP$ Destroy | Cost$ 2 G | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SubAbility$ TrigToken | SpellDescription$ Destroy target artifact or enchantment. If its mana value is 2 or less, create a 1/1 black and green Pest creature token with “When this creature dies, you gain 1 life.” +SVar:TrigToken:DB$ Token | TokenScript$ bg_1_1_pest_lifegain | ConditionCheckSVar$ X | ConditionSVarCompare$ LE2 SVar:X:Targeted$CardManaCost -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Destroy target artifact or enchantment. If its mana value is 2 or less, create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." From 93488528de41a5b400084001569a01ddad56da54 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 11:07:54 -0400 Subject: [PATCH 04/13] add TriggerZones to Ward --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index cdd6468ba79..631f1098211 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3393,7 +3393,7 @@ public class CardFactoryUtil { String costDesc = cost.toSimpleString(); String strTrig = "Mode$ BecomesTarget | ValidSource$ Card.OppCtrl | ValidTarget$ Card.Self " - + " | Secondary$ True | TriggerDescription$ Ward " + costDesc + " (" + + " | Secondary$ True | TriggerZones$ Battlefield | TriggerDescription$ Ward " + costDesc + " (" + inst.getReminderText() + ")"; String effect = "DB$ Counter | Defined$ TriggeredSourceSA | UnlessCost$ " + k[1] + " | UnlessPayer$ TriggeredSourceSAController"; From 57623c710a3f299f7eac448c2ce61185d1a05b6c Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 11:12:44 -0400 Subject: [PATCH 05/13] remove bad ) --- .../src/main/java/forge/ai/ability/ChooseGenericEffectAi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java index 31cb7b16ac2..924b1af35b2 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java @@ -158,7 +158,7 @@ public class ChooseGenericEffectAi extends SpellAbilityAi { } } return others; - } else if ("Counters").equals(logic)) { + } else if ("Counters".equals(logic)) { SpellAbility p1p1 = null, loyalty = null; for (final SpellAbility sp : spells) { if (sp.getDescription().equals("P1P1")) { From a58370131956b89d00826daac21a3d060f8186e5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 12:35:10 -0400 Subject: [PATCH 06/13] intuition.txt fix targeting/choosing --- forge-gui/res/cardsfolder/i/intuition.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/i/intuition.txt b/forge-gui/res/cardsfolder/i/intuition.txt index 454a5d31c08..f9328d4a3e2 100644 --- a/forge-gui/res/cardsfolder/i/intuition.txt +++ b/forge-gui/res/cardsfolder/i/intuition.txt @@ -1,9 +1,9 @@ Name:Intuition ManaCost:2 U Types:Instant -A:SP$ ChangeZone | Cost$ 2 U | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 3 | RememberChanged$ True | Reveal$ True | Shuffle$ False | AILogic$ Intuition | SubAbility$ DBChangeZone1 | StackDescription$ Search your library for three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle your library. | SpellDescription$ Search your library for three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle your library. -SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | Chooser$ Opponent | ChangeNum$ 1 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card for the hand | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ None -SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Shuffle$ True | StackDescription$ None | SubAbility$ DBCleanup +A:SP$ ChangeZone | Cost$ 2 U | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 3 | Mandatory$ True | RememberChanged$ True | Reveal$ True | Shuffle$ False | AILogic$ Intuition | SubAbility$ DBChoose | StackDescription$ {p:You} searches their library for three cards and reveals them. | SpellDescription$ Search your library for three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle your library. +SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | Mandatory$ True | Amount$ 1 | SubAbility$ DBChangeZone1 | StackDescription$ {p:Targeted} chooses one. +SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Hand | Defined$ ChosenCard | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ {p:You} puts that card into their hand +SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Shuffle$ True | StackDescription$ and the rest into their graveyard. Then {p:You} shuffles their library. | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/intuition.jpg Oracle:Search your library for three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle your library. From 61a1b888bd97e05ffc66b8e97ed0c3905da02e79 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 12:43:40 -0400 Subject: [PATCH 07/13] - add ChoiceTitle --- forge-gui/res/cardsfolder/i/intuition.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/i/intuition.txt b/forge-gui/res/cardsfolder/i/intuition.txt index f9328d4a3e2..651dda79140 100644 --- a/forge-gui/res/cardsfolder/i/intuition.txt +++ b/forge-gui/res/cardsfolder/i/intuition.txt @@ -2,7 +2,7 @@ Name:Intuition ManaCost:2 U Types:Instant A:SP$ ChangeZone | Cost$ 2 U | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 3 | Mandatory$ True | RememberChanged$ True | Reveal$ True | Shuffle$ False | AILogic$ Intuition | SubAbility$ DBChoose | StackDescription$ {p:You} searches their library for three cards and reveals them. | SpellDescription$ Search your library for three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle your library. -SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | Mandatory$ True | Amount$ 1 | SubAbility$ DBChangeZone1 | StackDescription$ {p:Targeted} chooses one. +SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | ChoiceTitle$ Choose a card for the hand | Mandatory$ True | Amount$ 1 | SubAbility$ DBChangeZone1 | StackDescription$ {p:Targeted} chooses one. SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Hand | Defined$ ChosenCard | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ {p:You} puts that card into their hand SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Shuffle$ True | StackDescription$ and the rest into their graveyard. Then {p:You} shuffles their library. | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True From 5530ca94f3206ca8a65c30b186d31df0a4d5796f Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 12:46:42 -0400 Subject: [PATCH 08/13] add Mandatory to some searches that need it --- forge-gui/res/cardsfolder/f/final_parting.txt | 2 +- forge-gui/res/cardsfolder/g/grow_from_the_ashes.txt | 2 +- forge-gui/res/cardsfolder/s/signal_the_clans.txt | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/f/final_parting.txt b/forge-gui/res/cardsfolder/f/final_parting.txt index d9e6f505cd0..b97209c2cd8 100644 --- a/forge-gui/res/cardsfolder/f/final_parting.txt +++ b/forge-gui/res/cardsfolder/f/final_parting.txt @@ -1,7 +1,7 @@ Name:Final Parting ManaCost:3 B B Types:Sorcery -A:SP$ ChangeZone | Cost$ 3 B B | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 2 | RememberChanged$ True | Shuffle$ False | StackDescription$ SpellDescription | SubAbility$ DBChangeZone1 | SpellDescription$ Search your library for two cards. Put one into your hand and the other into your graveyard. Then shuffle your library. +A:SP$ ChangeZone | Cost$ 3 B B | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True | RememberChanged$ True | Shuffle$ False | StackDescription$ SpellDescription | SubAbility$ DBChangeZone1 | SpellDescription$ Search your library for two cards. Put one into your hand and the other into your graveyard. Then shuffle your library. SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | ChangeNum$ 1 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card to go to your hand | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ None SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card to go to your graveyard | StackDescription$ None | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/g/grow_from_the_ashes.txt b/forge-gui/res/cardsfolder/g/grow_from_the_ashes.txt index c7fa654f640..ce01907f998 100644 --- a/forge-gui/res/cardsfolder/g/grow_from_the_ashes.txt +++ b/forge-gui/res/cardsfolder/g/grow_from_the_ashes.txt @@ -2,6 +2,6 @@ Name:Grow from the Ashes ManaCost:2 G Types:Sorcery K:Kicker:2 -A:SP$ ChangeZone | Cost$ 2 G | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ X | SpellDescription$ Search your library for a basic land card, put it onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for two basic land cards, put them onto the battlefield, then shuffle your library. +A:SP$ ChangeZone | Cost$ 2 G | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ X | Mandatory$ True | SpellDescription$ Search your library for a basic land card, put it onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for two basic land cards, put them onto the battlefield, then shuffle your library. SVar:X:Count$Kicked.2.1 Oracle:Kicker {2} (You may pay an additional {2} as you cast this spell.)\nSearch your library for a basic land card, put it onto the battlefield, then shuffle your library. If this spell was kicked, instead search your library for two basic land cards, put them onto the battlefield, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/s/signal_the_clans.txt b/forge-gui/res/cardsfolder/s/signal_the_clans.txt index 65248f65a9f..e28d6e94009 100644 --- a/forge-gui/res/cardsfolder/s/signal_the_clans.txt +++ b/forge-gui/res/cardsfolder/s/signal_the_clans.txt @@ -1,12 +1,11 @@ Name:Signal the Clans ManaCost:R G Types:Instant -A:SP$ ChangeZone | Cost$ R G | Origin$ Library | Destination$ Library | ChangeType$ Creature | ChangeNum$ 3 | RememberChanged$ True | Reveal$ True | Shuffle$ False | StackDescription$ SpellDescription | SubAbility$ DBChoose | SpellDescription$ Search your library for three creature cards and reveal them. If you reveal three cards with different names, choose one of them at random and put that card into your hand. Shuffle the rest into your library. +A:SP$ ChangeZone | Cost$ R G | Origin$ Library | Destination$ Library | ChangeType$ Creature | ChangeNum$ 3 | Mandatory$ True | RememberChanged$ True | Reveal$ True | Shuffle$ False | StackDescription$ SpellDescription | SubAbility$ DBChoose | SpellDescription$ Search your library for three creature cards and reveal them. If you reveal three cards with different names, choose one of them at random and put that card into your hand. Shuffle the rest into your library. SVar:DBChoose:DB$ ChooseCard | Defined$ You | Amount$ 1 | AtRandom$ True | Choices$ Card.IsRemembered | ChoiceZone$ Library | SubAbility$ DBChange | StackDescription$ None | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ3 SVar:DBChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | Defined$ ChosenCard | StackDescription$ None | SubAbility$ DBShuffle | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ3 SVar:DBShuffle:DB$ Shuffle | Defined$ You | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$DifferentCardNames_Creature.IsRemembered AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/signal_the_clans.jpg Oracle:Search your library for three creature cards and reveal them. If you reveal three cards with different names, choose one of them at random and put that card into your hand. Shuffle the rest into your library. From 4a8f299bb358ac3e7d4068ca31c90b08bb260b3e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 12:58:31 -0400 Subject: [PATCH 09/13] gifts_ungiven.txt clean up --- forge-gui/res/cardsfolder/g/gifts_ungiven.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/g/gifts_ungiven.txt b/forge-gui/res/cardsfolder/g/gifts_ungiven.txt index ba088a19309..abc1291290d 100644 --- a/forge-gui/res/cardsfolder/g/gifts_ungiven.txt +++ b/forge-gui/res/cardsfolder/g/gifts_ungiven.txt @@ -1,9 +1,9 @@ Name:Gifts Ungiven ManaCost:3 U Types:Instant -A:SP$ ChangeZone | Cost$ 3 U | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 4 | RememberChanged$ True | Reveal$ True | Shuffle$ False | DifferentNames$ True | StackDescription$ SpellDescription | SubAbility$ DBChangeZone1 | SpellDescription$ Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle your library. -SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Chooser$ Opponent | ChangeNum$ 2 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card for the graveyard | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ None -SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | ChangeNum$ 2 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card for the hand | StackDescription$ None | SubAbility$ DBCleanup +A:SP$ ChangeZone | Cost$ 3 U | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 4 | RememberChanged$ True | Reveal$ True | Shuffle$ False | DifferentNames$ True | StackDescription$ SpellDescription | SubAbility$ DBChoose | StackDescription$ {p:You} searches their library for up to four cards with different names and reveals them. | SpellDescription$ Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle your library. +SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | ChoiceTitle$ Choose two cards for the graveyard | Mandatory$ True | Amount$ 2 | SubAbility$ DBChangeZone1 | StackDescription$ {p:Targeted} chooses two of those cards. +SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | Defined$ ChosenCard | ChangeNum$ 2 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card for the graveyard | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ {p:You} puts the chosen cards into their graveyard +SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | Mandatory$ True | NoLooking$ True | Shuffle$ True | SelectPrompt$ Select a card for the hand | StackDescription$ and the rest into their hand. Then {p:You} shuffles their library. | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/gifts_ungiven.jpg Oracle:Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle your library. From 61acb3e42b4e084337d4ff4508736548a7f9c692 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 13:18:32 -0400 Subject: [PATCH 10/13] jeska_thrice_reborn.txt Rep Eff: CombatDamage -> IsCombat --- forge-gui/res/cardsfolder/j/jeska_thrice_reborn.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/j/jeska_thrice_reborn.txt b/forge-gui/res/cardsfolder/j/jeska_thrice_reborn.txt index e124e570dc5..6d32e393534 100644 --- a/forge-gui/res/cardsfolder/j/jeska_thrice_reborn.txt +++ b/forge-gui/res/cardsfolder/j/jeska_thrice_reborn.txt @@ -5,7 +5,7 @@ Loyalty:0 K:etbCounter:LOYALTY:Y:no Condition:CARDNAME enters the battlefield with a loyalty counter on her for each time you’ve cast a commander from the command zone this game. SVar:Y:Count$TotalCommanderCastFromCommandZone A:AB$ Effect | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | Duration$ UntilYourNextTurn | ValidTgts$ Creature | TgtPrompt$ Choose target creature | AILogic$ Pump | RememberObjects$ Targeted | ReplacementEffects$ TripleCombatDamage | SpellDescription$ Choose target creature. Until your next turn, if that creature would deal combat damage to one of your opponents, it deals triple that damage to that player instead. -SVar:TripleCombatDamage:Event$ DamageDone | ValidSource$ Creature.IsRemembered | CombatDamage$ True | ValidTarget$ Player.Opponent | ReplaceWith$ DmgTriple | Description$ Choose target creature. Until your next turn, if that creature would deal combat damage to one of your opponents, it deals triple that damage to that player instead. +SVar:TripleCombatDamage:Event$ DamageDone | ValidSource$ Creature.IsRemembered | IsCombat$ True | ValidTarget$ Player.Opponent | ReplaceWith$ DmgTriple | Description$ Choose target creature. Until your next turn, if that creature would deal combat damage to one of your opponents, it deals triple that damage to that player instead. SVar:DmgTriple:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ Z SVar:Z:ReplaceCount$DamageAmount/Thrice A:AB$ DealDamage | Cost$ SubCounter | Planeswalker$ True | Ultimate$ True | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Choose up to three targets | TargetMin$ 0 | TargetMax$ 3 | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to each of up to three targets. From aaeb9f9e848e933d46be44d49c514de88822835f Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 13:19:25 -0400 Subject: [PATCH 11/13] ajanis_aid.txt Rep Eff: CombatDamage -> IsCombat --- forge-gui/res/cardsfolder/a/ajanis_aid.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/a/ajanis_aid.txt b/forge-gui/res/cardsfolder/a/ajanis_aid.txt index d50f7383bc0..71ae8093964 100644 --- a/forge-gui/res/cardsfolder/a/ajanis_aid.txt +++ b/forge-gui/res/cardsfolder/a/ajanis_aid.txt @@ -5,7 +5,7 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Hand | ChangeType$ Card.namedAjani; Valiant Protector | ChangeNum$ 1 | Optional$ True A:AB$ ChooseCard | Cost$ Sac<1/CARDNAME> | Choices$ Creature | AILogic$ NeedsPrevention | SubAbility$ DBEffect | RememberChosen$ True | SpellDescription$ Prevent all combat damage a creature of your choice would deal this turn. SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | RememberObjects$ Remembered | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 -SVar:RPreventNextFromSource:Event$ DamageDone | CombatDamage$ True | ValidSource$ Card.IsRemembered | Prevent$ True | PreventionEffect$ True | Description$ Prevent all combat damage a creature of your choice would deal this turn. +SVar:RPreventNextFromSource:Event$ DamageDone | IsCombat$ True | ValidSource$ Card.IsRemembered | Prevent$ True | PreventionEffect$ True | Description$ Prevent all combat damage a creature of your choice would deal this turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHints:Name$Ajani, Valiant Protector SVar:Picture:http://www.wizards.com/global/images/magic/general/ajanis_aid.jpg From 3827459229ba41ce389788e2bc9bbb4bef8a13ec Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 13:20:21 -0400 Subject: [PATCH 12/13] - pic line --- forge-gui/res/cardsfolder/a/ajanis_aid.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/a/ajanis_aid.txt b/forge-gui/res/cardsfolder/a/ajanis_aid.txt index 71ae8093964..5a3be2d10f0 100644 --- a/forge-gui/res/cardsfolder/a/ajanis_aid.txt +++ b/forge-gui/res/cardsfolder/a/ajanis_aid.txt @@ -8,5 +8,4 @@ SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | Remember SVar:RPreventNextFromSource:Event$ DamageDone | IsCombat$ True | ValidSource$ Card.IsRemembered | Prevent$ True | PreventionEffect$ True | Description$ Prevent all combat damage a creature of your choice would deal this turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHints:Name$Ajani, Valiant Protector -SVar:Picture:http://www.wizards.com/global/images/magic/general/ajanis_aid.jpg Oracle:When Ajani's Aid enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Valiant Protector, reveal it, and put it into your hand. If you search your library this way, shuffle it.\nSacrifice Ajani's Aid: Prevent all combat damage a creature of your choice would deal this turn. From 9899d72dcec7a1cb0227b64b737f66c1d52d5c6c Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 8 Apr 2021 21:27:58 -0400 Subject: [PATCH 13/13] witherbloom_command.txt fix Mill NumCards --- forge-gui/res/cardsfolder/upcoming/witherbloom_command.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/witherbloom_command.txt b/forge-gui/res/cardsfolder/upcoming/witherbloom_command.txt index 76276afcfad..5b166cb21e0 100644 --- a/forge-gui/res/cardsfolder/upcoming/witherbloom_command.txt +++ b/forge-gui/res/cardsfolder/upcoming/witherbloom_command.txt @@ -2,7 +2,7 @@ Name:Witherbloom Command ManaCost:B G Types:Sorcery A:SP$ Charm | Cost$ B G | CharmNum$ 2 | Choices$ DBMill,DBDestroy,DBPump,DBLoseLife -SVar:DBMill:DB$ Mill | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBReturn | SpellDescription$ Target player mills three cards, then you return a land card from your graveyard to your hand. +SVar:DBMill:DB$ Mill | NumCards$ 3 | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBReturn | SpellDescription$ Target player mills three cards, then you return a land card from your graveyard to your hand. SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Land.YouOwn SVar:DBDestroy:DB$ Destroy | ValidTgts$ Permanent.nonCreature+nonLand+cmcLE2 | TgtPrompt$ Select target noncreature, nonland permanent with mana value 2 or less | SpellDescription$ Destroy target noncreature, nonland permanent with mana value 2 or less. SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -3 | NumDef$ -1 | SpellDescription$ Target creature gets -3/-1 until end of turn.