from CAO_Status import cao_error from CAO_Game import CAO_Game class CAO_Client(): def __init__(self, socket, handler, game_manager): self.game = None self.game_manager = game_manager self.handler = handler self.socket = socket self.player = None def join_game(self, game_name): if self.game is not None: return cao_error('You are already in a game') game = self.game_manager.join_game(game_name) # XXX self.game will be assigned by game.try_join() return game.try_join(self) def set_game(self, game): self.game = game def set_player(self, player): self.player = player def play_white_card(self, card_id): if self.game is None: return cao_error('You have to join a game first') return self.game.try_play_card(self.player, card_id) def pick_black_card(self): if self.game is None: return cao_error('You have to join a game first') return self.game.try_become_judge(self.player) def collect_cards(self): if self.game is None: cao_error('You have to join a game first') return self.game.try_collect_cards(self.player) def designate_card(self, card_id): if self.game is None: return cao_error('You have to join a game first') return self.game.try_designate_card(self.player, card_id) def view_player_cards(self): if self.game is None: return cao_error('You have to join a game first') return self.game.try_view_player_cards(self.player) def view_played_cards(self): if self.game is None: return cao_error('You have to join a game first') return self.game.try_view_played_cards(self.player) def view_black_card(self): if self.game is None: return cao_error('You have to join a game first') return self.game.try_view_black_card(self.player) def send_notification(self, message): self.socket.send_message(self.handler, message)