From 29262b4c7856da8d530b97f77ef75eedf4660ed1 Mon Sep 17 00:00:00 2001 From: Vittorio Alfieri Date: Wed, 26 Jul 2023 17:05:14 +0200 Subject: [PATCH] Fixed some primitives from issue #1085, fixed some primitives from Discord channel. --- .../bin/Res/sets/primitives/borderline.txt | 34 ++++++++----------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 15 ++++---- .../bin/Res/sets/primitives/planeswalkers.txt | 13 +++---- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 8edcf050d..d9845a886 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 25-07-2023 +#I sorted this programmatically - Thanks to Vitty85 26-07-2023 [card] name=+2 Mace auto={3}:equip @@ -42188,8 +42188,8 @@ type=Artifact [/card] [card] name=Guild Summit -auto=(gate[-tapped]|myBattlefield) draw:1 -auto=@movedTo(*[Gate]|myBattlefield):draw:1 +auto=may name(Tap gates) target(gate[-tapped]|myBattlefield) tap && draw:1 controller +auto=@movedTo(*[gate]|myBattlefield):name(Draw a card) draw:1 controller text=When Guild Summit enters the battlefield, you may tap any number of untapped Gates you control. Draw a card for each Gate tapped this way. -- Whenever a Gate enters the battlefield under your control, draw a card. mana={2}{U} type=Enchantment @@ -50516,13 +50516,7 @@ toughness=2 [/card] [card] name=Jack-in-the-Mox -auto={T}:all(this) rolld6 6 winability counter(0/0,1,JackEffect) winabilityend loseability counter(0/0,1,JackEffect) loseabilityend rolld6end -auto=@dierolled(this) result(1) from(controller):this(counter{0/0.1.JackEffect}=1) name(Sacrifice Jack-in-the-Mox) name(Sacrifice Jack-in-the-Mox) sacrifice && counter(0/0,-1,JackEffect) all(this) -auto=@dierolled(this) result(2) from(controller):this(counter{0/0.1.JackEffect}=1) name(Add white mana) name(Add white mana) add{W} && counter(0/0,-1,JackEffect) all(this) -auto=@dierolled(this) result(3) from(controller):this(counter{0/0.1.JackEffect}=1) name(Add blue mana) name(Add blue mana) add{U} && counter(0/0,-1,JackEffect) all(this) -auto=@dierolled(this) result(4) from(controller):this(counter{0/0.1.JackEffect}=1) name(Add black mana) name(Add black mana) add{B} && counter(0/0,-1,JackEffect) all(this) -auto=@dierolled(this) result(5) from(controller):this(counter{0/0.1.JackEffect}=1) name(Add red mana) name(Add red mana) add{R} && counter(0/0,-1,JackEffect) all(this) -auto=@dierolled(this) result(6) from(controller):this(counter{0/0.1.JackEffect}=1) name(Add green mana) name(Add green mana) add{G} && counter(0/0,-1,JackEffect) all(this) +auto={T}:name(Roll a die) all(this) rolld6 1 winability transforms((,newability[sacrifice],newability[life:-5 controller])) oneshot winabilityend loseability if compare(lastrollresult)~equalto~2 then add{W} else if compare(lastrollresult)~equalto~3 then add{U} else if compare(lastrollresult)~equalto~4 then add{B} else if compare(lastrollresult)~equalto~5 then add{R} else if compare(lastrollresult)~equalto~6 then add{G} loseabilityend rolld6end text={T}: Roll a six-sided die for Jack-in-the-Mox. On a 1, sacrifice Jack-in-the-Mox and lose 5 life. Otherwise, Jack-in-the-Mox has one of the following effects. Treat this ability as a mana source. -- 2 Add {W} to your mana pool. -- 3 Add {U} to your mana pool. -- 4 Add {B} to your mana pool. -- 5 Add {R} to your mana pool. -- 6 Add {G} to your mana pool. mana={0} type=Artifact @@ -50868,10 +50862,11 @@ type=Instant [/card] [card] name=Jaya's Immolating Inferno -target=* -auto=damage:x +restriction=type(legendary[creature]|mybattlefield)~morethan~0,type(legendary[planeswalker]|mybattlefield)~equalto~0 +otherrestriction=type(legendary[planeswalker]|mybattlefield)~morethan~0,type(legendary[creature]|mybattlefield)~equalto~0 +other={X}{R}{R} +auto=target(anytarget) damage:fullpaid text=(You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) -- Jaya's Immolating Inferno deals X damage to each of up to three targets. -restriction=type(legendary[-artifact;-enchantment;-land]|mybattlefield)~morethan~0 mana={X}{R}{R} type=Legendary Sorcery [/card] @@ -55544,8 +55539,8 @@ type=Instant [/card] [card] name=Ledev Champion -auto=_ATTACKING_(creature[-tapped]|mybattlefield) 1/1 -auto={3}{G}{W}:create(soldier:creature soldier:1/1:white:lifelink) +auto=_ATTACKING_may name(Tap creatures) target(creature[-tapped]|mybattlefield) tap && all(this) 1/1 ueot +auto={3}{G}{W}:name(Create soldier) token(Soldier,Creature Soldier,1/1,white,lifelink) text=Whenever Ledev Champion attacks, you may tap any number of untapped creatures you control. Ledev Champion gets +1/+1 until end of turn for each creature tapped this way. -- {3}{G}{W}: Create a 1/1 white Soldier creature token with lifelink. mana={1}{G}{W} type=Creature @@ -80393,10 +80388,11 @@ toughness=4 [/card] [card] name=Rosie Cotton of South Lane -auto=token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )! +#This card has been modded in order to allow specific combo when AI is using it, this mod is not effecting card when it is useb by a Human player. +auto=if compare(ishuman)~morethan~0 then name(Create food) name(Create food) token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )! +auto=if compare(ishuman)~equalto~0 then transforms((,newability[if type(Scurry Oak|mybattlefield)~equalto~0 then token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )!],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~equalto~0 then token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )!],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~morethan~0 then token(Food) and!( name(Put 1/1 counter) target(Scurry Oak|myBattlefield) counter(1/1) )!])) oneshot auto=@tokencreated(*|myBattlefield) restriction{compare(ishuman)~morethan~0}:name(Put 1/1 counter) name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) -auto=@tokencreated(*|myBattlefield) restriction{compare(ishuman)~equalto~0,type(Scurry Oak|mybattlefield)~equalto~0}:name(Put 1/1 counter) name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) -auto=@tokencreated(*|myBattlefield) restriction{compare(ishuman)~equalto~0,type(Scurry Oak|mybattlefield)~morethan~0}:name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) target(Scurry Oak|mybattlefield) counter(1/1) +auto=@tokencreated(*|myBattlefield) restriction{compare(ishuman)~equalto~0}:name(Put 1/1 counter) name(Put 1/1 counter) transforms((,newability[if type(Scurry Oak|mybattlefield)~equalto~0 then name(Put 1/1 counter) name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1)],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~equalto~0 then name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1)],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~morethan~0 then name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) target(Scurry Oak|myBattlefield) counter(1/1)])) oneshot text=When Rosie Cotton of South Lane enters the battlefield, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- Whenever you create a token, put a +1/+1 counter on target creature you control other than Rosie. mana={2}{W} type=Legendary Creature @@ -86901,7 +86897,7 @@ toughness=4 [card] name=Siege Striker abilities=double strike -auto=_ATTACKING_foreach(creature[-tapped]|mybattlefield) may target(creature[-tapped]|mybattlefield) tap && all(this) 1/1 ueot +auto=_ATTACKING_may name(Tap creatures) target(creature[-tapped]|mybattlefield) tap && all(this) 1/1 ueot text=Double strike (This creature deals both first-strike and regular combat damage.) -- Whenever Siege Striker attacks, you may tap any number of untapped creatures you control. Siege Striker gets +1/+1 until end of turn for each creature tapped this way. mana={2}{W} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 6f9b8cd1f..ccd1e1bb1 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1,6 +1,6 @@ #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 so the other comments are removed except for AUTO_DEFINE - Vitty85 25-07-2023 +#I sorted this programmatically so the other comments are removed except for AUTO_DEFINE - Vitty85 26-07-2023 [card] name=Abandon Reason target=creature @@ -59847,7 +59847,7 @@ toughness=2 [card] name=Jaddi Lifestrider auto=may name(Tap creatures) target(creature[-tapped]|mybattlefield) tap && life:2 controller -text=tap any amount of creatures and gain 2 life for each creature tapped this way +text=When Jaddi Lifestrider enters the battlefield, you may tap any number of untapped creatures you control. You gain 2 life for each creature tapped this way. mana={4}{G} type=Creature subtype=Elemental @@ -59857,7 +59857,7 @@ toughness=8 [card] name=Jaddi Offshoot abilities=defender -auto=_LANDFALL_life:1 controller +auto=_LANDFALL_name(Gain 1 life) life:1 controller text=Defender -- Landfall -- Whenever a land enters the battlefield under your control, you gain 1 life. mana={G} type=Creature @@ -61028,8 +61028,9 @@ toughness=1 [card] name=Junk Golem auto=counter(1/1,3) -auto=upcost[{C(1/1,-1)}] sacrifice -auto={D(*|myhand)}:counter(1/1) +auto=if compare(ishuman)~morethan~0 then transforms((,newability[upcost[{C(1/1.-1)}] sacrifice])) forever +auto=@each my upkeep restriction{compare(ishuman)~equalto~0}:name(Choose one) name(Choose one) transforms((,newability[if compare(hascnt11)~morethan~0 then choice name(Remove 1/1 counter) name(Remove 1/1 counter) counter(1/1.-1)],newability[choice name(Sacrifice) sacrifice])) oneshot +auto={1}{D(*|myhand)}:name(Discard and put counter) counter(1/1) text=Junk Golem enters the battlefield with three +1/+1 counters on it. -- At the beginning of your upkeep, sacrifice Junk Golem unless you remove a +1/+1 counter from it. -- {1}, Discard a card: Put a +1/+1 counter on Junk Golem. mana={4} type=Artifact Creature @@ -126754,8 +126755,8 @@ toughness=4 [card] name=Urge to Feed target=creature -auto=-3/-3 -auto=target(vampire[-tapped]|mybattlefield) transforms((,newability[tap],newability[counter(1/1)])) +auto=-3/-3 ueot +auto=may name(Tap vampires) target(vampire[-tapped]|mybattlefield) transforms((,newability[tap],newability[counter(1/1)])) ueot text=Target creature gets -3/-3 until end of turn. You may tap any number of untapped Vampire creatures you control. If you do, put a +1/+1 counter on each of those Vampires. mana={B}{B} type=Instant diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 71d6fd28d..bc8bd0395 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -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 24-07-2023 +#We sorted this in alphabetical order - Luruz & Vitty85 26-07-2023 [card] name=Abian, Luvion Usurper auto=counter(0/0,5,loyalty) @@ -1416,9 +1416,10 @@ subtype=Jace [card] name=Jace, the Living Guildpact auto=counter(0/0,5,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Look the top two and put one in graveyard) reveal:2 optionone name(put in graveyard) target(<1>*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(<1>*|reveal) moveto(ownerlibrary) optiontwoend revealend -auto={C(0/0,-3,Loyalty)}:name(-3: Return another nonland permanent) target(other *[-land]) moveTo(ownerhand) -auto={C(0/0,-8,Loyalty)}:name(-8: Timetwister) moveto(opponentlibrary) all(*|opponenthand) && moveto(opponentlibrary) all(*|opponentgraveyard) && shuffle && moveto(mylibrary) all(*|myhand) && moveto(mylibrary) all(*|mygraveyard) && shuffle && draw:7 +aicode=activate transforms((,newability[target(*[zpos<=2]|mylibrary) moveto(ownergraveyard)])) oneshot +auto={C(0/0,1,Loyalty)}:name(+1: Look the top two and put one in graveyard) reveal:2 optionone name(Put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(Put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend revealend +auto={C(0/0,-3,Loyalty)}:name(-3: Return another nonland permanent) target(other *[-land]|battlefield) moveTo(ownerhand) +auto={C(0/0,-8,Loyalty)}:name(-8: Timetwister) moveto(opponentlibrary) all(*|opponenthand) && moveto(opponentlibrary) all(*|opponentgraveyard) && shuffle opponent && moveto(mylibrary) all(*|myhand) && moveto(mylibrary) all(*|mygraveyard) && shuffle controller && draw:7 controller text=+1: Look at the top two cards of your library. Put one of them into your graveyard. -- -3: Return another target nonland permanent to its owner's hand. -- -8: Each player shuffles their hand and graveyard into their library. You draw seven cards. mana={2}{U}{U} type=Legendary Planeswalker @@ -1508,9 +1509,9 @@ name=Jace, Telepath Unbound backside=Jace, Vryn's Prodigy auto=counter(0/0,5,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: don't target any creature) donothing -auto={C(0/0,1,Loyalty)}:name(+1: target creature gets -2/0) target(creature) -2/0 uynt +auto={C(0/0,1,Loyalty)}:name(+1: target creature gets -2/0) target(creature|battlefield) transforms((,newability[-2/0])) uynt auto={C(0/0,-3,Loyalty)}:name(-3: choose an instant or sorcery you may from graveyard) target(*[instant;sorcery]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot -auto={C(0/0,-9,Loyalty)}:name(-9: emblem mills opponent cards) emblem transforms((,newability[@movedTo(*|mystack):deplete:5 opponent])) forever dontremove +auto={C(0/0,-9,Loyalty)}:name(-9: emblem mills opponent cards) emblem transforms((,newability[@movedTo(*|mystack):name(Mill 5 cards) deplete:5 opponent])) forever dontremove text=+1: Up to one target creature gets -2/-0 until your next turn. -- -3: You may cast target instant or sorcery card from your graveyard this turn. If that card would be put into your graveyard this turn, exile it instead. -- -9: You get an emblem with "Whenever you cast a spell, target opponent puts the top five cards of his or her library into his or her graveyard." // Jace, Vryn's Prodigy type=Legendary Planeswalker subtype=Jace