Merge pull request #932 from kevlahnota/master

Some bug fixes
This commit is contained in:
Anthony Calosa
2017-02-09 21:48:51 +08:00
committed by GitHub
6 changed files with 54 additions and 29 deletions
+5 -5
View File
@@ -47,11 +47,11 @@ auto=maxPlay(land)1
#Lands Mana Rules #Lands Mana Rules
auto=lord(Plains[land]|MyBattlefield) {T}:Add{W} auto=lord(Plains[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{W}
auto=lord(Island[land]|MyBattlefield) {T}:Add{U} auto=lord(Island[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{U}
auto=lord(Swamp[land]|MyBattlefield) {T}:Add{B} auto=lord(Swamp[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{B}
auto=lord(Mountain[land]|MyBattlefield) {T}:Add{R} auto=lord(Mountain[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{R}
auto=lord(Forest[land]|MyBattlefield) {T}:Add{G} auto=lord(Forest[-noactivatedability;-nomanaability;-notapability;land]|MyBattlefield) {T}:Add{G}
#Mana Empties from manapool at the end of each phase #Mana Empties from manapool at the end of each phase
@@ -13,5 +13,5 @@
#AUTO_DEFINE __BASIC_LANDCYCLING__($cost) $cost{cycle}:name(basic landcycling) moveTo(myhand) target(land[basic]|mylibrary) #AUTO_DEFINE __BASIC_LANDCYCLING__($cost) $cost{cycle}:name(basic landcycling) moveTo(myhand) target(land[basic]|mylibrary)
# Fabricate # 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
+16 -16
View File
@@ -6601,7 +6601,7 @@ toughness=2
[card] [card]
name=Atraxa, Praetors' Voice name=Atraxa, Praetors' Voice
abilities=flying,vigilance,deathtouch,lifelink abilities=flying,vigilance,deathtouch,lifelink
auto=@each my end:target(proliferation) proliferate auto=@each my end:notatarget(<anyamount>*[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.) 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} mana={G}{W}{U}{B}
type=Legendary Creature type=Legendary Creature
@@ -21739,7 +21739,7 @@ toughness=1
[card] [card]
name=Contagion Clasp name=Contagion Clasp
auto=counter(-1/-1,1) target(creature) auto=counter(-1/-1,1) target(creature)
auto={4}{T}:target(proliferation) proliferate auto={4}{T}:notatarget(<anyamount>*[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.) 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} mana={2}
type=Artifact type=Artifact
@@ -21747,7 +21747,7 @@ type=Artifact
[card] [card]
name=Contagion Engine name=Contagion Engine
auto=target(player) ability$!name(target player) counter(-1/-1,1) all(creature|mybattlefield)!$ targetedplayer 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(<anyamount>*[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.) 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} mana={6}
type=Artifact type=Artifact
@@ -22194,7 +22194,7 @@ toughness=1
[card] [card]
name=Core Prowler name=Core Prowler
abilities=infect abilities=infect
auto=@movedto(this|mygraveyard) from(this|mybattlefield):target(proliferation) proliferate auto=@movedto(this|mygraveyard) from(this|mybattlefield):notatarget(<anyamount>*[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.) 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} mana={4}
type=Artifact Creature type=Artifact Creature
@@ -42981,7 +42981,7 @@ type=Sorcery
name=Fuel for the Cause name=Fuel for the Cause
target=*|stack target=*|stack
auto=fizzle auto=fizzle
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[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.) 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} mana={2}{U}{U}
type=Instant type=Instant
@@ -49297,7 +49297,7 @@ subtype=Equipment
name=Grim Affliction name=Grim Affliction
target=creature target=creature
auto=counter(-1/-1,1) auto=counter(-1/-1,1)
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text=Put a -1/-1 counter on target creature, then proliferate. text=Put a -1/-1 counter on target creature, then proliferate.
mana={2}{B} mana={2}{B}
type=Instant type=Instant
@@ -56715,7 +56715,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Inexorable Tide name=Inexorable Tide
auto=@movedto(mystack) from(*|myhand):target(proliferation) proliferate auto=@movedto(mystack) from(*|myhand):notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text=Whenever you cast a spell, proliferate. text=Whenever you cast a spell, proliferate.
mana={3}{U}{U} mana={3}{U}{U}
type=Enchantment type=Enchantment
@@ -85519,7 +85519,7 @@ toughness=1
[/card] [/card]
[card] [card]
name=Plaguemaw Beast name=Plaguemaw Beast
auto={T}{S(creature|mybattlefield)}:target(proliferation) proliferate auto={T}{S(creature|mybattlefield)}:notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text={T}, Sacrifice a creature: Proliferate. text={T}, Sacrifice a creature: Proliferate.
mana={3}{G}{G} mana={3}{G}{G}
type=Creature type=Creature
@@ -109797,7 +109797,7 @@ toughness=3
name=Spread the Sickness name=Spread the Sickness
target=creature target=creature
auto=destroy auto=destroy
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[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.) 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} mana={4}{B}
type=Sorcery type=Sorcery
@@ -110298,7 +110298,7 @@ toughness=5
[card] [card]
name=Stalking Vengeance name=Stalking Vengeance
abilities=haste abilities=haste
auto=@movedTo(other creature|graveyard) from(myBattlefield):all(trigger[to]) dynamicability<!mytgt powerstrike targetopponent!> 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. text=Haste -- Whenever another creature you control dies, it deals damage equal to its power to target player.
mana={5}{R}{R} mana={5}{R}{R}
type=Creature type=Creature
@@ -110726,7 +110726,7 @@ type=Sorcery
[card] [card]
name=Steady Progress name=Steady Progress
auto=draw:1 controller auto=draw:1 controller
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[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.) 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} mana={2}{U}
type=Instant type=Instant
@@ -117041,7 +117041,7 @@ type=Sorcery
[card] [card]
name=Tezzeret's Gambit name=Tezzeret's Gambit
auto=draw:2 controller auto=draw:2 controller
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text=Draw two cards, then proliferate. text=Draw two cards, then proliferate.
color=blue color=blue
mana={3}{p(U)} mana={3}{p(U)}
@@ -118581,7 +118581,7 @@ type=Artifact
[/card] [/card]
[card] [card]
name=Throne of Geth name=Throne of Geth
auto={S(artifact|mybattlefield)}{T}:target(proliferation) proliferate auto={S(artifact|mybattlefield)}{T}:notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text={T},Sacrifice an artifact: Proliferate. text={T},Sacrifice an artifact: Proliferate.
mana={2} mana={2}
type=Artifact type=Artifact
@@ -118638,7 +118638,7 @@ toughness=1
[card] [card]
name=Thrummingbird name=Thrummingbird
abilities=flying abilities=flying
auto=@combatdamaged(player) from(this):target(proliferation) proliferate auto=@combatdamaged(player) from(this):notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text=Flying -- Whenever Thrummingbird deals combat damage to a player, proliferate. text=Flying -- Whenever Thrummingbird deals combat damage to a player, proliferate.
mana={1}{U} mana={1}{U}
type=Creature type=Creature
@@ -126723,7 +126723,7 @@ subtype=Aura
[card] [card]
name=Viral Drake name=Viral Drake
abilities=flying,infect abilities=flying,infect
auto={3}{U}:target(proliferation) proliferate auto={3}{U}:notatarget(<anyamount>*[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.) 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} mana={3}{U}
type=Creature type=Creature
@@ -127789,7 +127789,7 @@ type=Legendary Land
name=Volt Charge name=Volt Charge
target=creature,player target=creature,player
auto=damage:3 auto=damage:3
auto=target(proliferation) proliferate auto=notatarget(<anyamount>*[artifact;creature;enchantment;land;planeswalker;player]) proliferate
text=Volt Charge deals 3 damage to target creature or player. Proliferate. text=Volt Charge deals 3 damage to target creature or player. Proliferate.
mana={2}{R} mana={2}{R}
type=Instant type=Instant
+1
View File
@@ -1998,6 +1998,7 @@ public:
class AAProliferate: public ActivatedAbility class AAProliferate: public ActivatedAbility
{ {
public: public:
bool allcounters;
AAProliferate(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target,ManaCost * cost = NULL); AAProliferate(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target,ManaCost * cost = NULL);
int resolve(); int resolve();
const string getMenuText(); const string getMenuText();
+20 -6
View File
@@ -998,7 +998,8 @@ int AAAlterPoison::resolve()
const string AAAlterPoison::getMenuText() const string AAAlterPoison::getMenuText()
{ {
return "Poison"; WParsedInt parsedNum(poison);
return _(parsedNum.getStringValue() + " Poison ").c_str();
} }
AAAlterPoison * AAAlterPoison::clone() const AAAlterPoison * AAAlterPoison::clone() const
@@ -1469,7 +1470,7 @@ AAModTurn::AAModTurn(GameObserver* observer, int _id, MTGCardInstance * card, Ta
{ {
WParsedInt numTurns(nbTurnStr, NULL, source); WParsedInt numTurns(nbTurnStr, NULL, source);
if(numTurns.getValue() > 0) if(numTurns.getValue() > 0)
return "Take Extra Turn(s)"; return _("Take " + numTurns.getStringValue() + " Extra Turn(s)").c_str();
else else
return "Skip A Turn(s)"; return "Skip A Turn(s)";
} }
@@ -2088,6 +2089,7 @@ AAProliferate::AAProliferate(GameObserver* observer, int id, MTGCardInstance * s
ActivatedAbility(observer, id, source, cost, 0) ActivatedAbility(observer, id, source, cost, 0)
{ {
this->GetId(); this->GetId();
allcounters = false;
} }
int AAProliferate::resolve() int AAProliferate::resolve()
@@ -2125,8 +2127,18 @@ int AAProliferate::resolve()
} }
if(pcounters.size()) if(pcounters.size())
{ {
MTGAbility * a = NEW MenuAbility(game, this->GetId(), target, source,false,pcounters); if(allcounters)
a->resolve(); {
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; return 1;
@@ -2134,6 +2146,8 @@ int AAProliferate::resolve()
const string AAProliferate::getMenuText() const string AAProliferate::getMenuText()
{ {
if(allcounters)
return "Add Any Counters";
return "Proliferate"; return "Proliferate";
} }
@@ -4493,7 +4507,7 @@ const string AAMover::getMenuText()
{ {
if(named.size()) if(named.size())
return named.c_str(); return named.c_str();
return "Move"; return "Put in Zone";
} }
const char* AAMover::getMenuText(TargetChooser * tc) 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 AAMover * AAMover::clone() const
+10
View File
@@ -3896,6 +3896,16 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
a->canBeInterrupted = false; a->canBeInterrupted = false;
return a; 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. //frozen, next untap this does not untap.
found = s.find("frozen"); found = s.find("frozen");