diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 48849e677d2..8365f7cb3b0 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -296,6 +296,8 @@ public final class CardUtil { newCopy.setCastSA(in.getCastSA()); newCopy.setCastFrom(in.getCastFrom()); + newCopy.setExiledWith(in.getExiledWith()); + return newCopy; } diff --git a/forge-gui/res/cardsfolder/i/iroas_god_of_victory.txt b/forge-gui/res/cardsfolder/i/iroas_god_of_victory.txt index 4bfab65adf9..d72d72120f8 100644 --- a/forge-gui/res/cardsfolder/i/iroas_god_of_victory.txt +++ b/forge-gui/res/cardsfolder/i/iroas_god_of_victory.txt @@ -6,7 +6,7 @@ K:Indestructible S:Mode$ Continuous | Affected$ Card.Self | RemoveType$ Creature | RemoveCreatureTypes$ True | CheckSVar$ X | SVarCompare$ LT7 | References$ X | Description$ As long as your devotion to red and white is less than seven, CARDNAME isn't a creature. SVar:X:Count$DevotionDual.Red.White S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddKeyword$ Menace | Description$ Creatures you control have menace. -R:Event$ DamageDone | Prevent$ True | ValidTarget$ Creature.attacking+YouCtrl | Description$ Prevent all damage that would be dealt to attacking creatures you control. +R:Event$ DamageDone | ActiveZones$ Battlefield | Prevent$ True | ValidTarget$ Creature.attacking+YouCtrl | Description$ Prevent all damage that would be dealt to attacking creatures you control. SVar:BuffedBy:Permanent.White,Permanent.Red SVar:Picture:http://www.wizards.com/global/images/magic/general/iroas_god_of_victory.jpg Oracle:Indestructible\nAs long as your devotion to red and white is less than seven, Iroas isn't a creature.\nCreatures you control have menace.\nPrevent all damage that would be dealt to attacking creatures you control. diff --git a/forge-gui/res/cardsfolder/k/kayas_wrath.txt b/forge-gui/res/cardsfolder/k/kayas_wrath.txt index b369d84ce2c..78f0dee2714 100644 --- a/forge-gui/res/cardsfolder/k/kayas_wrath.txt +++ b/forge-gui/res/cardsfolder/k/kayas_wrath.txt @@ -2,7 +2,8 @@ Name:Kaya's Wrath ManaCost:W W B B Types:Sorcery A:SP$ DestroyAll | Cost$ W W B B | ValidCards$ Creature | RememberDestroyed$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy all creatures. You gain life equal to the number of creatures you controlled that were destroyed this way. -SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | References$ X +SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | References$ X | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:RememberedLKI$FilterControlledByYou_Number$1 DeckHas:Ability$LifeGain Oracle:Destroy all creatures. You gain life equal to the number of creatures you controlled that were destroyed this way. diff --git a/forge-gui/res/cardsfolder/upcoming/alirios_enraptured.txt b/forge-gui/res/cardsfolder/upcoming/alirios_enraptured.txt index 148e314ca81..f2051fde15b 100644 --- a/forge-gui/res/cardsfolder/upcoming/alirios_enraptured.txt +++ b/forge-gui/res/cardsfolder/upcoming/alirios_enraptured.txt @@ -3,9 +3,8 @@ ManaCost:2 U Types:Legendary Creature Human PT:2/3 K:CARDNAME enters the battlefield tapped. -S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | CheckSVar$ X | SVarCompare$ GE1 | References$ X | Description$ CARDNAME doesn't untap during your untap step if you control a Reflection. -SVar:X:Count$Valid Reflection.YouCtrl +S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | IsPresent$ Reflection.YouCtrl | Description$ CARDNAME doesn't untap during your untap step if you control a Reflection. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 3/2 blue Reflection creature token. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ u_3_2_reflection | TokenOwner$ You | LegacyImage$ u 3 2 reflection thb SVar:Picture:http://www.wizards.com/global/images/magic/general/alirios_enraptured.jpg -Oracle:Alirios, Enraptured enters the battlefield tapped.\nAlirios doesn't untap during your untap step if you control a Reflection.\nWhen Alirios enters the battlefield, create a 3/2 blue Reflection creature token. \ No newline at end of file +Oracle:Alirios, Enraptured enters the battlefield tapped.\nAlirios doesn't untap during your untap step if you control a Reflection.\nWhen Alirios enters the battlefield, create a 3/2 blue Reflection creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/arena_trickster.txt b/forge-gui/res/cardsfolder/upcoming/arena_trickster.txt index 32e266256c5..415d1842627 100644 --- a/forge-gui/res/cardsfolder/upcoming/arena_trickster.txt +++ b/forge-gui/res/cardsfolder/upcoming/arena_trickster.txt @@ -6,4 +6,4 @@ T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | ActivatorThis SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/arena_trickster.jpg -Oracle:Whenever you cast your first spell during each opponent’s turn, put a +1/+1 counter on Arena Trickster. \ No newline at end of file +Oracle:Whenever you cast your first spell during each opponent's turn, put a +1/+1 counter on Arena Trickster. diff --git a/forge-gui/res/cardsfolder/upcoming/ashioks_erasure.txt b/forge-gui/res/cardsfolder/upcoming/ashioks_erasure.txt index 76cce1686a1..a79b21b15eb 100644 --- a/forge-gui/res/cardsfolder/upcoming/ashioks_erasure.txt +++ b/forge-gui/res/cardsfolder/upcoming/ashioks_erasure.txt @@ -1,12 +1,12 @@ -Name: Ashiok's Erasure -ManaCost: 2 U U +Name:Ashiok's Erasure +ManaCost:2 U U Types:Enchantment K:Flash T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target spell. S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith Remembered.ExiledWithSource | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as the card exiled by CARDNAME. -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigBounce | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return the exiled card to its owner’s hand. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigBounce | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return the exiled card to its owner's hand. SVar:TrigExile:DB$ChangeZone | TargetType$ Spell | ValidTgts$ Card | TgtZone$ Stack | Origin$ Stack | Fizzle$ True | Mandatory$ True | Destination$ Exile | IsCurse$ True | TgtPrompt$ Choose target spell | RememberChanged$ True SVar:TrigBounce:DB$ChangeZone | Origin$ Exile | Destination$ Hand | Defined$ Remembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/ashioks_erasure.jpg -Oracle:Flash\nWhen Ashiok’s Erasure enters the battlefield, exile target spell.\nYour opponents can't cast spells with the same name as the exiled card.\nWhen Ashiok’s Erasure leaves the battlefield, return the exiled card to its owner’s hand. \ No newline at end of file +Oracle:Flash\nWhen Ashiok's Erasure enters the battlefield, exile target spell.\nYour opponents can't cast spells with the same name as the exiled card.\nWhen Ashiok's Erasure leaves the battlefield, return the exiled card to its owner's hand. diff --git a/forge-gui/res/cardsfolder/upcoming/aspect_of_lamprey.txt b/forge-gui/res/cardsfolder/upcoming/aspect_of_lamprey.txt index 4ebb6244108..487e02b1398 100644 --- a/forge-gui/res/cardsfolder/upcoming/aspect_of_lamprey.txt +++ b/forge-gui/res/cardsfolder/upcoming/aspect_of_lamprey.txt @@ -8,4 +8,4 @@ SVar:TrigDiscard:DB$Discard | ValidTgts$ Opponent | TgtPrompt$ Select an opponen S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Lifelink | Description$ Enchanted creature has lifelink. SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/aspect_of_lamprey.jpg -Oracle:Enchant creature you control\nWhen Aspect of Lamprey enters the battlefield, target opponent discards two cards.\nEnchanted creature has lifelink. \ No newline at end of file +Oracle:Enchant creature you control\nWhen Aspect of Lamprey enters the battlefield, target opponent discards two cards.\nEnchanted creature has lifelink. diff --git a/forge-gui/res/cardsfolder/upcoming/dreadful_apathy.txt b/forge-gui/res/cardsfolder/upcoming/dreadful_apathy.txt index e82acf08cca..8fc28da5ffe 100644 --- a/forge-gui/res/cardsfolder/upcoming/dreadful_apathy.txt +++ b/forge-gui/res/cardsfolder/upcoming/dreadful_apathy.txt @@ -7,5 +7,4 @@ S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME A:AB$ ChangeZone | Cost$ 2 W | Defined$ Enchanted | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile enchanted creature. SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dreadful_apathy.jpg -Oracle:Enchant creature\nEnchanted creature can't attack or block. -\n{2}{W}: Exile enchanted creature. \ No newline at end of file +Oracle:Enchant creature\nEnchanted creature can't attack or block.\n{2}{W}: Exile enchanted creature. diff --git a/forge-gui/res/cardsfolder/upcoming/hydras_growth.txt b/forge-gui/res/cardsfolder/upcoming/hydras_growth.txt index f903ff3bb7f..0695350dcd8 100644 --- a/forge-gui/res/cardsfolder/upcoming/hydras_growth.txt +++ b/forge-gui/res/cardsfolder/upcoming/hydras_growth.txt @@ -8,4 +8,4 @@ SVar:TrigPutCounter:DB$ PutCounter | Defined$ Enchanted | CounterType$ P1P1 | Co T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBPump | TriggerDescription$ At the beginning of your upkeep, double the number of +1/+1 counters on enchanted creature. SVar:DBPump:DB$ MultiplyCounter | Defined$ Enchanted | CounterType$ P1P1 DeckHas:Ability$Counters -Oracle:Enchant creature\nWhen Hydra’s Growth enters the battlefield, put a +1/+1 counter on enchanted creature.\nAt the beginning of your upkeep, double the number of +1/+1 counters on enchanted creature. \ No newline at end of file +Oracle:Enchant creature\nWhen Hydra's Growth enters the battlefield, put a +1/+1 counter on enchanted creature.\nAt the beginning of your upkeep, double the number of +1/+1 counters on enchanted creature. diff --git a/forge-gui/res/puzzle/PS_ELD8.pzl b/forge-gui/res/puzzle/PS_ELD8.pzl new file mode 100644 index 00000000000..cbb5ec43f6e --- /dev/null +++ b/forge-gui/res/puzzle/PS_ELD8.pzl @@ -0,0 +1,21 @@ +[metadata] +Name:Possibility Storm - Throne of Eldraine #08 +URL:http://www.possibilitystorm.com/wp-content/uploads/2019/12/139.-ELD8.jpg +Goal:Win +Turns:1 +Difficulty:Mythic +Description:Win this turn. Assume your opponent has many cards in their library, cards drawn by either player are irrelevant, both graveyards are empty, and you have 20 life. Your opponent has a Plummet in hand and can cast it. The solution must satisfy all possible opponent choices. You previously turned your Hypnotic Sprite into an Elk. +[state] +humanlife=20 +ailife=2 +turn=1 +activeplayer=human +activephase=MAIN1 +humanhand=Kraul Harpooner;Lovestruck Beast;Lucky Clover;Brazen Borrower;Rosethorn Acolyte +humanlibrary=Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt +humanbattlefield=Hypnotic Sprite|Id:1;Oko, Thief of Crowns|Counters:LOYALTY=5;Ob Nixilis, the Hate-Twisted|Counters:LOYALTY=1;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Watery Grave|NoETBTrigs;Breeding Pool|NoETBTrigs;Breeding Pool|NoETBTrigs;Breeding Pool|NoETBTrigs;Breeding Pool|NoETBTrigs +aihand=Plummet +ailibrary=Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt;Opt +aibattlefield=Midnight Reaper;Teyo's Lightshield|Counters:P1P1=1;Teyo's Lightshield|Counters:P1P1=1;Teyo's Lightshield|Counters:P1P1=1;Teyo's Lightshield|Counters:P1P1=1;Savage Gorger|Counters:P1P1=4 +humanprecast=Oko, Thief of Crowns:2->1 +aipersistentmana=C G