overhaul bot
This commit is contained in:
+13
-9
@@ -342,9 +342,10 @@ func _setup_host_game():
|
||||
call_deferred("_deferred_set_player_goals", peer_id, client_goals)
|
||||
player_index += 1
|
||||
|
||||
# Add bots (only if no lobby players connected)
|
||||
if GameStateManager.enable_bots and lobby_players.size() <= 1:
|
||||
for i in range(2, GameStateManager.max_players + 1):
|
||||
# Add bots to fill remaining slots (regardless of player count)
|
||||
if GameStateManager.enable_bots:
|
||||
var current_players = lobby_players.size()
|
||||
for i in range(current_players + 1, GameStateManager.max_players + 1):
|
||||
_add_bot(i)
|
||||
|
||||
_start_game()
|
||||
@@ -777,7 +778,8 @@ func update_all_players_boards():
|
||||
func verify_all_connections():
|
||||
if multiplayer.is_server():
|
||||
for peer_id in GameStateManager.players:
|
||||
if peer_id != 1:
|
||||
# Skip host (1) and bots (bots don't have real network connections)
|
||||
if peer_id != 1 and not peer_id in GameStateManager.bots:
|
||||
rpc_id(peer_id, "connection_verify", GameStateManager.players)
|
||||
|
||||
@rpc
|
||||
@@ -956,9 +958,10 @@ func _on_leaderboard_updated(sorted_scores: Array):
|
||||
var player_data = []
|
||||
for p in get_tree().get_nodes_in_group("Players"):
|
||||
player_data.append({
|
||||
"peer_id": p.get_multiplayer_authority(),
|
||||
# Use name.to_int() to correctly identify bots (Authority 1) vs Players
|
||||
"peer_id": p.name.to_int(),
|
||||
"name": p.display_name if not p.display_name.is_empty() else str(p.name),
|
||||
"score": goals_cycle_manager.get_player_score(p.get_multiplayer_authority()) if goals_cycle_manager else 0
|
||||
"score": goals_cycle_manager.get_player_score(p.name.to_int()) if goals_cycle_manager else 0
|
||||
})
|
||||
rpc("sync_leaderboard_data", player_data)
|
||||
|
||||
@@ -1148,9 +1151,10 @@ func request_leaderboard_sync():
|
||||
var player_data = []
|
||||
for p in get_tree().get_nodes_in_group("Players"):
|
||||
player_data.append({
|
||||
"peer_id": p.get_multiplayer_authority(),
|
||||
# Use name.to_int() for consistent ID
|
||||
"peer_id": p.name.to_int(),
|
||||
"name": p.display_name if not p.display_name.is_empty() else str(p.name),
|
||||
"score": goals_cycle_manager.get_player_score(p.get_multiplayer_authority()) if goals_cycle_manager else 0
|
||||
"score": goals_cycle_manager.get_player_score(p.name.to_int()) if goals_cycle_manager else 0
|
||||
})
|
||||
rpc_id(sender_id, "sync_leaderboard_data", player_data)
|
||||
|
||||
@@ -1209,7 +1213,7 @@ func _update_leaderboard_display():
|
||||
# Build scores array with all players
|
||||
var player_data = []
|
||||
for p in all_players:
|
||||
var peer_id = p.get_multiplayer_authority()
|
||||
var peer_id = p.name.to_int()
|
||||
var score = goals_cycle_manager.get_player_score(peer_id) if goals_cycle_manager else 0
|
||||
player_data.append({"peer_id": peer_id, "name": p.display_name if not p.display_name.is_empty() else str(p.name), "score": score})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user