Esempio n. 1
0
def disconnect():
    join_code = session["join_code"]
    player_num = get_num_player(join_code, session["nickname"])
    connection_manager.removePlayer(join_code, player_num)
    emit_message(f"{session['nickname']} left the game. {connection_manager.numberOfPlayers(join_code)} players left!",
                 join_code)

    # if player who quit is on their turn, increment turn
    if (str(get_turn(join_code)) == str(session["player_num"])):
        increment_turn(join_code)
        emit_turn(join_code, get_player(join_code, get_turn(join_code))["nickname"])

    # removes game if empty, otherwise deal with repairing the game
    check_empty(join_code)
Esempio n. 2
0
def end_turn():
    """Called when a player ends their turn"""
    join_code = session["join_code"]
    nickname = session["nickname"]
    player_num = session["player_num"]
    players = get_players(join_code)
    turn = get_turn(join_code)

    if turn == player_num:
        increment_turn(join_code)
        turn = get_turn(join_code)
        player = get_player(join_code, turn)

        # sums total spaces on board controlled by a player
        spaces = 0
        board = get_board(join_code)
        money = get_revenue(join_code, player["nickname"])
        update_player_money(join_code, turn, money)
        emit_turn(join_code, player["nickname"])
Esempio n. 3
0
def connect():
    print(f"{session['nickname']} CONNECTED TO {session['join_code']}")
    join_code = session["join_code"]
    join_room(join_code)
    emit_board(join_code)
    emit_money(join_code, get_players(join_code))
    emit_teams(join_code, colors, get_players(join_code))
    emit_message("%s joined the game!" % session["nickname"], join_code)
    player = get_player(join_code, get_turn(join_code))
    emit_turn(join_code, player["nickname"])
    player_num = get_num_player(join_code, session["nickname"])
    connection_manager.addPlayer(join_code, player_num)
    if test_end_game():
        emit_end_game(join_code, session["nickname"])
Esempio n. 4
0
def change_team(data):
    join_code = session["join_code"]
    nickname = session["nickname"]
    player_num = session["player_num"]
    team = data["team"]

    if player_num == get_turn(join_code):
        def change_team_inner():
            errormsg = None
            if num_players_on_team(join_code, team) >= math.ceil(get_num_players(join_code) / 2):
                errormsg = "There are already do many people on that team"
            else:
                update_player_team(join_code, player_num, team)
                emit_message("Player {0} changed to {1}!".format(nickname, team), join_code)
                emit_teams(join_code, colors, get_players(join_code))
            return errormsg

        check_money(change_team_inner, COST_TEAM_SWITCH)
Esempio n. 5
0
def move(data):
    join_code = session["join_code"]
    nickname = session["nickname"]
    player_num = session["player_num"]
    player = get_player(join_code, player_num)
    i = data['i']
    j = data['j']

    if player_num == get_turn(join_code):
        cost = get_cost_of_square(i, j)

        def make_move():
            errormsg = set_square(join_code, i, j, player, player_initiated=True)
            gameover = test_end_game()
            if gameover:
                emit_end_game(join_code, nickname)
            return errormsg

        check_money(make_move, cost)