From 5d174ecdaaf309fe7cb249f984d8632b5e325828 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 18 Sep 2022 12:12:19 -0500 Subject: [PATCH 1/5] shatterskull_charger.txt fix TrigDesc --- forge-gui/res/cardsfolder/s/shatterskull_charger.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/shatterskull_charger.txt b/forge-gui/res/cardsfolder/s/shatterskull_charger.txt index 044203c7284..0c94168b1d9 100644 --- a/forge-gui/res/cardsfolder/s/shatterskull_charger.txt +++ b/forge-gui/res/cardsfolder/s/shatterskull_charger.txt @@ -7,7 +7,7 @@ K:Trample K:Haste K:etbCounter:P1P1:1:CheckSVar$ WasKicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it. SVar:WasKicked:Count$Kicked.1.0 -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigReturn | IsPresent$ Card.Self+counters_EQ0_P1P1 | TriggerDescription$ At the beginning of your end step, return Shatterskull Charger to its owner's hand unless it has a +1/+1 counter on it. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigReturn | IsPresent$ Card.Self+counters_EQ0_P1P1 | TriggerDescription$ At the beginning of your end step, return CARDNAME to its owner's hand unless it has a +1/+1 counter on it. SVar:TrigReturn:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self SVar:PlayMain1:TRUE DeckHas:Ability$Counters From a974b9e0d89592379b751deb1a1d32cdeda83069 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 18 Sep 2022 12:12:35 -0500 Subject: [PATCH 2/5] darigaaz_the_igniter.txt fix TrigDesc --- forge-gui/res/cardsfolder/d/darigaaz_the_igniter.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/d/darigaaz_the_igniter.txt b/forge-gui/res/cardsfolder/d/darigaaz_the_igniter.txt index e2e85ae8435..d4227aa0401 100644 --- a/forge-gui/res/cardsfolder/d/darigaaz_the_igniter.txt +++ b/forge-gui/res/cardsfolder/d/darigaaz_the_igniter.txt @@ -3,7 +3,7 @@ ManaCost:3 B R G Types:Legendary Creature Dragon PT:6/6 K:Flying -T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | Execute$ TrigChooseColor | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may pay {2}{R}. If you do, choose a color, then that player reveals their hand and Darigaaz deals damage to the player equal to the number of cards of that color revealed this way. +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | Execute$ TrigChooseColor | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may pay {2}{R}. If you do, choose a color, then that player reveals their hand and NICKNAME deals damage to the player equal to the number of cards of that color revealed this way. SVar:TrigChooseColor:AB$ ChooseColor | Cost$ 2 R | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBRevealHand SVar:DBRevealHand:DB$ RevealHand | Defined$ TriggeredTarget | RememberRevealed$ True | SubAbility$ DBDamage SVar:DBDamage:DB$ DealDamage | Defined$ TriggeredTarget | NumDmg$ X | SubAbility$ DBCleanup From 54ae16e87f5bd609061b187de70769534be1b651 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 18 Sep 2022 12:12:48 -0500 Subject: [PATCH 3/5] capricious_efreet.txt better Cleanup --- forge-gui/res/cardsfolder/c/capricious_efreet.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/capricious_efreet.txt b/forge-gui/res/cardsfolder/c/capricious_efreet.txt index a1541471a5b..90fb9780edd 100644 --- a/forge-gui/res/cardsfolder/c/capricious_efreet.txt +++ b/forge-gui/res/cardsfolder/c/capricious_efreet.txt @@ -6,7 +6,7 @@ T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | E SVar:TrigPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouCtrl | TgtPrompt$ Select target nonland permanent you control | Mandatory$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump | StackDescription$ None SVar:DBPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump2 | StackDescription$ None SVar:DBPump2:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select another target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | TargetUnique$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBChooseRandom | StackDescription$ None -SVar:DBChooseRandom:DB$ ChooseCard | Defined$ You | Amount$ 1 | AtRandom$ True | Choices$ Card.IsRemembered | SubAbility$ DBDestroy +SVar:DBChooseRandom:DB$ ChooseCard | AtRandom$ True | Choices$ Card.IsRemembered | SubAbility$ DBDestroy SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True Oracle:At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random. From 9a430333d954410153236b3fee6fb268b6956355 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 18 Sep 2022 16:38:22 -0500 Subject: [PATCH 4/5] ChooseCardEffect streamline Random UI a bit --- .../forge/game/ability/effects/ChooseCardEffect.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java index d76fd21c7fe..ef0f8db6827 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java @@ -101,6 +101,7 @@ public class ChooseCardEffect extends SpellAbilityEffect { } for (final Player p : tgtPlayers) { + boolean dontRevealToOwner = true; if (sa.hasParam("EachBasicType")) { // Get all lands, List land = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Presets.LANDS); @@ -220,6 +221,7 @@ public class ChooseCardEffect extends SpellAbilityEffect { } else if ((tgt == null) || p.canBeTargetedBy(sa)) { if (sa.hasParam("AtRandom") && !choices.isEmpty()) { Aggregates.random(choices, validAmount, chosen); + dontRevealToOwner = false; } else { String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " "; if (sa.hasParam ("ChoiceTitleAppendDefined")) { @@ -248,12 +250,14 @@ public class ChooseCardEffect extends SpellAbilityEffect { } } if (sa.hasParam("Reveal") && !sa.hasParam("SecretlyChoose")) { - game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ? sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " "); + game.getAction().reveal(chosen, p, dontRevealToOwner, sa.hasParam("RevealTitle") ? + sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " "); } } - if(sa.hasParam("Reveal") && sa.hasParam("SecretlyChoose")) { + if (sa.hasParam("Reveal") && sa.hasParam("SecretlyChoose")) { for (final Player p : tgtPlayers) { - game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ? sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " "); + game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ? + sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " "); } } host.setChosenCards(chosen); From 44655bb4200ba2e0e591d5212b061ff079c2aabb Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 18 Sep 2022 16:38:34 -0500 Subject: [PATCH 5/5] capricious_efreet.txt tighten up --- forge-gui/res/cardsfolder/c/capricious_efreet.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/capricious_efreet.txt b/forge-gui/res/cardsfolder/c/capricious_efreet.txt index 90fb9780edd..a2bc26d4fd2 100644 --- a/forge-gui/res/cardsfolder/c/capricious_efreet.txt +++ b/forge-gui/res/cardsfolder/c/capricious_efreet.txt @@ -3,10 +3,9 @@ ManaCost:4 R R Types:Creature Efreet PT:6/4 T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random. -SVar:TrigPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouCtrl | TgtPrompt$ Select target nonland permanent you control | Mandatory$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump | StackDescription$ None -SVar:DBPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump2 | StackDescription$ None -SVar:DBPump2:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select another target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | TargetUnique$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBChooseRandom | StackDescription$ None -SVar:DBChooseRandom:DB$ ChooseCard | AtRandom$ True | Choices$ Card.IsRemembered | SubAbility$ DBDestroy +SVar:TrigPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouCtrl | TgtPrompt$ Select target nonland permanent you control | Mandatory$ True | IsCurse$ True | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select up to two target nonland permanents you don't control | TargetMin$ 0 | TargetMax$ 2 | IsCurse$ True | SubAbility$ DBChooseRandom +SVar:DBChooseRandom:DB$ ChooseCard | AtRandom$ True | Reveal$ True | RevealTitle$ OVERRIDE Randomly chosen permanent: | DefinedCards$ TargetedCard | SubAbility$ DBDestroy SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True Oracle:At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random.