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

View File

@@ -1,7 +1,7 @@
grade=borderline
#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
#I sorted this programmatically - Thanks to Vitty85 21-06-2023
#I sorted this programmatically - Thanks to Vitty85 22-06-2023
[card]
name=+2 Mace
auto={3}:equip
@@ -8272,6 +8272,20 @@ mana={1}{G}
type=Instant
[/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
auto=may reject notatarget(*|myhand) and!( draw:2 controller )!
auto={1}{S}:all(creature|myBattlefield) haste ueot
@@ -11911,7 +11925,7 @@ toughness=6
[/card]
[card]
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
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}
@@ -13280,6 +13294,16 @@ power=1
toughness=4
[/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
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.
@@ -18601,6 +18625,37 @@ power=2
toughness=1
[/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
auto=draw:3
auto={T}:Add{W}{W}{W}
@@ -18706,6 +18761,16 @@ power=*
toughness=4
[/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
other={2}{G} name(prototype)
auto=if paid(alternative) then becomes(,1/3,green)
@@ -24721,6 +24786,16 @@ mana={1}{U}{R}
type=Instant
[/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
auto=teach(creature) 2/2
auto=teach(creature) flying
@@ -29704,6 +29779,15 @@ mana={2}{U}{R}
type=Sorcery
[/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
auto=_INITIATIVE_CONTROLLER_
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
[/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
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.
@@ -42631,6 +42726,17 @@ power=5
toughness=4
[/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
abilities=cycling
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
[/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
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
@@ -49559,6 +49673,15 @@ power=1
toughness=1
[/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
abilities=flying
auto=_ATTACKING_all(creature[attacking;flying]) 1/1 ueot
@@ -50183,6 +50306,17 @@ mana={3}
type=Legendary Artifact
[/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
abilities=haste
kicker={3}{R}
@@ -56672,6 +56806,26 @@ mana={2}{U}
type=Sorcery
[/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
other={X}{U} name(Cast and exile blue cards)
otherrestriction=type(*[blue]|myhand)~morethan~0
@@ -56691,6 +56845,26 @@ mana={X}{U}
type=Instant
[/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
auto=choice name(return creature) moveto(myhand) target(creature|mygraveyard)
auto=choice name(return pirates) moveto(myhand) target(<2>pirate|mygraveyard)
@@ -58527,6 +58701,18 @@ power=5
toughness=5
[/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
abilities=flash
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
[/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
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 )!
@@ -60013,6 +60212,17 @@ power=3
toughness=2
[/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
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.)
@@ -61495,6 +61705,18 @@ power=1
toughness=1
[/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
abilities=menace
auto=_WARD_(1)
@@ -72979,6 +73201,15 @@ type=Enchantment
subtype=Aura
[/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
target=creature
auto=moveto(exile) && ability$! manifest all(*[zpos=1]|mylibrary) !$ targetController
@@ -92253,6 +92484,17 @@ mana={4}{B}{B}
type=Sorcery
[/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
abilities=flying
auto={1}{B}:1/1 ueot

View File

@@ -1,6 +1,6 @@
#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
#We sorted this in alphabetical order - Luruz & Vitty85 21-06-2023
#We sorted this in alphabetical order - Luruz & Vitty85 22-06-2023
[card]
name=Abian, Luvion Usurper
auto=counter(0/0,5,loyalty)
@@ -3206,6 +3206,18 @@ type=Legendary Planeswalker
subtype=Tezzeret
[/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
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller

View File

@@ -2731,11 +2731,13 @@ public:
string PT;
bool nonstatic;
bool cda;
int triggers;
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)
{
aType = MTGAbility::STANDARD_PUMP;
cda = PT.find("cdaactive") != string::npos;
triggers = 0;
}
void Update(float)
@@ -2752,6 +2754,10 @@ public:
this->forceDestroy = 1;
return;
}
if (newPhase == MTG_PHASE_AFTER_EOT)
{
triggers = 0;
}
if(!cda || (cda && (((MTGCardInstance *) target)->isSettingBase < 1)))
{
if(((MTGCardInstance *) target)->isSwitchedPT)
@@ -2762,6 +2768,20 @@ public:
if(PT.size())
{
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)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else
@@ -2779,6 +2799,20 @@ public:
if(PT.size())
{
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)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else
@@ -2794,6 +2828,20 @@ public:
if(PT.size())
{
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)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else
@@ -2845,6 +2893,20 @@ public:
if(PT.size())
{
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)
wppt = NEW WParsedPT(cReplaceString(PT, " cdaactive", ""),NULL,(MTGCardInstance *) source);
else
@@ -5257,6 +5319,7 @@ public:
WParsedPT * wppt;
string s;
bool nonstatic;
int lastTriggeredTurn;
WParsedPT * newWppt;
PTInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, WParsedPT * wppt, string s = "", bool nonstatic = false);
int resolve();

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);
aType = MTGAbility::STANDARD_PUMP;
lastTriggeredTurn = source->getObserver()->turn;
}
int PTInstant::resolve()
{
if(lastTriggeredTurn == source->getObserver()->turn)
ability->triggers++;
else
ability->triggers = 1;
lastTriggeredTurn = source->getObserver()->turn;
APowerToughnessModifier * a = ability->clone();
a->triggers = ability->triggers;
GenericInstantAbility * wrapper = NEW GenericInstantAbility(game, 1, source, (Damageable *) (this->target), a);
wrapper->addToGame();
((Damageable *) (this->target))->afterDamage();//additional check the negative pt after resolving..
return 1;
}
const string PTInstant::getMenuText()
{
return ability->getMenuText();
@@ -8087,6 +8095,7 @@ PTInstant::~PTInstant()
{
SAFE_DELETE(ability);
}
// ASwapPTUEOT
ASwapPTUEOT::ASwapPTUEOT(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target) :
InstantAbility(observer, id, source, target)

View File

@@ -65,7 +65,9 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta
if (found == 0)
{
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);
};