overhaul bot

This commit is contained in:
2026-01-03 03:40:20 +08:00
parent 7423e29443
commit cbbe95e108
185 changed files with 989 additions and 6514 deletions
+7 -4
View File
@@ -140,7 +140,8 @@ func _initialize_player_scores():
"""Initialize scores for all connected players to 0."""
var all_players = get_tree().get_nodes_in_group("Players")
for player in all_players:
var peer_id = player.get_multiplayer_authority()
# Use name.to_int() for ID because bots share authority 1 but have unique node names
var peer_id = player.name.to_int()
if not player_scores.has(peer_id):
player_scores[peer_id] = 0
_update_leaderboard()
@@ -186,7 +187,8 @@ func on_goal_completed(player: Node, time_remaining: float):
if not multiplayer.is_server():
return
var peer_id = player.get_multiplayer_authority()
# Use name.to_int() for ID because bots share authority 1
var peer_id = player.name.to_int()
# Calculate score: base + time bonus
var time_bonus = int(time_remaining * TIME_BONUS_MULTIPLIER)
@@ -241,7 +243,8 @@ func _process_cycle_end_for_all_players():
var all_players = get_tree().get_nodes_in_group("Players")
for player in all_players:
var peer_id = player.get_multiplayer_authority()
# Use name.to_int() for ID because bots share authority 1
var peer_id = player.name.to_int()
var match_score = _calculate_match_score(player)
if match_score > 0:
@@ -297,7 +300,7 @@ func regenerate_goals_for_player(player: Node):
player.goals = int_goals
# Use main scene's RPC which properly looks up player by ID on each client
var peer_id = player.get_multiplayer_authority()
var peer_id = player.name.to_int()
if main_scene:
main_scene.rpc("sync_player_goals", peer_id, int_goals)