Exemplo n.º 1
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)))
Exemplo n.º 2
0
def next_turn(pid: int):
    ps: PlayerState = db_connector.get_player_state_pid(pid)
    ps.pay_taxes()
    game: Game = db_connector.get_game_pid(pid)
    if game.update_progress():
        define_bankrupts(db_connector.get_game_pid(pid))
        socket.emit('new_market_lvl', game.get_new_market_lvl(), room=game.id)
Exemplo n.º 3
0
 def upgrade_fabric(self, doIt: bool):
     if db_connector.check_upgrade(
             self.player_id,
             db_connector.get_game_pid(self.player_id).turn_num):
         db_connector.set_fabrics1(self.player_id, self.fabrics_1 - 1)
         db_connector.set_money(self.player_id, self.money - 3500)
     if (doIt):
         if self.money > 3500:
             db_connector.set_money(self.player_id, self.money - 3500)
         month = db_connector.get_game_pid(self.player_id).turn_num + 9
         db_connector.upgrade_fabric(self.player_id, month)
Exemplo n.º 4
0
 def build_fabric(self, is_auto: bool):
     if db_connector.check_month(
             self.player_id,
             db_connector.get_game_pid(self.player_id).turn_num + 1)[0]:
         db_connector.set_money(
             self.player_id, self.money - 5000 if db_connector.check_month(
                 self.player_id,
                 db_connector.get_game_pid(self.player_id).turn_num +
                 1)[1] else 2500)
     if self.money > 5000 if is_auto else 2500:
         db_connector.set_money(self.player_id,
                                self.money - (5000 if is_auto else 2500))
     month = db_connector.get_game_pid(
         self.player_id).turn_num + 7 if is_auto else 5
     db_connector.build_fabric(self.player_id, is_auto, month)
Exemplo n.º 5
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()
Exemplo n.º 6
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))
Exemplo n.º 7
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))
Exemplo n.º 8
0
 def check_credit_payoff(self) -> int:
     current_month = db_connector.get_game_pid(self.id).turn_num
     result = 0
     for credit in db_connector.get_credits(self.id):
         if credit[3] == current_month - 12:
             self.pay_credit(credit[0], credit[3])
             result += credit[3]
Exemplo n.º 9
0
def leave_game(pid: int, sid: int):
    game_instance: Game = db_connector.get_game_pid(pid)
    is_senior: bool = db_connector.get_player_state_pid(
        pid).rang == game_instance.turn_num % game_instance.max_players
    if is_senior:
        senior_leave(game_instance.id)
    leave_room(game_instance.id, sid)
    game_instance.player_leave(pid)
Exemplo n.º 10
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)
Exemplo n.º 11
0
def produce(pid: int, quantity: int, fabrics_1: int, fabrics_2: int):
    player_state = db_connector.get_player_state_pid(pid)
    result = player_state.get_egp(quantity, fabrics_1, fabrics_2)
    if isinstance(result, int) and result == 0:
        emit('production_error')
        return
    emit('produced', (result[0], result[1]))
    game: Game = db_connector.get_game_pid(pid)
    if game.update_progress():
        emit('wait_egp_request', room=game.id)
Exemplo n.º 12
0
 def take_credit(self, amount: int) -> int:
     db_connector.set_money(self.player_id, self.money + amount)
     max_amount: int = self.fabrics_1 * 2500 + self.fabrics_2 * 5000
     already_taken: int = 0
     for credit in db_connector.get_credits(self.player_id):
         already_taken += credit[2]
     if already_taken < max_amount:
         max_amount -= already_taken
         if amount > max_amount:
             amount = max_amount
         db_connector.get_credits(self.player_id)
         db_connector.take_credit(
             self.player_id, amount,
             db_connector.get_game_pid(self.player_id).turn_num)
         return amount
     return 0
Exemplo n.º 13
0
def egp_request(pid: int, price: int, qty: int):
    game: Game = db_connector.get_game_pid(pid)
    is_senior: bool = db_connector.get_player_state_pid(
        pid).rang == game.turn_num % game.max_players
    egp_orders.append(Order(game.id, pid, price, qty, is_senior))
    if game.update_progress():
        game_orders: list = []
        i: int = 0
        while i < len(egp_orders):
            order: Order = egp_orders[i]
            if order.game_id == game.id:
                print('game_id ' + str(order.game_id) + ' ' + str(game.id))
                game_orders.append(order)
                egp_orders.remove(order)
            else:
                i += 1
        send_egp_approved(game.start_egp_auction(game_orders), game.id)
        pay_bank_percent(game, game.id)
Exemplo n.º 14
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))