コード例 #1
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
 def set_active_game(self, game_id):
     """Set active game id."""
     if self.ongoing:
         raise ChainballGameError("game is live")
     if self._tournament is None:
         raise ChainballGameError("no tournament is currently active")
     # remove all players
     self.finished = False
     self.unregister_players([0, 1, 2, 3])
     self._tournament_game_id = game_id
コード例 #2
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def activate_tournament(self, tournament_id):
        """Put in tournament mode."""
        if self.ongoing:
            raise ChainballGameError("game is live")

        self.logger.info(
            "activating tournament with id {}".format(tournament_id)
        )
        self._tournament = tournament_id
コード例 #3
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
 def pair_master(self):
     """Pair master remote."""
     if self._remotes is False:
         raise ChainballGameError("remotes are disabled.")
     if self.m_remote.remote_id is not None:
         raise MasterRemoteAlreadyPairedError(
             "Already paired to {}".format(self.m_remote.remote_id)
         )
     # pair
     self.pair_handler.start_pair("master", self.game_config.pair_timeout)
コード例 #4
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def enable_remotes(self):
        """Enable remotes."""
        if self._remotes:
            return

        if self.ongoing:
            raise ChainballGameError(
                "cannot change scoring mode with live game"
            )

        self._initialize_remote_subsystem()
        self._start_remote_subsystem()
        self._remotes = True
コード例 #5
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def pair_end(self, player, remote_id):
        """Finish pairing remote."""
        if self._remotes is False:
            raise ChainballGameError("remotes are disabled.")
        if player == "master":
            self.m_remote.remote_id = remote_id
            self.logger.info(
                "Paired remote {} as the master remote".format(remote_id)
            )
            return

        self.players[player].remote_id = remote_id
        self.logger.info(
            "Paired player {} to remote {}".format(
                player, self.players[player].remote_id
            )
        )
コード例 #6
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def pair_remote(self, player):
        """Pair a players remote."""
        if self._remotes is False:
            raise ChainballGameError("remotes are disabled.")
        if player not in self.players:
            raise KeyError("Invalid player")

        if self.players[player].registered is False:
            raise PlayerNotRegisteredError("Player not registered")

        if self.players[player].remote_id:
            raise PlayerAlreadyPairedError(
                "Already paired to {}".format(self.players[player].remote_id)
            )

        # start pairing
        self.pair_handler.start_pair(player, self.game_config.pair_timeout)
コード例 #7
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def disable_remotes(self):
        """Disable remotes."""
        if self._remotes is False:
            return

        if self.ongoing:
            raise ChainballGameError(
                "cannot change scoring mode with live game."
            )

        # stop
        self.rf_handler.stop()
        self.rf_handler.join()

        # delete
        self.rf_handler = None
        self.pair_handler = None
        self.m_remote = None

        self._remotes = False
コード例 #8
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
    def unpair_remote(self, player):
        """Unpair a players remote."""
        if self._remotes is False:
            raise ChainballGameError("remotes are disabled")

        if player not in self.players:
            raise KeyError("Invalid Player")

        if self.players[player].registered is False:
            raise PlayerNotRegisteredError("Player not registered")

        if self.players[player].remote_id is None:
            raise PlayerNotPairedError("Player not paired to a remote")

        self.logger.info(
            "Unpairing remote {} for player {}".format(
                self.players[player].remote_id, player
            )
        )

        self.pair_handler.stop_tracking(self.players[player].remote_id)
        self.players[player].remote_id = None
コード例 #9
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
 def unpair_master(self):
     """Unpair master remote."""
     if self._remotes is False:
         raise ChainballGameError("remotes are disaled.")
     self.pair_handler.stop_tracking(self.m_remote.remote_id)
     self.m_remote.remote_id = None
コード例 #10
0
ファイル: engine.py プロジェクト: brunosmmm/chainball-sboard
 def deactivate_tournament(self):
     """Deactivate tournament mode."""
     if self.ongoing:
         raise ChainballGameError("game is live")
     self.logger.info("deactivating tournament")
     self._tournament = None