Exemplo n.º 1
0
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"]))
Exemplo n.º 2
0
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)