Simplified some restriction-parsing related functions

This commit is contained in:
wagic.the.homebrew
2011-10-01 03:07:58 +00:00
parent d7e9ee7796
commit d6db0c4f63
2 changed files with 8 additions and 19 deletions

View File

@@ -130,9 +130,8 @@ public:
int abilitygranted;
MTGCardInstance * source;
int parseCastRestrictions(MTGCardInstance* card, Player* player, string restrictions, string otherRestrictions);
int allowedToCast(MTGCardInstance* card, Player* player);
int allowedToAltCast(MTGCardInstance* card, Player* player);
static int allowedToCast(MTGCardInstance* card, Player* player);
static int allowedToAltCast(MTGCardInstance* card, Player* player);
MTGAbility(int id, MTGCardInstance * card);
MTGAbility(int id, MTGCardInstance * _source, Targetable * _target);
MTGAbility(const MTGAbility& copyFromMe);
@@ -453,8 +452,8 @@ private:
TargetChooser * parseSimpleTC(const std::string& s, const std::string& starter, MTGCardInstance *card, bool forceNoTarget = true);
public:
int parseRestriction(string s);
int parseCastRestrictions(MTGCardInstance * card = NULL,Player * player= NULL,string restrictions= "",string otherRestrictions= "");
static int parseRestriction(string s);
static int parseCastRestrictions(MTGCardInstance * card, Player * player, string restrictions);
Counter * parseCounter(string s, MTGCardInstance * target, Spell * spell = NULL);
int parsePowerToughness(string s, int *power, int *toughness);
int getAbilities(vector<MTGAbility *> * v, Spell * spell, MTGCardInstance * card = NULL, int id = 0, MTGGameZone * dest = NULL);

View File

@@ -59,34 +59,24 @@ const int kDynamicWhoIds[] = {
AADynamic::DYNAMIC_ABILITY_WHO_TOSOURCE, AADynamic::DYNAMIC_ABILITY_WHO_SOURCECONTROLLER, AADynamic::DYNAMIC_ABILITY_WHO_SOURCEOPPONENT
};
int MTGAbility::parseCastRestrictions(MTGCardInstance * card,Player * player,string restrictions,string otherRestrictions)
{
AbilityFactory af;
return af.parseCastRestrictions(card,player,restrictions,otherRestrictions);
}
int MTGAbility::allowedToCast(MTGCardInstance * card,Player * player)
{
return parseCastRestrictions(card,player,card->getRestrictions(),"");
return AbilityFactory::parseCastRestrictions(card,player,card->getRestrictions());
}
int MTGAbility::allowedToAltCast(MTGCardInstance * card,Player * player)
{
return parseCastRestrictions(card,player,"",card->getOtherRestrictions());
return AbilityFactory::parseCastRestrictions(card,player,card->getOtherRestrictions());
}
int AbilityFactory::parseCastRestrictions(MTGCardInstance * card,Player * player,string restrictions,string otherRestrictions)
int AbilityFactory::parseCastRestrictions(MTGCardInstance * card,Player * player,string restrictions)
{
restrictions.append(otherRestrictions);
//we can do this becuase the function calls send them seperately, so one will always be empty
vector <string> restriction = split(restrictions, ',');
AbilityFactory af;
GameObserver * game = game->GetInstance();
int cPhase = game->getCurrentGamePhase();
for(unsigned int i = 0;i < restriction.size();i++)
{
int checkPhaseBased = af.parseRestriction(restriction[i]);
int checkPhaseBased = parseRestriction(restriction[i]);
switch (checkPhaseBased)
{
case MTGAbility::PLAYER_TURN_ONLY: