3 changes
1st had to revise the syntax for my "type:" variable it is now type:blah:location, using the pipe line created nasty returns in some combinations of abilities as the parser confused the pipeline in type: with the one in TC. 2nd more of a correction then a bug fix, i noticed that upcost had instances where it could still trigger its effect in the draw phase becuase the condiational for the ability resolve was in the update, i left the class mostly untouched but move the resolve out of update and into a receiveEvent for upcost, which triggers only once after you declared that you are leaving the upkeep before draw step begins. 3rd reworked the construction of multiability to only produce a single multiability with all the abilities in the string instead of nested multiabilities, it is considerabily easier to debug and creates 1/3 less objects for the engine to deal with in comparison to the old method.
This commit is contained in:
@@ -1136,18 +1136,20 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
||||
if (found != string::npos)
|
||||
{
|
||||
SAFE_DELETE(tc);
|
||||
string s1 = s.substr(0, found);
|
||||
string s2 = s.substr(found + 2);
|
||||
vector<string> multiEffects = split(s,'&');
|
||||
MultiAbility * multi = NEW MultiAbility(id, card, target, NULL, NULL);
|
||||
MTGAbility * a1 = parseMagicLine(s1, id, spell, card, activated);
|
||||
MTGAbility * a2 = parseMagicLine(s2, id, spell, card, activated);
|
||||
multi->Add(a1);
|
||||
multi->Add(a2);
|
||||
for(unsigned int i = 0;i < multiEffects.size();i++)
|
||||
{
|
||||
if(!multiEffects[i].empty())
|
||||
{
|
||||
MTGAbility * addAbility = parseMagicLine(multiEffects[i], id, spell, card, activated);
|
||||
multi->Add(addAbility);
|
||||
}
|
||||
}
|
||||
multi->oneShot = 1;
|
||||
return multi;
|
||||
}
|
||||
|
||||
|
||||
//rather dirty way to stop thises and lords from conflicting with each other.
|
||||
size_t lord = string::npos;
|
||||
for (size_t j = 0; j < kLordKeywordsCount; ++j)
|
||||
|
||||
Reference in New Issue
Block a user