From 608c1f37a5ee6c5584f6cc48c67d469f0e879276 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 30 Jun 2019 07:46:34 +0300 Subject: [PATCH 1/8] - Fix Herald of the Sun --- forge-gui/res/cardsfolder/upcoming/herald_of_the_sun.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/herald_of_the_sun.txt b/forge-gui/res/cardsfolder/upcoming/herald_of_the_sun.txt index 6408e2a8e37..fe1c7e158f2 100644 --- a/forge-gui/res/cardsfolder/upcoming/herald_of_the_sun.txt +++ b/forge-gui/res/cardsfolder/upcoming/herald_of_the_sun.txt @@ -3,5 +3,5 @@ ManaCost:4 W W Types:Creature Angel PT:4/4 K:Flying -A:AB$ PutCounter | Cost$ 3 W | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature with flying | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on another target creature with flying. +A:AB$ PutCounter | Cost$ 3 W | ValidTgts$ Creature.Other+withFlying | TgtPrompt$ Select another target creature with flying | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on another target creature with flying. Oracle:Flying\n{3}{W}: Put a +1/+1 counter on another target creature with flying. From a2332addaefa077e6d696a5bd3fe0f4b133644ec Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 30 Jun 2019 22:56:12 +0800 Subject: [PATCH 2/8] Fix an AI cheat when using ExceptSelf logic --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 920333ca5c2..c775ed2e00c 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -797,7 +797,7 @@ public class ComputerUtil { final int max = Math.min(remaining.size(), amount); - if (exceptSelf) { + if (exceptSelf && max < remaining.size()) { removedSelf = remaining.remove(source.getHostCard()); } From 4b4adad411b7676ef5d5de748896131c49dc9816 Mon Sep 17 00:00:00 2001 From: Agetian Date: Mon, 1 Jul 2019 16:46:07 +0300 Subject: [PATCH 3/8] - Assorted card fixes --- forge-gui/res/cardsfolder/upcoming/gauntlets_of_light.txt | 2 +- forge-gui/res/cardsfolder/upcoming/risen_reef.txt | 2 +- forge-gui/res/cardsfolder/upcoming/season_of_growth.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/gauntlets_of_light.txt b/forge-gui/res/cardsfolder/upcoming/gauntlets_of_light.txt index bca13a0deb1..79471c055bf 100644 --- a/forge-gui/res/cardsfolder/upcoming/gauntlets_of_light.txt +++ b/forge-gui/res/cardsfolder/upcoming/gauntlets_of_light.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power. | Description$ Enchanted creature gets +0/+2 and assigns combat damage equal to its toughness rather than its power. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | AddHiddenKeyword$ CARDNAME assigns combat damage equal to its toughness rather than its power | Description$ Enchanted creature gets +0/+2 and assigns combat damage equal to its toughness rather than its power. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ GauntletsUntap | Description$ Enchanted creature has "{2}{W}: Untap this creature." SVar:GauntletsUntap:AB$ Untap | Cost$ 2 W | Defined$ Self | SpellDescription$ Untap this creature. Oracle:Enchant creature\nEnchanted creature gets +0/+2 and assigns combat damage equal to its toughness rather than its power.\nEnchanted creature has "{2}{W}: Untap this creature." diff --git a/forge-gui/res/cardsfolder/upcoming/risen_reef.txt b/forge-gui/res/cardsfolder/upcoming/risen_reef.txt index 35d97fb2bb8..3c64017c542 100644 --- a/forge-gui/res/cardsfolder/upcoming/risen_reef.txt +++ b/forge-gui/res/cardsfolder/upcoming/risen_reef.txt @@ -5,7 +5,7 @@ PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ Whenever CARDNAME or another Elemental enters the battlefield under your control, look at the top card of your library. If it's a land card, you may put it onto the battlefield tapped. If you don't put the card onto the battlefield, put it into your hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Elemental.Other+YouCtrl | TriggerZones$ Battlefield | Secondary$ True | Execute$ TrigPeek | TriggerDescription$ Whenever CARDNAME or another Elemental enters the battlefield under your control, look at the top card of your library. If it's a land card, you may put it onto the battlefield tapped. If you don't put the card onto the battlefield, put it into your hand. SVar:TrigPeek:DB$ PeekAndReveal | PeekAmount$ 1 | NoReveal$ True | RememberPeeked$ True | SubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | Optional$ True | ForgetChanged$ True | Origin$ Library | Destination$ Battlefield | Defined$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Land | ConditionCompare$ GE1 | SubAbility$ DBHand +SVar:DBChangeZone:DB$ ChangeZone | Optional$ True | ForgetChanged$ True | Origin$ Library | Destination$ Battlefield | Defined$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Land | ConditionCompare$ GE1 | Tapped$ True | SubAbility$ DBHand SVar:DBHand:DB$ ChangeZone | Origin$ Library | Destination$ Hand | Defined$ Remembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Whenever Risen Reef or another Elemental enters the battlefield under your control, look at the top card of your library. If it's a land card, you may put it onto the battlefield tapped. If you don't put the card onto the battlefield, put it into your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/season_of_growth.txt b/forge-gui/res/cardsfolder/upcoming/season_of_growth.txt index 99a25386ef4..e0e02612032 100644 --- a/forge-gui/res/cardsfolder/upcoming/season_of_growth.txt +++ b/forge-gui/res/cardsfolder/upcoming/season_of_growth.txt @@ -3,6 +3,6 @@ ManaCost:1 G Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigScry | TriggerDescription$ Whenever a creature enters the battlefield under your control, scry 1. (Look at the top card of your library, then you may put that card on the bottom of your library.) SVar:TrigScry:DB$ Scry | ScryNum$ 1 -T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | ValidActivatingPlayer$ You | TargetsValid$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast a spell that targets a creature you control, draw a card. +T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | ValidActivatingPlayer$ You | TargetsValid$ Creature.YouCtrl+inZoneBattlefield | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast a spell that targets a creature you control, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 Oracle:Whenever a creature enters the battlefield under your control, scry 1. (Look at the top card of your library, then you may put that card on the bottom of your library.)\nWhenever you cast a spell that targets a creature you control, draw a card. From 8d2fb8da4b4a9007c91e17e3206e778ad609c398 Mon Sep 17 00:00:00 2001 From: Agetian Date: Mon, 1 Jul 2019 17:21:26 +0300 Subject: [PATCH 4/8] - Fix Precursor Golem. --- forge-gui/res/cardsfolder/p/precursor_golem.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/p/precursor_golem.txt b/forge-gui/res/cardsfolder/p/precursor_golem.txt index 32b40d965d0..a2dec3ee6df 100644 --- a/forge-gui/res/cardsfolder/p/precursor_golem.txt +++ b/forge-gui/res/cardsfolder/p/precursor_golem.txt @@ -4,7 +4,7 @@ Types:Artifact Creature Golem PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create two 3/3 colorless Golem artifact creature tokens. SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ c_3_3_a_golem | TokenOwner$ You | LegacyImage$ c 3 3 a golem -T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ Player | IsSingleTarget$ True | TargetsValid$ Golem | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts an instant or sorcery spell that targets only a single Golem, that player copies that spell for each other Golem that spell could target. Each copy targets a different one of those Golems. +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ Player | IsSingleTarget$ True | TargetsValid$ Golem.inZoneBattlefield | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts an instant or sorcery spell that targets only a single Golem, that player copies that spell for each other Golem that spell could target. Each copy targets a different one of those Golems. SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ TriggeredSpellAbilityController | CopyForEachCanTarget$ Golem SVar:Picture:http://www.wizards.com/global/images/magic/general/precursor_golem.jpg Oracle:When Precursor Golem enters the battlefield, create two 3/3 colorless Golem artifact creature tokens.\nWhenever a player casts an instant or sorcery spell that targets only a single Golem, that player copies that spell for each other Golem that spell could target. Each copy targets a different one of those Golems. From 92b391cde45b84fdd6cd7a2926db7f811d59d6c2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Mon, 1 Jul 2019 17:31:48 +0300 Subject: [PATCH 5/8] - Added a zone specifier to the copy part of Precursor Golem. --- forge-gui/res/cardsfolder/p/precursor_golem.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/p/precursor_golem.txt b/forge-gui/res/cardsfolder/p/precursor_golem.txt index a2dec3ee6df..42d46b53287 100644 --- a/forge-gui/res/cardsfolder/p/precursor_golem.txt +++ b/forge-gui/res/cardsfolder/p/precursor_golem.txt @@ -5,6 +5,6 @@ PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create two 3/3 colorless Golem artifact creature tokens. SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ c_3_3_a_golem | TokenOwner$ You | LegacyImage$ c 3 3 a golem T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ Player | IsSingleTarget$ True | TargetsValid$ Golem.inZoneBattlefield | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts an instant or sorcery spell that targets only a single Golem, that player copies that spell for each other Golem that spell could target. Each copy targets a different one of those Golems. -SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ TriggeredSpellAbilityController | CopyForEachCanTarget$ Golem +SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ TriggeredSpellAbilityController | CopyForEachCanTarget$ Golem.inZoneBattlefield SVar:Picture:http://www.wizards.com/global/images/magic/general/precursor_golem.jpg Oracle:When Precursor Golem enters the battlefield, create two 3/3 colorless Golem artifact creature tokens.\nWhenever a player casts an instant or sorcery spell that targets only a single Golem, that player copies that spell for each other Golem that spell could target. Each copy targets a different one of those Golems. From 9b13312d17ba5d302383ad052aa0b5992b52305e Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 1 Jul 2019 23:55:18 +0800 Subject: [PATCH 6/8] Fix Flood of Tears --- forge-gui/res/cardsfolder/upcoming/flood_of_tears.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/flood_of_tears.txt b/forge-gui/res/cardsfolder/upcoming/flood_of_tears.txt index 67033068e13..880168b9625 100644 --- a/forge-gui/res/cardsfolder/upcoming/flood_of_tears.txt +++ b/forge-gui/res/cardsfolder/upcoming/flood_of_tears.txt @@ -1,7 +1,7 @@ Name:Flood of Tears ManaCost:4 U U Types:Sorcery -A:SP$ ChangeZoneAll | Cost$ 4 U U | ChangeType$ Permanent.nonLand | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBChangeZone | SpellDescription$ Return all nonland permanents to their owners' hands. If you return four or more nontoken permanents you control this way, you may put a permanent card from your hand onto the battlefield. -SVar:DBChangeZone:DB$ ChangeZone | Optional$ True | Origin$ Hand | Destination$ Battlefield | ChangeType$ Permanent.nonToken+YouCtrl | Optional$ True | ChangeNum$ 1 | SubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Permanent.nonToken+YouCtrl | Optional$ True | ChangeNum$ 1 | ConditionDefined$ Remembered | ConditionPresent +A:SP$ ChangeZoneAll | Cost$ 4 U U | ChangeType$ Permanent.nonLand | Origin$ Battlefield | Destination$ Hand | RememberChanged$ True | SubAbility$ DBChangeZone | SpellDescription$ Return all nonland permanents to their owners' hands. If you return four or more nontoken permanents you control this way, you may put a permanent card from your hand onto the battlefield. +SVar:DBChangeZone:DB$ ChangeZone | Optional$ True | Origin$ Hand | Destination$ Battlefield | ChangeType$ Permanent.YouCtrl | Optional$ True | ChangeNum$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Permanent.nonToken+YouCtrl | ConditionCompare$ GE4 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Return all nonland permanents to their owners' hands. If you return four or more nontoken permanents you control this way, you may put a permanent card from your hand onto the battlefield. From 0db02d41049c990006421bef36920e1d57993b99 Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 2 Jul 2019 06:59:04 +0300 Subject: [PATCH 7/8] - Fix Nightpack Ambusher --- forge-gui/res/cardsfolder/upcoming/nightpack_ambusher.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/nightpack_ambusher.txt b/forge-gui/res/cardsfolder/upcoming/nightpack_ambusher.txt index 93d2ee40203..f24a8d3009a 100644 --- a/forge-gui/res/cardsfolder/upcoming/nightpack_ambusher.txt +++ b/forge-gui/res/cardsfolder/upcoming/nightpack_ambusher.txt @@ -5,7 +5,7 @@ PT:4/4 K:Flash S:Mode$ Continuous | Affected$ Wolf.Other+YouCtrl,Werewolf.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Wolves and Werewolves you control get +1/+1. SVar:PlayMain1:TRUE -T:Mode$ Phase | Phase$ End of Turn | CheckSVar$ X | SVarCompare$ EQ0 | References$ X | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, if you didn't cast a spell this turn, create a 2/2 green Wolf creature token. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | CheckSVar$ X | SVarCompare$ EQ0 | References$ X | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, if you didn't cast a spell this turn, create a 2/2 green Wolf creature token. SVar:TrigToken:DB$ Token | TokenOwner$ You | TokenScript$ g_2_2_wolf | LegacyImage$ g 2 2 wolf m20 | TokenAmount$ 1 SVar:X:Count$ThisTurnCast_Card.YouCtrl Oracle:Flash\nOther Wolves and Werewolves you control get +1/+1.\nAt the beginning of your end step, if you didn't cast a spell this turn, create a 2/2 green Wolf creature token. From 00a45ba2ba1ddaf775009ab89ee77f95cd06ee7b Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 2 Jul 2019 07:36:58 +0300 Subject: [PATCH 8/8] - Added puzzle PS_WAR9 --- forge-gui/res/puzzle/PS_WAR9.pzl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 forge-gui/res/puzzle/PS_WAR9.pzl diff --git a/forge-gui/res/puzzle/PS_WAR9.pzl b/forge-gui/res/puzzle/PS_WAR9.pzl new file mode 100644 index 00000000000..e9661387dde --- /dev/null +++ b/forge-gui/res/puzzle/PS_WAR9.pzl @@ -0,0 +1,20 @@ +[metadata] +Name:Possibility Storm - War of the Spark #09 +URL:http://www.possibilitystorm.com/wp-content/uploads/2019/06/119.-WAR9-2.jpg +Goal:Win +Turns:1 +Difficulty:Mythic +Description:Win this turn. Start at the beginning of your upkeep. Due to your cast Rubble Reading and Run Aground, you know that the second card of your library is Electrodominance and the first card of your library is Run Aground; the first card of opponent's library is Benalish Marshal. Forbidding Spirit entered the battlefield on your opponent's last turn. +[state] +humanlife=20 +ailife=20 +turn=3 +activeplayer=human +activephase=UPKEEP +humanhand=Finale of Promise;Release to the Wind;Maximize Velocity;Act of Treason +humanlibrary=Run Aground;Electrodominance;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt +humangraveyard=Thud;Rubble Reading;Run Aground;Beacon Bolt +humanbattlefield=God-Eternal Kefnet;Etali, Primal Storm;Jaya, Venerated Firemage|Counters:LOYALTY=3;Dreadhorde Arcanist;Emergence Zone;Island;Island;Island;Island;Island;Mountain;Mountain;Mountain;Mountain;Mountain;Mountain +ailibrary=Benalish Marshal;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt +aibattlefield=Forbidding Spirit;Teferi, Time Raveler|Counters:LOYALTY=6;Lavinia, Azorius Renegade;Raff Capashen, Ship's Mage +aiprecast=Forbidding Spirit:TempAttackTax