def parse_match_created(blob): import app.mtga_app as mtga_app with mtga_app.mtga_watch_app.game_lock: mtga_app.mtga_watch_app.match = Match( blob["matchId"], blob["eventId"], blob["opponentScreenName"], blob["opponentRankingClass"] + " " + str(blob["opponentRankingTier"]))
def parse_match_playing(blob): # MatchGameRoomStateType_Playing import app.mtga_app as mtga_app temp_players = {1: {}, 2: {}} game_room_info = blob["matchGameRoomStateChangedEvent"]["gameRoomInfo"] event_id = game_room_info['gameRoomConfig']['eventId'] game_room_players = game_room_info["players"] for player in game_room_players: temp_players[player["systemSeatId"]]["player_id"] = player["userId"] game_room_config = game_room_info["gameRoomConfig"] reserved_players = game_room_config["reservedPlayers"] for player in reserved_players: temp_players[player["systemSeatId"]]["name"] = player["playerName"] match_config = game_room_config["matchConfig"] if "teams" in match_config: teams = match_config["teams"] for team in teams: players = team["players"] for player in players: player_seat = player["systemSeatId"] temp_players[player_seat]["deck"] = util.card_ids_to_card_list( player["deckCards"]) for player_idx in [1, 2]: if "deck" not in temp_players[player_idx]: temp_players[player_idx]["deck"] = [] # set up shared zones shared_battlefield = Zone("battlefield") shared_exile = Zone("exile") shared_limbo = Zone("limbo") shared_stack = Zone("stack") player1 = Player(temp_players[1]["name"], temp_players[1]["player_id"], 1, shared_battlefield, shared_exile, shared_limbo, shared_stack, temp_players[1]["deck"]) player2 = Player(temp_players[2]["name"], temp_players[2]["player_id"], 2, shared_battlefield, shared_exile, shared_limbo, shared_stack, temp_players[2]["deck"]) with mtga_app.mtga_watch_app.game_lock: if mtga_app.mtga_watch_app.player_id == player1.player_id: hero = player1 opponent = player2 elif mtga_app.mtga_watch_app.player_id == player2.player_id: hero = player2 opponent = player1 else: raise Exception( "Don't know who hero is: player_id: {} / player 1: {} / player 2: {}" .format(mtga_app.mtga_watch_app.player_id, player1.player_id, player2.player_id)) hero.is_hero = True if mtga_app.mtga_watch_app.intend_to_join_game_with: hero.original_deck = mtga_app.mtga_watch_app.intend_to_join_game_with match_id = game_room_info['gameRoomConfig'][ 'matchId'] + "-game1-{}".format(hero.player_id) mtga_app.mtga_watch_app.game = Game(match_id, hero, opponent, shared_battlefield, shared_exile, shared_limbo, shared_stack) mtga_app.mtga_watch_app.match = Match(match_id, event_id, hero.player_id, hero.seat, opponent.player_id, opponent.seat)