diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 418023b4e..56ba95421 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -223,7 +223,7 @@ toughness=3 [card] name=Admiral's Order target=spell -auto=if type(creature[attacking]|mybattlefield)~morethan~0 altercost(colorless,-1) altercost(blue,-1) +auto=if raid altercost(colorless,-1) altercost(blue,-1) auto=fizzle text=Raid — If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost. -- Counter target spell. mana={1}{U}{U} @@ -7703,7 +7703,7 @@ type=Sorcery [card] name=Crash of Rhino Beetles abilities=trample -auto=aslongas(land|myBattlefield)~morethan~9 10/10 +auto=aslongas(land|myBattlefield) 10/10 >9 text=Trample -- Crash of Rhino Beetles gets +10/+10 as long as you control ten or more lands. mana={4}{G} type=Creature @@ -7743,9 +7743,12 @@ toughness=4 [/card] [card] name=Crashing Footfalls -suspend(4)={G} -auto=token(Rhino,creature Rhino,4/4,green,trample) +auto=token(Rhino,creature Rhino,4/4,green,trample)*2 text=Suspend {4} — G} (Rather than cast this card from your hand, pay {G} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Create two 4/4 green Rhino creature tokens with trample. +color=green +restriction=turn:100 +mana={0} +suspend(4)={G} type=Sorcery [/card] [card] @@ -8742,7 +8745,7 @@ toughness=2 [/card] [card] name=Deadeye Tormentor -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then ability$!discard(*|myhand)!$ opponent +auto=if raid then ability$!discard(*|myhand)!$ opponent text=Raid — When Deadeye Tormentor enters the battlefield, if you attacked with a creature this turn, target opponent discards a card. mana={2}{B} type=Creature @@ -9386,7 +9389,7 @@ type=Instant [/card] [card] name=Desperate Castaways -auto=aslongas(artifact|mybattlefield)<1 cantattack +auto=aslongas(artifact|mybattlefield) cantattack <1 text=Desperate Castaways can't attack unless you control an artifact. mana={1}{B} type=Creature @@ -10794,7 +10797,6 @@ toughness=3 [/card] [card] name=Drudge Sentinel -abilities=indestructible auto={3}:tap && indestructible ueot text={3}: Tap Drudge Sentinel. It gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) mana={2}{B} @@ -11140,8 +11142,8 @@ flashback={2}{U} auto=ability$! moveto(mylibrary) all(*|myhand,mygraveyard) !$ controller auto=ability$! moveto(mylibrary) all(*|myhand,mygraveyard) !$ opponent auto=shuffle all(player) -auto=ability$! if type(*|mylibrary)~morethan~6 then may draw:7 _ if type(*|mylibrary)~morethan~5 then may draw:6 _ if type(*|mylibrary)~morethan~4 then may draw:5 _ if type(*|mylibrary)~morethan~3 then may draw:4 _ if type(*|mylibrary)~morethan~2 then may draw:3 _ if type(*|mylibrary)~morethan~1 then may draw:2 _ if type(*|mylibrary)~morethan~0 then may draw:1 !$ opponent -auto=ability$! if type(*|mylibrary)~morethan~6 then may draw:7 _ if type(*|mylibrary)~morethan~5 then may draw:6 _ if type(*|mylibrary)~morethan~4 then may draw:5 _ if type(*|mylibrary)~morethan~3 then may draw:4 _ if type(*|mylibrary)~morethan~2 then may draw:3 _ if type(*|mylibrary)~morethan~1 then may draw:2 _ if type(*|mylibrary)~morethan~0 then may draw:1 !$ controller +auto=draw:7 opponent +auto=draw:7 controller text=Each player shuffles their hand and graveyard into their library, then draws seven cards. -- Flashback {2}{U} (You may cast this card from your graveyard for its flashback cost. Then exile it.) mana={4}{U}{U} type=Sorcery @@ -13489,7 +13491,7 @@ toughness=1 name=Firecannon Blast target=creature auto=damage:3 -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then damage:3 +auto=if raid then damage:3 text=Firecannon Blast deals 3 damage to target creature. -- Raid — Firecannon Blast deals 6 damage to that creature instead if you attacked with a creature this turn. mana={1}{R}{R} type=Sorcery @@ -16438,8 +16440,7 @@ toughness=1 [card] name=Gravebreaker Lamia abilities=lifelink,hiddenface -aicode=activate moveTo(myhand) target(*|mylibrary) -auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend +auto=activate moveTo(mygraveyard) target(*|mylibrary) auto=lord(*|myGraveyard) changecost(colorless:-1) text=Lifelink -- When Gravebreaker Lamia enters the battlefield, search your library for a card, put it into your graveyard, then shuffle your library. -- Spells you cast from your graveyard cost {1} less to cast. mana={4}{B} @@ -17518,7 +17519,7 @@ type=Instant name=Heartless Pillage target=opponent auto=ability$!discard(<2>*|myhand)!$ targetedplayer -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then token(435451) +auto=if raid then token(435451) 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} type=Sorcery @@ -20867,7 +20868,7 @@ auto={T}:damage:1 target(creature|opponentBattlefield) transforms((,newability[@ text=Vigilance, haste -- Kelsien, the Plague gets +1/+1 for each experience counter you have. -- {T}: Kelsien deals 1 damage to target creature you don’t control. When that creature dies this turn, you get an experience counter. mana={R}{W}{B} type=Legendary Creature -subtype=Human Assasin +subtype=Human Assassin power=2 toughness=2 [/card] @@ -23614,7 +23615,7 @@ toughness=3 [/card] [card] name=Marauding Looter -auto=@each my endofturn:if type(creature[attacking]|mybattlefield)~morethan~0 then draw:1 && discard(*|myhand) +auto=@each my endofturn:if raid then draw:1 && discard(*|myhand) text=Raid — At the beginning of your end step, if you attacked with a creature this turn, you may draw a card. If you do, discard a card. mana={2}{U}{R} type=Creature @@ -25576,7 +25577,7 @@ type=Sorcery [/card] [card] name=Navigator's Ruin -auto=@each my endofturn restriction{type(creature[attacking]|mybattlefield)~morethan~0}:deplete:4 opponent +auto=@each my endofturn restriction{raid}:deplete:4 opponent text=Raid — At the beginning of your end step, if you attacked with a creature this turn, target opponent puts the top four cards of his or her library into his or her graveyard. mana={2}{U} type=Enchantment @@ -26152,7 +26153,7 @@ toughness=1 [/card] [card] name=Nightsquad Commando -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then token(Human Soldier Nig) +auto=if raid then token(Human Soldier Nig) text=When Nightsquad Commando enters the battlefield, if you attacked this turn, create a 1/1 white Human Soldier creature token. mana={2}{B} type=Creature @@ -30060,7 +30061,7 @@ type=Sorcery [card] name=Raiders' Wake auto=@discarded(*|opponenthand):life:-2 opponent -auto=@each my endofturn:if type(creature[attacking]|mybattlefield)~morethan~0 then ability$!discard(*|myhand)!$ opponent +auto=@each my endofturn:if raid then ability$!discard(*|myhand)!$ opponent text=Whenever an opponent discards a card, that player loses 2 life. -- Raid — At the beginning of your end step, if you attacked with a creature this turn, target opponent discards a card. mana={3}{B} type=Enchantment @@ -31087,7 +31088,7 @@ toughness=3 name=Repeating Barrage target=creature,player auto=damage:3 -autograveyard={3}{R}{R}restriction{if type(creature[attacking]|mybattlefield)~morethan~0}:moveto(myhand) +autograveyard={3}{R}{R}restriction{if raid}:moveto(myhand) text=Repeating Barrage deals 3 damage to target creature or player. -- Raid — {3}{R}{R}: Return Repeating Barrage from your graveyard to your hand. Activate this ability only if you attacked with a creature this turn. mana={1}{R}{R} type=Sorcery @@ -31577,7 +31578,7 @@ toughness=1 [card] name=Rigging Runner abilities=first strike -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then counter(1/1,1) +auto=if raid then counter(1/1,1) text=First strike -- Raid — Rigging Runner enters the battlefield with a +1/+1 counter on it if you attacked with a creature this turn. mana={R} type=Creature @@ -32389,7 +32390,7 @@ toughness=3 [/card] [card] name=Ruin Raider -auto=@each my endofturn:if type(creature[attacking]|mybattlefield)~morethan~0 then draw:1 && life:-manacost +auto=@each my endofturn:if raid then draw:1 && life:-manacost text=Raid — At the beginning of your end step, if you attacked with a creature this turn, reveal the top card of your library and put that card into your hand. You lose life equal to the card's converted mana cost. mana={2}{B} type=Creature @@ -34866,7 +34867,7 @@ toughness=3 [/card] [card] name=Shipwreck Looter -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then may draw:1 && discard(*|myhand) +auto=if raid then may draw:1 && discard(*|myhand) text=Raid — When Shipwreck Looter enters the battlefield, if you attacked with a creature this turn, you may draw a card. If you do, discard a card. mana={1}{U} type=Creature @@ -38184,7 +38185,7 @@ toughness=4 [card] name=Storm Fleet Aerialist abilities=flying -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then counter(1/1,1) +auto=if raid then counter(1/1,1) text=Flying -- Raid — Storm Fleet Aerialist enters the battlefield with a +1/+1 counter on it if you attacked with a creature this turn. mana={1}{U} type=Creature @@ -38194,7 +38195,7 @@ toughness=2 [/card] [card] name=Storm Fleet Arsonist -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then ability$!sacrifice target(creature|mybattlefield)!$ opponent +auto=if raid then ability$!sacrifice target(creature|mybattlefield)!$ opponent text=Raid — When Storm Fleet Arsonist enters the battlefield, if you attacked with a creature this turn, target opponent sacrifices a permanent. mana={4}{R} type=Creature @@ -38204,7 +38205,7 @@ toughness=4 [/card] [card] name=Storm Fleet Pyromancer -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then damage:2 target(creature,player) +auto=if raid then damage:2 target(creature,player) text=Raid — When Storm Fleet Pyromancer enters the battlefield, if you attacked with a creature this turn, Storm Fleet Pyromancer deals 2 damage to target creature or player. mana={4}{R} type=Creature @@ -38224,7 +38225,7 @@ toughness=2 [/card] [card] name=Storm Fleet Spy -auto=if type(creature[attacking]|mybattlefield)~morethan~0 then draw:1 +auto=if raid then draw:1 text=Raid — When Storm Fleet Spy enters the battlefield, if you attacked with a creature this turn, draw a card. mana={2}{U} type=Creature @@ -39125,8 +39126,8 @@ name=Sword of Sinew and Steel auto=teach(creature) 2/2 auto=teach(creature) protection from black auto=teach(creature) protection from red -auto=@combatdamaged(player) from(mytgt):destroy target(planeswalker) -auto=@combatdamaged(player) from(mytgt):destroy target(artifact) +auto=@combatdamaged(player) from(mytgt):may destroy target(planeswalker) +auto=@combatdamaged(player) from(mytgt):may destroy target(artifact) auto={2}:equip text=Equipped creature gets +2/+2 and has protection from black and from red. -- Whenever equipped creature deals combat damage to a player, destroy up to one target planeswalker and up to one target artifact. -- Equip {2} mana={3} @@ -40535,7 +40536,7 @@ toughness=1 [card] name=Thopter Spy Network auto=@each my upkeep:if type(artifact|mybattlefield)~morethan~0 then token token(Thopter,Artifact Creature Thopter,1/1,flying) -auto=@each combatdamage restriction{opponentdamagedbycombat}:draw:1 controller +auto=@each combatdamage restriction{opponentdamagedbycombat}:draw:1 controller limit:1 text=At the beginning of your upkeep, if you control an artifact, put a 1/1 colorless Thopter artifact creature token with flying onto the battlefield. -- Whenever one or more artifact creatures you control deal combat damage to a player, draw a card. mana={2}{U}{U} type=Enchantment @@ -42009,7 +42010,7 @@ name=Trynn, Champion of Freedom abilities=hiddenface aicode=activate moveTo(myhand) target(Silvar, Devourer of the Free|mylibrary) auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Silvar, Devourer of the Free|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Silvar, Devourer of the Free|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend -auto=@each my endofturn:if type(creature[attacking]|mybattlefield)~morethan~0 then token(Soldier Try) +auto=@each my endofturn:if raid then token(Soldier Try) text=Partner with Silvar, Devourer of the Free (When this creature enters the battlefield, target player may put Silvar into their hand from their library, then shuffle.) -- At the beginning of your end step, if you attacked this turn, create a 1/1 white Human Soldier creature token. mana={3}{W} type=Legendary Creature diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 55b926175..492eb07a4 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -24183,6 +24183,11 @@ type=Land name=Crumbling Vestige auto={t}:add{c} auto=tap(noevent) +auto=choice add{W} +auto=choice add{U} +auto=choice add{B} +auto=choice add{R} +auto=choice add{G} text=Crumbling Vestige enters the battlefield tapped. -- When Crumbling Vestige enters the battlefield, add one mana of any color to your mana pool. -- {T}: Add {C} to your mana pool. ({C} represents colorless mana.) type=Land [/card] @@ -69629,7 +69634,7 @@ name=Magosi, the Waterveil auto=tap(noevent) auto={T}:Add{U} auto={U}{T}:counter(0/0,1,Eon) && turns:-1 controller -auto={T}{C(0/0,-3,Eon)}{H}:turns:+1 controller +auto={T}{C(0/0,-1,Eon)}{H}:turns:+1 controller text=Magosi, the Waterveil enters the battlefield tapped. -- {T}: Add {U} to your mana pool. -- {U}, {T}: Put an eon counter on Magosi, the Waterveil. Skip your next turn. -- {T}, Remove an eon counter from Magosi, the Waterveil and return it to its owner's hand: Take an extra turn after this one. type=Land [/card] @@ -69864,7 +69869,7 @@ type=Sorcery [/card] [card] name=Make Obsolete -auto=-1/-1 all(creature|opponentbattlefield) ueot +auto=all(creature|opponentbattlefield) -1/-1 ueot text=Creatures your opponents control get -1/-1 until end of turn. mana={2}{B} type=Instant diff --git a/projects/mtg/src/Rules.cpp b/projects/mtg/src/Rules.cpp index 8961002f1..7f041b6cd 100644 --- a/projects/mtg/src/Rules.cpp +++ b/projects/mtg/src/Rules.cpp @@ -426,12 +426,12 @@ Player * Rules::loadPlayerHorde(GameObserver* observer, int isAI) string lands[] = { "land", "forest", "island", "mountain", "swamp", "plains" }; - const char* const multicolorTribes[] = { "Ally", "Eldrazi", "Elemental", "Golem", "Hound", "Human", "Knight", + const char* const multicolorTribes[] = { "Ally", "Eldrazi", "Elemental", "Golem", "Dog", "Human", "Knight", "Myr", "Samurai", "Shaman", "Shapeshifter", "Sliver", "Soldier", "Spellshaper", "Spirit", "Warrior", "Wizard" }; - const char* const whiteTribes[] = { "Angel", "Bird", "Cat", "cleric", "Griffin", "Kithkin", "Knight", "Soldier", "Spirit", "Wizard" }; + const char* const whiteTribes[] = { "Angel", "Bird", "Cat", "Cleric", "Griffin", "Kithkin", "Knight", "Soldier", "Spirit", "Wizard" }; const char* const blueTribes[] = { "Artificer", "Bird", "Drake", "Faerie", "Illusion", "Merfolk", "Spirit", "Vedalken", "Wizard", "Zombie" }; const char* const blackTribes[] = { "Cleric", "Demon", "Faerie", "Horror", "Pirate", "Rat", "Rogue", "Shade", "Skeleton", "Vampire", "Wizard", "Zombie" }; - const char* const redTribes[] = { "Barbarian", "Berserker"," Cat", "Devil", "Dragon", "Goblin", "Minotaur", "Ogre", "Werewolf", "Wizard" }; + const char* const redTribes[] = { "Barbarian", "Berserker", "Cat", "Devil", "Dragon", "Goblin", "Minotaur", "Ogre", "Werewolf", "Wizard" }; const char* const greenTribes[] = { "Beast", "Cat", "Centaur", "Dinosaur", "Druid", "Elf", "Fungus", "Snake", "Spider", "Treefolk", "Werewolf", "Wizard" }; int multicolorTribesSize = sizeof(multicolorTribes)/sizeof(multicolorTribes[0]);