mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 08:23:45 +00:00
08a0f74391
Arenas inherit from a new arena_base.tscn instead of restating ~40 shared lines each; only sky/ambient/glow/tint/decoration vary, exposed via new Arena exports since nested Environment properties aren't overridable through scene inheritance. Bot construction and score-keeping move onto GameMode, shared by match and spectate modes while preserving their differing GameSettings-override behavior and the HUD's score-row duck-typing. HUD instruments share a HudInstrument base for the smoothing-weight calc and angle-lerp helper. Also dedupes MAIN_MENU_SCENE_PATH into ScenePaths and documents why DIFFICULTIES tiers share one checkpoint.
18 lines
622 B
GDScript
18 lines
622 B
GDScript
class_name HudInstrument
|
|
extends Control
|
|
|
|
# Shared base for the HUD's procedural instruments (heading tape, attitude
|
|
# indicator, gauges): the exponential-smoothing weight calc and the
|
|
# angle-aware lerp helper they all use. Each instrument still owns its own
|
|
# _process (smoothing 1-2 distinct fields) and _draw (entirely bespoke).
|
|
|
|
const SMOOTHING := 12.0
|
|
|
|
|
|
static func lerp_angle_deg(from: float, to: float, weight: float) -> float:
|
|
return rad_to_deg(lerp_angle(deg_to_rad(from), deg_to_rad(to), weight))
|
|
|
|
|
|
func _smoothing_weight(delta: float) -> float:
|
|
return 1.0 - exp(-SMOOTHING * delta) # frame-rate independent
|