def __send_hand(self, player): for c in player.hand: #TODO: Should be done in game c.calc_cost = self.game.get_cost(c) self.get_client(player).Send({ACTION: UPDATE, HAND: nwp.pack(player.hand), DECK: nwp.pack(player.deck)})
def __send_piles(self): self.send_to_all({ACTION: UPDATE, BOARDSETUP: nwp.pack([(pile.id, pile.card, len(pile), self.game.get_cost(pile)) for pile in self.game.kingdompiles])}) self.send_to_all({ACTION: UPDATE, BOARDCOMMON: nwp.pack([(pile.id, pile.card, len(pile), self.game.get_cost(pile)) for pile in self.game.commonpiles])})
def handle_changesubphaseevent(self, event): assert event.player, "player is None" assert event.subphase, "subphase is None" if event.info: assert isinstance(event.info, InfoToken) self.send_to_all({ACTION: UPDATE, SUBID: nwp.pack(event.card_id), SUBPHASE: event.subphase, INFO: nwp.pack(event.info), CLIENTID: self.get_client(event.player).id})
def handle_changeboardevent(self, event): assert event.player, "player is None" for c in event.player.board: #TODO: Should be done in game c.calc_cost = self.game.get_cost(c) self.send_to_all({ACTION: UPDATE, BOARD: nwp.pack(event.player.board)})
def send_playerlist(self): infos = self.get_playerinfos() if self.game.running: if not len([p for p in infos if p.current]) == 1: # or len(infos) < 2: for i in infos: print i raise Exception("no active player???") self.send_to_all({ACTION: UPDATE, PLAYERINFO: nwp.pack(infos)})
def handle_gameendevent(self, event): self.send_to_all({ACTION: END, RESULT: nwp.pack(event.result)}) self.running = False
def handle_playerinfoevent(self, event): self.send_to_all({ACTION: UPDATE, PLAYERINFO: nwp.pack(event.playerinfos)})
def handle_buycardevent(self, event): self.connection.Send({ACTION: RESPONSE, BUYFROMPILE: nwp.pack(event.pile_id), ID: self.id})
def handle_answerevent(self, event): self.connection.Send({ACTION: RESPONSE, ANSWER: nwp.pack(event.answer), ID: self.id, SUBID: nwp.pack(self.sub_id)})
def handle_playcardevent(self, event): self.connection.Send({ACTION: RESPONSE, PLAYCARD: nwp.pack(event.card_id), ID: self.id})