Added / fixed primitives from ONE set, updated missing card by sets list, improved triggers and added new trigger for proliferation effect.
This commit is contained in:
@@ -3052,7 +3052,7 @@ int AADuplicateCounters::resolve()
|
||||
}
|
||||
else
|
||||
{
|
||||
MTGAbility * a = NEW MenuAbility(game, this->GetId(), target, source,false,pcounters);
|
||||
MTGAbility * a = NEW MenuAbility(game, this->GetId(), target, source, true, pcounters);
|
||||
a->resolve();
|
||||
}
|
||||
}
|
||||
@@ -3082,6 +3082,7 @@ ActivatedAbility(observer, id, source, cost, 0)
|
||||
{
|
||||
this->GetId();
|
||||
allcounters = false;
|
||||
notrigger = false;
|
||||
}
|
||||
|
||||
int AAProliferate::resolve()
|
||||
@@ -3138,6 +3139,11 @@ int AAProliferate::resolve()
|
||||
a->resolve();
|
||||
}
|
||||
}
|
||||
if(!notrigger){
|
||||
WEventplayerProliferated * e = NEW WEventplayerProliferated(source->controller());
|
||||
e->source = source;
|
||||
game->receiveEvent(e);
|
||||
}
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
@@ -1509,6 +1509,24 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
||||
return NEW TrplayerExperienced(observer, id, card, tc, once, false, true, plus, duplicate, half);
|
||||
}
|
||||
|
||||
//proliferated - controller of card
|
||||
if (TargetChooser * tc = parseSimpleTC(s, "proliferateof", card)){
|
||||
TargetChooser *exception = parseSimpleTC(s, "except", card); // Added a new keyword except to specify an exception in order to avoid proliferation loop (eg. Tekuthal, Inquiry Dominus)
|
||||
if(exception)
|
||||
return NEW TrplayerProliferated(observer, id, card, tc, once, true, false, exception->source);
|
||||
else
|
||||
return NEW TrplayerProliferated(observer, id, card, tc, once, true, false);
|
||||
}
|
||||
|
||||
//proliferated - opponent of card controller
|
||||
if (TargetChooser * tc = parseSimpleTC(s, "proliferatefoeof", card)){
|
||||
TargetChooser *exception = parseSimpleTC(s, "except", card); // Added a new keyword except to specify an exception in order to avoid proliferation loop (eg. Tekuthal, Inquiry Dominus)
|
||||
if(exception)
|
||||
return NEW TrplayerProliferated(observer, id, card, tc, once, false, true, exception->source);
|
||||
else
|
||||
return NEW TrplayerProliferated(observer, id, card, tc, once, false, true);
|
||||
}
|
||||
|
||||
//becomes monarch - controller of card
|
||||
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchof", card))
|
||||
return NEW TrplayerMonarch(observer, id, card, tc, once, true, false);
|
||||
@@ -5353,9 +5371,12 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
||||
MTGAbility * a = NEW AAProliferate(observer, id, card, target);
|
||||
a->oneShot = 1;
|
||||
a->canBeInterrupted = false;
|
||||
bool noevent = (s.find("noproftrg") != string::npos)?true:false; // Added a way to don't trigger @proliferate effect.
|
||||
((AAProliferate*)a)->allcounters = true;
|
||||
((AAProliferate*)a)->notrigger = noevent;
|
||||
return a;
|
||||
}
|
||||
|
||||
//proliferate all counters
|
||||
found = s.find("propagate");
|
||||
if (found != string::npos)
|
||||
@@ -5363,7 +5384,9 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
||||
MTGAbility * a = NEW AAProliferate(observer, id, card, target);
|
||||
a->oneShot = 1;
|
||||
a->canBeInterrupted = false;
|
||||
bool noevent = (s.find("noproftrg") != string::npos)?true:false; // Added a way to don't trigger @proliferated effect.
|
||||
((AAProliferate*)a)->allcounters = true;
|
||||
((AAProliferate*)a)->notrigger = noevent;
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
@@ -317,6 +317,11 @@ WEventplayerMonarch::WEventplayerMonarch(Player * player) :
|
||||
{
|
||||
}
|
||||
|
||||
WEventplayerProliferated::WEventplayerProliferated(Player * player) :
|
||||
player(player)
|
||||
{
|
||||
}
|
||||
|
||||
WEventplayerInitiative::WEventplayerInitiative(Player * player) :
|
||||
player(player)
|
||||
{
|
||||
@@ -700,6 +705,12 @@ Targetable * WEventplayerMonarch::getTarget(Player * player)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Targetable * WEventplayerProliferated::getTarget(Player * player)
|
||||
{
|
||||
if (player) return player;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Targetable * WEventplayerInitiative::getTarget(Player * player)
|
||||
{
|
||||
if (player) return player;
|
||||
|
||||
Reference in New Issue
Block a user