diff --git a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java index 6ef28350a4b..190b70e0718 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java @@ -25,6 +25,8 @@ public class LifeGainEffect extends SpellAbilityEffect { sb.append(getDefinedPlayersOrTargeted(sa).size() > 1 ? " gain " : " gains ").append(amount); sb.append(" life."); + } else if (sa.hasParam("XDesc")) { + sb.append(" gains life equal to ").append(sa.getParam("XDesc")).append("."); } else { sb.append(" gains life equal to the life lost this way."); } diff --git a/forge-gui/res/cardsfolder/a/ajani_unyielding.txt b/forge-gui/res/cardsfolder/a/ajani_unyielding.txt index 56633f74188..37d78f505ab 100644 --- a/forge-gui/res/cardsfolder/a/ajani_unyielding.txt +++ b/forge-gui/res/cardsfolder/a/ajani_unyielding.txt @@ -3,10 +3,9 @@ ManaCost:4 G W Types:Legendary Planeswalker Ajani Loyalty:4 A:AB$ Dig | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | DigNum$ 3 | Reveal$ True | ChangeNum$ All | ChangeValid$ Permanent.nonLand | SpellDescription$ Reveal the top three cards of your library. Put all nonland permanent cards revealed this way into your hand and the rest on the bottom of your library in any order. -A:AB$ ChangeZone | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SpellDescription$ Exile target creature. Its controller gains life equal to its power. | StackDescription$ SpellDescription | SubAbility$ DBGainLife -SVar:DBGainLife:DB$ GainLife | Defined$ RememberedController | LifeAmount$ X | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:RememberedLKI$CardPower +A:AB$ ChangeZone | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBGainLife | SpellDescription$ Exile target creature. +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | XDesc$ its power | SpellDescription$ Its controller gains life equal to its power. +SVar:X:TargetedLKI$CardPower A:AB$ PutCounterAll | Cost$ SubCounter<9/LOYALTY> | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 5 | Planeswalker$ True | Ultimate$ True | ValidCards2$ Planeswalker.YouCtrl+Other | CounterType2$ LOYALTY | AILogic$ OwnCreatsAndOtherPWs | SpellDescription$ Put five +1/+1 counters on each creature you control and five loyalty counters on each other planeswalker you control. DeckHas:Ability$Counters DeckHints:Type$Planeswalker diff --git a/forge-gui/res/cardsfolder/a/avenger_en_dal.txt b/forge-gui/res/cardsfolder/a/avenger_en_dal.txt index 02d7a219fa0..a65182a6b06 100644 --- a/forge-gui/res/cardsfolder/a/avenger_en_dal.txt +++ b/forge-gui/res/cardsfolder/a/avenger_en_dal.txt @@ -8,4 +8,5 @@ SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:TargetedLKI$CardToughness SVar:AIPreference:DiscardCost$Card AI:RemoveDeck:Random +DeckHas:Ability$Discard Oracle:{2}{W}, {T}, Discard a card: Exile target attacking creature. Its controller gains life equal to its toughness. diff --git a/forge-gui/res/cardsfolder/c/condemn.txt b/forge-gui/res/cardsfolder/c/condemn.txt index bfdd10e0cd5..dc27cdb8b56 100644 --- a/forge-gui/res/cardsfolder/c/condemn.txt +++ b/forge-gui/res/cardsfolder/c/condemn.txt @@ -1,7 +1,7 @@ Name:Condemn ManaCost:W Types:Instant -A:SP$ ChangeZone | Cost$ W | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBGainLife | RememberLKI$ True | SpellDescription$ Put target attacking creature on the bottom of its owner's library. Its controller gains life equal to its toughness. -SVar:DBGainLife:DB$ GainLife | Defined$ RememberedController | LifeAmount$ X -SVar:X:RememberedLKI$CardToughness +A:SP$ ChangeZone | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBGainLife | SpellDescription$ Put target attacking creature on the bottom of its owner's library. +SVar:DBGainLife:DB$ GainLife | Defined$ RememberedController | LifeAmount$ X | XDesc$ its toughness | SpellDescription$ Its controller gains life equal to its toughness. +SVar:X:TargetedLKI$CardToughness Oracle:Put target attacking creature on the bottom of its owner's library. Its controller gains life equal to its toughness. diff --git a/forge-gui/res/cardsfolder/c/crumble.txt b/forge-gui/res/cardsfolder/c/crumble.txt index a35b6bf026e..833aa2e41aa 100644 --- a/forge-gui/res/cardsfolder/c/crumble.txt +++ b/forge-gui/res/cardsfolder/c/crumble.txt @@ -1,7 +1,8 @@ Name:Crumble ManaCost:G Types:Instant -A:SP$ Destroy | Cost$ G | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | NoRegen$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy target artifact. It can't be regenerated. That artifact's controller gains life equal to its mana value. -SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X +A:SP$ Destroy | ValidTgts$ Artifact | NoRegen$ True | SubAbility$ DBGainLife | SpellDescription$ Destroy target artifact. It can't be regenerated. +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | XDesc$ its mana value | SpellDescription$ That artifact's controller gains life equal to its mana value. SVar:X:Targeted$CardManaCost +AI:RemoveDeck:Random Oracle:Destroy target artifact. It can't be regenerated. That artifact's controller gains life equal to its mana value. diff --git a/forge-gui/res/cardsfolder/d/devour_flesh.txt b/forge-gui/res/cardsfolder/d/devour_flesh.txt index 76fc8c5b3d9..e771fb1836e 100644 --- a/forge-gui/res/cardsfolder/d/devour_flesh.txt +++ b/forge-gui/res/cardsfolder/d/devour_flesh.txt @@ -1,8 +1,8 @@ Name:Devour Flesh ManaCost:1 B Types:Instant -A:SP$ Sacrifice | Cost$ 1 B | ValidTgts$ Player | SacValid$ Creature | SacMessage$ Creature | RememberSacrificed$ True | SubAbility$ DBGainLife | SpellDescription$ Target player sacrifices a creature, then gains life equal to that creature's toughness. | StackDescription$ SpellDescription -SVar:DBGainLife:DB$ GainLife | Defined$ Targeted | LifeAmount$ X | SubAbility$ DBCleanup +A:SP$ Sacrifice | ValidTgts$ Player | SacValid$ Creature | SacMessage$ creature | RememberSacrificed$ True | SubAbility$ DBGainLife | StackDescription$ SpellDescription | SpellDescription$ Target player sacrifices a creature, then gains life equal to that creature's toughness. +SVar:DBGainLife:DB$ GainLife | Defined$ Targeted | LifeAmount$ X | SubAbility$ DBCleanup | StackDescription$ None SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:RememberedLKI$CardToughness Oracle:Target player sacrifices a creature, then gains life equal to that creature's toughness. diff --git a/forge-gui/res/cardsfolder/i/illumination.txt b/forge-gui/res/cardsfolder/i/illumination.txt index ebda207ecaa..fa0642ce083 100644 --- a/forge-gui/res/cardsfolder/i/illumination.txt +++ b/forge-gui/res/cardsfolder/i/illumination.txt @@ -1,7 +1,7 @@ Name:Illumination ManaCost:W W Types:Instant -A:SP$ Counter | Cost$ W W | TargetType$ Spell | TgtPrompt$ Select target Artifact or Enchantment spell | ValidTgts$ Artifact,Enchantment | SubAbility$ DBGainLife | SpellDescription$ Counter target artifact or enchantment spell. Its controller gains life equal to its mana value. -SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X +A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target artifact or enchantment spell | ValidTgts$ Artifact,Enchantment | SubAbility$ DBGainLife | SpellDescription$ Counter target artifact or enchantment spell. +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | XDesc$ its mana value | SpellDescription$ Its controller gains life equal to its mana value. SVar:X:Targeted$CardManaCost Oracle:Counter target artifact or enchantment spell. Its controller gains life equal to its mana value. diff --git a/forge-gui/res/cardsfolder/l/luminate_primordial.txt b/forge-gui/res/cardsfolder/l/luminate_primordial.txt index 848575a9cd1..a56c974ae4c 100644 --- a/forge-gui/res/cardsfolder/l/luminate_primordial.txt +++ b/forge-gui/res/cardsfolder/l/luminate_primordial.txt @@ -4,7 +4,7 @@ Types:Creature Avatar PT:4/7 K:Vigilance T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ ExileOneEach | TriggerDescription$ When CARDNAME enters the battlefield, for each opponent, exile up to one target creature that player controls and that player gains life equal to its power. -SVar:ExileOneEach:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature each opponent controls. | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | SubAbility$ LoopTgts +SVar:ExileOneEach:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select up to one target creature each opponent controls | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | SubAbility$ LoopTgts SVar:LoopTgts:DB$ RepeatEach | RepeatSubAbility$ GiveLifeEach | DefinedCards$ Targeted SVar:GiveLifeEach:DB$ GainLife | Defined$ RememberedController | LifeAmount$ TgtPower SVar:OneEach:PlayerCountOpponents$Amount diff --git a/forge-gui/res/cardsfolder/s/solitude.txt b/forge-gui/res/cardsfolder/s/solitude.txt index 26d9282a6b7..f4988aed0be 100644 --- a/forge-gui/res/cardsfolder/s/solitude.txt +++ b/forge-gui/res/cardsfolder/s/solitude.txt @@ -7,7 +7,7 @@ K:Lifelink K:Evoke:ExileFromHand<1/Card.White+Other/white card> T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile up to one other target creature. That creature's controller gains life equal to its power. SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.Other | RememberLKI$ True | TgtPrompt$ Select up to one other target creature | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBGainLife -SVar:DBGainLife:DB$ GainLife | Defined$ RememberedController | LifeAmount$ X | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:RememberedLKI$CardPower +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | XDesc$ its power | SpellDescription$ Its controller gains life equal to its power. +SVar:X:TargetedLKI$CardPower +DeckHas:Ability$LifeGain Oracle:Flash\nLifelink\nWhen Solitude enters the battlefield, exile up to one other target creature. That creature's controller gains life equal to its power.\nEvoke—Exile a white card from your hand. diff --git a/forge-gui/res/cardsfolder/s/swords_to_plowshares.txt b/forge-gui/res/cardsfolder/s/swords_to_plowshares.txt index 807ea5d96b7..f528651c64e 100644 --- a/forge-gui/res/cardsfolder/s/swords_to_plowshares.txt +++ b/forge-gui/res/cardsfolder/s/swords_to_plowshares.txt @@ -1,8 +1,7 @@ Name:Swords to Plowshares ManaCost:W Types:Instant -A:SP$ ChangeZone | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SpellDescription$ Exile target creature. Its controller gains life equal to its power. | StackDescription$ SpellDescription | SubAbility$ DBGainLife -SVar:DBGainLife:DB$ GainLife | Defined$ RememberedController | LifeAmount$ X | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:RememberedLKI$CardPower +A:SP$ ChangeZone | ValidTgts$ Creature | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBGainLife | SpellDescription$ Exile target creature. +SVar:DBGainLife:DB$ GainLife | Defined$ TargetedController | LifeAmount$ X | XDesc$ its power | SpellDescription$ Its controller gains life equal to its power. +SVar:X:TargetedLKI$CardPower Oracle:Exile target creature. Its controller gains life equal to its power.