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..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,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) { 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"; diff --git a/forge-gui/res/cardsfolder/a/ajanis_aid.txt b/forge-gui/res/cardsfolder/a/ajanis_aid.txt index d50f7383bc0..5a3be2d10f0 100644 --- a/forge-gui/res/cardsfolder/a/ajanis_aid.txt +++ b/forge-gui/res/cardsfolder/a/ajanis_aid.txt @@ -5,8 +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 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. 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. 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/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. 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/i/intuition.txt b/forge-gui/res/cardsfolder/i/intuition.txt index 454a5d31c08..651dda79140 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 | 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 -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. 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. 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. 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." 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.