Fixed all primitives with damage modifier, improved "damaged" trigger for Planeswalkers.

This commit is contained in:
Vittorio Alfieri
2021-10-15 13:36:31 +02:00
parent eb35e3589b
commit 984aac51f4
4 changed files with 84 additions and 106 deletions
+4 -1
View File
@@ -2,8 +2,11 @@
## [master] (https://github.com/WagicProject/wagic/tree/master) ## [master] (https://github.com/WagicProject/wagic/tree/master)
### 15/10/21
- *Committed:* Fixed all primitives with damage modifier, improved "damaged" trigger for Planeswalkers. ([Vitty85](https://github.com/Vitty85))
### 14/10/21 ### 14/10/21
- *Committed:* Fixed primitives, improved Aftermath casting rule: now the casted card becomes instant or sorcery in the stack according to the casted half, fixed a bug with the previous zone of cards casted using the "putinplay" option of "castcard" keyword. ([Vitty85](https://github.com/Vitty85)) - *Committed:* Fixed primitives, improved Aftermath casting rule: now the casted card becomes instant or sorcery in the stack according to the casted half, fixed a bug with the previous zone of cards casted using the "putinplay" option of "castcard" keyword. https://github.com/WagicProject/wagic/commit/eb35e3589bae52d9fa35f1bcefbede9763f13289 ([Vitty85](https://github.com/Vitty85))
### 13/10/21 ### 13/10/21
- *Committed:* Fixed primitives, added new ability "hasaftermath" to implement Aftermath cost with Flashback and refactored all cards with Aftermath cost (now they use a special version of Flashback but they don't count as flashback spell), added a new ability "spellmover" to implement all cards that have to target a spell on stack to move to some other zone (they are not real counters so they don't care about "nofizzle" or "nofizzlealternative" abilites of their target), fixed all primitives with "spellmover" ability, added a new keyword "storedname" to target card with a specifc previously stored name, improved "fizzleto" ability in order to allow to move the fizzled card on second place from the top or to exile and imprint the target name. https://github.com/WagicProject/wagic/commit/9c2eee7d7e74f0f494339b10f4f1c3279076bd50 ([Vitty85](https://github.com/Vitty85)) - *Committed:* Fixed primitives, added new ability "hasaftermath" to implement Aftermath cost with Flashback and refactored all cards with Aftermath cost (now they use a special version of Flashback but they don't count as flashback spell), added a new ability "spellmover" to implement all cards that have to target a spell on stack to move to some other zone (they are not real counters so they don't care about "nofizzle" or "nofizzlealternative" abilites of their target), fixed all primitives with "spellmover" ability, added a new keyword "storedname" to target card with a specifc previously stored name, improved "fizzleto" ability in order to allow to move the fizzled card on second place from the top or to exile and imprint the target name. https://github.com/WagicProject/wagic/commit/9c2eee7d7e74f0f494339b10f4f1c3279076bd50 ([Vitty85](https://github.com/Vitty85))
@@ -1955,15 +1955,15 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Angrath's Marauders name=Angrath's Marauders
auto=@damaged(creature) from(*[instant;sorcery]|mystack,myGraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature|myBattlefield) from(*[-Angrath's Marauders]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature|opponentBattlefield) from(*[-Angrath's Marauders]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(creature[-Angrath's Marauders]|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to]) auto=@combatdamaged(creature|opponentBattlefield) from(this):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(creature[Angrath's Marauders]|mybattlefield,myGraveyard):thisforeach(variable{thatmuch}) all(trigger[to]) transform((,newability[0/-1])) oneshot auto=@damageof(player) from(*[-Angrath's Marauders]|myzones):damage:thatmuch controller
auto=@damaged(player) from(*[instant;sorcery]|mystack,myGraveyard):damage:thatmuch all(trigger[to]) auto=@damagefoeof(player) from(*[-Angrath's Marauders]|*):damage:thatmuch opponent
auto=@damaged(player) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(creature[-Angrath's Marauders]|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to])
auto=@combatdamagefoeof(player) from(this):damage:thatmuch all(trigger[to]) auto=@combatdamagefoeof(player) from(this):damage:thatmuch all(trigger[to])
auto=@counterremoved(duplicateAll) from(planeswalker|opponentBattlefield) restriction{myTurnOnly}:donothing auto=@damaged(planeswalker|myBattlefield) from(*[-Angrath's Marauders]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(planeswalker|opponentBattlefield) from(*[-Angrath's Marauders]|*):damage:thatmuch all(trigger[to])
auto=@combatdamaged(planeswalker|opponentBattlefield) from(this):damage:thatmuch all(trigger[to])
text=If a source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead. text=If a source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead.
mana={5}{R}{R} mana={5}{R}{R}
type=Creature type=Creature
@@ -2143,16 +2143,12 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Anthem of Rakdos name=Anthem of Rakdos
auto=@damaged(creature) from(*[instant;sorcery]|mystack,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to]) auto=@damaged(creature|myBattlefield) from(*[-Anthem of Rakdos]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to]) auto=@damaged(creature|opponentBattlefield) from(*[-Anthem of Rakdos]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(creature[-Angrath's Marauders]|mybattlefield,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to]) auto=@damageof(player) from(*[-Anthem of Rakdos]|myzones):damage:thatmuch controller
auto=@damaged(creature) from(creature[Angrath's Marauders]|mybattlefield,myGraveyard) restriction{type(*|myhand)~lessthan~1}:thisforeach(variable{thatmuch}) all(trigger[to]) transform((,newability[0/-1])) oneshot auto=@damagefoeof(player) from(*[-Anthem of Rakdos]|*):damage:thatmuch opponent
auto=@damaged(player) from(*[instant;sorcery]|mystack,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to]) auto=@combat(attacking) source(creature|myBattlefield):name(Attacking creature gets 2/0) all(trigger[to]) transforms((,newability[2/0])) ueot
auto=@damaged(player) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to]) auto=@combat(attacking) source(creature|myBattlefield):name(Deal 1 damage) damage:1 controller
auto=@damaged(player) from(creature[-Angrath's Marauders]|mybattlefield,myGraveyard) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to])
auto=@combatdamagefoeof(player) from(this) restriction{type(*|myhand)~lessthan~1}:damage:thatmuch all(trigger[to])
auto=@counterremoved(duplicateAll) from(planeswalker|opponentBattlefield) restriction{restriction{type(*|myhand)~lessthan~1},myTurnOnly}:donothing
auto=lord(creature[attacking]|myBattlefield) 2/0 ueot && damage:1 controller
text=Whenever a creature you control attacks, it gets +2/+0 until end of turn and Anthem of Rakdos deals 1 damage to you. -- Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead. text=Whenever a creature you control attacks, it gets +2/+0 until end of turn and Anthem of Rakdos deals 1 damage to you. -- Hellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.
mana={2}{B}{R}{R} mana={2}{B}{R}{R}
type=Enchantment type=Enchantment
@@ -9122,9 +9118,12 @@ toughness=3
[/card] [/card]
[card] [card]
name=Calamity Bearer name=Calamity Bearer
auto=@damaged(creature) from(*[giant]|myzones):all(trigger[to]) damage:thatmuch auto=@damaged(creature|myBattlefield) from(*[giant]|myzones):damage:thatmuch all(trigger[to])
auto=@damagefoeof(player) from(*[giant]|myzones):damage:thatmuch opponent auto=@damaged(creature|opponentBattlefield) from(*[giant]|*):damage:thatmuch all(trigger[to])
auto=@damageof(player) from(*[giant]|myzones):damage:thatmuch controller auto=@damageof(player) from(*[giant]|myzones):damage:thatmuch controller
auto=@damagefoeof(player) from(*[giant]|*):damage:thatmuch opponent
auto=@damaged(planeswalker|myBattlefield) from(*[giant]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(planeswalker|opponentBattlefield) from(*[giant]|*):damage:thatmuch all(trigger[to])
text=If a Giant source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead. text=If a Giant source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead.
mana={2}{R}{R} mana={2}{R}{R}
type=Creature type=Creature
@@ -14654,9 +14653,7 @@ toughness=3
[card] [card]
name=Curse of Bloodletting name=Curse of Bloodletting
target=opponent target=opponent
auto=@damaged(targetedplayer) from(*[instant;sorcery]|*):damage:thatmuch opponent auto=@damaged(targetedplayer) from(*[-Curse of Bloodletting]|*):damage:thatmuch opponent
auto=@damaged(targetedplayer) from(*[creature;artifact;land;planeswalker]|*):damage:thatmuch opponent
auto=@damaged(targetedplayer) from(enchantment[-Curse of Bloodletting]|*):damage:thatmuch opponent
text=Enchant player -- If a source would deal damage to enchanted player, it deals double that damage to that player instead. text=Enchant player -- If a source would deal damage to enchanted player, it deals double that damage to that player instead.
mana={3}{R}{R} mana={3}{R}{R}
type=Enchantment type=Enchantment
@@ -17307,14 +17304,9 @@ toughness=3
[card] [card]
name=Dictate of the Twin Gods name=Dictate of the Twin Gods
abilities=flash abilities=flash
auto=@damaged(creature) from(*[instant;sorcery]|Stack,graveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature) from(*[-Dictate of the Twin Gods]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(*[creature;artifact;land;planeswalker]|battlefield,graveyard):damage:thatmuch all(trigger[to]) auto=@damaged(player) from(*[-Dictate of the Twin Gods]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(enchantment[-Dictate of the Twin Gods]|battlefield,graveyard):damage:thatmuch all(trigger[to]) auto=@damaged(planeswalker) from(*[-Dictate of the Twin Gods]|*):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(*[instant;sorcery]|Stack,graveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(*[creature;artifact;land;planeswalker]|battlefield,graveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(enchantment[-Dictate of the Twin Gods]|battlefield,graveyard):damage:thatmuch all(trigger[to])
auto=@counterremoved(duplicateAll) from(planeswalker|opponentBattlefield) restriction{myTurnOnly}:donothing
auto=@counterremoved(duplicateAll) from(planeswalker|myBattlefield) restriction{opponentTurnOnly}:donothing
text=Flash -- If a source would deal damage to a permanent or player, it deals double that damage to that permanent or player instead. text=Flash -- If a source would deal damage to a permanent or player, it deals double that damage to that permanent or player instead.
mana={3}{R}{R} mana={3}{R}{R}
type=Enchantment type=Enchantment
@@ -20695,15 +20687,10 @@ toughness=3
[card] [card]
name=Embermaw Hellion name=Embermaw Hellion
abilities=trample abilities=trample
auto=@damaged(*|battlefield) from(*[instant;sorcery;red]|mystack,myGraveyard):all(trigger[to]) transforms((,newability[damage:1])) oneshot auto=@damaged(*|mybattlefield) from(other *[red]|myzones):all(trigger[to]) damage:1
auto=@damaged(*|battlefield) from(*[enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):all(trigger[to]) transforms((,newability[damage:1])) oneshot auto=@damaged(*|opponentbattlefield) from(other *[red]|*):all(trigger[to]) damage:1
auto=@damaged(*|battlefield) from(other creature[red]|mybattlefield,myGraveyard):all(trigger[to]) transforms((,newability[damage:1])) oneshot auto=@damageof(player) from(other *[red]|myzones):damage:1 controller
auto=@damagefoeof(player) from(*[instant;sorcery;red]|mystack,myGraveyard):ability$!name(Damage opponent) damage:1 opponent!$ controller auto=@damagefoeof(player) from(other *[red]|*):damage:1 opponent
auto=@damagefoeof(player) from(*[enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):ability$!name(Damage opponent) damage:1 opponent!$ controller
auto=@damagefoeof(player) from(other creature[red]|mybattlefield,myGraveyard):ability$!name(Damage opponent) damage:1 opponent!$ controller
auto=@damageof(player) from(*[instant;sorcery;red]|mystack,myGraveyard):ability$!name(Damage controller) damage:1 controller!$ controller
auto=@damageof(player) from(*[enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):ability$!name(Damage controller) damage:1 controller!$ controller
auto=@damageof(player) from(other creature[red]|mybattlefield,myGraveyard):ability$!name(Damage controller) damage:1 controller!$ controller
text=Trample (This creature can deal excess combat damage to defending player or planeswalker while attacking.) -- If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead. text=Trample (This creature can deal excess combat damage to defending player or planeswalker while attacking.) -- If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead.
mana={3}{R}{R} mana={3}{R}{R}
type=Creature type=Creature
@@ -23677,10 +23664,8 @@ toughness=3
[card] [card]
name=Fiendish Duo name=Fiendish Duo
abilities=First strike abilities=First strike
auto=@damagefoeof(player) from(*[instant;sorcery]|stack,Graveyard):damage:thatmuch all(trigger[to]) auto=@damagefoeof(player) from(*[-Fiendish Duo]|myzones):damage:thatmuch opponent
auto=@damagefoeof(player) from(*[enchantment;artifact;land;planeswalker]|battlefield,Graveyard):damage:thatmuch all(trigger[to]) auto=@combatdamagefoeof(player) from(this):damage:thatmuch opponent
auto=@damagefoeof(player) from(creature[-Fiendish Duo]|battlefield,Graveyard):damage:thatmuch all(trigger[to])
auto=@combatdamagefoeof(player) from(this):damage:thatmuch all(trigger[to])
text=First strike -- If a source would deal damage to an opponent, it deals double that damage to that player instead. text=First strike -- If a source would deal damage to an opponent, it deals double that damage to that player instead.
mana={4}{R}{R} mana={4}{R}{R}
type=Creature type=Creature
@@ -24052,8 +24037,12 @@ type=Instant
[/card] [/card]
[card] [card]
name=Fire Servant name=Fire Servant
auto=@damaged(creature) from(*[instant;sorcery;red]|myStack,mygraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature|myBattlefield) from(*[instant;sorcery;red]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(*[instant;sorcery;red]|myStack,mygraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature|opponentBattlefield) from(*[instant;sorcery;red]|*):damage:thatmuch all(trigger[to])
auto=@damageof(player) from(*[instant;sorcery;red]|myzones):damage:thatmuch controller
auto=@damagefoeof(player) from(*[instant;sorcery;red]|*):damage:thatmuch opponent
auto=@damaged(planeswalker|myBattlefield) from(*[instant;sorcery;red]|myzones):damage:thatmuch all(trigger[to])
auto=@damaged(planeswalker|opponentBattlefield) from(*[instant;sorcery;red]|*):damage:thatmuch all(trigger[to])
text=If a red instant or sorcery spell you control would deal damage, it deals double that damage instead. text=If a red instant or sorcery spell you control would deal damage, it deals double that damage instead.
mana={3}{R}{R} mana={3}{R}{R}
type=Creature type=Creature
@@ -25947,12 +25936,8 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Furnace of Rath name=Furnace of Rath
auto=@damaged(creature) from(*[instant;sorcery]|stack,Graveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature) from(*[-Furnace of Rath]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(*[creature;artifact;land;planeswalker]|battlefield,Graveyard):damage:thatmuch all(trigger[to]) auto=@damaged(player) from(*[-Furnace of Rath]|*):damage:thatmuch all(trigger[to])
auto=@damaged(creature) from(enchantment[-Furnace of Rath]|battlefield,Graveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(*[instant;sorcery]|stack,Graveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(*[creature;artifact;land;planeswalker]|battlefield,Graveyard):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(enchantment[-Furnace of Rath]|battlefield,Graveyard):damage:thatmuch all(trigger[to])
text=If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead. text=If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.
mana={1}{R}{R}{R} mana={1}{R}{R}{R}
type=Enchantment type=Enchantment
@@ -28287,11 +28272,7 @@ type=Sorcery
[card] [card]
name=Goblin Goliath name=Goblin Goliath
auto=token(Goblin,Creature Goblin,1/1,red) auto=token(Goblin,Creature Goblin,1/1,red)
auto={3}{R}{T}:lord(*|mybattlefield) transforms((DoubleActive)) ueot auto={3}{R}{T}:name(Double damage) transforms((,newability[@damagefoeof(player) from(*[-Goblin Goliath]|*):damage:thatmuch opponent],newability[@combatdamagefoeof(player) from(this):damage:thatmuch opponent])) ueot
auto=@damagefoeof(player) from(*[instant;sorcery]|mystack,myGraveyard) restriction{type(*[DoubleActive]|mybattlefield)~morethan~0}:damage:thatmuch all(trigger[to])
auto=@damagefoeof(player) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,myGraveyard) restriction{type(*[DoubleActive]|mybattlefield)~morethan~0}:damage:thatmuch all(trigger[to])
auto=@damagefoeof(player) from(creature[-Goblin Goliath]|mybattlefield,myGraveyard) restriction{type(*[DoubleActive]|mybattlefield)~morethan~0}:damage:thatmuch all(trigger[to])
auto=@combatdamagefoeof(player) from(this) restriction{type(*[DoubleActive]|mybattlefield)~morethan~0}:damage:thatmuch all(trigger[to])
text=When Goblin Goliath enters the battlefield, create a number of 1/1 red Goblin creature tokens equal to the number of opponents you have. -- {3}{R}, {T}: If a source you control would deal damage to an opponent this turn, it deals double that damage to that player instead. text=When Goblin Goliath enters the battlefield, create a number of 1/1 red Goblin creature tokens equal to the number of opponents you have. -- {3}{R}, {T}: If a source you control would deal damage to an opponent this turn, it deals double that damage to that player instead.
mana={4}{R}{R} mana={4}{R}{R}
type=Creature type=Creature
@@ -28769,13 +28750,10 @@ type=Artifact Land
[card] [card]
name=Goldnight Castigator name=Goldnight Castigator
abilities=flying,haste abilities=flying,haste
auto=@damaged(this) from(*[instant;sorcery]|stack,graveyard):damage:thatmuch all(this) auto=@damaged(this) from(*[-Goldnight Castigator]|*):damage:thatmuch all(this)
auto=@damaged(this) from(*[enchantment;artifact;land;planeswalker]|battlefield,graveyard):damage:thatmuch all(this) auto=@combatdamaged(this) from(creature[Goldnight Castigator]|opponentBattlefield):damage:thatmuch all(this)
auto=@damaged(this) from(creature[-Goldnight Castigator]|battlefield,graveyard):damage:thatmuch all(this) auto=@damageof(player) from(*[-Goldnight Castigator]|*):damage:thatmuch all(trigger[to])
auto=@combatdamaged(this) from(creature[Goldnight Castigator]|battlefield,graveyard):damage:thatmuch all(this) auto=@combatdamageof(player) from(creature[Goldnight Castigator]|opponentBattlefield):damage:thatmuch controller
auto=@damageof(player) from(*[instant;sorcery]|mystack,graveyard):damage:thatmuch all(trigger[to])
auto=@damageof(player) from(*[enchantment;artifact;land;planeswalker]|mybattlefield,graveyard):damage:thatmuch all(trigger[to])
auto=@damageof(player) from(creature[-Goldnight Castigator]|mybattlefield,graveyard):damage:thatmuch all(trigger[to])
text=Flying, haste -- If a source would deal damage to you, it deals double that damage to you instead. -- If a source would deal damage to Goldnight Castigator, it deals double that damage to Goldnight Castigator instead. text=Flying, haste -- If a source would deal damage to you, it deals double that damage to you instead. -- If a source would deal damage to Goldnight Castigator, it deals double that damage to Goldnight Castigator instead.
mana={2}{R}{R} mana={2}{R}{R}
type=Creature type=Creature
@@ -29234,8 +29212,8 @@ toughness=1
[/card] [/card]
[card] [card]
name=Gratuitous Violence name=Gratuitous Violence
auto=@damaged(creature) from(creature|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(creature) from(creature|mybattlefield):damage:thatmuch all(trigger[to])
auto=@damaged(player) from(creature|mybattlefield,myGraveyard):damage:thatmuch all(trigger[to]) auto=@damaged(player) from(creature|mybattlefield):damage:thatmuch all(trigger[to])
text=If a creature you control would deal damage to a creature or player, it deals double that damage to that creature or player instead. text=If a creature you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.
mana={2}{R}{R}{R} mana={2}{R}{R}{R}
type=Enchantment type=Enchantment
@@ -34739,6 +34717,7 @@ auto={2}:equip
auto=@combatdamageof(player) from(mytgt):damage:thatmuch controller auto=@combatdamageof(player) from(mytgt):damage:thatmuch controller
auto=@combatdamagefoeof(player) from(mytgt):damage:thatmuch opponent auto=@combatdamagefoeof(player) from(mytgt):damage:thatmuch opponent
auto=@combatdamaged(creature) from(mytgt):all(trigger[to]) damage:thatmuch auto=@combatdamaged(creature) from(mytgt):all(trigger[to]) damage:thatmuch
auto=@combatdamaged(planeswalker) from(mytgt):all(trigger[to]) damage:thatmuch
auto=teach(creature) transforms((,newability[@combatdamaged(this):damage:thatmuch all(this)])) auto=teach(creature) transforms((,newability[@combatdamaged(this):damage:thatmuch all(this)]))
text=If equipped creature would deal combat damage, it deals double that damage instead. -- If another creature would deal combat damage to equipped creature, it deals double that damage to equipped creature instead. -- Equip {2} text=If equipped creature would deal combat damage, it deals double that damage instead. -- If another creature would deal combat damage to equipped creature, it deals double that damage to equipped creature instead. -- Equip {2}
mana={2} mana={2}
@@ -34996,17 +34975,8 @@ name=Insult // Injury
abilities=hasaftermath abilities=hasaftermath
otherrestriction=type(creature|battlefield)~morethan~0 otherrestriction=type(creature|battlefield)~morethan~0
flashback={2}{R} name(Injury) flashback={2}{R} name(Injury)
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(creature) from(*[creature;artifact;enchantment;land;planeswalker]|mybattlefield):damage:thatmuch all(trigger[to])])) ueot auto=ifnot paid(flashback) then token(Insult Emblem,Emblem,0/0,shroud,indestructible,notrigger,unearth) and!( transforms((,newability[@damaged(planeswalker|opponentBattlefield) from(*[-Insult Emblem]|*):damage:thatmuch all(trigger[to])],newability[@damaged(creature|opponentBattlefield) from(*[-Insult Emblem]|*):damage:thatmuch all(trigger[to])],newability[@damagefoeof(player) from(*[-Insult Emblem]|*):damage:thatmuch opponent],newability[@damaged(planeswalker|myBattlefield) from(*[-Insult Emblem]|myzones):damage:thatmuch all(trigger[to])],newability[@damaged(creature|myBattlefield) from(*[-Insult Emblem]|myzones):damage:thatmuch all(trigger[to])],newability[@damageof(player) from(*[-Insult Emblem]|myzones):damage:thatmuch controller])) ueot )!
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(creature) from(*[creature;artifact;enchantment;land;planeswalker]|mygraveyard):damage:thatmuch all(trigger[to])])) ueot auto=if paid(flashback) then choice name(Damage creature) name(Damage creature) damage:2 target(creature|battlefield) && ability$!name(Damage player) name(Damage player) damage:2 target(player)!$ controller
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(creature) from(*[instant;sorcery]|myStack):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(creature) from(*[instant;sorcery]|mygraveyard):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(player) from(*[instant;sorcery]|myStack):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(player) from(*[instant;sorcery]|mygraveyard):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(player) from(*[creature;artifact;enchantment;land;planeswalker]|mybattlefield):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@damaged(player) from(*[creature;artifact;enchantment;land;planeswalker]|mygraveyard):damage:thatmuch all(trigger[to])])) ueot
auto=ifnot paid(flashback) then emblem transforms((,newability[@counterremoved(duplicateAll) from(planeswalker|opponentBattlefield) restriction{myTurnOnly}:donothing])) ueot
auto=if paid(flashback) then choice name(Damage opponent and target creature) name(Damage opponent and target creature) damage:2 opponent && damage:2 target(creature)
auto=if paid(flashback) then choice name(Damage yourself and target creature) name(Damage yourself and target creature) damage:2 controller && damage:2 target(creature)
text=Damage can't be prevented this turn. If a source you control would deal damage this turn, it deals double that damage instead. -- Aftermath (Cast this spell only from your graveyard. Then exile it.) Injury deals 2 damage to target creature and 2 damage to target player. text=Damage can't be prevented this turn. If a source you control would deal damage this turn, it deals double that damage instead. -- Aftermath (Cast this spell only from your graveyard. Then exile it.) Injury deals 2 damage to target creature and 2 damage to target player.
mana={2}{R} mana={2}{R}
type=Sorcery type=Sorcery
@@ -52277,12 +52247,18 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Pyromancer's Gauntlet name=Pyromancer's Gauntlet
auto=@damaged(*|opponentBattlefield) from(instant[red]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(*|myBattlefield) from(instant[red]|myzones):all(trigger[to]) damage:2
auto=@damaged(*|opponentBattlefield) from(sorcery[red]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(*|myBattlefield) from(sorcery[red]|myzones):all(trigger[to]) damage:2
auto=@damaged(*|opponentBattlefield) from(planeswalker[red]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(*|myBattlefield) from(planeswalker[red]|myzones):all(trigger[to]) damage:2
auto=@damagefoeof(player) from(instant[red]|myzones):name(Damage opponent) damage:2 opponent auto=@damaged(*|opponentBattlefield) from(instant[red]|*):all(trigger[to]) damage:2
auto=@damagefoeof(player) from(sorcery[red]|myzones):name(Damage opponent) damage:2 opponent auto=@damaged(*|opponentBattlefield) from(sorcery[red]|*):all(trigger[to]) damage:2
auto=@damagefoeof(player) from(planeswalker[red]|myzones):name(Damage opponent) damage:2 opponent auto=@damaged(*|opponentBattlefield) from(planeswalker[red]|*):all(trigger[to]) damage:2
auto=@damageof(player) from(instant[red]|myzones):damage:2 opponent
auto=@damageof(player) from(sorcery[red]|myzones):damage:2 opponent
auto=@damageof(player) from(planeswalker[red]|myzones):damage:2 opponent
auto=@damagefoeof(player) from(instant[red]|*):damage:2 opponent
auto=@damagefoeof(player) from(sorcery[red]|*):damage:2 opponent
auto=@damagefoeof(player) from(planeswalker[red]|*):damage:2 opponent
text=If a red instant or sorcery spell you control or a red planeswalker you control would deal damage to a permanent or player, it deals that much damage plus 2 to that permanent or player instead. text=If a red instant or sorcery spell you control or a red planeswalker you control would deal damage to a permanent or player, it deals that much damage plus 2 to that permanent or player instead.
mana={5} mana={5}
type=Artifact type=Artifact
@@ -52296,8 +52272,10 @@ type=Legendary Artifact
[/card] [/card]
[card] [card]
name=Pyromancer's Swath name=Pyromancer's Swath
auto=@damaged(*|opponentBattlefield) from(*[instant;sorcery]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(creature|myBattlefield) from(*[instant;sorcery]|myzones):all(trigger[to]) damage:2
auto=@damagefoeof(player) from(*[instant;sorcery]|myzones):name(Damage opponent) damage:2 opponent auto=@damaged(creature|opponentBattlefield) from(*[instant;sorcery]|*):all(trigger[to]) damage:2
auto=@damageof(player) from(*[instant;sorcery]|myzones):damage:2 opponent
auto=@damagefoeof(player) from(*[instant;sorcery]|*):damage:2 opponent
auto=@each endofturn:name(Discard hand) all(*|myhand) reject auto=@each endofturn:name(Discard hand) all(*|myhand) reject
text=If an instant or sorcery source you control would deal damage to a creature or player, it deals that much damage plus 2 to that creature or player instead. -- At the beginning of each end step, discard your hand. text=If an instant or sorcery source you control would deal damage to a creature or player, it deals that much damage plus 2 to that creature or player instead. -- At the beginning of each end step, discard your hand.
mana={2}{R} mana={2}{R}
@@ -52614,11 +52592,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Quest for Pure Flame name=Quest for Pure Flame
auto=@damagefoeof(player) from(*[instant;sorcery]|stack,Graveyard):name(Put Quest counter) counter(0/0.1.quest) auto=@damagefoeof(player):may name(Put Quest counter) counter(0/0,1,Quest)
auto=@damagefoeof(player) from(*[enchantment;artifact;land;planeswalker]|battlefield,Graveyard):name(Put Quest counter) counter(0/0.1.quest) auto={S} restriction{compare(hascntquest)~morethan~3}:name(Sacrifice and double damage) emblem transforms((,newability[@damaged(creature|myBattlefield) from(*[-Quest for Pure Flame]|myzones):damage:thatmuch all(trigger[to])],newability[@damaged(creature|opponentBattlefield) from(*[-Quest for Pure Flame]|*):damage:thatmuch all(trigger[to])],newability[@damageof(player) from(*[-Quest for Pure Flame]|myzones):damage:thatmuch controller],newability[@damagefoeof(player) from(*[-Quest for Pure Flame]|*):damage:thatmuch opponent],newability[@damaged(planeswalker|myBattlefield) from(*[-Quest for Pure Flame]|myzones):damage:thatmuch all(trigger[to])],newability[@damaged(planeswalker|opponentBattlefield) from(*[-Quest for Pure Flame]|*):damage:thatmuch all(trigger[to])])) ueot dontremove
auto=@damagefoeof(player) from(creature[-Fiendish Duo]|battlefield,Graveyard):name(Put Quest counter) counter(0/0.1.quest)
auto=@combatdamagefoeof(player) from(this):damage:name(Put Quest counter) counter(0/0.1.quest)
auto={S} restriction{compare(hascntquest)~morethan~3}:name(Sacrifice and double damage) emblem transforms((,newability[@damagefoeof(player) from(*[instant;sorcery]|myzones):damage:thatmuch all(trigger[to])],newability[@damagefoeof(player) from(*[creature;artifact;land;planeswalker]|myzones):damage:thatmuch all(trigger[to])],newability[@damagefoeof(player) from(enchantment[-Quest for Pure Flame]|myzones):damage:thatmuch all(trigger[to])])) ueot dontremove
text=Whenever a source you control deals damage to an opponent, you may put a quest counter on Quest for Pure Flame. -- Remove four quest counters from Quest for Pure Flame and sacrifice it: If any source you control would deal damage to a creature or player this turn, it deals double that damage to that creature or player instead. text=Whenever a source you control deals damage to an opponent, you may put a quest counter on Quest for Pure Flame. -- Remove four quest counters from Quest for Pure Flame and sacrifice it: If any source you control would deal damage to a creature or player this turn, it deals double that damage to that creature or player instead.
mana={R} mana={R}
type=Enchantment type=Enchantment
@@ -54555,7 +54530,7 @@ abilities=flying,haste
auto=preventalldamage to(controller) from(*|stack) auto=preventalldamage to(controller) from(*|stack)
auto=preventalldamage to(*|mybattlefield) from(*|stack) auto=preventalldamage to(*|mybattlefield) from(*|stack)
auto=@damaged(*|opponentbattlefield) from(*|stack):all(trigger[to]) damage:1 auto=@damaged(*|opponentbattlefield) from(*|stack):all(trigger[to]) damage:1
auto=@damagefoeof(player) from(*|stack):ability$!name(Damage opponent) name(Damage opponent) damage:1 opponent!$ controller auto=@damagefoeof(player) from(*|stack):damage:1 opponent
text=Flying, haste -- If a spell would deal damage to you or another permanent you control, prevent that damage. -- If a spell would deal damage to an opponent or a permanent an opponent controls, it deals that much damage plus 1 instead. text=Flying, haste -- If a spell would deal damage to you or another permanent you control, prevent that damage. -- If a spell would deal damage to an opponent or a permanent an opponent controls, it deals that much damage plus 1 instead.
type=Legendary Creature type=Legendary Creature
subtype=Human Knight subtype=Human Knight
@@ -69971,10 +69946,10 @@ auto=@each my firstmain:counter(0/0,1,Lore)
auto=all(*|myhand) reject auto=all(*|myhand) reject
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) draw:2 controller auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) draw:2 controller
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}=) moveto(myhand) target(*[land;creature]|mygraveyard) auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}=) moveto(myhand) target(*[land;creature]|mygraveyard)
auto=@damaged(creature|opponentBattlefield) from(*[instant;sorcery;red]|mystack,myGraveyard):this(counter{0/0.3.Lore}=) all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(creature|opponentBattlefield) from(*[-The Flame of Keld;red]|*) restriction{compare(hascntlore)~equalto~3}:all(trigger[to]) damage:2
auto=@damaged(creature|opponentBattlefield) from(*[creature;enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):this(counter{0/0.3.Lore}=) all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(creature|myBattlefield) from(*[-The Flame of Keld;red]|myzones) restriction{compare(hascntlore)~equalto~3}:all(trigger[to]) damage:2
auto=@damagefoeof(player) from(*[instant;sorcery;red]|mystack,myGraveyard):this(counter{0/0.3.Lore}=) ability$!name(Damage opponent) damage:2 opponent!$ controller auto=@damageof(player) from(*[-The Flame of Keld;red]|myzones) restriction{compare(hascntlore)~equalto~3}:damage:2 controller
auto=@damagefoeof(player) from(*[creature;enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):this(counter{0/0.3.Lore}=) ability$!name(Damage opponent) damage:2 opponent!$ controller auto=@damagefoeof(player) from(*[-The Flame of Keld;red]|*) restriction{compare(hascntlore)~equalto~3}:damage:2 opponent
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.4.Lore}) sacrifice(this) auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.4.Lore}) sacrifice(this)
text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Discard your hand. -- II - Draw two cards. -- III - If a red source you control would deal damage to a permanent or player this turn, it deals that much damage plus 2 to that permanent or player instead. text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Discard your hand. -- II - Draw two cards. -- III - If a red source you control would deal damage to a permanent or player this turn, it deals that much damage plus 2 to that permanent or player instead.
mana={1}{R} mana={1}{R}
@@ -71767,10 +71742,9 @@ toughness=4
[/card] [/card]
[card] [card]
name=Torbran, Thane of Red Fell name=Torbran, Thane of Red Fell
auto=@damaged(creature|opponentBattlefield) from(*[instant;sorcery;red]|mystack,myGraveyard):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@damaged(*|opponentBattlefield) from(*[-Torbran^ Thane of Red Fell;red]|*):all(trigger[to]) damage:2
auto=@damaged(creature|opponentBattlefield) from(*[creature;enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):all(trigger[to]) transforms((,newability[damage:2])) oneshot auto=@combatdamaged(creature|opponentBattlefield) from(this):all(trigger[to]) damage:2
auto=@damagefoeof(player) from(*[instant;sorcery;red]|mystack,myGraveyard):ability$!name(Damage opponent) damage:2 opponent!$ controller auto=@damagefoeof(player) from(*[-Torbran^ Thane of Red Fell;red]|*):damage:2 opponent
auto=@damagefoeof(player) from(*[creature;enchantment;artifact;land;planeswalker;red]|mybattlefield,myGraveyard):ability$!name(Damage opponent) damage:2 opponent!$ controller
text=If a red source you control would deal damage to an opponent or a permanent an opponent controls, it deals that much damage plus 2 instead. text=If a red source you control would deal damage to an opponent or a permanent an opponent controls, it deals that much damage plus 2 instead.
mana={1}{R}{R}{R} mana={1}{R}{R}{R}
type=Legendary Creature type=Legendary Creature
@@ -1420,8 +1420,10 @@ subtype=Jaya
[card] [card]
name=Jaya, Venerated Firemage name=Jaya, Venerated Firemage
auto=counter(0/0,5,Loyalty) auto=counter(0/0,5,Loyalty)
auto=@damaged(*|opponentBattlefield) from(*[red]|myBattlefield,myStack,myGraveyard,mySideboard):all(trigger) damage:1 auto=@damaged(*|opponentBattlefield) from(other *[red]|*):all(trigger[to]) damage:1
auto=@damaged(opponent) from(*[red]|myBattlefield,myStack,myGraveyard,mySideboard):damage:1 opponent auto=@damaged(*|mybattlefield) from(other *[red]|myzones):all(trigger[to]) damage:1
auto=@damageof(player) from(other *[red]|myzones):damage:1 controller
auto=@damagefoeof(player) from(other *[red]|*):damage:1 opponent
auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker) auto={C(0/0,-2,Loyalty)}:name(-2: Deals 2 damage to any target) damage:2 target(player,creature,planeswalker)
text=If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead. -- 2: Jaya, Venerated Firemage deals 2 damage to any target. text=If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead. -- 2: Jaya, Venerated Firemage deals 2 damage to any target.
mana={2}{R}{R}{R} mana={2}{R}{R}{R}
+3 -4
View File
@@ -3963,18 +3963,17 @@ int MTGPlaneswalkerDamage::receiveEvent(WEvent * event)
if (d->damage > 0 && card && card->hasType(Subtypes::TYPE_PLANESWALKER)) if (d->damage > 0 && card && card->hasType(Subtypes::TYPE_PLANESWALKER))
{ {
int howMany = d->damage; int howMany = d->damage;
for(int k = 0;k < howMany;k++) for(int k = 0; k < howMany; k++)
{ {
card->counters->removeCounter("loyalty",0,0); card->counters->removeCounter("loyalty", 0, 0);
} }
d->damage = 0;
return 1; return 1;
} }
} }
if (WEventCounters * removel = dynamic_cast<WEventCounters*>(event)) if (WEventCounters * removel = dynamic_cast<WEventCounters*>(event))
{ {
if(removel->removed && removel->targetCard && removel->targetCard->hasType(Subtypes::TYPE_PLANESWALKER)) if(removel->removed && removel->targetCard && removel->targetCard->hasType(Subtypes::TYPE_PLANESWALKER))
if(!removel->targetCard->counters->hasCounter("loyalty",0,0)) if(!removel->targetCard->counters->hasCounter("loyalty", 0, 0))
{ {
removel->targetCard->toGrave(true); removel->targetCard->toGrave(true);
return 1; return 1;