TrLifeGained changes
@lifed/lifeloss(who) -> static version @lifeof/lifelostof(player) -> current controller of the card @lifefoeof/lifelostfoeof(player) -> current opponent of the card
This commit is contained in:
@@ -1189,7 +1189,7 @@ toughness=2
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Ageless Entity
|
name=Ageless Entity
|
||||||
auto=@lifed(controller):all(trigger[to]) dynamicability<!myself thatmuchcountersoneone tosrc!>
|
auto=@lifeof(player):all(trigger[to]) dynamicability<!myself thatmuchcountersoneone tosrc!>
|
||||||
text=Whenever you gain life, put that many +1/+1 counters on Ageless Entity.
|
text=Whenever you gain life, put that many +1/+1 counters on Ageless Entity.
|
||||||
mana={3}{G}{G}
|
mana={3}{G}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -1531,7 +1531,7 @@ type=Enchantment
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Ajani's Pridemate
|
name=Ajani's Pridemate
|
||||||
auto=@lifed(controller):may counter(1/1,1)
|
auto=@lifeof(player):may counter(1/1,1)
|
||||||
text=Whenever you gain life, you may put a +1/+1 counter on Ajani's Pridemate.
|
text=Whenever you gain life, you may put a +1/+1 counter on Ajani's Pridemate.
|
||||||
mana={1}{W}
|
mana={1}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -4247,7 +4247,7 @@ toughness=5
|
|||||||
[card]
|
[card]
|
||||||
name=Archangel of Thune
|
name=Archangel of Thune
|
||||||
abilities=flying,lifelink
|
abilities=flying,lifelink
|
||||||
auto=@lifed(controller):all(creature|mybattlefield) counter(1/1,1)
|
auto=@lifeof(player):all(creature|mybattlefield) counter(1/1,1)
|
||||||
text=Flying. -- Lifelink. -- Whenever you gain life, put a +1/+1 counter on each creature you control.
|
text=Flying. -- Lifelink. -- Whenever you gain life, put a +1/+1 counter on each creature you control.
|
||||||
mana={3}{W}{W}
|
mana={3}{W}{W}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -19564,7 +19564,7 @@ toughness=4
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Cradle of Vitality
|
name=Cradle of Vitality
|
||||||
auto=@lifed(controller):pay({1}{W}) counter(1/1,thatmuch) target(creature)
|
auto=@lifeof(player):pay({1}{W}) counter(1/1,thatmuch) target(creature)
|
||||||
text=Whenever you gain life, you may pay {1}{W}. If you do, put a +1/+1 counter on target creature for each 1 life you gained.
|
text=Whenever you gain life, you may pay {1}{W}. If you do, put a +1/+1 counter on target creature for each 1 life you gained.
|
||||||
mana={3}{W}
|
mana={3}{W}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -23118,7 +23118,7 @@ subtype=Aura
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Debt to the Deathless
|
name=Debt to the Deathless
|
||||||
auto=@lifeloss(opponent):life:thatmuch controller
|
auto=@lifelostfoeof(player):life:thatmuch controller
|
||||||
auto=life:-twiceX opponent
|
auto=life:-twiceX opponent
|
||||||
text=Each opponent loses two times X life. You gain life equal to the life lost this way.
|
text=Each opponent loses two times X life. You gain life equal to the life lost this way.
|
||||||
mana={X}{W}{W}{B}{B}
|
mana={X}{W}{W}{B}{B}
|
||||||
@@ -27105,7 +27105,7 @@ toughness=2
|
|||||||
[card]
|
[card]
|
||||||
name=Drogskol Reaver
|
name=Drogskol Reaver
|
||||||
abilities=flying,double strike,lifelink
|
abilities=flying,double strike,lifelink
|
||||||
auto=@lifed(controller):draw:1 controller
|
auto=@lifeof(player):draw:1 controller
|
||||||
text=Flying, doublestrike, lifelink -- Whenever you gain life, draw a card.
|
text=Flying, doublestrike, lifelink -- Whenever you gain life, draw a card.
|
||||||
mana={5}{W}{U}
|
mana={5}{W}{U}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -31831,7 +31831,7 @@ type=Instant
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Exquisite Blood
|
name=Exquisite Blood
|
||||||
auto=@lifeloss(opponent):life:thatmuch controller
|
auto=@lifelostfoeof(player):life:thatmuch controller
|
||||||
text=Whenever an opponent loses life, you gain that much life.
|
text=Whenever an opponent loses life, you gain that much life.
|
||||||
mana={4}{B}
|
mana={4}{B}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -32502,7 +32502,7 @@ toughness=2
|
|||||||
#emblem ueot removes the effect, the ability acts an observer
|
#emblem ueot removes the effect, the ability acts an observer
|
||||||
[card]
|
[card]
|
||||||
name=False Cure
|
name=False Cure
|
||||||
auto=emblem transforms((,newability[@lifed(opponent):life:-twicethatmuch opponent],newability[@lifed(controller):life:-twicethatmuch controller])) ueot
|
auto=emblem transforms((,newability[@lifefoeof(player):life:-twicethatmuch opponent],newability[@lifeof(player):life:-twicethatmuch controller])) ueot
|
||||||
text=Until end of turn, whenever a player gains life, that player loses 2 life for each 1 life he or she gained.
|
text=Until end of turn, whenever a player gains life, that player loses 2 life for each 1 life he or she gained.
|
||||||
mana={B}{B}
|
mana={B}{B}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -52009,7 +52009,7 @@ toughness=3
|
|||||||
[card]
|
[card]
|
||||||
name=Kavu Predator
|
name=Kavu Predator
|
||||||
abilities=trample
|
abilities=trample
|
||||||
auto=@lifed(opponent):all(trigger[to]) dynamicability<!myfoe thatmuchcountersoneone tosrc!>
|
auto=@lifefoeof(player):all(trigger[to]) dynamicability<!myfoe thatmuchcountersoneone tosrc!>
|
||||||
text=Trample -- Whenever an opponent gains life, put that many +1/+1 counters on Kavu Predator.
|
text=Trample -- Whenever an opponent gains life, put that many +1/+1 counters on Kavu Predator.
|
||||||
mana={1}{G}
|
mana={1}{G}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -56111,7 +56111,7 @@ toughness=2
|
|||||||
[card]
|
[card]
|
||||||
name=Lich's Tomb
|
name=Lich's Tomb
|
||||||
abilities=cantlifelose
|
abilities=cantlifelose
|
||||||
auto=@lifeloss(controller):ability$!sacrifice notatarget(<storedthatmuch>*|mybattlefield)!$ controller
|
auto=@lifelostof(player):ability$!sacrifice notatarget(<storedthatmuch>*|mybattlefield)!$ controller
|
||||||
text=You don't lose the game for having 0 or less life. -- Whenever you lose life, sacrifice a permanent for each 1 life you lost. (Damage causes loss of life.)
|
text=You don't lose the game for having 0 or less life. -- Whenever you lose life, sacrifice a permanent for each 1 life you lost. (Damage causes loss of life.)
|
||||||
mana={4}
|
mana={4}
|
||||||
type=Artifact
|
type=Artifact
|
||||||
@@ -62319,7 +62319,7 @@ toughness=2
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Mindcrank
|
name=Mindcrank
|
||||||
auto=@lifeloss(opponent):deplete:thatmuch opponent
|
auto=@lifelostfoeof(player):deplete:thatmuch opponent
|
||||||
text=Whenever an opponent loses life, that player puts that many cards from the top of his or her library into his or her graveyard. (Damage dealt by sources without infect causes loss of life.)
|
text=Whenever an opponent loses life, that player puts that many cards from the top of his or her library into his or her graveyard. (Damage dealt by sources without infect causes loss of life.)
|
||||||
mana={2}
|
mana={2}
|
||||||
type=Artifact
|
type=Artifact
|
||||||
@@ -75488,7 +75488,7 @@ type=Instant
|
|||||||
name=Punishing Fire
|
name=Punishing Fire
|
||||||
target=creature,player
|
target=creature,player
|
||||||
auto=damage:2
|
auto=damage:2
|
||||||
autograveyard=@lifed(opponent):pay({R}) moveto(ownerhand)
|
autograveyard=@lifefoeof(player):pay({R}) moveto(ownerhand)
|
||||||
text=Punishing Fire deals 2 damage to target creature or player. -- Whenever an opponent gains life, you may pay {R}. If you do, return Punishing Fire from your graveyard to your hand.
|
text=Punishing Fire deals 2 damage to target creature or player. -- Whenever an opponent gains life, you may pay {R}. If you do, return Punishing Fire from your graveyard to your hand.
|
||||||
mana={1}{R}
|
mana={1}{R}
|
||||||
type=Instant
|
type=Instant
|
||||||
@@ -83325,7 +83325,7 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Sanguine Bond
|
name=Sanguine Bond
|
||||||
auto=@lifed(controller):dynamicability<!myself thatmuchlifeloss srcopponent!>
|
auto=@lifeof(player):dynamicability<!myself thatmuchlifeloss srcopponent!>
|
||||||
text=Whenever you gain life, target opponent loses that much life.
|
text=Whenever you gain life, target opponent loses that much life.
|
||||||
mana={3}{B}{B}
|
mana={3}{B}{B}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -85406,7 +85406,7 @@ type=Sorcery
|
|||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
name=Searing Meditation
|
name=Searing Meditation
|
||||||
auto=@lifed(controller):pay({2}) target(creature,player) damage:2
|
auto=@lifeof(player):pay({2}) target(creature,player) damage:2
|
||||||
text=Whenever you gain life, you may pay {2}. If you do, Searing Meditation deals 2 damage to target creature or player.
|
text=Whenever you gain life, you may pay {2}. If you do, Searing Meditation deals 2 damage to target creature or player.
|
||||||
mana={1}{R}{W}
|
mana={1}{R}{W}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -97584,7 +97584,7 @@ toughness=5
|
|||||||
[card]
|
[card]
|
||||||
name=Sunbond
|
name=Sunbond
|
||||||
target=creature
|
target=creature
|
||||||
auto=teach(creature) transforms((,newability[@lifed(controller):dynamicability<!myself thatmuchcountersoneone tosrc!>]))
|
auto=teach(creature) transforms((,newability[@lifeof(player):dynamicability<!myself thatmuchcountersoneone tosrc!>]))
|
||||||
text=Enchant creature -- Enchanted creature has "Whenever you gain life, put that many +1/+1 counters on this creature."
|
text=Enchant creature -- Enchanted creature has "Whenever you gain life, put that many +1/+1 counters on this creature."
|
||||||
mana={3}{W}
|
mana={3}{W}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -104153,7 +104153,7 @@ name=Transcendence
|
|||||||
abilities=cantlifelose
|
abilities=cantlifelose
|
||||||
auto=this(controllerlife > 19)while winGame opponent
|
auto=this(controllerlife > 19)while winGame opponent
|
||||||
auto=@damaged(controller):life:twicethatmuch controller
|
auto=@damaged(controller):life:twicethatmuch controller
|
||||||
auto=@lifeloss(controller):life:twicethatmuch controller
|
auto=@lifelostof(player):life:twicethatmuch controller
|
||||||
text=You don't lose the game for having 0 or less life. -- When you have 20 or more life, you lose the game. -- Whenever you lose life, you gain 2 life for each 1 life you lost. (Damage dealt to you causes you to lose life.)
|
text=You don't lose the game for having 0 or less life. -- When you have 20 or more life, you lose the game. -- Whenever you lose life, you gain 2 life for each 1 life you lost. (Damage dealt to you causes you to lose life.)
|
||||||
mana={3}{W}{W}{W}
|
mana={3}{W}{W}{W}
|
||||||
type=Enchantment
|
type=Enchantment
|
||||||
@@ -109620,7 +109620,7 @@ type=Sorcery
|
|||||||
[card]
|
[card]
|
||||||
name=Vizkopa Guildmage
|
name=Vizkopa Guildmage
|
||||||
auto={1}{W}{B}:target(creature) lifelink ueot
|
auto={1}{W}{B}:target(creature) lifelink ueot
|
||||||
auto={1}{W}{B}:name(lifeleech) emblem transforms((,newability[@lifed(controller):life:-thatmuch opponent])) ueot
|
auto={1}{W}{B}:name(lifeleech) emblem transforms((,newability[@lifeof(player):life:-thatmuch opponent])) ueot
|
||||||
text={1}{W}{B}: Target creature gains lifelink until end of turn. -- {1}{W}{B}: Whenever you gain life this turn, each opponent loses that much life.
|
text={1}{W}{B}: Target creature gains lifelink until end of turn. -- {1}{W}{B}: Whenever you gain life this turn, each opponent loses that much life.
|
||||||
mana={W}{B}
|
mana={W}{B}
|
||||||
type=Creature
|
type=Creature
|
||||||
@@ -110922,7 +110922,7 @@ toughness=5
|
|||||||
[card]
|
[card]
|
||||||
name=Wall of Limbs
|
name=Wall of Limbs
|
||||||
abilities=defender
|
abilities=defender
|
||||||
auto=@lifed(controller):counter(1/1,1)
|
auto=@lifeof(player):counter(1/1,1)
|
||||||
auto={5}{B}{B}{S}:name(Lose Life) target(player) life:-storedpower
|
auto={5}{B}{B}{S}:name(Lose Life) target(player) life:-storedpower
|
||||||
text=Defender (This creature can't attack.) -- Whenever you gain life, put a +1/+1 counter on Wall of Limbs. -- {5}{B}{B}, Sacrifice Wall of Limbs: Target player loses X life, where X is Wall of Limbs's power.
|
text=Defender (This creature can't attack.) -- Whenever you gain life, put a +1/+1 counter on Wall of Limbs. -- {5}{B}{B}, Sacrifice Wall of Limbs: Target player loses X life, where X is Wall of Limbs's power.
|
||||||
mana={2}{B}
|
mana={2}{B}
|
||||||
|
|||||||
@@ -1342,9 +1342,9 @@ class TrLifeGained: public Trigger
|
|||||||
public:
|
public:
|
||||||
TargetChooser * fromTc;
|
TargetChooser * fromTc;
|
||||||
int type;//this allows damagenoncombat and combatdamage to share this trigger
|
int type;//this allows damagenoncombat and combatdamage to share this trigger
|
||||||
bool sourceUntapped;
|
bool sourceUntapped, thiscontroller, thisopponent;
|
||||||
TrLifeGained(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0,bool sourceUntapped = false,bool once = false) :
|
TrLifeGained(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0,bool sourceUntapped = false,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
|
||||||
Trigger(observer, id, source, once , tc), fromTc(fromTc), type(type) , sourceUntapped(sourceUntapped)
|
Trigger(observer, id, source, once , tc), fromTc(fromTc), type(type) , sourceUntapped(sourceUntapped) , thiscontroller(thiscontroller) , thisopponent(thisopponent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1358,6 +1358,12 @@ public:
|
|||||||
if (fromTc && !fromTc->canTarget(e->player)) return 0;
|
if (fromTc && !fromTc->canTarget(e->player)) return 0;
|
||||||
if (type == 1 && (e->amount > 0)) return 0;
|
if (type == 1 && (e->amount > 0)) return 0;
|
||||||
if (type == 0 && (e->amount < 0)) return 0;
|
if (type == 0 && (e->amount < 0)) return 0;
|
||||||
|
if(thiscontroller)
|
||||||
|
if(e->player != source->controller())
|
||||||
|
return 0;
|
||||||
|
if(thisopponent)
|
||||||
|
if(e->player == source->controller())
|
||||||
|
return 0;
|
||||||
e->player->thatmuch = abs(e->amount);
|
e->player->thatmuch = abs(e->amount);
|
||||||
this->source->thatmuch = abs(e->amount);
|
this->source->thatmuch = abs(e->amount);
|
||||||
|
|
||||||
|
|||||||
@@ -871,14 +871,42 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
|||||||
return NEW TrDamaged(observer, id, card, tc, fromTc, 0,sourceUntapped,limitOnceATurn,once);
|
return NEW TrDamaged(observer, id, card, tc, fromTc, 0,sourceUntapped,limitOnceATurn,once);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Lifed
|
//Lifed current controller
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "lifeof", card))
|
||||||
|
{
|
||||||
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
|
return NEW TrLifeGained(observer, id, card, tc, fromTc, 0,sourceUntapped,once,true,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Lifed current opponent
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "lifefoeof", card))
|
||||||
|
{
|
||||||
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
|
return NEW TrLifeGained(observer, id, card, tc, fromTc, 0,sourceUntapped,once,false,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Lifed static
|
||||||
if (TargetChooser * tc = parseSimpleTC(s, "lifed", card))
|
if (TargetChooser * tc = parseSimpleTC(s, "lifed", card))
|
||||||
{
|
{
|
||||||
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
return NEW TrLifeGained(observer, id, card, tc, fromTc, 0,sourceUntapped,once);
|
return NEW TrLifeGained(observer, id, card, tc, fromTc, 0,sourceUntapped,once);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Life Loss
|
//Life Loss current player
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "lifelostof", card))
|
||||||
|
{
|
||||||
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
|
return NEW TrLifeGained(observer, id, card, tc, fromTc,1,sourceUntapped,once,true,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Life Loss current opponent
|
||||||
|
if (TargetChooser * tc = parseSimpleTC(s, "lifelostfoeof", card))
|
||||||
|
{
|
||||||
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
|
return NEW TrLifeGained(observer, id, card, tc, fromTc,1,sourceUntapped,once,false,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Life Loss static
|
||||||
if (TargetChooser * tc = parseSimpleTC(s, "lifeloss", card))
|
if (TargetChooser * tc = parseSimpleTC(s, "lifeloss", card))
|
||||||
{
|
{
|
||||||
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
TargetChooser *fromTc = parseSimpleTC(s, "from", card);
|
||||||
|
|||||||
Reference in New Issue
Block a user