Exemple #1
0
 def playerResponse(self, player, response):
     """ Callback for handling network input """
     self.playersResponded.add(player)
     if response not in self.repsonses:
         #TODO:Network: Send client an error
         return
     self.playerResponses[player] = response
     EventManager.triggerEvent('poll.response', self, player, response)
Exemple #2
0
 def poll(self):
     """ Run the poll """
     if self.running: raise PollRunningError, "This poll is already running" 
     self.running = True
     self.playersResponded = set()
     EventManager.registerCallback('game.players.add', self.addPlayer)
     EventManager.registerCallback('game.players.del', self.delPlayer)
     for player in self.game.players:
         self.addPlayer(player)
Exemple #3
0
 def __init__(self, game, **kwargs):
     super(BoatAttackPhase, self).__init__(game, **kwargs)
     self.playersToAttack = []
     self.playersResponded = []
     self.currActions = []
     self.weaponsAttacked = []
     self.currPhase = self.subphases.poll
     self.poll = IdleTimeoutPoll(self.game, 'Attack with your boats?',
                      ('yes', 'no'), 30.0)
     self.poll.poll()
     EventManager.registerCallback('poll.response', self.handlePollResponse)
     EventManager.registerCallback('poll.finish', self.pollFinished)
Exemple #4
0
 def stop(self):
     """ Stop the poll """
     if not self.running: return
     self.running = False
     EventManager.unregisterCallback('game.players.add', self.addPlayer)
     EventManager.unregisterCallback('game.players.del', self.delPlayer)
     EventManager.triggerEvent('poll.finish', self, self.playerResponses)
     for player in self.game.players:
         #TODO: Send network activity: 
         #    Tell all the players the poll stopped.
         pass
Exemple #5
0
 def playerResponse(self, player, response):
     super(SimplePoll, self).playerResponse(player, response)
     if len(self.playersResponded) >= len(self.game.players):
         EventManager.triggerEvent('poll.finish', self, self.playerResponses)