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
+4 -5
View File
@@ -130,9 +130,8 @@ public:
int abilitygranted; int abilitygranted;
MTGCardInstance * source; MTGCardInstance * source;
int parseCastRestrictions(MTGCardInstance* card, Player* player, string restrictions, string otherRestrictions); static int allowedToCast(MTGCardInstance* card, Player* player);
int allowedToCast(MTGCardInstance* card, Player* player); static int allowedToAltCast(MTGCardInstance* card, Player* player);
int allowedToAltCast(MTGCardInstance* card, Player* player);
MTGAbility(int id, MTGCardInstance * card); MTGAbility(int id, MTGCardInstance * card);
MTGAbility(int id, MTGCardInstance * _source, Targetable * _target); MTGAbility(int id, MTGCardInstance * _source, Targetable * _target);
MTGAbility(const MTGAbility& copyFromMe); MTGAbility(const MTGAbility& copyFromMe);
@@ -453,8 +452,8 @@ private:
TargetChooser * parseSimpleTC(const std::string& s, const std::string& starter, MTGCardInstance *card, bool forceNoTarget = true); TargetChooser * parseSimpleTC(const std::string& s, const std::string& starter, MTGCardInstance *card, bool forceNoTarget = true);
public: public:
int parseRestriction(string s); static int parseRestriction(string s);
int parseCastRestrictions(MTGCardInstance * card = NULL,Player * player= NULL,string restrictions= "",string otherRestrictions= ""); static int parseCastRestrictions(MTGCardInstance * card, Player * player, string restrictions);
Counter * parseCounter(string s, MTGCardInstance * target, Spell * spell = NULL); Counter * parseCounter(string s, MTGCardInstance * target, Spell * spell = NULL);
int parsePowerToughness(string s, int *power, int *toughness); int parsePowerToughness(string s, int *power, int *toughness);
int getAbilities(vector<MTGAbility *> * v, Spell * spell, MTGCardInstance * card = NULL, int id = 0, MTGGameZone * dest = NULL); int getAbilities(vector<MTGAbility *> * v, Spell * spell, MTGCardInstance * card = NULL, int id = 0, MTGGameZone * dest = NULL);
+4 -14
View File
@@ -59,34 +59,24 @@ const int kDynamicWhoIds[] = {
AADynamic::DYNAMIC_ABILITY_WHO_TOSOURCE, AADynamic::DYNAMIC_ABILITY_WHO_SOURCECONTROLLER, AADynamic::DYNAMIC_ABILITY_WHO_SOURCEOPPONENT 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) 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) 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, ','); vector <string> restriction = split(restrictions, ',');
AbilityFactory af;
GameObserver * game = game->GetInstance(); GameObserver * game = game->GetInstance();
int cPhase = game->getCurrentGamePhase(); int cPhase = game->getCurrentGamePhase();
for(unsigned int i = 0;i < restriction.size();i++) for(unsigned int i = 0;i < restriction.size();i++)
{ {
int checkPhaseBased = af.parseRestriction(restriction[i]); int checkPhaseBased = parseRestriction(restriction[i]);
switch (checkPhaseBased) switch (checkPhaseBased)
{ {
case MTGAbility::PLAYER_TURN_ONLY: case MTGAbility::PLAYER_TURN_ONLY: