diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/NEO.txt b/projects/mtg/bin/Res/missing_cards_by_sets/NEO.txt new file mode 100644 index 000000000..c95677639 --- /dev/null +++ b/projects/mtg/bin/Res/missing_cards_by_sets/NEO.txt @@ -0,0 +1,27 @@ +[card] +name=Isshin, Two Heavens as One +text=If a creature attacking causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +mana={R}{W}{B} +type=Legendary Creature +subtype=Human Samurai +power=3 +toughness=4 +[/card] +[card] +name=Isshin, Two Heavens as One +text=If a creature attacking causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +mana={R}{W}{B} +type=Legendary Creature +subtype=Human Samurai +power=3 +toughness=4 +[/card] +[card] +name=Isshin, Two Heavens as One +text=If a creature attacking causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +mana={R}{W}{B} +type=Legendary Creature +subtype=Human Samurai +power=3 +toughness=4 +[/card] diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt index 5d0f43c89..e12f78f86 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt @@ -1,6 +1,7 @@ Primal Command Rowan Kenrith Pyre-Sledge Arsonist +Sokenzan Smelter Star Pupil Sun Droplet Hall of the Bandit Lord @@ -348,6 +349,120 @@ Whack Security Rhox Ormos, Archive Keeper Myojin of Cryptic Dreams +Unforgiving One +Silver-Fur Master +Satsuki, the Living Lore +Spirit-Sister's Call +Light-Paws, Emperor's Voice +Invoke Justice +Eater of Virtue +The Restoration of Eiganjo +Atsushi, the Blazing Sky +Dramatist's Puppet +Ambitious Assault +Containment Construct +March of Otherworldly Light +Akki Ember-Keeper +Bronze Cudgels +Automated Artificer +Inventive Iteration +Tamiyo, Compleated Sage +Okiba Salvage +The Kami War +Kaito Shizuki +Satoru Umezawa +The Fall of Lord Konda +Tribute to Horobi +Risona, Asari Commander +Tatsunari, Toad Rider +Soul Transfer +Prodigy's Prototype +Naomi, Pillar of Order +Reckoner Shakedown +Kotose, the Silent Spider +Ao, the Dawn Sky +The Long Reach of Night +Lethal Exploit +Nashi, Moon Sage's Scion +Invigorating Hot Spring +March of Wretched Sorrow +Hidetsugu Consumes All +Greasefang, Okiba Boss +Storyweave +Spinning Wheel Kick +Kami of Terrible Secrets +Weaver of Harmony +Teachings of the Kirin +Go-Shintai of Lost Wisdom +Invoke the Ancients +Thundering Raiju +The Dragon-Kami Reborn +Kami of Transience +Kodama of the West Tree +Jugan Defends the Temple +Mindlink Mech +Kappa Tech-Wrecker +Secluded Courtyard +March of Swirling Mist +Kura, the Boundless Sky +Kairi, the Swirling Sky +Coiling Stalker +March of Burgeoning Life +Azusa's Many Journeys +Upriser Renegade +Mech Hangar +Explosive Singularity +Anchor to Reality +Peerless Samurai +Moon-Circuit Hacker +Invoke Calamity +Futurist Operative +Covert Technician +Goro-Goro, Disciple of Ryusei +Biting-Palm Ninja +Scrap Welder +March of Reckless Joy +Discover the Impossible +Seismic Wave +Behold the Unspeakable +Roadside Reliquary +Awakened Awareness +Heiko Yamazaki, the General +Invoke Despair +Touch the Spirit Realm +Kumano Faces Kakkazan +Walking Skyscraper +Towashi Guide-Bot +Kami's Flare +Kami of Industry +Dragonspark Reactor +Crackling Emergence +Experimental Synthesizer +Iron Apprentice +Go-Shintai of Ancient Wars +Reckoner Bankbuster +Flame Discharge +Mirror Box +Mechtitan Core +Hidetsugu, Devouring Chaos +Season of Renewal +Roaring Earth +Orochi Merge-Keeper +Historian's Wisdom +Tezzeret, Betrayer of Flesh +Heir of the Ancient Fang +Go-Shintai of Hidden Cruelty +Enormous Energy Blade +Debt to the Kami +Assassin's Ink +Go-Shintai of Boundless Vigor +Reality Heist +Harmonious Emergence +Mobilizer Mech +Boseiju Reaches Skyward +Blossom Prancer +Careful Cultivation +Banishing Slash Lithoform Engine Reality Spasm Suffer the Past diff --git a/projects/mtg/bin/Res/sets/XLN/_cards.dat b/projects/mtg/bin/Res/sets/XLN/_cards.dat index f10c262b1..28eb34195 100644 --- a/projects/mtg/bin/Res/sets/XLN/_cards.dat +++ b/projects/mtg/bin/Res/sets/XLN/_cards.dat @@ -1502,7 +1502,7 @@ id=435450 rarity=C [/card] [card] -primitive=TreasureArtifactToken +primitive=Treasure id=435451 rarity=T [/card] \ No newline at end of file diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index c83fd0071..80310ff00 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -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 18-06-2023 +#I sorted this programmatically - Thanks to Vitty85 19-06-2023 [card] name=+2 Mace auto={3}:equip @@ -2090,6 +2090,17 @@ type=Artifact subtype=Equipment [/card] [card] +name=Ancestral Katana +auto=teach(creature) 2/1 +auto={3}:equip +auto=@combat(attackedalone) source(samurai|mybattlefield) turnlimited:may name(Pay 1 and attach) pay({1}) name(Pay 1 and attach) rehook target(samurai[attacking]|mybattlefield) +auto=@combat(attackedalone) source(warrior|mybattlefield) turnlimited:may name(Pay 1 and attach) pay({1}) name(Pay 1 and attach) rehook target(warrior[attacking]|mybattlefield) +text=Whenever a Samurai or Warrior you control attacks alone, you may pay {1}. When you do, attach Ancestral Katana to it. -- Equipped creature gets +2/+1. -- Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) +mana={1}{W} +type=Artifact +subtype=Equipment +[/card] +[card] name=Ancient Animus target=creature|myBattlefield auto=if cantargetcard(legendary) then counter(1/1) @@ -29273,6 +29284,16 @@ text={T}: Add one mana of any color that a land an opponent controls could produ type=Land [/card] [card] +name=Expand the Sphere +aicode=activate transforms((,newability[if type(land[zpos<=6]|mylibrary)~morethan~1 then target(<2>land[zpos<=6]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )!],newability[if type(land[zpos<=6]|mylibrary)~equalto~1 then target(land[zpos<=6]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )!],newability[if type(land[zpos<=6]|mylibrary)~equalto~1 then _PROLIFERATE_],newability[if type(land[zpos<=6]|mylibrary)~equalto~0 then thisforeach(variable{2}) ability$!name(Proliferate) _PROLIFERATE_ !$ controller])) oneshot +auto=if type(land[zpos<=6]|mylibrary)~morethan~1 then name(Reveal top 6 cards) name(Reveal top 6 cards) reveal:6 optionone name(Choose 2 lands) target(<2>land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[choice name(Put on battlefield) moveto(mybattlefield) and!( tap(noevent) )!],newability[choice name(Proliferate) moveto(myreveal) and!( bottomoflibrary and!( _PROLIFERATE_)! )!])) ueot afterrevealedend revealend +auto=if type(land[zpos<=6]|mylibrary)~equalto~1 then name(Reveal top 6 cards) name(Reveal top 6 cards) reveal:6 optionone name(Choose 2 lands) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) transforms((,newability[ability$!name(Proliferate) _PROLIFERATE_ !$ controller],newability[choice name(Put on battlefield) moveto(mybattlefield) and!( tap(noevent) )!],newability[choice name(Proliferate) moveto(myreveal) and!( bottomoflibrary and!( _PROLIFERATE_)! )!])) ueot afterrevealedend revealend +auto=if type(land[zpos<=6]|mylibrary)~equalto~0 then name(Reveal top 6 cards) name(Reveal top 6 cards) reveal:6 optionone name(Choose 2 lands) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed thisforeach(variable{2}) ability$!name(Proliferate) _PROLIFERATE_ !$ controller afterrevealedend revealend +text=Look at the top six cards of your library. Put up to two land cards from among them onto the battlefield tapped and the rest on the bottom of your library in a random order. If you put fewer than two lands onto the battlefield this way, proliferate a number of times equal to the difference. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) +mana={3}{G} +type=Sorcery +[/card] +[card] name=Expanded Anatomy target=creature auto=transforms((,newability[vigilance],newability[counter(1/1.2)])) ueot @@ -38828,6 +38849,18 @@ power=4 toughness=4 [/card] [card] +name=Green Sun's Twilight +aicode=activate transforms((,newability[if compare(fullpaid)~lessthan~5 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then target(creature[zpos<=fullpaidplus1plusend]|mylibrary) moveto(myhand) and!( all(*[zpos<=fullpaidplus1plusend]mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if compare(fullpaid)~morethan~4 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then target(creature[zpos<=fullpaidplus1plusend]|mylibrary) moveto(mybattlefield) and!( all(*[zpos<=fullpaidplus1plusend]mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if compare(fullpaid)~lessthan~5 then if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then target(land[zpos<=fullpaidplus1plusend]|mylibrary) moveto(myhand) and!( all(*[zpos<=fullpaidplus1plusend]mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if compare(fullpaid)~morethan~4 then if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then target(land[zpos<=fullpaidplus1plusend]|mylibrary) moveto(mybattlefield) and!( all(*[zpos<=fullpaidplus1plusend]mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then all(*[zpos<=fullpaidplus1plusend]mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot +auto=if compare(fullpaid)~lessthan~5 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) reveal:fullpaidplus1plusend optionone name(Choose creature) target(creature|reveal) moveto(myhand) and!( transforms((,newability[if type(land|myreveal)~morethan~0 then name(Choose a land) name(Choose a land) target(land|reveal) moveto(myhand)])) oneshot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=if compare(fullpaid)~lessthan~5 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) reveal:fullpaidplus1plusend optionone name(Choose a land) target(land|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=if compare(fullpaid)~morethan~4 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) reveal:fullpaidplus1plusend optionone name(Choose creature) target(creature|reveal) moveto(mylibrary) and!( transforms((tobecast,newability[if type(land|myreveal)~morethan~0 then name(Choose a land) name(Choose a land) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot)!])) oneshot )! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(mybattlefield) afterrevealedend revealend +auto=if compare(fullpaid)~morethan~4 then if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~morethan~0 then name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) reveal:fullpaidplus1plusend optionone name(Choose a land) target(land|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot)! optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(mybattlefield) afterrevealedend revealend +auto=if type(creature[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then if type(land[zpos<=fullpaidplus1plusend]|mylibrary)~equalto~0 then name(Reveal top cards) name(Reveal top cards) name(Reveal top cards) reveal:fullpaidplus1plusend optionone name(Put on bottom) target(*|reveal) bottomoflibrary optiononeend optiontwo all(*|reveal) bottomoflibrary optiontwoend revealend +text=Reveal the top X plus one cards of your library. Choose a creature card and/or a land card from among them. Put those cards into your hand and the rest on the bottom of your library in a random order. If X is 5 or more, instead put the chosen cards onto the battlefield or into your hand and the rest on the bottom of your library in a random order. +mana={X}{G} +type=Sorcery +[/card] +[card] name=Greensleeves, Maro-Sorcerer auto=protection from(planeswalker,Wizard) anyzone=type:land:myBattlefield/type:land:myBattlefield cdaactive @@ -53008,6 +53041,21 @@ mana={3}{W}{B} type=Enchantment [/card] [card] +name=Life of Toshiro Umezawa +backside=Memory of Toshiro +restriction=compare(isflipped)~equalto~0 +anyzone={0}:doubleside(backside) +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=transforms((,newability[if type(creature|battlefield)~morethan~0 then choice name(Creature gets 2/2) name(Creature gets 2/2) target(creature|battlefield) 2/2 ueot],newability[if type(creature|battlefield)~morethan~0 then choice name(Creature gets -1/-1) name(Creature gets -1/-1) target(creature|battlefield) -1/-1 ueot],newability[choice name(Gain 2 life) life:2 controller])) oneshot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) transforms((,newability[if type(creature|battlefield)~morethan~0 then choice name(Creature gets 2/2) name(Creature gets 2/2) target(creature|battlefield) 2/2 ueot],newability[if type(creature|battlefield)~morethan~0 then choice name(Creature gets -1/-1) name(Creature gets -1/-1) target(creature|battlefield) -1/-1 ueot],newability[choice name(Gain 2 life) life:2 controller])) oneshot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) moveto(exile) and!( flip(backside) forcetype(Enchantment Creature) )! asSorcery +text=(As this Saga enters and after your draw step, add a lore counter.) -- I, II - Choose one -- Target creature gets +2/+2 until end of turn. -- Target creature gets -1/-1 until end of turn. -- You gain 2 life. -- III - Exile this Saga, then return it to the battlefield transformed under your control. +mana={1}{B} +type=Enchantment +subtype=Saga +[/card] +[card] name=Light 'Em Up other={1}{R}{S(creature[power>=2]|myBattlefield)} name(Casualty 2) otherrestriction=type(creature[power>=2]|myBattlefield)~morethan~1 @@ -56909,6 +56957,16 @@ mana={2}{B} type=Sorcery [/card] [card] +name=Memory of Toshiro +auto=this(variable{type:*[instant;sorcery]:myrestrictedcastingzone}>0) {T}{L:1}:name(Add mana) name(Add mana) add{B} +text={T}, Pay 1 life: Add {B}. Spend this mana only to cast an instant or sorcery spell. +color=black +type=Enchantment Creature +subtype=Human Samurai +power=2 +toughness=3 +[/card] +[card] name=Memory Theft aicode=activate transforms((,newability[reject notatarget(*[-land]|opponenthand)],newability[ability$!name(Put adventure in graveyard) moveTo(opponentgraveyard) target(*[adventure]|opponentexile)!$ controller])) oneshot auto=if type(*[adventure]|opponentexile)~morethan~0 then choice name(Put adventure in graveyard) name(Put adventure in graveyard) reveal:type:*:opponenthand revealzone(opponenthand) optionone name(choose non-land card) target(*[-land]|reveal) reject optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed name(Choose adventure from exile) moveTo(opponentgraveyard) target(*[adventure]|opponentexile) afterrevealedend revealend diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index faf7a37df..59644dd04 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -2,7 +2,7 @@ grade=unsupported #The cards in this file are not implemented/incomplete yet. #Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards) #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically - Vitty85 18-06-2023 +#I sorted this programatically - Vitty85 19-06-2023 [card] name="Ach! Hans, Run!" text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn. @@ -5130,6 +5130,15 @@ power=3 toughness=6 [/card] [card] +name=Isshin, Two Heavens as One +text=If a creature attacking causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +mana={R}{W}{B} +type=Legendary Creature +subtype=Human Samurai +power=3 +toughness=4 +[/card] +[card] name=It That Gets Left Hanging text=When It That Gets Left Hanging enters the battlefield, ask a person outside the game to high-five you. If they won't, It That Gets Left Hanging gains haste until end of turn. mana={5}{R}