mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
171cd4a840
Introduce arena_02 (Nebula) and arena_03 (Asteroid Field) alongside arena_01, listed in a new ArenaRegistry (scripts/arena_registry.gd) as the single source of truth for available arenas. Free Play lets the player pick an arena from the main menu; Match/Spectate each pick one at random per session; Training keeps its own fixed arena_01. Nebula gets an RL-style visual treatment: a near-invisible glass boundary material shared by all arenas, a baked equirect nebula sky texture, a drifting-dust particle system, and a Blender-modeled station/debris/planet decoration set. GameMode gains a _get_arena_scene_path() hook so modes can instantiate their arena in code instead of hardcoding it in the scene.
28 lines
1.2 KiB
GDScript
28 lines
1.2 KiB
GDScript
extends Node
|
|
|
|
# Autoload: cross-scene settings handed from the main menu to game modes.
|
|
# Defaults keep direct-scene runs (F6), training, and headless runs unchanged.
|
|
|
|
# Opponent policy chosen in the main menu; empty = use the mode's own export.
|
|
var selected_bot_path: String = ""
|
|
# Difficulty handicaps chosen alongside selected_bot_path; -1/-1.0 = use the
|
|
# mode's own export.
|
|
var selected_bot_reaction_ticks: int = -1
|
|
var selected_bot_action_noise: float = -1.0
|
|
# Name of the chosen difficulty tier, kept only to reselect the right
|
|
# dropdown item when returning to the menu.
|
|
var selected_difficulty_name: String = ""
|
|
# Dev-only: raw checkpoint override for Match's opponent; empty = use the
|
|
# difficulty tier above instead. Kept separate from selected_bot_path so the
|
|
# dev dropdown's own selection survives independently of which difficulty is
|
|
# picked.
|
|
var dev_bot_override_path: String = ""
|
|
|
|
# Spectate (bot vs bot) policies chosen in the main menu; empty = mode export.
|
|
var spectate_bot_a_path: String = ""
|
|
var spectate_bot_b_path: String = ""
|
|
|
|
# Arena chosen in the main menu for Free Play; empty = ArenaRegistry's default.
|
|
# Match/Spectate ignore this and pick a random arena each session instead.
|
|
var selected_arena_path: String = ""
|