Esempio n. 1
0
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
Esempio n. 2
0
 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)
Esempio n. 3
0
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
Esempio n. 4
0
 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
Esempio n. 5
0
 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