def test_spec_ruleset(dominion_fix, ruleset): ''' Tests adding a variation to a ruleset and querrying by its number of players. ''' create_specific_rule_set(parent=ruleset, player_number=2) assert SpecificRuleSet.objects(player_number__gt=1)#@UndefinedVariable assert SpecificRuleSet.objects(name=ruleset.name) #@UndefinedVariable
def start(self): ''' Initialized the game for all players. ''' if not self.can_start(): raise GameNotReadyException(self) self.ruleset = SpecificRuleSet.objects(name=self.ruleset.name, player_number=len(self.game_players))[0] #@UndefinedVariable for player_id in self.game_players: player = self.game_players[player_id] #@UndefinedVariable player.set_deck(self.ruleset.starting_deck) player.draw_cards(self.ruleset.hand_size)
def create_specific_rule_set(parent, *args, **kwargs): ''' Creates a specific rule set from a received general_rule_set name. ''' name = parent.name if not GeneralRuleSet.objects(name=name, _is_general=True): #@UndefinedVariable raise DominionException('No such rule set %s!' % name) rules = SpecificRuleSet(name=name, *args, **kwargs) copy_fields(rules, GeneralRuleSet.objects( name=name, _is_general=True)[0]) #@UndefinedVariable return rules
def can_start(self): ''' Checks whether there is a variation for the current number of players. ''' return SpecificRuleSet.objects(name=self.ruleset.name, player_number=len(self.game_players)) #@UndefinedVariable
def can_add_players(self): ''' Tests whether there are game variations with a number of players greater than the current number of players ''' return SpecificRuleSet.objects(name=self.ruleset.name, player_number__gt=len(self.game_players)) #@UndefinedVariable