예제 #1
0
def create_game(pid, sesid, name, esm, egp, money, fabrics_1, fabrics_2,
                max_players):
    game.create_game(pid, esm, egp, money, fabrics_1, fabrics_2, max_players,
                     name)
    join_room(db_connector.get_game_id(pid), sid=sesid)
    db_connector.inc_game_progress(db_connector.get_game_id(pid))
    return db_connector.get_game_pid(pid).get_json()
예제 #2
0
def bankrupt_leave(pid: int):
    db_connector.dec_max_players(db_connector.get_game_id(pid))
    if db_connector.get_game_pid(pid).max_players < 2:
        define_winner(db_connector.get_game_id(pid))
    else:
        emit('bankrupt_left')
    leave_room(db_connector.get_game_id(pid))
    db_connector.del_player_state(pid)
예제 #3
0
def build_request(pid: int, is_auto: bool, is_skip: bool):
    if not is_skip:
        ps: PlayerState = db_connector.get_player_state_pid(pid)
        ps.build_fabric(is_auto)
    if db_connector.get_game_pid(pid).update_progress():
        define_bankrupts(db_connector.get_game_pid(pid))
        emit('wait_upgrade_request', room=(db_connector.get_game_id(pid)))
예제 #4
0
def take_credit(pid: int, amount: int):
    if amount > 0:
        ps: PlayerState = db_connector.get_player_state_pid(pid)
        taken: int = ps.take_credit(amount)
        emit("taken_credit", taken)
    if db_connector.get_game_pid(pid).update_progress():
        emit('wait_build_request', room=db_connector.get_game_id(pid))
예제 #5
0
def credit_payoff(pid: int):
    print(str(pid))
    player: Player = db_connector.get_player_pid(pid)
    emit('paid_credit_sum', player.check_credit_payoff())
    game: Game = db_connector.get_game_pid(pid)
    if game.update_progress():
        emit('wait_take_credit', room=db_connector.get_game_id(pid))
예제 #6
0
def get_player_info(pid: int):
    ps: PlayerState = db_connector.get_player_state_pid(pid)
    nicknames = []
    for ps in db_connector.get_player_state_gid(db_connector.get_game_id(pid)):
        nicknames.append(db_connector.get_player_pid(ps.player_id).nickname)
    return [
        ps.player_id, ps.esm, ps.egp, ps.fabrics_1, ps.fabrics_2, ps.game_id,
        ps.money, ps.rang, nicknames
    ]
예제 #7
0
def upgrade_request(pid: int, do: bool):
    ps: PlayerState = db_connector.get_player_state_pid(pid)
    ps.upgrade_fabric(do)
    if db_connector.get_game_pid(pid).update_progress():
        define_bankrupts(db_connector.get_game_pid(pid))
        emit('wait_next_turn', room=db_connector.get_game_id(pid))