From 6904d6ffd338375931abe70f3b8a20dfc7421b9a Mon Sep 17 00:00:00 2001 From: Eduardo MG Date: Tue, 8 Apr 2025 22:09:47 -0600 Subject: [PATCH] Bug fixes on zones and correcting misspells Summoner's Bond Regent's Authority Mind Burst Thassa's Oracle --- projects/mtg/bin/Res/sets/DMC/_cards.dat | 7 ++++- .../mtg/bin/Res/sets/primitives/_macros.txt | 4 +-- .../bin/Res/sets/primitives/borderline.txt | 26 ++++++++++--------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 9 +++---- .../bin/Res/sets/primitives/planeswalkers.txt | 4 +-- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/projects/mtg/bin/Res/sets/DMC/_cards.dat b/projects/mtg/bin/Res/sets/DMC/_cards.dat index f4dc0af7f..6f7345fd2 100644 --- a/projects/mtg/bin/Res/sets/DMC/_cards.dat +++ b/projects/mtg/bin/Res/sets/DMC/_cards.dat @@ -2,7 +2,7 @@ author=Wagic Team name=Dominaria United Commander year=2022-09-09 -total=219 +total=241 [/meta] [card] primitive=Dihada, Binder of Wills @@ -250,6 +250,11 @@ id=578711 rarity=M [/card] [card] +primitive=Jared Carthalion +id=578712 +rarity=M +[/card] +[card] primitive=Historian's Boon id=580393 rarity=R diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 022fcdaa8..7dc266c7c 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -182,7 +182,7 @@ #AUTO_DEFINE _PLOTCAST_ {0}restriction{compare(canforetellcast)~morethan~0}:name(Cast) name(Cast) activate castcard(alternative) asSorcery # Loot. Draw a card, then discard a card. -#AUTO_DEFINE _LOOT_ draw:1 && transforms((,newability[target(*|myhand) reject])) forever +#AUTO_DEFINE _LOOT_ draw:1 && transforms((,newability[notatarget(*|myhand) reject])) forever # Unearth #AUTO_DEFINE _UNEARTH_ name(Unearth) moveto(mybattlefield) and!( transforms((,haste,newability[unearth],newability[exiledeath])) forever )! asSorcery @@ -214,7 +214,7 @@ #AUTO_DEFINE _ETERNALIZE_ name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery # Explores -#AUTO_DEFINE _EXPLORES_ name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend +#AUTO_DEFINE _EXPLORES_ name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then counter(1/1) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend # Discard a card. If you do, draw a card #AUTO_DEFINE _DISCARD&DRAW_ reject notatarget(*|myhand) and!(draw:1 controller)! diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 286b2aa12..33a215cac 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -73676,7 +73676,7 @@ toughness=1 [/card] [card] name=Mystic Confluence -auto=thisforeach(variable{3}) ability$!name(Choose one) if type(other *|stack)~morethan~0 then choice target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever _ choice target(creature) moveto(hand) _ choice draw:1 !$ controller +auto=thisforeach(variable{3}) ability$!name(Choose one) if type(*|stack)~morethan~1 then choice target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever _ choice target(creature) moveto(hand) _ choice draw:1 !$ controller text=Choose three. You may choose the same mode more than once. -- Counter target spell unless its controller pays {3}. -- Return target creature to its owner's hand. -- Draw a card. mana={3}{U}{U} type=Instant @@ -76682,7 +76682,7 @@ toughness=6 name=O-Kagachi, Vengeful Kami abilities=flying,trample auto=@combat(attacking) source(creature|opponentbattlefield) restriction{opponentturnonly}:counter(0/0,1,KamiEffect) all(this) -auto=@combatdamagefoeof(player) from(this):this(counter{0/0.1.KamiEffect}>=1) name(Exile non-land permanent) name(Exile non-land permanent) transforms((,newability[moveto(exile) target(*[-land]|opponentbattlefiled)])) oneshot +auto=@combatdamagefoeof(player) from(this):this(counter{0/0.1.KamiEffect}>=1) name(Exile non-land permanent) name(Exile non-land permanent) transforms((,newability[moveto(exile) target(*[-land]|opponentBattlefield)])) oneshot auto=@each my end:removeallcounters(0/0,1,KamiEffect) all(this) text=Flying, trample -- Whenever O-Kagachi, Vengeful Kami deals combat damage to a player, if that player attacked you during their last turn, exile target nonland permanent that player controls. mana={1}{W}{U}{B}{R}{G} @@ -77494,7 +77494,7 @@ abilities=flying auto=@movedTo(instant|myStack) from(myhand):all(trigger[to]) transforms((,newability[gainedexiledeath],newability[phaseaction[my upkeep once] counter(0/0.1.PlayExile)])) ueot auto=@each my upkeep:all(instant|myexile) removeallcounters(0/0,-1,PlayExile) auto=@each my upkeep:foreach(*[counter{0/0.1.PlayExile}]|myexile) ability$!name(Choose one) choice name(Cast card from exile) activate castcard(normal) target(*[instant;counter{0/0.1.PlayExile}]|myexile) _ choice name(Don't cast card from exile) donothing!$ controller -auto=_DIES_all(trigger[to]) transforms((,newability[moveTo(mybattlefield)],newability[flip(backside)],newability[counter(0/0.3.Epoch)])) forever +auto=_DIES_all(trigger[to]) transforms((,newability[moveTo(mybattlefield)],newability[tap(noevent)],newability[flip(backside)],newability[counter(0/0.3.Epoch)])) forever text=Flying -- Whenever you cast an instant spell from your hand, it gains rebound. (Exile it as it resolves. At the beginning of your next upkeep, you may cast it from exile without paying its mana cost.) -- When Ojer Pakpatiq dies, return it to the battlefield tapped and transformed under its owner's control with three time counters on it. mana={2}{U}{U} type=Legendary Creature @@ -89004,7 +89004,7 @@ type=Instant name=Regent's Authority target=creature auto=if cantargetcard(creature[-legendary&-enchantment]|*) then transforms((,newability[2/2])) ueot -auto=if cantargetcard(creature[legendary|enchantment]|*) then transforms((,newability[1/1],newability[counter(1/1)])) ueot +auto=if cantargetcard(creature[legendary;enchantment]|*) then transforms((,newability[1/1],newability[counter(1/1)])) ueot text=Target creature gets +2/+2 until end of turn. If it's an enchantment creature or legendary creature, instead put a +1/+1 counter on it and it gets +1/+1 until end of turn. mana={W} type=Instant @@ -96094,7 +96094,8 @@ type=Sorcery [card] name=Scourge of Nel Toth abilities=flying -retrace={B}{B}{S(creature|mybattlefield)}{S(creature|mybattlefield)} otherrestriction=type(creature|myBattlefield)~morethan~1 +retrace={B}{B}{S(creature|mybattlefield)}{S(creature|mybattlefield)} +otherrestriction=type(creature|myBattlefield)~morethan~1 text=Flying -- You may cast Scourge of Nel Toth from your graveyard by paying {B}{B} and sacrificing two creatures rather than paying its mana cost. mana={5}{B}{B} type=Creature @@ -108778,7 +108779,7 @@ type=Sorcery name=Summoner's Bond abilities=hiddenface,isconspiracy restriction=never -autocommandzone=chooseaname transforms((,newability[@movedto(creature[-chosenname]|mybattlefield):may name(Search library) target(creature[chosenname]|mylibrary) moveto(hand) and!( shuffle )!],newability[@movedto(creature[chosenname]|mybattlefield) from(mystack):may name(Search library) target(creature[-chosenname]|mylibrary) moveto(hand) and!( shuffle )!])) forever chooseend +autocommandzone=chooseaname transforms((,newability[@movedto(creature[-chosenname]|myStack):may name(Search library) target(creature[chosenname]|mylibrary) moveto(hand)],newability[@movedto(creature[chosenname]|myStack):may name(Search library) target(creature[-chosenname]|mylibrary) moveto(hand)])) forever chooseend text=Double agenda (Start the game with this conspiracy face down in the command zone and secretly name two different cards. You may turn this conspiracy face up any time and reveal the chosen names.) -- Whenever you cast a creature spell with one of the chosen names, you may search your library for a creature card with the other chosen name, reveal it, put it into your hand, then shuffle. type=Conspiracy [/card] @@ -112756,11 +112757,12 @@ type=Instant [/card] [card] name=Thassa's Oracle -aicode=activate target(*[zpos<=manaU]|mylibrary) moveto(mylibrary) -auto=name(Look X cards) reveal:manaU optionone name(Get a Card) target(<1>*|reveal) moveto(mylibrary) optiononeend optiontwo target(*|reveal) bottomoflibrary optiontwoend revealend -auto=if compare(restriction[*|zpos>=manaU]) then wingame -text=When Thassa's Oracle enters, look at the top X cards of your library, where X is your devotion to blue. Put up to one of them on top of your library and the rest on the bottom of your library in a random order. If X is greater than or equal to the number of cards in your library, you win the game. (Each {U} in the mana costs of permanents you control counts toward your devotion to blue.) -mana={1}{U} +aicode=activate target(*[zpos<=type:manaU]|mylibrary) moveto(mylibrary) +auto=name(Look X cards) reveal:type:manaU optionone name(Get a Card) target(*|reveal) moveto(mylibrary) optiononeend optiontwo all(*|reveal) bottomoflibrary optiontwoend revealend +auto=if type(*|mylibrary)~lessthan~type:manaU then wingame +auto=if type(*|mylibrary)~equalto~type:manaU then wingame +text=When this creature enters, look at the top X cards of your library, where X is your devotion to blue. Put up to one of them on top of your library and the rest on the bottom of your library in a random order. If X is greater than or equal to the number of cards in your library, you win the game. (Each {U} in the mana costs of permanents you control counts toward your devotion to blue.) +mana={U}{U} type=Creature subtype=Merfolk Wizard power=1 @@ -126329,7 +126331,7 @@ toughness=2 [/card] [card] name=Winds of Abandon -restriction=type(creature|oppponentbattlefield)~morethan~0 +restriction=type(creature|opponentbattlefield)~morethan~0 other={4}{W}{W} name(Overload) auto=if paid(alternative) then name(Exile all creatures) name(Exile all creatures) all(creature|opponentbattlefield) moveto(exile) and!( transforms((,newability[name(choose basic land) target(land[basic]|mylibrary) moveto(myBattlefield) and!( tap(noevent) )!])) oneshot )! auto=ifnot paid(alternative) then name(Exile a creature) name(Exile a creature) target(creature|opponentbattlefield) moveto(exile) and!( transforms((,newability[name(choose basic land) target(land[basic]|mylibrary) moveto(myBattlefield) and!( tap(noevent) )!])) oneshot )! diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index a71747e25..1d8f31e8f 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -12608,7 +12608,7 @@ toughness=1 name=Bloodlord of Vaasgoth abilities=flying auto=bloodthirst:3 -auto=lord(other creature[vampire]|mynonbattlezone) transforms((,newability[if casted(this) then bloodthirst:3])) +auto=lord(other creature[vampire]|myCastingzone) transforms((,newability[if casted(this) then bloodthirst:3])) text=Bloodthirst 3 -- Flying -- Whenever you cast a Vampire creature spell, it gains bloodthirst 3. mana={3}{B}{B} type=Creature @@ -53303,7 +53303,7 @@ toughness=3 [card] name=Heartless Summoning auto=lord(creature|myBattlefield) -1/-1 -auto=lord(creature|mycastingzone) altercost( colorless,-2) +auto=lord(creature|mycastingzone) altercost(colorless,-2) text=Creature spells you cast cost {2} less to cast. -- Creatures you control get -1/-1 mana={1}{B} type=Enchantment @@ -73887,8 +73887,7 @@ type=Legendary Land [card] name=Mind Burst target=player -auto=ability$!name(discard) target(*|myhand) reject!$ targetedplayer -auto=ability$!name(discard) target(*|myhandplus1plusend) reject!$ targetedplayer +auto=ability$!name(discard) target(*|myhand) reject!$ targetedplayer text=Target player discards X cards, where X is one plus the number of cards named Mind Burst in all graveyards. mana={1}{B} type=Sorcery @@ -78126,7 +78125,7 @@ toughness=3 name=Nagging Thoughts abilities=madness,hiddenface aicode=activate transforms((,newability[choice all(*[zpos=2]|mylibrary) moveto(hand) and!(deplete:1)!],newability[choice all(*[zpos=1]|mylibrary) moveto(hand) and!(deplete:1)!])) ueot -auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(hand) optiononeend optiontwo name(put in graveyard) target(<2>*|reveal) moveto(mygraveyard) optiontwoend revealend +auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(hand) optiononeend optiontwo name(put in graveyard) target(<1>*|reveal) moveto(mygraveyard) optiontwoend revealend autoexile=restriction{discarded} pay({1}{U}) name(pay 1U to cast) activate name(pay 1U to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) text=Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. -- Madness {1}{U} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) mana={1}{U} diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 9d085ca74..6f434a4b0 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -572,7 +572,7 @@ subtype=Chandra name=Chandra, Gremlin Wrangler auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 red Gremlin creature token) token(Gremlin,Creature Gremlin,2/2,red) -auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) damage:damage:type:creature[Gremlin]|myBattlefield target(anytarget) +auto={C(0/0,-2,Loyalty)}:name(-2: Deals X damage to any target... ) damage:type:creature[Gremlin]:myBattlefield target(anytarget) text=+1: Create a 2/2 red Gremlin creature token. -- -2: Chandra, Gremlin Wrangler deals X damage to any target, where X is the number of Gremlins you control. mana={2}{R}{R} type=Legendary Planeswalker @@ -3770,7 +3770,7 @@ abilities=showfromtoplibrary,canplaycreaturelibrarytop aicode=activate moveto(myBattlefield) target(creature[manacost<=storedmanacost]|mylibrary) auto=counter(0/0,3,Loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a Creature Beast 3/3) token(Beast Viv) -auto={C(0/0,-2,Loyalty)}:name(-2: Cast a creature to search a lesser creature) emblem transforms((,newability[@movedTo(creature|myStak):moveTo(myBattlefield) target(creature[manacost<=storedmanacost]|myLibrary) && shuffle])) oneshot +auto={C(0/0,-2,Loyalty)}:name(-2: Cast a creature to search a lesser creature) emblem transforms((,newability[@movedTo(creature|myStack):moveTo(myBattlefield) target(creature[manacost<=storedmanacost]|myLibrary) && shuffle])) oneshot text=You may look at the top card of your library any time. -- You may cast creature spells from the top of your library. -- +1: Create a 3/3 green Beast creature token. Put your choice of a vigilance counter, a reach counter, or a trample counter on it. -- -2: When you cast your next creature spell this turn, search your library for a creature card with lesser mana value, put it onto the battlefield, then shuffle. mana={3}{G}{G} type=Legendary Planeswalker