diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 3620799b791..535f71086b0 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -538,6 +538,8 @@ public class AbilityUtils { val = handlePaid(card.getEmerged(), calcX[1], card, ability); } else if (calcX[0].startsWith("Crewed")) { val = handlePaid(card.getCrewedByThisTurn(), calcX[1], card, ability); + } else if (calcX[0].startsWith("ChosenCard")) { + val = handlePaid(card.getChosenCards(), calcX[1], card, ability); } else if (calcX[0].startsWith("Remembered")) { // Add whole Remembered list to handlePaid final CardCollection list = new CardCollection(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 3681e7603e5..86f53c40be6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -425,9 +425,6 @@ public class DigEffect extends SpellAbilityEffect { if (sa.hasParam("Imprint")) { host.addImprintedCard(c); } - if (sa.hasParam("ForgetOtherRemembered")) { - host.clearRemembered(); - } if (remZone1) { host.addRemembered(c); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java index 3a16eeae9a2..841244c1cd1 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java @@ -166,14 +166,6 @@ public class DiscardEffect extends SpellAbilityEffect { toBeDiscarded = GameActionUtil.orderCardsByTheirOwners(game, toBeDiscarded, ZoneType.Graveyard, sa); } - if (mode.equals("NotRemembered")) { - if (!p.canDiscardBy(sa, true)) { - continue; - } - toBeDiscarded = CardLists.getValidCards(p.getCardsIn(ZoneType.Hand), "Card.IsNotRemembered", p, source, sa); - toBeDiscarded = GameActionUtil.orderCardsByTheirOwners(game, toBeDiscarded, ZoneType.Graveyard, sa); - } - int numCards = 1; if (sa.hasParam("NumCards")) { numCards = AbilityUtils.calculateAmount(source, sa.getParam("NumCards"), sa); diff --git a/forge-gui/res/cardsfolder/b/barrins_spite.txt b/forge-gui/res/cardsfolder/b/barrins_spite.txt index 72caa90ac5c..7362d227958 100644 --- a/forge-gui/res/cardsfolder/b/barrins_spite.txt +++ b/forge-gui/res/cardsfolder/b/barrins_spite.txt @@ -1,10 +1,9 @@ Name:Barrin's Spite ManaCost:2 U B Types:Sorcery -A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Choose two target creatures controlled by the same player | TargetMin$ 2 | TargetMax$ 2 | TargetUnique$ True | TargetsWithSameController$ True | RememberTargets$ True | IsCurse$ True | SubAbility$ DBChooseSac | StackDescription$ SpellDescription | SpellDescription$ Choose two target creatures controlled by the same player. Their controller chooses and sacrifices one of them. Return the other to its owner's hand. -SVar:DBChooseSac:DB$ ChooseCard | Choices$ Card.IsRemembered | Defined$ TargetedController | ChoiceTitle$ Choose one to sacrifice | ForgetChosen$ True | SubAbility$ DBSac | StackDescription$ None | AILogic$ WorstCard +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Choose two target creatures controlled by the same player | TargetMin$ 2 | TargetMax$ 2 | TargetUnique$ True | TargetsWithSameController$ True | IsCurse$ True | SubAbility$ DBChooseSac | StackDescription$ SpellDescription | SpellDescription$ Choose two target creatures controlled by the same player. Their controller chooses and sacrifices one of them. Return the other to its owner's hand. +SVar:DBChooseSac:DB$ ChooseCard | DefinedCards$ Targeted | Defined$ TargetedController | ChoiceTitle$ Choose one to sacrifice | SubAbility$ DBSac | StackDescription$ None | AILogic$ WorstCard SVar:DBSac:DB$ SacrificeAll | Defined$ ChosenCard | SubAbility$ DBBounce | StackDescription$ None -SVar:DBBounce:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBCleanup | StackDescription$ None -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBBounce:DB$ ChangeZone | Defined$ Targeted.!ChosenCard | Origin$ Battlefield | Destination$ Hand | StackDescription$ None DeckHas:Ability$Sacrifice Oracle:Choose two target creatures controlled by the same player. Their controller chooses and sacrifices one of them. Return the other to its owner's hand. diff --git a/forge-gui/res/cardsfolder/c/cannibalize.txt b/forge-gui/res/cardsfolder/c/cannibalize.txt index 53e92a63f8b..66398172aa1 100644 --- a/forge-gui/res/cardsfolder/c/cannibalize.txt +++ b/forge-gui/res/cardsfolder/c/cannibalize.txt @@ -1,10 +1,9 @@ Name:Cannibalize ManaCost:1 B Types:Sorcery -A:SP$ Pump | ValidTgts$ Creature | TargetMin$ 2 | TargetMax$ 2 | TargetUnique$ True | TargetsWithSameController$ True | RememberTargets$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | IsCurse$ True | SpellDescription$ Choose two target creatures controlled by the same player. Exile one of those creatures and put two +1/+1 counters on the other. -SVar:DBChoose:DB$ ChooseCard | Choices$ Card.IsRemembered | ForgetChosen$ True | Mandatory$ True | ChoiceTitle$ Choose one to exile | Amount$ 1 | SubAbility$ ExileChosen | StackDescription$ None +A:SP$ Pump | ValidTgts$ Creature | TargetMin$ 2 | TargetMax$ 2 | TargetUnique$ True | TargetsWithSameController$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | IsCurse$ True | SpellDescription$ Choose two target creatures controlled by the same player. Exile one of those creatures and put two +1/+1 counters on the other. +SVar:DBChoose:DB$ ChooseCard | DefinedCards$ Targeted | Mandatory$ True | ChoiceTitle$ Choose one to exile | Amount$ 1 | SubAbility$ ExileChosen | StackDescription$ None SVar:ExileChosen:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBPutCounter | StackDescription$ None -SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBCleanup | StackDescription$ None -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBPutCounter:DB$ PutCounter | Defined$ Targeted.!ChosenCard | CounterType$ P1P1 | CounterNum$ 2 | StackDescription$ None AI:RemoveDeck:All Oracle:Choose two target creatures controlled by the same player. Exile one of those creatures and put two +1/+1 counters on the other. diff --git a/forge-gui/res/cardsfolder/c/celestial_judgment.txt b/forge-gui/res/cardsfolder/c/celestial_judgment.txt index b3b1f0fac3d..0a60062ca13 100644 --- a/forge-gui/res/cardsfolder/c/celestial_judgment.txt +++ b/forge-gui/res/cardsfolder/c/celestial_judgment.txt @@ -2,6 +2,5 @@ Name:Celestial Judgment ManaCost:4 W W Types:Sorcery A:SP$ ChooseCard | Choices$ Creature | EachDifferentPower$ True | SubAbility$ DBDestroy | StackDescription$ SpellDescription | SpellDescription$ For each different power among creatures on the battlefield, choose a creature with that power. Destroy each creature not chosen this way. -SVar:DBDestroy:DB$ DestroyAll | ValidCards$ Creature.nonChosenCard | SubAbility$ DBCleanup | StackDescription$ None -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +SVar:DBDestroy:DB$ DestroyAll | ValidCards$ Creature.nonChosenCard | StackDescription$ None Oracle:For each different power among creatures on the battlefield, choose a creature with that power. Destroy each creature not chosen this way. diff --git a/forge-gui/res/cardsfolder/c/countryside_crusher.txt b/forge-gui/res/cardsfolder/c/countryside_crusher.txt index 4895ea76872..4bcaf6b0422 100644 --- a/forge-gui/res/cardsfolder/c/countryside_crusher.txt +++ b/forge-gui/res/cardsfolder/c/countryside_crusher.txt @@ -2,8 +2,11 @@ Name:Countryside Crusher ManaCost:1 R R Types:Creature Giant Warrior PT:3/3 -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigReveal | TriggerDescription$ At the beginning of your upkeep, reveal the top card of your library. If it's a land card, put it into your graveyard and repeat this process. +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRepeat | TriggerDescription$ At the beginning of your upkeep, reveal the top card of your library. If it's a land card, put it into your graveyard and repeat this process. +SVar:TrigRepeat:DB$ Repeat | RepeatSubAbility$ DBReset | RepeatDefined$ Remembered | RepeatPresent$ Card | RepeatSVarCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBReset:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBReveal +SVar:DBReveal:DB$ Dig | DigNum$ 1 | ChangeValid$ Land | ChangeNum$ All | Reveal$ True | DestinationZone$ Graveyard | RememberChanged$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Land.nonToken+YouOwn | TriggerZones$ Battlefield | Execute$ TrigAddCounter | TriggerDescription$ Whenever a land card is put into your graveyard from anywhere, put a +1/+1 counter on CARDNAME. -SVar:TrigReveal:DB$ DigUntil | DigNum$ 1 | Valid$ Card.nonLand | ValidDescription$ a nonland card | FoundDestination$ Library | LibraryPosition$ 0 | RevealedDestination$ Graveyard SVar:TrigAddCounter:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 Oracle:At the beginning of your upkeep, reveal the top card of your library. If it's a land card, put it into your graveyard and repeat this process.\nWhenever a land card is put into your graveyard from anywhere, put a +1/+1 counter on Countryside Crusher. diff --git a/forge-gui/res/cardsfolder/c/crush_underfoot.txt b/forge-gui/res/cardsfolder/c/crush_underfoot.txt index 3385405cab3..b43efd34f1b 100644 --- a/forge-gui/res/cardsfolder/c/crush_underfoot.txt +++ b/forge-gui/res/cardsfolder/c/crush_underfoot.txt @@ -3,6 +3,6 @@ ManaCost:1 R Types:Kindred Instant Giant A:SP$ ChooseCard | Defined$ You | Mandatory$ True | Choices$ Creature.Giant+YouCtrl | ChoiceTitle$ Choose a Giant creature you control | SubAbility$ DBDmg | SpellDescription$ Choose a Giant creature you control. It deals damage equal to its power to target creature. SVar:DBDmg:DB$ DealDamage | NumDmg$ X | DamageSource$ ChosenCard | ValidTgts$ Creature -SVar:X:Count$Valid Card.ChosenCard$CardPower +SVar:X:ChosenCard$CardPower AI:RemoveDeck:Random Oracle:Choose a Giant creature you control. It deals damage equal to its power to target creature. diff --git a/forge-gui/res/cardsfolder/d/deliver_unto_evil.txt b/forge-gui/res/cardsfolder/d/deliver_unto_evil.txt index d7469a717f7..e5f42316b82 100644 --- a/forge-gui/res/cardsfolder/d/deliver_unto_evil.txt +++ b/forge-gui/res/cardsfolder/d/deliver_unto_evil.txt @@ -1,14 +1,13 @@ Name:Deliver Unto Evil ManaCost:2 B Types:Sorcery -A:SP$ Pump | ValidTgts$ Card.YouCtrl | TgtPrompt$ Select target card | TargetMin$ 0 | TargetMax$ 4 | TgtZone$ Graveyard | RememberTargets$ True | SubAbility$ DBBranch | StackDescription$ SpellDescription | SpellDescription$ Choose up to four target cards in your graveyard. If you control a Bolas planeswalker, return those cards to your hand. Otherwise, an opponent chooses two of them. Leave the chosen cards in your graveyard and put the rest into your hand. Exile CARDNAME. -SVar:DBBranch:DB$ Branch | BranchConditionSVar$ X | TrueSubAbility$ DBChangeZone | FalseSubAbility$ DBChooseOpp | SubAbility$ DBCleanup +A:SP$ Pump | ValidTgts$ Card.YouCtrl | TgtPrompt$ Select target card | TargetMin$ 0 | TargetMax$ 4 | TgtZone$ Graveyard | SubAbility$ DBBranch | StackDescription$ SpellDescription | SpellDescription$ Choose up to four target cards in your graveyard. If you control a Bolas planeswalker, return those cards to your hand. Otherwise, an opponent chooses two of them. Leave the chosen cards in your graveyard and put the rest into your hand. Exile CARDNAME. +SVar:DBBranch:DB$ Branch | BranchConditionSVar$ X | TrueSubAbility$ DBChangeZone | FalseSubAbility$ DBChooseOpp | SubAbility$ DBExile SVar:X:Count$Valid Planeswalker.Bolas+YouCtrl -SVar:DBChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Graveyard | Destination$ Hand +SVar:DBChangeZone:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Hand SVar:DBChooseOpp:DB$ ChoosePlayer | Choices$ Player.Opponent | SubAbility$ DBChoose -SVar:DBChoose:DB$ ChooseCard | Choices$ Card.IsRemembered | ChoiceZone$ Graveyard | Amount$ 2 | Mandatory$ True | Defined$ ChosenPlayer | ForgetChosen$ True | SubAbility$ DBReturn -SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Graveyard | Destination$ Hand -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenPlayer$ True | ClearChosenCard$ True | SubAbility$ DBExile +SVar:DBChoose:DB$ ChooseCard | DefinedCards$ Targeted | ChoiceZone$ Graveyard | Amount$ 2 | Mandatory$ True | Defined$ ChosenPlayer | SubAbility$ DBReturn +SVar:DBReturn:DB$ ChangeZone | Defined$ Targeted.!ChosenCard | Origin$ Graveyard | Destination$ Hand SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | StackDescription$ None SVar:NeedsToPlayVar:Z GE3 SVar:Z:Count$ValidGraveyard Card.YouOwn diff --git a/forge-gui/res/cardsfolder/d/dimensional_breach.txt b/forge-gui/res/cardsfolder/d/dimensional_breach.txt index d6968465e47..f91a2956cd1 100644 --- a/forge-gui/res/cardsfolder/d/dimensional_breach.txt +++ b/forge-gui/res/cardsfolder/d/dimensional_breach.txt @@ -5,6 +5,5 @@ A:SP$ ChangeZoneAll | ChangeType$ Permanent | Origin$ Battlefield | Destination$ SVar:DBEffect:DB$ Effect | Triggers$ TrigUpkeep | RememberObjects$ Remembered | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:TrigUpkeep:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ BreachReturn | TriggerZones$ Command | TriggerDescription$ At the beginning of each player's upkeep, that player returns one of the exiled cards they own to the battlefield. -SVar:BreachReturn:DB$ ChooseCard | Defined$ TriggeredPlayer | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a card to return to the battlefield | Choices$ Card.IsRemembered+ActivePlayerCtrl | ChoiceZone$ Exile | SubAbility$ MoveChosen -SVar:MoveChosen:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ ChosenCard | ForgetChanged$ True +SVar:BreachReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered+ActivePlayerCtrl | ForgetChanged$ True | Hidden$ True Oracle:Exile all permanents. For as long as any of those cards remain exiled, at the beginning of each player's upkeep, that player returns one of the exiled cards they own to the battlefield. diff --git a/forge-gui/res/cardsfolder/d/distended_mindbender.txt b/forge-gui/res/cardsfolder/d/distended_mindbender.txt index 66ca298c091..88f4b2aee6f 100644 --- a/forge-gui/res/cardsfolder/d/distended_mindbender.txt +++ b/forge-gui/res/cardsfolder/d/distended_mindbender.txt @@ -7,6 +7,6 @@ T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescript SVar:TrigReveal:DB$ RevealHand | ValidTgts$ Opponent | RememberRevealed$ True | SubAbility$ DBChoose SVar:DBChoose:DB$ ChooseCard | Defined$ You | Choices$ Card.IsRemembered+cmcLE3+nonLand | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a nonland card with mana value 3 or less | ForgetChosen$ True | SubAbility$ DBChoose2 SVar:DBChoose2:DB$ ChooseCard | Defined$ You | Choices$ Card.IsRemembered+cmcGE4 | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a card with mana value 4 or greater | ForgetChosen$ True | SubAbility$ DBDiscard -SVar:DBDiscard:DB$ Discard | Mode$ NotRemembered | Defined$ Targeted | SubAbility$ DBCleanup +SVar:DBDiscard:DB$ Discard | Mode$ Defined | DefinedCards$ ValidHand Card.IsNotRemembered | Defined$ Targeted | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Emerge {5}{B}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's mana value.)\nWhen you cast this spell, target opponent reveals their hand. You choose from it a nonland card with mana value 3 or less and a card with mana value 4 or greater. That player discards those cards. diff --git a/forge-gui/res/cardsfolder/f/fossil_find.txt b/forge-gui/res/cardsfolder/f/fossil_find.txt index 9fa8422e78b..27742a732fd 100644 --- a/forge-gui/res/cardsfolder/f/fossil_find.txt +++ b/forge-gui/res/cardsfolder/f/fossil_find.txt @@ -1,8 +1,7 @@ Name:Fossil Find ManaCost:RG Types:Sorcery -A:SP$ ChooseCard | Choices$ Card.YouOwn | ChoiceZone$ Graveyard | AtRandom$ True | Amount$ 1 | SubAbility$ DBReturn | SpellDescription$ Return a card at random from your graveyard to your hand, then reorder your graveyard as you choose. -SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ ChosenCard | SubAbility$ DBReorder +A:SP$ ChangeZone | Hidden$ True | AtRandom$ True | Origin$ Graveyard | Destination$ Hand | SubAbility$ DBReorder | SpellDescription$ Return a card at random from your graveyard to your hand, then reorder your graveyard as you choose. SVar:DBReorder:DB$ ReorderZone | Zone$ Graveyard | Defined$ You AI:RemoveDeck:All Oracle:Return a card at random from your graveyard to your hand, then reorder your graveyard as you choose. diff --git a/forge-gui/res/cardsfolder/g/goliath_hatchery.txt b/forge-gui/res/cardsfolder/g/goliath_hatchery.txt index 59f53adab0d..03958b37876 100644 --- a/forge-gui/res/cardsfolder/g/goliath_hatchery.txt +++ b/forge-gui/res/cardsfolder/g/goliath_hatchery.txt @@ -8,7 +8,7 @@ SVar:TrigChooseCard:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creatur SVar:DBDraw:DB$ Draw | NumCards$ AffectedX | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True SVar:X:PlayerCountOpponents$HighestCounters.Poison -SVar:AffectedX:Count$Valid Card.ChosenCard$TotalValue Toxic +SVar:AffectedX:ChosenCard$TotalValue Toxic DeckHas:Ability$Token & Type$Beast|Phyrexian DeckHints:Keyword$Toxic|Infect Oracle:When Goliath Hatchery enters, create two 3/3 green Phyrexian Beast creature tokens with toxic 1. (Players dealt combat damage by them also get a poison counter.)\nCorrupted — At the beginning of your upkeep, if an opponent has three or more poison counters, choose a creature you control, then draw cards equal to its total toxic value. diff --git a/forge-gui/res/cardsfolder/g/gorex_the_tombshell.txt b/forge-gui/res/cardsfolder/g/gorex_the_tombshell.txt index 10b64f62fcc..04fc24427a1 100644 --- a/forge-gui/res/cardsfolder/g/gorex_the_tombshell.txt +++ b/forge-gui/res/cardsfolder/g/gorex_the_tombshell.txt @@ -9,7 +9,6 @@ SVar:Y:SVar$X/Times.2 K:Deathtouch T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME attacks or dies, choose a card at random exiled with NICKNAME and put that card into its owner's hand. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or dies, choose a card at random exiled with NICKNAME and put that card into its owner's hand. -SVar:TrigChoose:DB$ ChooseCard | Amount$ 1 | AtRandom$ True | Choices$ Card.ExiledWithSource | ChoiceZone$ Exile | SubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Hand | Hidden$ True +SVar:TrigChoose:DB$ ChangeZone | AtRandom$ True | ChangeType$ Card.ExiledWithSource | Origin$ Exile | Destination$ Hand | Hidden$ True DeckHas:Ability$Graveyard Oracle:As an additional cost to cast this spell, you may exile any number of creature cards from your graveyard. This spell costs {2} less to cast for each card exiled this way.\nDeathtouch\nWhenever Gorex, the Tombshell attacks or dies, choose a card at random exiled with Gorex and put that card into its owner's hand. diff --git a/forge-gui/res/cardsfolder/l/last_night_together.txt b/forge-gui/res/cardsfolder/l/last_night_together.txt index b3d1a238a9f..560c3ff75d6 100644 --- a/forge-gui/res/cardsfolder/l/last_night_together.txt +++ b/forge-gui/res/cardsfolder/l/last_night_together.txt @@ -1,7 +1,7 @@ Name:Last Night Together ManaCost:3 R G Types:Sorcery -A:SP$ ChooseCard | ValidTgts$ Creature | TgtPrompt$ Choose two target creatures | TargetMin$ 2 | TargetMax$ 2 | Amount$ 2 | Defined$ You | DefinedCards$ Targeted | AtRandom$ True | SubAbility$ DBUntap | SpellDescription$ Choose two target creatures. +A:SP$ ChooseCard | ValidTgts$ Creature | TgtPrompt$ Choose two target creatures | TargetMin$ 2 | TargetMax$ 2 | Amount$ 2 | Defined$ You | DefinedCards$ Targeted | SubAbility$ DBUntap | SpellDescription$ Choose two target creatures. SVar:DBUntap:DB$ Untap | Defined$ Targeted | SubAbility$ DBPutCounter | SpellDescription$ Untap them. SVar:DBPutCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBPump | SpellDescription$ Put two +1/+1 counters on each of them. SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Vigilance & Indestructible & Haste | SubAbility$ DBAddCombat | SpellDescription$ They gain vigilance, indestructible, and haste until end of turn. diff --git a/forge-gui/res/cardsfolder/m/monomania.txt b/forge-gui/res/cardsfolder/m/monomania.txt index bdec65847b0..23f68ff3bc8 100644 --- a/forge-gui/res/cardsfolder/m/monomania.txt +++ b/forge-gui/res/cardsfolder/m/monomania.txt @@ -1,7 +1,6 @@ Name:Monomania ManaCost:3 B B Types:Sorcery -A:SP$ ChooseCard | ValidTgts$ Player | Mandatory$ True | Choices$ Card | SubAbility$ DBDiscard | RememberChosen$ True | AILogic$ AtLeast2 | TargetControls$ True | ChoiceZone$ Hand | SpellDescription$ Target player chooses a card in their hand and discards the rest. -SVar:DBDiscard:DB$ Discard | Defined$ Targeted | Mode$ NotRemembered | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:SP$ ChooseCard | ValidTgts$ Player | Mandatory$ True | Choices$ Card | SubAbility$ DBDiscard | AILogic$ AtLeast2 | TargetControls$ True | ChoiceZone$ Hand | StackDescription$ SpellDescription | SpellDescription$ Target player chooses a card in their hand and discards the rest. +SVar:DBDiscard:DB$ Discard | Defined$ Targeted | Mode$ Defined | DefinedCards$ ValidHand Card.!ChosenCard Oracle:Target player chooses a card in their hand and discards the rest. diff --git a/forge-gui/res/cardsfolder/p/pay_no_heed.txt b/forge-gui/res/cardsfolder/p/pay_no_heed.txt index 7f34cfd47e8..93e7ca1c438 100644 --- a/forge-gui/res/cardsfolder/p/pay_no_heed.txt +++ b/forge-gui/res/cardsfolder/p/pay_no_heed.txt @@ -2,7 +2,6 @@ Name:Pay No Heed ManaCost:W Types:Instant A:SP$ ChooseSource | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ Prevent all damage a source of your choice would deal this turn. -SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem +SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem SVar:RPreventNextFromSource:Event$ DamageDone | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | Prevent$ True | Description$ Prevent all damage the source would deal this turn. -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True Oracle:Prevent all damage a source of your choice would deal this turn. diff --git a/forge-gui/res/cardsfolder/p/polymorphous_rush.txt b/forge-gui/res/cardsfolder/p/polymorphous_rush.txt index edecf8bc915..463dcb29a45 100644 --- a/forge-gui/res/cardsfolder/p/polymorphous_rush.txt +++ b/forge-gui/res/cardsfolder/p/polymorphous_rush.txt @@ -3,9 +3,8 @@ ManaCost:2 U Types:Instant K:Strive:1 U A:SP$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature | Mandatory$ True | SubAbility$ Pump4Tgt | AILogic$ Clone | SpellDescription$ Choose a creature on the battlefield. Any number of target creatures you control each become a copy of that creature until end of turn. -SVar:Pump4Tgt:DB$ RepeatEach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | TargetMin$ 0 | TargetMax$ MaxTargets | DefinedCards$ Targeted | RepeatSubAbility$ ShapeTgt | SubAbility$ DBCleanup +SVar:Pump4Tgt:DB$ RepeatEach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | TargetMin$ 0 | TargetMax$ MaxTargets | DefinedCards$ Targeted | RepeatSubAbility$ ShapeTgt SVar:ShapeTgt:DB$ Clone | Defined$ ChosenCard | CloneTarget$ Remembered | Duration$ UntilEndOfTurn -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True SVar:MaxTargets:Count$Valid Creature.YouCtrl AI:RemoveDeck:All Oracle:Strive — This spell costs {1}{U} more to cast for each target beyond the first.\nChoose a creature on the battlefield. Any number of target creatures you control each become a copy of that creature until end of turn. diff --git a/forge-gui/res/cardsfolder/p/purgatory.txt b/forge-gui/res/cardsfolder/p/purgatory.txt index f04c098e66d..4919ed206b1 100644 --- a/forge-gui/res/cardsfolder/p/purgatory.txt +++ b/forge-gui/res/cardsfolder/p/purgatory.txt @@ -2,11 +2,8 @@ Name:Purgatory ManaCost:2 W B Types:Enchantment T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.nonToken+YouOwn | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ Whenever a nontoken creature is put into your graveyard from the battlefield, exile that card. -SVar:TrigChangeZone:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True +SVar:TrigChangeZone:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Exile T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ At the beginning of your upkeep, you may pay {4} and 2 life. If you do, return a card exiled with CARDNAME to the battlefield. -SVar:TrigReturn:AB$ ChooseCard | Cost$ 4 PayLife<2> | Defined$ You | Amount$ 1 | Choices$ Card.IsRemembered | ChoiceZone$ Exile | SubAbility$ DBChange -SVar:DBChange:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Battlefield | ForgetChanged$ True | Hidden$ True -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigReturn:AB$ ChangeZone | Cost$ 4 PayLife<2> | ChangeType$ Card.ExiledWithSource | Mandatory$ True | Origin$ Exile | Destination$ Battlefield | Hidden$ True SVar:NonStackingEffect:True Oracle:Whenever a nontoken creature is put into your graveyard from the battlefield, exile that card.\nAt the beginning of your upkeep, you may pay {4} and 2 life. If you do, return a card exiled with Purgatory to the battlefield. diff --git a/forge-gui/res/cardsfolder/r/riths_charm.txt b/forge-gui/res/cardsfolder/r/riths_charm.txt index b860b651a36..91af496c085 100644 --- a/forge-gui/res/cardsfolder/r/riths_charm.txt +++ b/forge-gui/res/cardsfolder/r/riths_charm.txt @@ -5,8 +5,7 @@ A:SP$ Charm | CharmNum$ 1 | Choices$ Bash,Token,Prevent SVar:Bash:DB$ Destroy | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target nonbasic land | SpellDescription$ Destroy target nonbasic land. SVar:Token:DB$ Token | TokenAmount$ 3 | TokenScript$ g_1_1_saproling | TokenOwner$ You | SpellDescription$ Create three 1/1 green Saproling creature tokens. SVar:Prevent:DB$ ChooseSource | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ Prevent all damage a source of your choice would deal this turn. -SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem +SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem SVar:RPreventNextFromSource:Event$ DamageDone | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | Prevent$ True | Description$ Prevent all damage the source would deal this turn. -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True DeckHas:Ability$Token Oracle:Choose one —\n• Destroy target nonbasic land.\n• Create three 1/1 green Saproling creature tokens.\n• Prevent all damage a source of your choice would deal this turn. diff --git a/forge-gui/res/cardsfolder/s/search_for_survivors.txt b/forge-gui/res/cardsfolder/s/search_for_survivors.txt index 8d15001ea8c..d62d7428109 100644 --- a/forge-gui/res/cardsfolder/s/search_for_survivors.txt +++ b/forge-gui/res/cardsfolder/s/search_for_survivors.txt @@ -5,8 +5,7 @@ A:SP$ ReorderZone | Zone$ Graveyard | Defined$ You | Random$ True | SubAbility$ SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | AILogic$ Curse | SubAbility$ DBChoose SVar:DBChoose:DB$ ChooseCard | Defined$ ChosenPlayer | Choices$ Card.YouOwn | ChoiceZone$ Graveyard | AtRandom$ True | Amount$ 1 | SubAbility$ DBReturn SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ConditionDefined$ ChosenCard | ConditionPresent$ Card.Creature | ConditionCompare$ GE1 | Defined$ ChosenCard | SubAbility$ DBExile -SVar:DBExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ConditionDefined$ ChosenCard | ConditionPresent$ Card.Creature | ConditionCompare$ EQ0 | Defined$ ChosenCard | SubAbility$ DBCleanupChosen -SVar:DBCleanupChosen:DB$ Cleanup | ClearChosenPlayer$ True | ClearChosenCard$ True +SVar:DBExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ConditionDefined$ ChosenCard | ConditionPresent$ Card.Creature | ConditionCompare$ EQ0 | Defined$ ChosenCard SVar:X:Count$ValidGraveyard Creature.YouCtrl SVar:NeedsToPlayVar:X GE2 AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/s/skyclave_aerialist_skyclave_invader.txt b/forge-gui/res/cardsfolder/s/skyclave_aerialist_skyclave_invader.txt index 6d78215e428..d8cbc5b50f9 100644 --- a/forge-gui/res/cardsfolder/s/skyclave_aerialist_skyclave_invader.txt +++ b/forge-gui/res/cardsfolder/s/skyclave_aerialist_skyclave_invader.txt @@ -3,7 +3,7 @@ ManaCost:1 U Types:Creature Merfolk Scout PT:2/1 K:Flying -A:AB$ SetState | Cost$ 4 GP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ {4}{G/P}: Transform CARDNAME. Activate only as a sorcery. ({G/P} can be paid with either {G} or 2 life.) +A:AB$ SetState | Cost$ 4 GP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ Transform CARDNAME. Activate only as a sorcery. ({G/P} can be paid with either {G} or 2 life.) AlternateMode:DoubleFaced Oracle:{4}{G/P}: Transform Skyclave Aerialist. Activate only as a sorcery. ({G/P} can be paid with either {G} or 2 life.) diff --git a/forge-gui/res/cardsfolder/s/split_the_party.txt b/forge-gui/res/cardsfolder/s/split_the_party.txt index 62c6a8c577e..ab2f5b4303c 100644 --- a/forge-gui/res/cardsfolder/s/split_the_party.txt +++ b/forge-gui/res/cardsfolder/s/split_the_party.txt @@ -3,7 +3,6 @@ ManaCost:3 U U Types:Sorcery A:SP$ Pump | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ ChooseCreature | IsCurse$ True | StackDescription$ SpellDescription | SpellDescription$ Choose target player. Return half the creatures they control to their owner's hand, rounded up. SVar:ChooseCreature:DB$ ChooseCard | Choices$ Creature.TargetedPlayerCtrl | Mandatory$ True | Amount$ X | ChoiceTitle$ Choose half the creatures (rounded up) target player controls | SubAbility$ ReturnCreature -SVar:ReturnCreature:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +SVar:ReturnCreature:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Hand SVar:X:TargetedPlayer$CreaturesInPlay/HalfUp Oracle:Choose target player. Return half the creatures they control to their owner's hand, rounded up. diff --git a/forge-gui/res/cardsfolder/s/stinging_study.txt b/forge-gui/res/cardsfolder/s/stinging_study.txt index 6ecaa935790..f2d19bbfe3a 100644 --- a/forge-gui/res/cardsfolder/s/stinging_study.txt +++ b/forge-gui/res/cardsfolder/s/stinging_study.txt @@ -1,12 +1,9 @@ Name:Stinging Study ManaCost:4 B Types:Instant -A:SP$ ChooseCard | Choices$ Card.IsCommander+YouOwn | RememberChosen$ True | MinAmount$ 0 | ChoiceTitle$ Choose a commander on the battlefield | SubAbility$ ChooseCommand | ConditionPresent$ Card.IsCommander+YouOwn | SpellDescription$ You draw X cards and you lose X life, where X is the mana value of a commander you own on the battlefield or in the command zone. -SVar:ChooseCommand:DB$ ChooseCard | ChoiceZone$ Command | Choices$ Card.IsCommander+YouOwn | RememberChosen$ True | ChoiceTitle$ Choose a commander in command | SubAbility$ ChooseBF | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ0 | Mandatory$ True -SVar:ChooseBF:DB$ ChooseCard | ChoiceZone$ Battlefield | Choices$ Card.IsCommander+YouOwn | RememberChosen$ True | ChoiceTitle$ Choose a commander on the battlefield | SubAbility$ DBDraw | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ EQ0 | Mandatory$ True +A:SP$ ChooseCard | Choices$ Card.IsCommander+YouOwn | ChoiceZone$ Command,Battlefield | Mandatory$ True | ChoiceTitle$ Choose a commander you own | SubAbility$ DBDraw | SpellDescription$ You draw X cards and you lose X life, where X is the mana value of a commander you own on the battlefield or in the command zone. SVar:DBDraw:DB$ Draw | NumCards$ X | SubAbility$ DBLoseLife -SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True -SVar:X:Remembered$CardManaCost +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X +SVar:X:ChosenCard$CardManaCost AI:RemoveDeck:NonCommander Oracle:You draw X cards and you lose X life, where X is the mana value of a commander you own on the battlefield or in the command zone. diff --git a/forge-gui/res/cardsfolder/v/vizkopa_confessor.txt b/forge-gui/res/cardsfolder/v/vizkopa_confessor.txt index cfacdfc84dc..b55614e153a 100644 --- a/forge-gui/res/cardsfolder/v/vizkopa_confessor.txt +++ b/forge-gui/res/cardsfolder/v/vizkopa_confessor.txt @@ -5,8 +5,7 @@ PT:1/3 K:Extort T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ OppRevealX | TriggerDescription$ When CARDNAME enters, pay any amount of life. Target opponent reveals that many cards from their hand. You choose one of them and exile it. SVar:OppRevealX:AB$ Reveal | Cost$ PayLife | ValidTgts$ Opponent | NumCards$ X | RememberRevealed$ True | SubAbility$ PickOne -SVar:PickOne:DB$ ChooseCard | Defined$ You | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose card to exile | Choices$ Card.IsRemembered | ChoiceZone$ Hand | SubAbility$ MoveChosen -SVar:MoveChosen:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Defined$ ChosenCard | SubAbility$ DBCleanup +SVar:PickOne:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Chooser$ You | DefinedPlayer$ Targeted | ChangeType$ Card.IsRemembered | AlreadyRevealed$ True | Mandatory$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$xPaid Oracle:Extort (Whenever you cast a spell, you may pay {W/B}. If you do, each opponent loses 1 life and you gain that much life.)\nWhen Vizkopa Confessor enters, pay any amount of life. Target opponent reveals that many cards from their hand. You choose one of them and exile it. diff --git a/forge-gui/res/cardsfolder/w/wicked_slumber.txt b/forge-gui/res/cardsfolder/w/wicked_slumber.txt index 84470a68d6c..7d96667501f 100644 --- a/forge-gui/res/cardsfolder/w/wicked_slumber.txt +++ b/forge-gui/res/cardsfolder/w/wicked_slumber.txt @@ -2,9 +2,8 @@ Name:Wicked Slumber ManaCost:3 U Types:Instant K:Convoke -A:SP$ Tap | ValidTgts$ Creature | SubAbility$ DBCounter | TargetMin$ 0 | TargetMax$ 2 | RememberTargets$ True | TgtPrompt$ Select up to two target creatures | SpellDescription$ Tap up to two target creatures. Put a stun counter on either of them. Then put a stun counter on either of them. (If a permanent with a stun counter would become untapped, remove one from it instead.) -SVar:DBCounter:DB$ PutCounter | Choices$ Card.IsRemembered | ChoiceTitle$ Choose a creature tapped this to put a stun counter on | CounterType$ Stun | CounterNum$ 1 | SubAbility$ DBCounterBis -SVar:DBCounterBis:DB$ PutCounter | Choices$ Card.IsRemembered | ChoiceTitle$ Choose a creature tapped this to put a stun counter on | CounterType$ Stun | CounterNum$ 1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:SP$ Tap | ValidTgts$ Creature | SubAbility$ DBCounter | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures | SpellDescription$ Tap up to two target creatures. Put a stun counter on either of them. Then put a stun counter on either of them. (If a permanent with a stun counter would become untapped, remove one from it instead.) +SVar:DBCounter:DB$ PutCounter | Choices$ Card.targetedBy | ChoiceTitle$ Choose a creature tapped this to put a stun counter on | CounterType$ Stun | CounterNum$ 1 | SubAbility$ DBCounterBis +SVar:DBCounterBis:DB$ PutCounter | Choices$ Card.targetedBy | ChoiceTitle$ Choose a creature tapped this to put a stun counter on | CounterType$ Stun | CounterNum$ 1 DeckHas:Ability$Counters Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nTap up to two target creatures. Put a stun counter on either of them. Then put a stun counter on either of them. (If a permanent with a stun counter would become untapped, remove one from it instead.) diff --git a/forge-gui/res/cardsfolder/w/wild_swing.txt b/forge-gui/res/cardsfolder/w/wild_swing.txt index d5d664ddb13..d3f5263b79c 100644 --- a/forge-gui/res/cardsfolder/w/wild_swing.txt +++ b/forge-gui/res/cardsfolder/w/wild_swing.txt @@ -1,8 +1,7 @@ Name:Wild Swing ManaCost:3 R Types:Sorcery -A:SP$ Pump | ValidTgts$ Permanent.nonEnchantment | TgtPrompt$ Select target nonenchantment permanent | TargetMin$ 3 | TargetMax$ 3 | RememberTargets$ True | IsCurse$ True | SubAbility$ DBChooseRandom | StackDescription$ None | SpellDescription$ Choose three target nonenchantment permanents. Destroy one of them at random. -SVar:DBChooseRandom:DB$ ChooseCard | Defined$ You | Amount$ 1 | AtRandom$ True | Choices$ Card.IsRemembered | SubAbility$ DBDestroy -SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:SP$ Pump | ValidTgts$ Permanent.nonEnchantment | TgtPrompt$ Select target nonenchantment permanent | TargetMin$ 3 | TargetMax$ 3 | IsCurse$ True | SubAbility$ DBChooseRandom | StackDescription$ None | SpellDescription$ Choose three target nonenchantment permanents. Destroy one of them at random. +SVar:DBChooseRandom:DB$ ChooseCard | Defined$ You | Amount$ 1 | AtRandom$ True | DefinedCards$ Targeted | SubAbility$ DBDestroy +SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard Oracle:Choose three target nonenchantment permanents. Destroy one of them at random. diff --git a/forge-gui/res/cardsfolder/z/zurgo_and_ojutai.txt b/forge-gui/res/cardsfolder/z/zurgo_and_ojutai.txt index 440039b8071..bdc30b87dfb 100644 --- a/forge-gui/res/cardsfolder/z/zurgo_and_ojutai.txt +++ b/forge-gui/res/cardsfolder/z/zurgo_and_ojutai.txt @@ -6,9 +6,7 @@ K:Flying K:Haste S:Mode$ Continuous | Affected$ Card.Self+ThisTurnEntered | AddKeyword$ Hexproof | Description$ CARDNAME has hexproof as long as it entered this turn. T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Dragon.YouCtrl | ValidTarget$ Player,Battle | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Whenever one or more Dragons you control deal combat damage to a player or battle, look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. You may return one of those Dragons to its owner's hand. -SVar:TrigDig:DB$ Dig | DigNum$ 3 | NoReveal$ True | SubAbility$ DBChoose -SVar:DBChoose:DB$ ChooseCard | DefinedCards$ TriggeredSources | ChoiceTitle$ You may return one of those Dragons to its owner's hand | SubAbility$ DBReturn -SVar:DBReturn:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +SVar:TrigDig:DB$ Dig | DigNum$ 3 | NoReveal$ True | SubAbility$ DBReturn +SVar:DBReturn:DB$ ChangeZone | Hidden$ True | ChooseFromDefined$ TriggeredSources | Origin$ Battlefield | Destination$ Hand DeckHints:Type$Dragon Oracle:Flying, haste\nZurgo and Ojutai has hexproof as long as it entered this turn.\nWhenever one or more Dragons you control deal combat damage to a player or battle, look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. You may return one of those Dragons to its owner's hand.