extends Node const CAPTAIN_PROGRESS := preload("res://scripts/captain/captain_progress.gd") var captain: CaptainProgress = CAPTAIN_PROGRESS.new() var selected_ship_path: String = "" var restart_inventory: Dictionary = {} var system_level: int = 1 var system_seed: int = 0 var explored_pois: Dictionary = {} var asteroid_retry_seeds: Dictionary = {} var exploration_wreck_bonuses: Dictionary = {} var hud_panel_state: Dictionary = {} func create_system_seed() -> int: var rng := RandomNumberGenerator.new() rng.randomize() return maxi(1, rng.randi()) func reset_current_system_exploration() -> void: # Keep the system and rewards, but regenerate asteroid placement and minerals. var previous: int = asteroid_retry_seeds.get(system_seed, system_seed) var next_seed := create_system_seed() while next_seed == previous: next_seed = create_system_seed() asteroid_retry_seeds[system_seed] = next_seed var prefix := "%d:" % system_seed for id in explored_pois.keys(): if str(id).begins_with(prefix): explored_pois.erase(id) func start_new_run() -> void: captain = CAPTAIN_PROGRESS.new() system_level = 1 system_seed = create_system_seed() restart_inventory.clear() explored_pois.clear() asteroid_retry_seeds.clear() exploration_wreck_bonuses.clear() hud_panel_state.clear() func _ready() -> void: var game_window := get_tree().root game_window.content_scale_size = Vector2i(1280, 720) game_window.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS game_window.content_scale_aspect = Window.CONTENT_SCALE_ASPECT_EXPAND