Added last primitives from MAT set, updated missing cards by set list, improved trigger and filtering for mana production abilities.
This commit is contained in:
@@ -1318,7 +1318,11 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
|
||||
//Card Tapped for mana
|
||||
if (TargetChooser *tc = parseSimpleTC(s,"tappedformana", card))
|
||||
return NEW TrCardTappedformana(observer, id, card, tc, true, once);
|
||||
|
||||
|
||||
//Card Produced some mana
|
||||
if (TargetChooser *tc = parseSimpleTC(s,"producedmana", card))
|
||||
return NEW TrCardManaproduced(observer, id, card, tc, once, limitOnceATurn);
|
||||
|
||||
//Card Transforms
|
||||
if (TargetChooser *tc = parseSimpleTC(s,"transformed", card))
|
||||
return NEW TrCardTransformed(observer, id, card, tc, once);
|
||||
@@ -8051,6 +8055,10 @@ int AManaProducer::resolve()
|
||||
player->getManaPool()->add(output, source);
|
||||
if(DoesntEmpty)
|
||||
player->doesntEmpty->add(output);
|
||||
source->getProducedMana()->copy(output);
|
||||
WEventCardManaProduced * ev = NEW WEventCardManaProduced(source);
|
||||
if(ev)
|
||||
source->getObserver()->receiveEvent(ev);
|
||||
if(andAbility)
|
||||
{
|
||||
MTGAbility * andAbilityClone = andAbility->clone();
|
||||
|
||||
@@ -586,6 +586,10 @@ ManaCost* MTGCardInstance::getIncreasedManaCost()
|
||||
{
|
||||
return &increasedCost;
|
||||
}
|
||||
ManaCost* MTGCardInstance::getProducedMana()
|
||||
{
|
||||
return &producedMana;
|
||||
}
|
||||
|
||||
//sets card as attacked and sends events
|
||||
void MTGCardInstance::eventattacked()
|
||||
|
||||
@@ -75,6 +75,11 @@ WEventCardTappedForMana::WEventCardTappedForMana(MTGCardInstance * card, bool be
|
||||
{
|
||||
}
|
||||
|
||||
WEventCardManaProduced::WEventCardManaProduced(MTGCardInstance * card) :
|
||||
WEventCardUpdate(card)
|
||||
{
|
||||
}
|
||||
|
||||
WEventCardAttacked::WEventCardAttacked(MTGCardInstance * card) :
|
||||
WEventCardUpdate(card)
|
||||
{
|
||||
@@ -539,6 +544,12 @@ Targetable * WEventCardTappedForMana::getTarget(int target)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Targetable * WEventCardManaProduced::getTarget(int target)
|
||||
{
|
||||
if (target) return card;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Targetable * WEventcardDraw::getTarget(Player * player)
|
||||
{
|
||||
if (player) return player;
|
||||
|
||||
@@ -1581,6 +1581,26 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
|
||||
intValue = card->getManaCost()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_WHITE);
|
||||
else intValue = 0;
|
||||
}
|
||||
else if(s.find("prodmana") != string::npos){
|
||||
intValue = 0;
|
||||
string manatocheck = s.substr(8);
|
||||
if(card->getProducedMana()){
|
||||
if(manatocheck == "c")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_ARTIFACT);
|
||||
else if(manatocheck == "g")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_GREEN);
|
||||
else if(manatocheck == "u")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_BLUE);
|
||||
else if(manatocheck == "r")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_RED);
|
||||
else if(manatocheck == "b")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_BLACK);
|
||||
else if(manatocheck == "w")
|
||||
intValue = card->getProducedMana()->getManaSymbolsHybridMerged(Constants::MTG_COLOR_WHITE);
|
||||
else if(manatocheck == "tot")
|
||||
intValue = card->getProducedMana()->getConvertedCost();
|
||||
}
|
||||
}
|
||||
else if(!intValue)//found nothing, try parsing a atoi
|
||||
{
|
||||
intValue = atoi(s.c_str());
|
||||
|
||||
Reference in New Issue
Block a user