Revert "Fixes to primitives"

This reverts commit eb7d8850f4.
This commit is contained in:
Eduardo
2019-05-05 21:14:27 -05:00
parent eb7d8850f4
commit 66741957c3
9 changed files with 98 additions and 30 deletions

View File

@@ -0,0 +1,72 @@
# This is the basic rules for MTG.
# Do not add any "Draw X cards at startup" or "shuffle" here, as the story mode and the test suite rely on this
# file, and they usually don't expect the draw rule or shuffle to happen
# If you want shuffle or draw events, put them directly in your own rules file that includes this file, see clasic.txt for example
hidden
[INIT]
mode=mtg
#MTG Game specific rules
auto=bonusrule
auto=putinplayrule
auto=kickerrule
auto=alternativecostrule
auto=buybackrule
auto=flashbackrule
auto=retracerule
auto=suspendrule
auto=morphrule
auto=payzerorule
auto=overloadrule
auto=attackrule
auto=attackcostrule
auto=blockrule
auto=blockcostrule
auto=combattriggerrule
auto=legendrule
auto=planeswalkerrule
auto=planeswalkerdamage
auto=planeswalkerattack
auto=tokencleanuprule
auto=persistrule
auto=vampirerule
auto=unearthrule
auto=lifelinkrule
auto=deathtouchrule
auto=soulbondrule
auto=dredgerule
auto=bestowrule
[PLAYERS]
life:20
offerinterruptonphase=draw
auto=sethand:7
auto=@each my draw:draw:1
auto=maxPlay(land)1
#Lands Mana Rules
auto=lord(Plains[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{W}
auto=lord(Island[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{U}
auto=lord(Swamp[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{B}
auto=lord(Mountain[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{R}
auto=lord(Forest[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{G}
#Mana Empties from manapool at the end of each phase
auto=@each untap:removeMana(*)
auto=@each upkeep:removeMana(*)
auto=@each draw:removeMana(*)
auto=@each firstmain:removeMana(*)
auto=@each combatbegins:removeMana(*)
auto=@each attackers:removeMana(*)
auto=@each blockers:removeMana(*)
auto=@each combatdamage:removeMana(*)
auto=@each combatEnds:removeMana(*)
auto=@each secondmain:removeMana(*)
auto=@each end:removeMana(*)
auto=@each cleanup:removeMana(*)
#reset Creature damage at the cleanup phase
auto=@each cleanup:all(*|myBattlefield) resetDamage

View File

@@ -2278,7 +2278,7 @@ type=Artifact
[card] [card]
name=Rhonas's Monument name=Rhonas's Monument
auto=lord(creature[green]|mycastingzone) altercost(colorless,-1) auto=lord(creature[green]|mycastingzone) altercost(colorless,-1)
auto=@movedto(creature|mystack):target(creature|mybattlefield) transforms((,newability[2/2 ueot],newability[trample ueot])) auto=@movedto(creature|mystack):target(creature|mybattlefield) 2/2 ueot && trample ueot
text=Green creature spells you cast cost {1} less to cast. -- Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn. text=Green creature spells you cast cost {1} less to cast. -- Whenever you cast a creature spell, target creature you control gets +2/+2 and gains trample until end of turn.
mana={3} mana={3}
type=Legendary Artifact type=Legendary Artifact

View File

@@ -288,7 +288,7 @@ auto=draw:7 opponent
auto=moveto(mylibrary) all(*|myhand) auto=moveto(mylibrary) all(*|myhand)
auto=moveto(mylibrary) all(*|mygraveyard) && shuffle auto=moveto(mylibrary) all(*|mygraveyard) && shuffle
auto=draw:7 controller auto=draw:7 controller
auto=moveto(exile) auto=moveto(exile) all(this)
text=Assist (Another player can pay up to {5} of this spell's cost.) -- Each player shuffles their hand and graveyard into their library, then draws seven cards. Exile Game Plan. text=Assist (Another player can pay up to {5} of this spell's cost.) -- Each player shuffles their hand and graveyard into their library, then draws seven cards. Exile Game Plan.
mana={5}{U} mana={5}{U}
type=Sorcery type=Sorcery

View File

@@ -238,8 +238,7 @@ toughness=2
[card] [card]
name=Unbreakable Formation name=Unbreakable Formation
auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) counter(1/1) auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) counter(1/1) else
auto=if compare(restriction{assorcery}~morethan~0) then all(creature|myBattlefield) vigilance
auto=all(creature|myBattlefield) indestructible ueot auto=all(creature|myBattlefield) indestructible ueot
text=Creatures you control gain indestructible until end of turn. -- Addendum — If you cast this spell during your main phase, put a +1/+1 counter on each of those creatures and they gain vigilance until end of turn. text=Creatures you control gain indestructible until end of turn. -- Addendum — If you cast this spell during your main phase, put a +1/+1 counter on each of those creatures and they gain vigilance until end of turn.
mana={2}{W} mana={2}{W}

View File

@@ -501,9 +501,7 @@ subtype=Davriel
[card] [card]
name=Deathsprout name=Deathsprout
target=creature target=creature
auto=destroy auto=destroy and!(moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary))!
aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(*[basic]|myLibrary)
auto=name(search card) reveal:plibrarycount optionone name(choose card) target(*[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend
text=Destroy target creature. Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. text=Destroy target creature. Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
mana={1}{B}{B}{G} mana={1}{B}{B}{G}
type=Instant type=Instant

View File

@@ -150,7 +150,7 @@ toughness=3
[card] [card]
name=Imperial Lancer name=Imperial Lancer
auto=aslongas(dinosaur|mybattlefield) double strike auto=aslongas type(dinosaur|mybattlefield)~morethan~0 double strike
text=Imperial Lancer has double strike as long as you control a Dinosaur. text=Imperial Lancer has double strike as long as you control a Dinosaur.
mana={W} mana={W}
type=Creature type=Creature
@@ -601,7 +601,7 @@ toughness=2
name=Lookout's Dispersal name=Lookout's Dispersal
target=*|stack target=*|stack
auto=name(counter spell) target(*|stack) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever auto=name(counter spell) target(*|stack) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever
autohand=aslongas(pirate|mybattlefield) altercost(colorless,-1) autohand=aslongas type(pirate|mybattlefield)~morethan~0 altercost(colorless,-1)
text=Lookout's Dispersal costs {1} less to cast if you control a Pirate. -- Counter target spell unless its controller pays {4}. text=Lookout's Dispersal costs {1} less to cast if you control a Pirate. -- Counter target spell unless its controller pays {4}.
mana={2}{U} mana={2}{U}
type=Instant type=Instant
@@ -725,7 +725,7 @@ type=Legendary Land
[card] [card]
name=Shaper Apprentice name=Shaper Apprentice
auto=aslongas(other merfolk|mybattlefield) flying auto=aslongas type(other merfolk|mybattlefield)~morethan~0 then flying
text=Shaper Apprentice has flying as long as you control another Merfolk. text=Shaper Apprentice has flying as long as you control another Merfolk.
mana={1}{U} mana={1}{U}
type=Creature type=Creature
@@ -1004,7 +1004,7 @@ toughness=4
[card] [card]
name=Desperate Castaways name=Desperate Castaways
auto=aslongas(artifact|mybattlefield)<1 cantattack auto=aslongas type(artifact|mybattlefield) ~lessthan~ 0 then cantattack
text=Desperate Castaways can't attack unless you control an artifact. text=Desperate Castaways can't attack unless you control an artifact.
mana={1}{B} mana={1}{B}
type=Creature type=Creature
@@ -1372,6 +1372,7 @@ toughness=2
[card] [card]
name=Captivating Crew name=Captivating Crew
abilities=haste
auto={3}{R}:target(creature) untap && haste && alias=129767 auto={3}{R}:target(creature) untap && haste && alias=129767
text={3}{R}: Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn. Activate this ability only any time you could cast a sorcery. text={3}{R}: Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn. Activate this ability only any time you could cast a sorcery.
mana={3}{R} mana={3}{R}
@@ -1453,7 +1454,7 @@ toughness=2
[card] [card]
name=Headstrong Brute name=Headstrong Brute
abilities=cantblock abilities=cantblock
auto=aslongas(other pirate|mybattlefield) menace auto=aslongas type(other pirate|mybattlefield)~morethan~0 then menace
text=Headstrong Brute can't block. -- Headstrong Brute has menace as long as you control another Pirate. text=Headstrong Brute can't block. -- Headstrong Brute has menace as long as you control another Pirate.
mana={2}{R} mana={2}{R}
type=Creature type=Creature
@@ -1641,8 +1642,8 @@ subtype=Aura
[card] [card]
name=Thrash of Raptors name=Thrash of Raptors
auto=aslongas(other dinosaur|mybattlefield) 2/0 auto=aslongas type(dinosaur|mybattlefield)~morethan~0 then 2/0
auto=aslongas(other dinosaur|mybattlefield) trample auto=aslongas type(dinosaur|mybattlefield)~morethan~0 then trample
text=As long as you control another Dinosaur, Thrash of Raptors gets +2/+0 and has trample. text=As long as you control another Dinosaur, Thrash of Raptors gets +2/+0 and has trample.
mana={3}{R} mana={3}{R}
type=Creature type=Creature
@@ -1950,7 +1951,7 @@ toughness=1
[card] [card]
name=Kumena's Speaker name=Kumena's Speaker
auto=aslongas(other merfolk,island|mybattlefield) 1/1 auto=aslongas type(other merfolk,island|mybattlefield)~morethan~0 then 1/1
text=Kumena's Speaker gets +1/+1 as long as you control another Merfolk or an Island. text=Kumena's Speaker gets +1/+1 as long as you control another Merfolk or an Island.
mana={G} mana={G}
type=Creature type=Creature
@@ -2628,8 +2629,8 @@ type=Sorcery
[card] [card]
name=Jace's Sentinel name=Jace's Sentinel
auto=aslongas(jace|mybattlefield) 1/0 auto=aslongas type(jace|mybattlefield)~morethan~0 then 1/0
auto=aslongas(jace|mybattlefield) unblockable auto=aslongas type(jace|mybattlefield)~morethan~0 then unblockable
text=As long as you control a Jace planeswalker, Jace's Sentinel gets +1/+0 and can't be blocked. text=As long as you control a Jace planeswalker, Jace's Sentinel gets +1/+0 and can't be blocked.
mana={1}{U} mana={1}{U}
type=Creature type=Creature

View File

@@ -15273,9 +15273,8 @@ toughness=2
[/card] [/card]
[card] [card]
name=Brood Birthing name=Brood Birthing
auto=aslongas(eldrazi spawn|myBattlefield) token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 auto=aslongas(eldrazi spawn|myBattlefield) token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*3
auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! text=If you control at least one 0/1 Eldrazi Spawn creature token, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."
text=If you control an Eldrazi Spawn, create three 0/1 colorless Eldrazi Spawn creature tokens. They have "Sacrifice this creature: Add {C}." Otherwise, create one of those tokens.
mana={1}{R} mana={1}{R}
type=Sorcery type=Sorcery
[/card] [/card]
@@ -19979,7 +19978,7 @@ toughness=1
[card] [card]
name=Cinder Shade name=Cinder Shade
auto={B}:1/1 auto={B}:1/1
auto={R}{S}:target(other creature) dynamicability<!powerstrike!> auto={R}{S}:target(other creature) dynamicability<!powerstrike>!
text={B}: Cinder Shade gets +1/+1 until end of turn. -- {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature. text={B}: Cinder Shade gets +1/+1 until end of turn. -- {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature.
mana={1}{B}{R} mana={1}{B}{R}
type=Creature type=Creature
@@ -67814,7 +67813,7 @@ toughness=7
name=Liturgy of Blood name=Liturgy of Blood
target=creature target=creature
auto=destroy auto=destroy
auto=add{B}{B}{B} controller auto=add{B}{B}{B}
text=Destroy target creature. Add {B}{B}{B} to your mana pool. text=Destroy target creature. Add {B}{B}{B} to your mana pool.
mana={3}{B}{B} mana={3}{B}{B}
type=Sorcery type=Sorcery
@@ -68040,7 +68039,7 @@ toughness=1
[/card] [/card]
[card] [card]
name=Llanowar Empath name=Llanowar Empath
auto=scry:2 scrycore choice name(Choose creature) target(<1>creature|reveal) moveto(myhand) scrycoreend scryend auto=scry:2 scrycore choice name(Choose creature) target(creature|reveal) moveto(myhand) scrycoreend scryend
text=When Llanowar Empath enters the battlefield, scry 2, then reveal the top card of your library. If it's a creature card, put it into your hand. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) text=When Llanowar Empath enters the battlefield, scry 2, then reveal the top card of your library. If it's a creature card, put it into your hand. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)
mana={3}{G} mana={3}{G}
type=Creature type=Creature
@@ -69588,7 +69587,6 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Madcap Skills name=Madcap Skills
target=creature
auto=teach(creature) +3/0 auto=teach(creature) +3/0
auto=teach(creature) menace auto=teach(creature) menace
text=Enchant creature -- Enchanted creature gets +3/+0 and can't be blocked except by two or more creatures. text=Enchant creature -- Enchanted creature gets +3/+0 and can't be blocked except by two or more creatures.
@@ -81179,7 +81177,7 @@ toughness=1
[/card] [/card]
[card] [card]
name=Noyan Dar, Roil Shaper name=Noyan Dar, Roil Shaper
auto=@movedto(*[instant;sorcery]|mystack):may target(land|mybattlefield) transforms((Elemental Creature,newability[counter(1/1.3)],newability[haste])) forever auto=@movedto(*[instant;sorcery]|mystack):may target(land|mybattlefield) transforms((Elemental Creature,newability[counter(1/1,3)],newability[haste])) forever
text=Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land. text=Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
mana={3}{W}{U} mana={3}{W}{U}
type=Legendary Creature type=Legendary Creature
@@ -106317,7 +106315,7 @@ type=Instant
[/card] [/card]
[card] [card]
name=Sin Collector name=Sin Collector
auto=target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose card) notatarget(<1>*[instant;sorcery]|reveal) moveto(exile) optiononeend optiontwo all(*|reveal) moveto(ownerhand) optiontwoend revealend auto=target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose card) notatarget(<1>*[instant;sorcery]|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend
text=When Sin Collector enters the battlefield target opponent reveals his or her hand. You choose an instant or a sorcery card from it and exile that card. text=When Sin Collector enters the battlefield target opponent reveals his or her hand. You choose an instant or a sorcery card from it and exile that card.
mana={1}{W}{B} mana={1}{W}{B}
type=Creature type=Creature

View File

@@ -84,7 +84,7 @@ void GuiHandOpponent::Render()
{ {
(*it)->x = x; (*it)->x = x;
(*it)->y = 2; (*it)->y = 2;
(*it)->zoom = 0.35f; (*it)->zoom = 0.3f;
(*it)->Render(quad.get()); (*it)->Render(quad.get());
if(cards.size() > 12) if(cards.size() > 12)
x += 240/cards.size(); x += 240/cards.size();

View File

@@ -428,11 +428,11 @@ Player * Rules::loadPlayerHorde(GameObserver* observer, int isAI)
const char* const multicolorTribes[] = { "Ally", "Eldrazi", "Elemental", "Golem", "Hound", "Human", "Knight", const char* const multicolorTribes[] = { "Ally", "Eldrazi", "Elemental", "Golem", "Hound", "Human", "Knight",
"Myr", "Samurai", "Shaman", "Shapeshifter", "Sliver", "Soldier", "Spellshaper", "Spirit", "Warrior", "Wizard" }; "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 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 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", "Plant", "Snake", "Spider", "Treefolk", "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]); int multicolorTribesSize = sizeof(multicolorTribes)/sizeof(multicolorTribes[0]);
int whiteTribesSize = sizeof(whiteTribes)/sizeof(whiteTribes[0]); int whiteTribesSize = sizeof(whiteTribes)/sizeof(whiteTribes[0]);