def launch_game(self, game, port, is_host=False, use_map=None): # FIXME: Setting up a ridiculous amount of cyclic pointers here if self.game_connection: self.game_connection.abort("Player launched a new game") self.game_connection = GameConnection(self.loop, self, self.player_service, self.game_service) self.game_connection.player = self.player self.player.game_connection = self.game_connection self.game_connection.game = game if is_host: game.host = self.player self.player.state = PlayerState.HOSTING if is_host else PlayerState.JOINING self.player.game = game self.player.game_port = port cmd = { "command": "game_launch", "mod": game.game_mode, "uid": game.id, "args": ["/numgames " + str(self.player.numGames)] } if use_map: cmd['mapname'] = use_map self.sendJSON(cmd)
def make_connection(player, connectivity): lc = LobbyConnection(loop) lc.protocol = mock.Mock() conn = GameConnection(loop=loop, lobby_connection=lc, player_service=player_service, games=game_service) conn.player = player conn.game = game conn._transport = transport conn._connectivity_state.set_result(connectivity) return conn
def game_connection(request, game, loop, player_service, players, game_service, transport): from server import GameConnection, LobbyConnection conn = GameConnection(loop=loop, lobby_connection=mock.create_autospec( LobbyConnection(loop)), player_service=player_service, games=game_service) conn._transport = transport conn.player = players.hosting conn.game = game conn.lobby = mock.Mock(spec=LobbyConnection) def fin(): conn.abort() request.addfinalizer(fin) return conn