Exemple #1
0
 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)})
Exemple #2
0
    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])})
Exemple #3
0
    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})
Exemple #4
0
    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)})
Exemple #5
0
    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)})
Exemple #6
0
 def handle_gameendevent(self, event):
     self.send_to_all({ACTION: END, RESULT: nwp.pack(event.result)})
     self.running = False
Exemple #7
0
 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)})
Exemple #10
0
 def handle_playcardevent(self, event):
     self.connection.Send({ACTION: RESPONSE, 
                           PLAYCARD: nwp.pack(event.card_id), 
                           ID: self.id})