feat(loading-screen): Add AI arena mode UI and logic with player name customization and AI opponent handling

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-04-10 19:20:19 -07:00
parent 96a417dfa5
commit 86eb0933d0

View file

@ -49,11 +49,12 @@ func _run_generation() -> void:
if not race_list.is_empty():
default_race = race_list[0].get("id", "dwarf")
var arena_mode: bool = EnvConfig.get_bool("AI_ARENA")
for i: int in range(num_players):
var player: PlayerScript = PlayerScript.new()
player.index = i
player.is_human = (i == 0)
player.player_name = "Player %d" % (i + 1)
player.is_human = (i == 0) and not arena_mode
player.player_name = _arena_player_name(i, arena_mode)
player.race_id = default_race
player.color = _player_color(i)
GameState.players.append(player)
@ -95,6 +96,13 @@ func _transition_to_world_map() -> void:
get_tree().change_scene_to_file(WORLD_MAP_SCENE)
func _arena_player_name(index: int, arena_mode: bool) -> String:
if not arena_mode:
return "Player %d" % (index + 1)
var key: String = "AI_ARENA_P%d_NAME" % (index + 1)
return EnvConfig.get_var(key, "Player %d" % (index + 1))
func _player_color(index: int) -> Color:
var colors: Array[Color] = [
Color(0.85, 0.65, 0.20),