def update_warnings(self): self.warnings = [] self.info = [] if self.gm is None: self.warnings.append('No gm.') elif self.gm.slots.get(self.slot, None) not in 'XG': self.warnings.append('%s not registered as a GM.' % ( player_name(self.gm))) if len(self.players) > self.game.max_players: num = len(self.players) - self.game.max_players self.warnings.append('%s player%s too many.' % ( num, 's' if num > 1 else '')) elif len(self.players) < self.game.min_players: num = self.game.min_players - len(self.players) self.warnings.append('%s player%s too few.' % ( num, 's' if num > 1 else '')) for player in self.players: if player.slots.get(self.slot, None) not in 'XP': self.warnings.append('%s not registered as a player.' % ( player_name(player))) if self.game.min_players <= len(self.players) < self.game.max_players: num = self.game.max_players - len(self.players) self.info.append('%s slot%s available.' % ( num, 's' if num > 1 else ''))
def to_list_csv(self, csv_file): writer = csv.writer(csv_file) for slot, tables in sorted(self.game_tables.items()): for num, game_table in enumerate(tables): writer.writerow(['Table %s (%s: %s)' % ( num + 1, slot, game_table.game.name)]) writer.writerow(['GM: %s' % (player_name(game_table.gm),)]) for player in game_table.players: writer.writerow([player_name(player)]) writer.writerow([])
def __str__(self): return '<Table %s: %s\n%s\n>' % ( self.slot, player_name(self.gm), '\n'.join([ ' %s' % player_name(player) for player in self.players]))
def test_player_name(self): player1 = Player("Gary Gygax", "TSR", {"1A": "G"}) player2 = Player("Gary Gygax", None, {"1A": "G"}) self.assertEqual("Gary Gygax (TSR)", player_name(player1)) self.assertEqual("Gary Gygax", player_name(player2)) self.assertEqual("(None)", player_name(None))