diff --git a/projects/mtg/bin/Res/rules/mtg.txt b/projects/mtg/bin/Res/rules/mtg.txt index ee66c6c62..cdbb3a61b 100644 --- a/projects/mtg/bin/Res/rules/mtg.txt +++ b/projects/mtg/bin/Res/rules/mtg.txt @@ -47,11 +47,11 @@ auto=maxPlay(land)1 #Lands Mana Rules -auto=lord(Plains[land]|MyBattlefield) {T}:Add{W} -auto=lord(Island[land]|MyBattlefield) {T}:Add{U} -auto=lord(Swamp[land]|MyBattlefield) {T}:Add{B} -auto=lord(Mountain[land]|MyBattlefield) {T}:Add{R} -auto=lord(Forest[land]|MyBattlefield) {T}:Add{G} +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 diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 19458678a..708098c56 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -13,5 +13,5 @@ #AUTO_DEFINE __BASIC_LANDCYCLING__($cost) $cost{cycle}:name(basic landcycling) moveTo(myhand) target(land[basic]|mylibrary) # Fabricate -#AUTO_DEFINE _FABRICATE_($c) transforms((,newability[choice counter(1/1.$c)],newability[choice makecardt(Servo:Artifact Creature Servo:1/1)*$c])) ueot +#AUTO_DEFINE _FABRICATE_($c) transforms((,newability[choice counter(1/1.$c)],newability[choice create(Servo:Artifact Creature Servo:1/1)*$c])) ueot diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 52722c1cd..ce9961562 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -6601,7 +6601,7 @@ toughness=2 [card] name=Atraxa, Praetors' Voice abilities=flying,vigilance,deathtouch,lifelink -auto=@each my end:target(proliferation) proliferate +auto=@each my end:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Flying, vigilance, deathtouch, lifelink -- At the beginning of your end step, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={G}{W}{U}{B} type=Legendary Creature @@ -21739,7 +21739,7 @@ toughness=1 [card] name=Contagion Clasp auto=counter(-1/-1,1) target(creature) -auto={4}{T}:target(proliferation) proliferate +auto={4}{T}:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=When Contagion Clasp enters the battlefield, put a -1/-1 counter on target creature. -- {4}, Tap: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={2} type=Artifact @@ -21747,7 +21747,7 @@ type=Artifact [card] name=Contagion Engine auto=target(player) ability$!name(target player) counter(-1/-1,1) all(creature|mybattlefield)!$ targetedplayer -auto={4}{T}:notatarget(proliferation) proliferate && proliferate +auto={4}{T}:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate && proliferate text=When Contagion Engine enters the battlefield, put a -1/-1 counter on each creature target player controls. -- {4},{T}: Proliferate, then proliferate again. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there. Then do it again.) mana={6} type=Artifact @@ -22194,7 +22194,7 @@ toughness=1 [card] name=Core Prowler abilities=infect -auto=@movedto(this|mygraveyard) from(this|mybattlefield):target(proliferation) proliferate +auto=@movedto(this|mygraveyard) from(this|mybattlefield):notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) -- When Core Prowler dies, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={4} type=Artifact Creature @@ -42981,7 +42981,7 @@ type=Sorcery name=Fuel for the Cause target=*|stack auto=fizzle -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Counter target spell, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={2}{U}{U} type=Instant @@ -49297,7 +49297,7 @@ subtype=Equipment name=Grim Affliction target=creature auto=counter(-1/-1,1) -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Put a -1/-1 counter on target creature, then proliferate. mana={2}{B} type=Instant @@ -56715,7 +56715,7 @@ toughness=3 [/card] [card] name=Inexorable Tide -auto=@movedto(mystack) from(*|myhand):target(proliferation) proliferate +auto=@movedto(mystack) from(*|myhand):notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Whenever you cast a spell, proliferate. mana={3}{U}{U} type=Enchantment @@ -85519,7 +85519,7 @@ toughness=1 [/card] [card] name=Plaguemaw Beast -auto={T}{S(creature|mybattlefield)}:target(proliferation) proliferate +auto={T}{S(creature|mybattlefield)}:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text={T}, Sacrifice a creature: Proliferate. mana={3}{G}{G} type=Creature @@ -109797,7 +109797,7 @@ toughness=3 name=Spread the Sickness target=creature auto=destroy -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Destroy target creature, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={4}{B} type=Sorcery @@ -110298,7 +110298,7 @@ toughness=5 [card] name=Stalking Vengeance abilities=haste -auto=@movedTo(other creature|graveyard) from(myBattlefield):all(trigger[to]) dynamicability +auto=lord(other creature|mybattlefield) transforms((,newability[@movedTo(this|graveyard) from(Battlefield):damage:power target(player)])) text=Haste -- Whenever another creature you control dies, it deals damage equal to its power to target player. mana={5}{R}{R} type=Creature @@ -110726,7 +110726,7 @@ type=Sorcery [card] name=Steady Progress auto=draw:1 controller -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Draw a card, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={2}{U} type=Instant @@ -117041,7 +117041,7 @@ type=Sorcery [card] name=Tezzeret's Gambit auto=draw:2 controller -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Draw two cards, then proliferate. color=blue mana={3}{p(U)} @@ -118581,7 +118581,7 @@ type=Artifact [/card] [card] name=Throne of Geth -auto={S(artifact|mybattlefield)}{T}:target(proliferation) proliferate +auto={S(artifact|mybattlefield)}{T}:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text={T},Sacrifice an artifact: Proliferate. mana={2} type=Artifact @@ -118638,7 +118638,7 @@ toughness=1 [card] name=Thrummingbird abilities=flying -auto=@combatdamaged(player) from(this):target(proliferation) proliferate +auto=@combatdamaged(player) from(this):notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Flying -- Whenever Thrummingbird deals combat damage to a player, proliferate. mana={1}{U} type=Creature @@ -126723,7 +126723,7 @@ subtype=Aura [card] name=Viral Drake abilities=flying,infect -auto={3}{U}:target(proliferation) proliferate +auto={3}{U}:notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Flying -- Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) -- {3}{U}: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) mana={3}{U} type=Creature @@ -127789,7 +127789,7 @@ type=Legendary Land name=Volt Charge target=creature,player auto=damage:3 -auto=target(proliferation) proliferate +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate text=Volt Charge deals 3 damage to target creature or player. Proliferate. mana={2}{R} type=Instant diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 60488b08d..cadfbf833 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1998,6 +1998,7 @@ public: class AAProliferate: public ActivatedAbility { public: + bool allcounters; AAProliferate(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target,ManaCost * cost = NULL); int resolve(); const string getMenuText(); diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 958539592..6f843c809 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -998,7 +998,8 @@ int AAAlterPoison::resolve() const string AAAlterPoison::getMenuText() { - return "Poison"; + WParsedInt parsedNum(poison); + return _(parsedNum.getStringValue() + " Poison ").c_str(); } AAAlterPoison * AAAlterPoison::clone() const @@ -1469,7 +1470,7 @@ AAModTurn::AAModTurn(GameObserver* observer, int _id, MTGCardInstance * card, Ta { WParsedInt numTurns(nbTurnStr, NULL, source); if(numTurns.getValue() > 0) - return "Take Extra Turn(s)"; + return _("Take " + numTurns.getStringValue() + " Extra Turn(s)").c_str(); else return "Skip A Turn(s)"; } @@ -2088,6 +2089,7 @@ AAProliferate::AAProliferate(GameObserver* observer, int id, MTGCardInstance * s ActivatedAbility(observer, id, source, cost, 0) { this->GetId(); + allcounters = false; } int AAProliferate::resolve() @@ -2125,8 +2127,18 @@ int AAProliferate::resolve() } if(pcounters.size()) { - MTGAbility * a = NEW MenuAbility(game, this->GetId(), target, source,false,pcounters); - a->resolve(); + if(allcounters) + { + for(size_t j = 0; j < pcounters.size(); j++) + { + pcounters[j]->resolve(); + } + } + else + { + MTGAbility * a = NEW MenuAbility(game, this->GetId(), target, source,false,pcounters); + a->resolve(); + } } return 1; @@ -2134,6 +2146,8 @@ int AAProliferate::resolve() const string AAProliferate::getMenuText() { + if(allcounters) + return "Add Any Counters"; return "Proliferate"; } @@ -4493,7 +4507,7 @@ const string AAMover::getMenuText() { if(named.size()) return named.c_str(); - return "Move"; + return "Put in Zone"; } const char* AAMover::getMenuText(TargetChooser * tc) @@ -4555,7 +4569,7 @@ const char* AAMover::getMenuText(TargetChooser * tc) } } - return "Move"; + return "Put in Zone"; } AAMover * AAMover::clone() const diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 5ce5578e7..6999eb497 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -3896,7 +3896,17 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG a->canBeInterrupted = false; return a; } - + //proliferate all counters + found = s.find("propagate"); + if (found != string::npos) + { + MTGAbility * a = NEW AAProliferate(observer, id, card, target); + a->oneShot = 1; + a->canBeInterrupted = false; + ((AAProliferate*)a)->allcounters = true; + return a; + } + //frozen, next untap this does not untap. found = s.find("frozen"); if (found != string::npos)