diff --git a/scripts/autoload/GameLoopManager.gd b/scripts/autoload/GameLoopManager.gd index b40e220..bc654f5 100644 --- a/scripts/autoload/GameLoopManager.gd +++ b/scripts/autoload/GameLoopManager.gd @@ -9,14 +9,19 @@ var players_data: Dictionary[int, Dictionary] var reaction_area: Dictionary[int, Array] var card_order: Array[int] var deck_cards: Dictionary[String, int] +var deck_cards_keys: Array[String] = deck_cards.keys() var max_hp: int +var game_started: bool +var game_round: int + func create_server(playern: int) -> void: max_player_num = playern player_num = 1 if peer.create_server(GameManager.port, playern) != OK: return setup_multiplayer() + add_player(1) func create_client(ip: String) -> void: @@ -32,11 +37,13 @@ func setup_multiplayer() -> void: func _on_peer_connected(id: int) -> void: - add_player(id) + if multiplayer.is_server(): + add_player(id) func _on_peer_disconnected(id: int): - remove_player(id) + if multiplayer.is_server() and players_data.has(id): + remove_player(id) func add_player(id: int) -> void: @@ -64,9 +71,54 @@ func server_start_game() -> void: if player_num <= max_player_num: return if multiplayer.is_server(): + game_round = 1 client_start_game.rpc() @rpc("any_peer", "call_local", "reliable") func client_start_game() -> void: pass + + +func random_card() -> String: + if deck_cards.size() == 0: + return "" + var card: String = deck_cards_keys[randi_range(0, deck_cards_keys.size() - 1)] + deck_cards[card] -= 1 + if deck_cards[card] <= 0: + deck_cards.erase(card) + return card + + +func setup_deal_card() -> void: + for id in players_id: + for i in range(8): + var card: String = random_card() + if card == "": return + players_data[id]["cards"].append(card) + + +func round_deal_card(id: int) -> void: + if card_order.find(id) == -1: return + if game_round == 1 and card_order.find(id) <= 2: + for i in range(3): + var card: String = random_card() + if card == "": return + players_data[id]["cards"].append(card) + else: + for i in range(2): + var card: String = random_card() + if card == "": return + players_data[id]["cards"].append(card) + + +func reaction_settle(id: int) -> void: + pass + + +func settle_round() -> void: + game_round += 1 + + +func is_game_ended() -> bool: + return false