From 9be91880b2b1af2eae271085348308291ce1753e Mon Sep 17 00:00:00 2001 From: Eduardo MG Date: Tue, 27 Dec 2022 00:18:54 -0600 Subject: [PATCH] Bug fixes in primitives Goblin Firebomb Boneyard Mycodrax Heartless Pillage Town-razer Tyrant orcish hellraiser Startling Development Fireflux Squad Valorous Stance --- .../mtg/bin/Res/sets/primitives/_macros.txt | 5 +++- .../bin/Res/sets/primitives/borderline.txt | 24 +++++++++------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 28 +++++++++---------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 737480665..8322bdf2f 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -137,7 +137,7 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati #AUTO_DEFINE _MENTOR_ @combat(attacking) source(this):counter(1/1,1) target(other creature[attacking;power<=pminus1minusend]|myBattlefield) # Surveil, not implemented -#AUTO_DEFINE _SURVEIL_ name(surveil) reveal:1 optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend +#AUTO_DEFINE _SURVEIL_($c) name(Surveil) reveal:$c optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<$c>*|reveal) moveto(ownerlibrary) optiontwoend revealend # Undergrowth, not implemented #AUTO_DEFINE _UNDERGROWTH_ foreach(creature|myGraveyard) @@ -163,6 +163,9 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati # Loot (draw a card, discard a card.) #AUTO_DEFINE _LOOT_ draw:1 && transforms((,newability[target(*|myhand) reject])) forever +# Unearth +#AUTO_DEFINE _UNEARTH_ name(Unearth) moveto(mybattlefield) and!( transforms((,newability[haste],newability[unearth],newability[exiledeath])) forever )! asSorcery + # Angel Token #AUTO_DEFINE _ANGELTOKEN_ create(Angel:Creature Angel:4/4:white:flying) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 0d059a488..e3772ecb1 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -8597,7 +8597,7 @@ toughness=4 [card] name=Boneyard Mycodrax anyzone=type:creature:myGraveyard/type:creature:myGraveyard cdaactive -autograveyard={4}{G}{G}{E}:name(scavenge) counter(1/1,type:creature:myGraveyard) target(creature) asSorcery +autograveyard={4}{B}{E}:name(scavenge) counter(1/1,type:creature:myGraveyard) target(creature) asSorcery text=Boneyard Mycodrax's power and toughness are each equal to the number of other creature cards in your graveyard. -- Scavenge {4}{B} ({4}{B}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.) mana={2}{B} type=Creature @@ -9501,7 +9501,7 @@ toughness=3 [/card] [card] name=Brightmare -auto=tap(noevent) target(creature) and!( dynamicability )! +auto=may tap target(creature) text=When Brightmare enters the battlefield, tap up to one target creature. You gain life equal to that creature's power. mana={2}{W} type=Creature @@ -11932,7 +11932,7 @@ subtype=Saga [card] name=Chainer, Nightmare Adept auto={D(*|myhand)}:name(Can play from graveyard) target(creature|mygraveyard) transforms((,newability[canplayfromgraveyard])) ueot limit:1 -auto=@movedto(*[-token]|myBattlefield):name(May gain haste) all(trigger[to]) transforms((,newability[ifnot casted(this) then transforms((,newability[haste])) uynt])) forever +auto=@movedto(creature[-token]|myBattlefield):name(May gain haste) all(trigger[to]) transforms((,newability[ifnot casted(this) then transforms((,newability[haste])) uynt])) forever text=Discard a card: You may cast a creature card from your graveyard this turn. Activate this ability only once each turn. -- Whenever a nontoken creature enters the battlefield under your control, if you didn't cast it from your hand, it gains haste until your next turn. mana={2}{B}{R} type=Legendary Creature @@ -18744,6 +18744,7 @@ toughness=6 [/card] [card] name=Demon of Loathing +abilities=flying, trample auto=@combatdamaged(player) from(this)::ability$!name(sacrifice a creature) notatarget(creature|myBattlefield) sacrifice!$ opponent text=Flying, trample -- Whenever Demon of Loathing deals combat damage to a player, that player sacrifices a creature. mana={5}{B}{B} @@ -27253,6 +27254,7 @@ toughness=3 [/card] [card] name=Fireflux Squad +abilities=haste auto=_ATTACKING_may moveTo(myExile) target(other creature[attacking]|myBattlefield) && Reveal:1 revealzone(mylibrary) revealuntil(creature|mylibrary) optionone name(Get Creature) target(creature|myreveal) moveto(mybattlefield) && transforms((,haste,attacking)) forever optiononeend optiontwo choice name(Shuffle) all(*|myreveal) bottomoflibrary && shuffle controller optiontwoend revealend text=Haste -- Whenever Fireflux Squad attacks, you may exile another target attacking creature you control. If you do, reveal cards from the top of your library until you reveal a creature card. Put that card onto the battlefield tapped and attacking and the rest on the bottom of your library in a random order. mana={3}{R} @@ -30140,8 +30142,8 @@ toughness=3 [card] name=Geomancer's Gambit target=land -auto=draw:1 auto=destroy && ability$!name(search land) notatarget(land[basic]|mylibrary) moveTo(mybattlefield) and!(tap(noevent))!!$ targetcontroller +auto=draw:1 controller text=Destroy target land. Its controller may search their library for a basic land card, put it onto the battlefield, then shuffle their library. -- Draw a card. mana={2}{R} type=Sorcery @@ -31864,6 +31866,7 @@ toughness=1 [/card] [card] name=Goblin Firebomb +abilities=flash auto={7}{T}{S}:destroy target(*) text=Flash -- {7}, {T}, Sacrifice Goblin Firebomb: Destroy target permanent. mana={1} @@ -35369,7 +35372,7 @@ type=Instant [card] name=Heartless Pillage target=opponent -auto=ability$!discard(<2>*|myhand)!$ targetedplayer +auto=ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ targetedplayer auto=if raid then token(Treasure sur) text=Target opponent discards two cards. -- Raid - If you attacked with a creature this turn, create a colorless Treasure artifact token with "{T}, Sacrifice this artifact: Add one mana of any color to your mana pool." mana={2}{B} @@ -36484,7 +36487,7 @@ toughness=6 [card] name=Hollowhenge Overlord abilities=flash -auto=@each my upkeep:name(Create wolf) foreach(creature[wolf;werewolf]|mybattlefield) _WOLFTOKEN_ +auto=@each my upkeep:name(Create wolf) foreach(wolf,werewolf|mybattlefield) _WOLFTOKEN_ text=Flash -- At the beginning of your upkeep, for each creature you control that's a Wolf or a Werewolf, create a 2/2 green Wolf creature token. mana={4}{G}{G} type=Creature @@ -38671,7 +38674,7 @@ type=Instant [card] name=Indulgent Tormentor abilities=flying -auto=@each my upkeep:ability$!choice name(draw 1 opponent) draw:1 opponent _ choice name(pay 3 life) life:-3!$ opponent +auto=@each my upkeep:ability$!choice name(draw 1 opponent) draw:1 opponent _ choice sacrifice notatarget(creature|mybattlefield) _ choice name(pay 3 life) life:-3!$ opponent text=Flying -- At the beginning of your upkeep, draw a card unless target opponent sacrifices a creature or pays 3 life. mana={3}{B}{B} type=Creature @@ -80952,8 +80955,8 @@ toughness=1 [card] name=Town-razer Tyrant abilities=flying -auto=name(Land looses abilities) target(land|battlefield) transforms((,newability[onlymanaability],newability[@each my upkeep:ability$!name(Sacrifice or damage) choice name(Sacrifice) all(mysource) sacrifice _ choice name(Damage) damage:2 controller!$ controller])) forever -text=Flying -- When Town-razer Tyrant enters the battlefield, target land you don't control loses all abilities except mana abilities and gains "At the beginning of your upkeep, this permanent deals 2 damage to you unless you sacrifice it." +auto=name(Land looses abilities) target(land[-basic]|battlefield) transforms((,newability[onlymanaability],newability[@each my upkeep:ability$!name(Sacrifice or damage) choice name(Sacrifice) all(mysource) sacrifice _ choice name(Damage) damage:2 controller!$ controller])) forever +text=Flying -- When Town-Razer Tyrant enters the battlefield, target nonbasic land you don't control loses all abilities except mana abilities and gains "At the beginning of your end step, this permanent deals 2 damage to you unless you sacrifice it." mana={2}{R}{R} type=Creature subtype=Dragon @@ -84159,7 +84162,8 @@ toughness=4 [card] name=Vengeant Vampire abilities=lifelink -auto=_DIES_destroy target(creature|opponentBattlefield) && life:4 controller +auto=_DIES_life:4 controller +auto=_DIES_destroy target(creature|opponentBattlefield) text=Lifelink -- When Vengeant Vampire dies, destroy target creature an opponent controls and you gain 4 life. mana={4}{B}{B} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 787ca7960..541e0c7f1 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1420,7 +1420,7 @@ type=Artifact [card] name=Aethergeode Miner auto=_ATTACKING_alterenergy:2 controller -auto={e:2}:(blink) +auto={e:2}:moveto(exile) and!( moveto(ownerbattlefield) )! text=Whenever Aethergeode Miner attacks, you get {E}{E} (two energy counters). -- Pay {E}{E}: Exile Aethergeode Miner, then return it to the battlefield under its owner's control. mana={1}{W} type=Creature @@ -9646,7 +9646,7 @@ toughness=3 [card] name=Batterskull auto={5}:equip -auto={3}:moveTo(ownerhand) +auto={3}:name(Return to hand) moveTo(ownerhand) auto=teach(creature) 4/4 auto=teach(creature) vigilance auto=teach(creature) lifelink @@ -12015,7 +12015,6 @@ toughness=1 [/card] [card] name=Blood Bairn -abilities=flying auto={S(other creature|myBattlefield)}:2/2 text=Sacrifice another creature: Blood Bairn gets +2/+2 until end of turn. mana={2}{B} @@ -18125,8 +18124,8 @@ toughness=3 [card] name=Centaur Chieftain abilities=haste -auto=aslongas(*|mygraveyard) 1/1 all(creature|mybattlefield) ueot >6 oneshot -auto=aslongas(*|mygraveyard) trample all(creature|mybattlefield) ueot >6 oneshot +auto=aslongas(*|mygraveyard) all(creature|mybattlefield) 1/1 ueot >6 oneshot +auto=aslongas(*|mygraveyard) all(creature|mybattlefield) trample ueot >6 oneshot text=Haste -- Threshold - As long as seven or more cards are in your graveyard, Centaur Chieftain has "When Centaur Chieftain enters the battlefield, creatures you control get +1/+1 and gain trample until end of turn." mana={3}{G} type=Creature @@ -21679,7 +21678,7 @@ type=Enchantment [card] name=Compulsive Research target=player -auto=ability$!draw:3 _ choice name(discard 2 cards) target(<2>*|myhand) reject _ if type(land|myhand)~morethan~0 then choice name(discard land) target(land|myhand) reject!$ targetedplayer +auto=ability$!draw:3 _ choice name(discard 2 cards) target(<2>*|myhand) reject _ if type(land|myhand)~morethan~0 then name(discard land) choice name(discard land) target(land|myhand) reject!$ targetedplayer text=Target player draws three cards. Then that player discards two cards unless he or she discards a land card. mana={2}{U} type=Sorcery @@ -25547,10 +25546,10 @@ subtype=Aura [card] name=Dance of the Skywise target=creature|mybattlefield -auto=ueot loseabilities +auto=loseabilities ueot auto=flying ueot -auto=ueot transforms((,setpower=4,settoughness=4)) -auto=ueot transforms((Dragon Illusion,blue)) +auto=transforms((,setpower=4,settoughness=4)) ueot +auto=transforms((Dragon Illusion,blue)) ueot text=Until end of turn, target creature you control becomes a blue Dragon Illusion with base power and toughness 4/4, loses all abilities, and gains flying. mana={1}{U} type=Instant @@ -55016,6 +55015,7 @@ toughness=3 [/card] [card] name=Hollow Specter +abilities=flying auto=@combatdamagefoeof(player) from(this):may pay({x}) name(Specter Pay X) Reveal:x revealzone(opponenthand) optionone choice name(choose Discards) target(<1>*|reveal) transforms((,newability[moveto(ownerhand) and!(reject)!])) oneshot optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(ownerhand)])) oneshot optiontwoend revealend text=Flying -- Whenever Hollow Specter deals combat damage to a player, you may pay {X}. If you do, that player reveals X cards from his or her hand and you choose one of them. That player discards that card. mana={1}{B}{B} @@ -111379,7 +111379,7 @@ toughness=1 [card] name=Spiraling Embers target=creature,player -auto=damage:phandcount +auto=damage:type:*|myhand text=Spiraling Embers deals damage to target creature or player equal to the number of cards in your hand. mana={3}{R} type=Sorcery @@ -122513,7 +122513,7 @@ toughness=3 [/card] [card] name=Tor Wauki -auto={T}:damage:2 target(creature[attacking;blocking]) +auto={T}:target(creature[attacking;blocking]) damage:2 text={T}: Tor Wauki deals 2 damage to target attacking or blocking creature. mana={2}{B}{B}{R} type=Legendary Creature @@ -125341,10 +125341,10 @@ toughness=10 [card] name=Ulamog, the Infinite Gyre abilities=indestructible -auto=if casted(this) then destroy target(*) +autostack=if casted(this) then destroy target(*) autograveyard=moveTo(ownerlibrary) all(*|ownergraveyard) && shuffle auto=_ATTACKING_name(Annihilate) ability$!name(sacrifice 4 permanents) notatarget(<4>*|mybattlefield) sacrifice!$ opponent -text=Annihilator 4 (Whenever this creature attacks, defending player sacrifices four permanents.) -- Ulamog is indestructible. -- When Ulamog is put into a graveyard from anywhere, its owner shuffles his or her graveyard into his or her library. +text=When you cast this spell, destroy target permanent. -- Indestructible -- Annihilator 4 (Whenever this creature attacks, defending player sacrifices four permanents.) -- When Ulamog, the Infinite Gyre is put into a graveyard from anywhere, its owner shuffles their graveyard into their library. mana={11} type=Legendary Creature subtype=Eldrazi @@ -127149,7 +127149,7 @@ type=Sorcery name=Valorous Stance target=creature auto=choice name(indestructible) indestructible ueot -auto=if cantargetcard(creature[power>=4]|battlefield) then choice name(Destroy) destroy +auto=if cantargetcard(creature[toughness>=4]|battlefield) then choice name(Destroy) destroy text=Choose one -- Target creature gains indestructible until end of turn. - Destroy target creature with toughness 4 or greater. mana={1}{W} type=Instant