Added / fixed primitives from NEO set, added "mytgtforced" target for equipments and auras, added "numofactivation" keyword to give PT according to how many time an ability has triggred (e.g. "Bronze Cudgels").

This commit is contained in:
Vittorio Alfieri
2023-06-22 18:39:11 +02:00
parent 797514521e
commit c2d78db724
5 changed files with 335 additions and 7 deletions
@@ -1,7 +1,7 @@
grade=borderline grade=borderline
#Bordeline Primitives Pack for Wagic the Homebrew. #Bordeline Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#I sorted this programmatically - Thanks to Vitty85 21-06-2023 #I sorted this programmatically - Thanks to Vitty85 22-06-2023
[card] [card]
name=+2 Mace name=+2 Mace
auto={3}:equip auto={3}:equip
@@ -8272,6 +8272,20 @@ mana={1}{G}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Biting-Palm Ninja
autohand={2}{B}{N}:ninjutsu
auto=counter(0/0,1,Menace)
auto=this(counter{0/0.1.Menace}>0) menace
auto=@combatdamaged(player) from(this) restriction{compare(hascntmenace)~morethan~0,type(*[-land]|opponenthand)~morethan~0}:may name(Remove menace counter and look hand) counter(0/0,-1,Menace) && ability$!name(Exile nonland card) name(Exile nonland card) target(*[-land]|opponenthand) moveto(exile)!$ controller
auto=@combatdamaged(player) from(this) restriction{compare(hascntmenace)~morethan~0,type(*[-land]|opponenthand)~equalto~0}:may name(Remove menace counter and look hand) counter(0/0,-1,Menace) && ability$!name(Look opponent hand) name(Look opponent hand) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )!!$ controller
text=Ninjutsu {2}{B} -- Biting-Palm Ninja enters the battlefield with a menace counter on it. -- Whenever Biting-Palm Ninja deals combat damage to a player, you may remove a menace counter from it. When you do, that player reveals their hand and you choose a nonland card from it. Exile that card.
mana={2}{B}
type=Creature
subtype=Human Ninja
power=3
toughness=3
[/card]
[card]
name=Bitter Reunion name=Bitter Reunion
auto=may reject notatarget(*|myhand) and!( draw:2 controller )! auto=may reject notatarget(*|myhand) and!( draw:2 controller )!
auto={1}{S}:all(creature|myBattlefield) haste ueot auto={1}{S}:all(creature|myBattlefield) haste ueot
@@ -11911,7 +11925,7 @@ toughness=6
[/card] [/card]
[card] [card]
name=Bronze Cudgels name=Bronze Cudgels
auto=teach(creature) transforms((,newability[{2}:name(Creature gains X/0) counter(0/0.1.BronzeEffect) notrg && hascntbronzeeffect/0 ueot],newability[@each endofturn restriction{compare(hascntbronzeeffect)~morethan~0}:name(Effect ends) name(Effect ends) counter(0/0.-hascntbronzeeffect.BronzeEffect) notrg])) auto=teach(creature) {2}:name(Creature gains X/0) numofactivation/0 ueot
auto={1}:equip auto={1}:equip
text={2}: Until end of turn, equipped creature gets +X/+0, where X is the number of times this ability has resolved this turn. -- Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.) text={2}: Until end of turn, equipped creature gets +X/+0, where X is the number of times this ability has resolved this turn. -- Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)
mana={1} mana={1}
@@ -13280,6 +13294,16 @@ power=1
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Careful Cultivation
target=artifact,creature
auto=teach(creature) transforms((,newability[{T}:name(Add 2 green mana) name(Add 2 green mana) add{G}{G}],newability[reach],newability[1/3]))
autohand={1}{G}{discard}:name(Discard and create human) token(Human Monk)
text=Enchant artifact or creature -- As long as enchanted permanent is a creature, it gets +1/+3 and has reach and "{T}: Add {G}{G}." -- Channel - {1}{G}, Discard Careful Cultivation: Create a 1/1 green Human Monk creature token with "{T}: Add {G}."
mana={2}{G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Careless Celebrant name=Careless Celebrant
auto=_DIES_damage:2 target(creature,planeswalker|opponentBattlefield) auto=_DIES_damage:2 target(creature,planeswalker|opponentBattlefield)
text=When Careless Celebrant dies, it deals 2 damage to target creature or planeswalker an opponent controls. text=When Careless Celebrant dies, it deals 2 damage to target creature or planeswalker an opponent controls.
@@ -18601,6 +18625,37 @@ power=2
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Covert Technician
autohand={1}{U}{N}:ninjutsu
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~0}:may name(Put artifact in play) target(artifact[manacost<=0]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~1}:may name(Put artifact in play) target(artifact[manacost<=1]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~2}:may name(Put artifact in play) target(artifact[manacost<=2]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~3}:may name(Put artifact in play) target(artifact[manacost<=3]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~4}:may name(Put artifact in play) target(artifact[manacost<=4]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~5}:may name(Put artifact in play) target(artifact[manacost<=5]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~6}:may name(Put artifact in play) target(artifact[manacost<=6]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~7}:may name(Put artifact in play) target(artifact[manacost<=7]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~8}:may name(Put artifact in play) target(artifact[manacost<=8]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~9}:may name(Put artifact in play) target(artifact[manacost<=9]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~10}:may name(Put artifact in play) target(artifact[manacost<=10]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~11}:may name(Put artifact in play) target(artifact[manacost<=11]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~12}:may name(Put artifact in play) target(artifact[manacost<=12]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~13}:may name(Put artifact in play) target(artifact[manacost<=13]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~14}:may name(Put artifact in play) target(artifact[manacost<=14]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~15}:may name(Put artifact in play) target(artifact[manacost<=15]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~16}:may name(Put artifact in play) target(artifact[manacost<=16]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~17}:may name(Put artifact in play) target(artifact[manacost<=17]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~18}:may name(Put artifact in play) target(artifact[manacost<=18]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~equalto~19}:may name(Put artifact in play) target(artifact[manacost<=19]|myhand) moveto(mybattlefield)
auto=@combatdamaged(player) from(this) restriction{compare(thatmuch)~morethan~19}:may name(Put artifact in play) target(artifact[manacost<=20]|myhand) moveto(mybattlefield)
text=Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- Whenever Covert Technician deals combat damage to a player, you may put an artifact card with mana value less than or equal to that damage from your hand onto the battlefield.
mana={2}{U}
type=Artifact Creature
subtype=Human Ninja
power=2
toughness=4
[/card]
[card]
name=Coveted Jewel name=Coveted Jewel
auto=draw:3 auto=draw:3
auto={T}:Add{W}{W}{W} auto={T}:Add{W}{W}{W}
@@ -18706,6 +18761,16 @@ power=*
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Crackling Emergence
target=land
auto=becomes(Creature Spirit,3/3,red,haste)
auto=@movedto(mytgt|graveyard) from(myBattlefield):name(Land becomes indestructible) transforms((,newability[all(land[zpos=type:*:mygraveyard]|mygraveyard) moveto(myBattlefield) and!( becomes(^^indestructible) ueot )!])) ueot
text=Enchant land you control -- Enchanted land is a 3/3 red Spirit creature with haste. It's still a land. -- If enchanted land would be destroyed, instead sacrifice Crackling Emergence and that land gains indestructible until end of turn.
mana={1}{R}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Cradle Clearcutter name=Cradle Clearcutter
other={2}{G} name(prototype) other={2}{G} name(prototype)
auto=if paid(alternative) then becomes(,1/3,green) auto=if paid(alternative) then becomes(,1/3,green)
@@ -24721,6 +24786,16 @@ mana={1}{U}{R}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Dragonspark Reactor
auto=counter(0/0,1,Charge)
auto=@movedTo(other artifact|myBattlefield):name(Put charge counter) counter(0/0,1,Charge)
auto={4}{S}:name(Damage opponent and creature) damage:hascntcharge opponent && ability$!may name(Damage a creature) target(creature|battlefield) damage:storedhascntcharge!$ controller
auto={4}{S}:name(Damage controller and creature) damage:hascntcharge controller && ability$!may name(Damage a creature) target(creature|battlefield) damage:storedhascntcharge!$ controller
text=Whenever Dragonspark Reactor or another artifact enters the battlefield under your control, put a charge counter on Dragonspark Reactor. -- {4}, Sacrifice Dragonspark Reactor: It deals damage equal to the number of charge counters on it to target player and that much damage to up to one target creature.
mana={1}{R}
type=Artifact
[/card]
[card]
name=Dragonwing Glider name=Dragonwing Glider
auto=teach(creature) 2/2 auto=teach(creature) 2/2
auto=teach(creature) flying auto=teach(creature) flying
@@ -29704,6 +29779,15 @@ mana={2}{U}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Experimental Synthesizer
auto=name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )!
auto=_DIES_name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )!
auto={2}{R}{S}:name(Create samurai) token(Samurai,Creature Samurai,2/2,white,vigilance)
text=When Experimental Synthesizer enters or leaves the battlefield, exile the top card of your library. Until end of turn, you may play that card. -- {2}{R}, Sacrifice Experimental Synthesizer: Create a 2/2 white Samurai creature token with vigilance. Activate only as a sorcery.
mana={R}
type=Artifact
[/card]
[card]
name=Explore the Underdark name=Explore the Underdark
auto=_INITIATIVE_CONTROLLER_ auto=_INITIATIVE_CONTROLLER_
auto=name(search 2 lands or gates) target(<upto:2>land[basic;gate]|myLibrary) moveTo(myBattlefield) and!( tap(noevent) )! auto=name(search 2 lands or gates) target(<upto:2>land[basic;gate]|myLibrary) moveTo(myBattlefield) and!( tap(noevent) )!
@@ -38560,6 +38644,17 @@ power=3
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Goro-Goro, Disciple of Ryusei
auto={R}:name(Creatures gain haste) all(creature|myBattlefield) transforms((,newability[haste])) ueot
auto=aslongas(creature[modified]|myBattlefield) {3}{R}{R}:name(Create dragon) name(Create dragon) token(Dragon Spirit,Creature Dragon Spirit,5/5,red,flying)
text={R}: Creatures you control gain haste until end of turn. -- {3}{R}{R}: Create a 5/5 red Dragon Spirit creature token with flying. Activate only if you control an attacking modified creature. (Equipment, Auras you control, and counters are modifications.)
mana={1}{R}
type=Legendary Creature
subtype=Goblin Samurai
power=2
toughness=2
[/card]
[card]
name=Gossamer Chains name=Gossamer Chains
auto={H}:name(prevent all combat damage that would be dealt by target creature) donothing target(creature[attacking]) && fog to(mytgt) oneshot && fog from(mytgt) oneshot auto={H}:name(prevent all combat damage that would be dealt by target creature) donothing target(creature[attacking]) && fog to(mytgt) oneshot && fog from(mytgt) oneshot
text=Return Gossamer Chains to its owner's hand: Prevent all combat damage that would be dealt by target unblocked creature this turn. text=Return Gossamer Chains to its owner's hand: Prevent all combat damage that would be dealt by target unblocked creature this turn.
@@ -42631,6 +42726,17 @@ power=5
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Hidetsugu, Devouring Chaos
auto={B}{S(creature|myBattlefield)}:name(Scry 2) _SCRY2_
auto={2}{R}{T}:name(Exile the top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[if cantargetcard(*[-land&manacost>=1]|*) then name(Deal damage) name(Deal damage) target(player^creature^planeswalker) damage:manacost])) ueot )!
text={B}, Sacrifice a creature: Scry 2. -- {2}{R}, {T}: Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, Hidetsugu, Devouring Chaos deals damage equal to the exiled card's mana value to any target.
mana={3}{B}
type=Legendary Creature
subtype=Ogre Demon
power=4
toughness=4
[/card]
[card]
name=Hieroglyphic Illumination name=Hieroglyphic Illumination
abilities=cycling abilities=cycling
auto=draw:2 controller auto=draw:2 controller
@@ -47428,6 +47534,14 @@ text=Whenever you cast an instant or sorcery spell from your hand, you may copy
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Invoke Calamity
abilities=exiledeath
auto=may name(Choose instants or sorceries) target(<upto:2>*[-creature&-artifact&-battle&-planeswalker&-enchantment&-tribal&manacost<=6]|mygraveyard,myhand) activate castcard(normal) and!( transforms((,newability[gainedexiledeath])) ueot )!
text=You may cast up to two instant and/or sorcery spells with total mana value 6 or less from your graveyard and/or hand without paying their mana costs. If those spells would be put into your graveyard, exile them instead. Exile Invoke Calamity.
mana={1}{R}{R}{R}{R}
type=Instant
[/card]
[card]
name=Invoke Despair name=Invoke Despair
auto=if type(creature|opponentbattlefield)~morethan~0 then name(Opponent sacrifices creature) name(Opponent sacrifices creature) ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature|mybattlefield) sacrifice!$ opponent auto=if type(creature|opponentbattlefield)~morethan~0 then name(Opponent sacrifices creature) name(Opponent sacrifices creature) ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature|mybattlefield) sacrifice!$ opponent
auto=if type(creature|opponentbattlefield)~equalto~0 then name(Opponent cannot sacrifice creature) name(Opponent cannot sacrifice creature) life:-2 opponent && draw:1 controller auto=if type(creature|opponentbattlefield)~equalto~0 then name(Opponent cannot sacrifice creature) name(Opponent cannot sacrifice creature) life:-2 opponent && draw:1 controller
@@ -49559,6 +49673,15 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Kami's Flare
target=creature,planeswalker
auto=damage:3
auto=if type(creature[modified]|myBattlefield)~morethan~0 then damage:2
text=Kami's Flare deals 3 damage to target creature or planeswalker. Kami's Flare also deals 2 damage to that permanent's controller if you control a modified creature. (Equipment, Auras you control, and counters are modifications.)
mana={1}{R}
type=Instant
[/card]
[card]
name=Kangee's Lieutenant name=Kangee's Lieutenant
abilities=flying abilities=flying
auto=_ATTACKING_all(creature[attacking;flying]) 1/1 ueot auto=_ATTACKING_all(creature[attacking;flying]) 1/1 ueot
@@ -50183,6 +50306,17 @@ mana={3}
type=Legendary Artifact type=Legendary Artifact
[/card] [/card]
[card] [card]
name=Keimi
auto=@movedTo(enchantment|mystack):name(You gain life) life:1 controller
auto=@movedTo(enchantment|mystack):name(Opponent loses life) life:-1 opponent
text=Whenever you cast an enchantment spell, each opponent loses 1 life and you gain 1 life.
color=green
type=Creature
subtype=Frog
power=3
toughness=3
[/card]
[card]
name=Keldon Overseer name=Keldon Overseer
abilities=haste abilities=haste
kicker={3}{R} kicker={3}{R}
@@ -56672,6 +56806,26 @@ mana={2}{U}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=March of Reckless Joy
other={X}{R} name(Cast and exile red cards)
otherrestriction=type(*[red]|myhand)~morethan~0
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~0 then choice name(Cast and exile 1 red card) name(Cast and exile 1 red card) name(Cast and exile 1 red card) activate castcard(copied noevent costx!:fullpaidplus2plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 1 red card) name(Exile 1 red card) target(*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~1 then choice name(Cast and exile 2 red cards) name(Cast and exile 2 red cards) name(Cast and exile 2 red cards) activate castcard(copied noevent costx!:fullpaidplus4plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 2 red cards) name(Exile 2 red cards) target(<2>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~2 then choice name(Cast and exile 3 red cards) name(Cast and exile 3 red cards) name(Cast and exile 3 red cards) activate castcard(copied noevent costx!:fullpaidplus6plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 3 red cards) name(Exile 3 red cards) target(<3>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~3 then choice name(Cast and exile 4 red cards) name(Cast and exile 4 red cards) name(Cast and exile 4 red cards) activate castcard(copied noevent costx!:fullpaidplus8plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 4 red cards) name(Exile 4 red cards) target(<4>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~4 then choice name(Cast and exile 5 red cards) name(Cast and exile 5 red cards) name(Cast and exile 5 red cards) activate castcard(copied noevent costx!:fullpaidplus10plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 5 red cards) name(Exile 5 red cards) target(<5>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~5 then choice name(Cast and exile 6 red cards) name(Cast and exile 6 red cards) name(Cast and exile 6 red cards) activate castcard(copied noevent costx!:fullpaidplus12plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 6 red cards) name(Exile 6 red cards) target(<6>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~6 then choice name(Cast and exile 7 red cards) name(Cast and exile 7 red cards) name(Cast and exile 7 red cards) activate castcard(copied noevent costx!:fullpaidplus14plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 7 red cards) name(Exile 7 red cards) target(<7>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~7 then choice name(Cast and exile 8 red cards) name(Cast and exile 8 red cards) name(Cast and exile 8 red cards) activate castcard(copied noevent costx!:fullpaidplus16plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 8 red cards) name(Exile 8 red cards) target(<8>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~8 then choice name(Cast and exile 9 red cards) name(Cast and exile 9 red cards) name(Cast and exile 9 red cards) activate castcard(copied noevent costx!:fullpaidplus18plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 9 red cards) name(Exile 9 red cards) target(<9>*[red]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[red]|myhand)~morethan~9 then choice name(Cast and exile 10 red cards) name(Cast and exile 10 red cards) name(Cast and exile 10 red cards) activate castcard(copied noevent costx!:fullpaidplus20plusend:! named!:March of Reckless Joy:!) and!( ability$!name(Exile 10 red cards) name(Exile 10 red cards) target(<10>*[red]|myhand) moveto(myexile)!$ controller )!
auto=ifnot paid(alternative) then name(Exile top cards) name(Exile top cards) all(*[zpos<=fullpaid]|mylibrary) moveto(myexile) and!( becomes(tobejoy) ueot )!
auto=ifnot paid(alternative) then may name(Choose 2 exiled cards) name(Choose 2 exiled cards) all(*[zpos=3]|myLibrary) transforms((,newability[name(Choose 2 exiled cards) target(<upto:2>tobejoy|myexile) transforms((,newability[canplayfromexile uynt],newability[all(other tobejoy|myexile) removetypes(tobejoy)])) uynt])) uynt
text=As an additional cost to cast this spell, you may exile any number of red cards from your hand. This spell costs {2} less to cast for each card exiled this way. -- Exile the top X cards of your library. You may play up to two of those cards until the end of your next turn.
mana={X}{R}
type=Instant
[/card]
[card]
name=March of Swirling Mist name=March of Swirling Mist
other={X}{U} name(Cast and exile blue cards) other={X}{U} name(Cast and exile blue cards)
otherrestriction=type(*[blue]|myhand)~morethan~0 otherrestriction=type(*[blue]|myhand)~morethan~0
@@ -56691,6 +56845,26 @@ mana={X}{U}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=March of Wretched Sorrow
other={X}{B} name(Cast and exile black cards)
otherrestriction=type(*[black]|myhand)~morethan~0
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~0 then choice name(Cast and exile 1 black card) name(Cast and exile 1 black card) name(Cast and exile 1 black card) activate castcard(copied noevent costx!:fullpaidplus2plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 1 black card) name(Exile 1 black card) target(*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~1 then choice name(Cast and exile 2 black cards) name(Cast and exile 2 black cards) name(Cast and exile 2 black cards) activate castcard(copied noevent costx!:fullpaidplus4plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 2 black cards) name(Exile 2 black cards) target(<2>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~2 then choice name(Cast and exile 3 black cards) name(Cast and exile 3 black cards) name(Cast and exile 3 black cards) activate castcard(copied noevent costx!:fullpaidplus6plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 3 black cards) name(Exile 3 black cards) target(<3>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~3 then choice name(Cast and exile 4 black cards) name(Cast and exile 4 black cards) name(Cast and exile 4 black cards) activate castcard(copied noevent costx!:fullpaidplus8plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 4 black cards) name(Exile 4 black cards) target(<4>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~4 then choice name(Cast and exile 5 black cards) name(Cast and exile 5 black cards) name(Cast and exile 5 black cards) activate castcard(copied noevent costx!:fullpaidplus10plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 5 black cards) name(Exile 5 black cards) target(<5>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~5 then choice name(Cast and exile 6 black cards) name(Cast and exile 6 black cards) name(Cast and exile 6 black cards) activate castcard(copied noevent costx!:fullpaidplus12plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 6 black cards) name(Exile 6 black cards) target(<6>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~6 then choice name(Cast and exile 7 black cards) name(Cast and exile 7 black cards) name(Cast and exile 7 black cards) activate castcard(copied noevent costx!:fullpaidplus14plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 7 black cards) name(Exile 7 black cards) target(<7>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~7 then choice name(Cast and exile 8 black cards) name(Cast and exile 8 black cards) name(Cast and exile 8 black cards) activate castcard(copied noevent costx!:fullpaidplus16plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 8 black cards) name(Exile 8 black cards) target(<8>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~8 then choice name(Cast and exile 9 black cards) name(Cast and exile 9 black cards) name(Cast and exile 9 black cards) activate castcard(copied noevent costx!:fullpaidplus18plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 9 black cards) name(Exile 9 black cards) target(<9>*[black]|myhand) moveto(myexile)!$ controller )!
auto=if paid(alternative) then if type(other *[black]|myhand)~morethan~9 then choice name(Cast and exile 10 black cards) name(Cast and exile 10 black cards) name(Cast and exile 10 black cards) activate castcard(copied noevent costx!:fullpaidplus20plusend:! named!:March of Wretched Sorrow:!) and!( ability$!name(Exile 10 black cards) name(Exile 10 black cards) target(<10>*[black]|myhand) moveto(myexile)!$ controller )!
auto=ifnot paid(alternative) then name(Damage creature or planeswalker) name(Damage creature or planeswalker) target(*[creature;planeswalker]|battlefield) damage:fullpaid
auto=ifnot paid(alternative) then name(Gain life) name(Gain life) life:fullpaid controller
text=As an additional cost to cast this spell, you may exile any number of black cards from your hand. This spell costs {2} less to cast for each card exiled this way. -- March of Wretched Sorrow deals X damage to target creature or planeswalker and you gain X life.
mana={X}{B}
type=Instant
[/card]
[card]
name=March of the Drowned name=March of the Drowned
auto=choice name(return creature) moveto(myhand) target(creature|mygraveyard) auto=choice name(return creature) moveto(myhand) target(creature|mygraveyard)
auto=choice name(return pirates) moveto(myhand) target(<2>pirate|mygraveyard) auto=choice name(return pirates) moveto(myhand) target(<2>pirate|mygraveyard)
@@ -58527,6 +58701,18 @@ power=5
toughness=5 toughness=5
[/card] [/card]
[card] [card]
name=Mindlink Mech
abilities=flying
auto={0}:name(Copy and crew 1 [1 creature]) target(creature[-legendary&-tapped]|mybattlefield) tap && copy and!( transforms((Artifact Vechicle Creature,setpower=4,settoughness=3,newability[flying],newability[phaseaction[endofturn once sourceinplay] flip(myorigname) undocpy])) ueot )! restriction{compare(crewtotalpower)~morethan~0} limit:1
auto={crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) transforms((Artifact Vechicle Creature,setpower=4,settoughness=3,newability[flying])) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0}
text=Flying -- Whenever Mindlink Mech becomes crewed for the first time each turn, until end of turn, Mindlink Mech becomes a copy of target nonlegendary creature that crewed it this turn, except it's 4/3, it's a Vehicle artifact in addition to its other types, and it has flying. -- Crew 1
mana={2}{U}
type=Artifact
subtype=Vehicle
power=4
toughness=3
[/card]
[card]
name=Mindsplice Apparatus name=Mindsplice Apparatus
abilities=flash abilities=flash
auto=@each my upkeep:name(Put oil counter) counter(0/0,1,Oil) auto=@each my upkeep:name(Put oil counter) counter(0/0,1,Oil)
@@ -59599,6 +59785,19 @@ text={T}: Add {C}. -- {4}: Mobilized District becomes a 3/3 Citizen creature wit
type=Land type=Land
[/card] [/card]
[card] [card]
name=Mobilizer Mech
abilities=flying
auto={crew(other creature[power>=3]|myBattlefield)}:name(crew 3 [1 creature]) transforms((,newability[becomes(Artifact Creature) ueot],newability[may name(Transform another vehicle) target(vehicle[-creature]|mybattlefield) becomes(Artifact Creature) ueot])) ueot restriction{type(other creature[-tapped;power>=3]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~2}
auto={crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=2]|myBattlefield)}:name(crew 3 [2 creature]) transforms((,newability[becomes(Artifact Creature) ueot],newability[may name(Transform another vehicle) target(vehicle[-creature]|mybattlefield) becomes(Artifact Creature) ueot])) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,type(other creature[-tapped;power>=2]|mybattlefield)~morethan~0,type(other creature[-tapped;-cantcrew]|mybattlefield)~morethan~1,compare(crewtotalpower)~morethan~2}
auto={crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}{crew(other creature[power>=1]|myBattlefield)}:name(crew 3 [3 creature]) transforms((,newability[becomes(Artifact Creature) ueot],newability[may name(Transform another vehicle) target(vehicle[-creature]|mybattlefield) becomes(Artifact Creature) ueot])) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~2,compare(crewtotalpower)~morethan~2}
text=Flying -- Whenever Mobilizer Mech becomes crewed, up to one other target Vehicle you control becomes an artifact creature until end of turn. -- Crew 3 (Tap any number of creatures you control with total power 3 or more: This Vehicle becomes an artifact creature until end of turn.)
mana={1}{U}
type=Artifact
subtype=Vehicle
power=3
toughness=4
[/card]
[card]
name=Mocking Doppelganger name=Mocking Doppelganger
abilities=flash abilities=flash
auto=may name(Clone a creature) target(creature|opponentBattlefield) clone and!( transforms((,newability[lord(other creature[share!name!]|battlefield) transforms((,newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack]))])) forever )! auto=may name(Clone a creature) target(creature|opponentBattlefield) clone and!( transforms((,newability[lord(other creature[share!name!]|battlefield) transforms((,newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack]))])) forever )!
@@ -60013,6 +60212,17 @@ power=3
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Moon-Circuit Hacker
autohand={U}{N}:ninjutsu
auto=@combatdamaged(player) from(this):may name(Draw a card) draw:1 controller && if cantargetcard(*[-fresh]|*) then name(Discard a card) ability$!name(Discard a card) name(Discard a card) notatarget(*|myhand) reject!$ controller
text=Ninjutsu {U} ({U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- Whenever Moon-Circuit Hacker deals combat damage to a player, you may draw a card. If you do, discard a card unless Moon-Circuit Hacker entered the battlefield this turn.
mana={1}{U}
type=Enchantment Creature
subtype=Human Ninja
power=2
toughness=1
[/card]
[card]
name=Moon-Eating Dog name=Moon-Eating Dog
auto=aslongas(planeswalker[Yanling]|mybattlefield) flying auto=aslongas(planeswalker[Yanling]|mybattlefield) flying
text=As long as you control a Yanling planeswalker, Moon-Eating Dog has flying. (It can't be blocked except by creatures with flying or reach.) text=As long as you control a Yanling planeswalker, Moon-Eating Dog has flying. (It can't be blocked except by creatures with flying or reach.)
@@ -61495,6 +61705,18 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Nashi, Moon Sage's Scion
autohand={3}{B}{N}:ninjutsu
auto=@combatdamaged(player) from(this):name(Exile top cards) all(*[zpos=1]|myLibrary) moveto(myexile) and!( transforms((,newability[this(cantargetcard(*[land]|*) canplayfromexile],newability[this(cantargetcard(*[-land]|*) {0}:name(Pay life and cast) name(Pay life and cast) activate castcard(normal) and!( life:-manacost controller )!])) ueot )!
auto=@combatdamaged(player) from(this):name(Exile top cards) all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[this(cantargetcard(*[land]|*) canplayfromexile],newability[this(cantargetcard(*[-land]|*) {0}:name(Pay life and cast) name(Pay life and cast) activate castcard(normal) and!( life:-manacost controller )!],newability[phaseaction[endofturn once checkex] moveto(ownerexile)])) ueot )!
text=Ninjutsu {3}{B} ({3}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- Whenever Nashi, Moon Sage's Scion deals combat damage to a player, exile the top card of each player's library. Until end of turn, you may play one of those cards. If you cast a spell this way, pay life equal to its mana value rather than paying its mana cost.
mana={1}{B}{B}
type=Legendary Creature
subtype=Rat Ninja
power=3
toughness=2
[/card]
[card]
name=Nashi, Moon's Legacy name=Nashi, Moon's Legacy
abilities=menace abilities=menace
auto=_WARD_(1) auto=_WARD_(1)
@@ -72979,6 +73201,15 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Reality Heist
abilities=affinityartifacts
aicode=activate transforms((,newability[if type(artifact[zpos<=7]|myLibrary)~morethan~0 then target(<2>artifact[zpos<=7]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )! else all(*[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot
auto=name(Look at the top 7 cards) reveal:7 optionone name(Choose 2 artifacts) target(<upto:2>artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
text=This spell costs {1} less to cast for each artifact you control. -- Look at the top seven cards of your library. You may reveal up to two artifact cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order.
mana={5}{U}{U}
type=Instant
[/card]
[card]
name=Reality Shift name=Reality Shift
target=creature target=creature
auto=moveto(exile) && ability$! manifest all(*[zpos=1]|mylibrary) !$ targetController auto=moveto(exile) && ability$! manifest all(*[zpos=1]|mylibrary) !$ targetController
@@ -92253,6 +92484,17 @@ mana={4}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Tatsunari, Toad Rider
auto=@movedTo(enchantment|mystack) restriction{type(Keimi|myBattlefield)~equalto~0}:name(Create Keimi) name(Create Keimi) token(Keimi)
auto={1}{GU}:name(Can be blocked only by flying and reach) transforms((,newability[cantbeblockedby(creature[-flying&-reach])],newability[name(Target another frog) target(other frog|myBattlefield) transforms((,newability[cantbeblockedby(creature[-flying&-reach])])) ueot])) ueot
text=Whenever you cast an enchantment spell, if you don't control a creature named Keimi, create Keimi, a legendary 3/3 black and green Frog creature token with "Whenever you cast an enchantment spell, each opponent loses 1 life and you gain 1 life." -- {1}{G/U}: Tatsunari, Toad Rider and target Frog you control can't be blocked this turn except by creatures with flying or reach.
mana={2}{B}
type=Legendary Creature
subtype=Human Ninja
power=3
toughness=3
[/card]
[card]
name=Tattered Apparition name=Tattered Apparition
abilities=flying abilities=flying
auto={1}{B}:1/1 ueot auto={1}{B}:1/1 ueot
@@ -1,6 +1,6 @@
#Planeswalkers Primitives Pack for Wagic the Homebrew. #Planeswalkers Primitives Pack for Wagic the Homebrew.
#Please keep these card alphabetized, and try to have the "name=" line at the top of each card #Please keep these card alphabetized, and try to have the "name=" line at the top of each card
#We sorted this in alphabetical order - Luruz & Vitty85 21-06-2023 #We sorted this in alphabetical order - Luruz & Vitty85 22-06-2023
[card] [card]
name=Abian, Luvion Usurper name=Abian, Luvion Usurper
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
@@ -3206,6 +3206,18 @@ type=Legendary Planeswalker
subtype=Tezzeret subtype=Tezzeret
[/card] [/card]
[card] [card]
name=Tezzeret, Betrayer of Flesh
#MISSING: The first activated ability of an artifact you activate each turn costs {2} less to activate.
auto=counter(0/0,4,loyalty)
auto={C(0/0,+1,Loyalty)}:name(+1: Draw and discard) draw:2 controller && transforms((,newability[if type(artifact|myhand)~morethan~0 then choice name(Discard artifact) name(Discard artifact) notatarget(artifact|myhand) reject],newability[if type(*[-artifact]|myhand)~morethan~1 then choice name(Don't discard artifact) name(Don't discard artifact) notatarget(<2>*[-artifact]|myhand) reject])) ueot
auto={C(0/0,-2,Loyalty)}:name(-2: Artifact becomes creature) target(artifact|battlefield) transforms((,newability[if cantargetcard(*[vehicle]|*) then becomes(Artifact Creature) ueot else becomes(Artifact Creature^4/4) ueot])) ueot
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem on tapped artifact) emblem transforms((,newability[@tapped(artifact|battlefield):name(Draw a card) draw:1 controller])) forever dontremove
text=The first activated ability of an artifact you activate each turn costs {2} less to activate. -- [+1]: Draw two cards. Then discard two cards unless you discard an artifact card. -- [-2]: Target artifact becomes an artifact creature. If it isn't a Vehicle, it has base power and toughness 4/4. -- [-6]: You get an emblem with "Whenever an artifact you control becomes tapped, draw a card."
mana={2}{U}{U}
type=Legendary Planeswalker
subtype=Tezzeret
[/card]
[card]
name=Tezzeret, Cruel Machinist name=Tezzeret, Cruel Machinist
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller
+63
View File
@@ -2731,11 +2731,13 @@ public:
string PT; string PT;
bool nonstatic; bool nonstatic;
bool cda; bool cda;
int triggers;
APowerToughnessModifier(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, WParsedPT * wppt,string PT, bool nonstatic) : APowerToughnessModifier(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, WParsedPT * wppt,string PT, bool nonstatic) :
MTGAbility(observer, id, _source, _target), wppt(wppt),PT(PT),nonstatic(nonstatic) MTGAbility(observer, id, _source, _target), wppt(wppt),PT(PT),nonstatic(nonstatic)
{ {
aType = MTGAbility::STANDARD_PUMP; aType = MTGAbility::STANDARD_PUMP;
cda = PT.find("cdaactive") != string::npos; cda = PT.find("cdaactive") != string::npos;
triggers = 0;
} }
void Update(float) void Update(float)
@@ -2752,6 +2754,10 @@ public:
this->forceDestroy = 1; this->forceDestroy = 1;
return; return;
} }
if (newPhase == MTG_PHASE_AFTER_EOT)
{
triggers = 0;
}
if(!cda || (cda && (((MTGCardInstance *) target)->isSettingBase < 1))) if(!cda || (cda && (((MTGCardInstance *) target)->isSettingBase < 1)))
{ {
if(((MTGCardInstance *) target)->isSwitchedPT) if(((MTGCardInstance *) target)->isSwitchedPT)
@@ -2762,6 +2768,20 @@ public:
if(PT.size()) if(PT.size())
{ {
SAFE_DELETE(wppt); SAFE_DELETE(wppt);
char buffer[4];
sprintf(buffer, "%i", triggers);
string trg;
trg.append(buffer);
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(cda) if(cda)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source); wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else else
@@ -2779,6 +2799,20 @@ public:
if(PT.size()) if(PT.size())
{ {
SAFE_DELETE(wppt); SAFE_DELETE(wppt);
char buffer[4];
sprintf(buffer, "%i", triggers);
string trg;
trg.append(buffer);
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(cda) if(cda)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source); wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else else
@@ -2794,6 +2828,20 @@ public:
if(PT.size()) if(PT.size())
{ {
SAFE_DELETE(wppt); SAFE_DELETE(wppt);
char buffer[4];
sprintf(buffer, "%i", triggers);
string trg;
trg.append(buffer);
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(cda) if(cda)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source); wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else else
@@ -2845,6 +2893,20 @@ public:
if(PT.size()) if(PT.size())
{ {
SAFE_DELETE(wppt); SAFE_DELETE(wppt);
char buffer[4];
sprintf(buffer, "%i", triggers);
string trg;
trg.append(buffer);
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(PT.find("numofactivation") != string::npos){
size_t pos = PT.find("numofactivation");
if(pos != string::npos)
PT.replace(pos, 15, trg);
}
if(cda) if(cda)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source); wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else else
@@ -5257,6 +5319,7 @@ public:
WParsedPT * wppt; WParsedPT * wppt;
string s; string s;
bool nonstatic; bool nonstatic;
int lastTriggeredTurn;
WParsedPT * newWppt; WParsedPT * newWppt;
PTInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, WParsedPT * wppt, string s = "", bool nonstatic = false); PTInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, WParsedPT * wppt, string s = "", bool nonstatic = false);
int resolve(); int resolve();
+9
View File
@@ -8061,16 +8061,24 @@ InstantAbility(observer, id, source, target), wppt(wppt),s(s),nonstatic(nonstati
{ {
ability = NEW APowerToughnessModifier(game, id, source, target, wppt, s, nonstatic); ability = NEW APowerToughnessModifier(game, id, source, target, wppt, s, nonstatic);
aType = MTGAbility::STANDARD_PUMP; aType = MTGAbility::STANDARD_PUMP;
lastTriggeredTurn = source->getObserver()->turn;
} }
int PTInstant::resolve() int PTInstant::resolve()
{ {
if(lastTriggeredTurn == source->getObserver()->turn)
ability->triggers++;
else
ability->triggers = 1;
lastTriggeredTurn = source->getObserver()->turn;
APowerToughnessModifier * a = ability->clone(); APowerToughnessModifier * a = ability->clone();
a->triggers = ability->triggers;
GenericInstantAbility * wrapper = NEW GenericInstantAbility(game, 1, source, (Damageable *) (this->target), a); GenericInstantAbility * wrapper = NEW GenericInstantAbility(game, 1, source, (Damageable *) (this->target), a);
wrapper->addToGame(); wrapper->addToGame();
((Damageable *) (this->target))->afterDamage();//additional check the negative pt after resolving.. ((Damageable *) (this->target))->afterDamage();//additional check the negative pt after resolving..
return 1; return 1;
} }
const string PTInstant::getMenuText() const string PTInstant::getMenuText()
{ {
return ability->getMenuText(); return ability->getMenuText();
@@ -8087,6 +8095,7 @@ PTInstant::~PTInstant()
{ {
SAFE_DELETE(ability); SAFE_DELETE(ability);
} }
// ASwapPTUEOT // ASwapPTUEOT
ASwapPTUEOT::ASwapPTUEOT(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target) : ASwapPTUEOT::ASwapPTUEOT(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target) :
InstantAbility(observer, id, source, target) InstantAbility(observer, id, source, target)
+3 -1
View File
@@ -65,7 +65,9 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta
if (found == 0) if (found == 0)
{ {
MTGCardInstance * target = card->target; MTGCardInstance * target = card->target;
if (ability) target = (MTGCardInstance *) (ability->target); bool forced = (s.find("forced") != string::npos);
if (ability && !forced)
target = (MTGCardInstance *) (ability->target);
return NEW CardTargetChooser(observer, target, card); return NEW CardTargetChooser(observer, target, card);
}; };