Add capture points and the planet conquest loop (#43)
CapturePoint tracks neutral/blocked/capturing/captured state by polling proximity each frame (a ship in capture_radius, no enemy within enemy_clear_radius), draining gradually rather than resetting when interrupted, and calling GameState.mark_point_captured() on completion. PlanetSetupHost now instantiates the real CapturePoint scene per authored point (restoring already-captured state immediately on re-landing) and spawns each setup's authored enemies, replacing the placeholder markers from #42. CaptureLabel is a small self-polling HUD (same convention as ResourceCounter) showing "CAPTURED n/m" or "CONQUERED" with a one-shot fade on completion, themed per surface profile alongside the existing bank/fleet captions. test_planet_atmosphere_transition.gd's "no enemies on a landed surface" assumption no longer holds now that setups can place guard enemies by design - narrowed the check to what it actually needs to prove: no space-side EnemySpawner/AsteroidField node leaks across the scene swap. Part of the #40 conquest-mechanic breakdown.
This commit is contained in:
parent
65fe19aeb6
commit
c4e2ee7178
16 changed files with 511 additions and 36 deletions
|
|
@ -44,7 +44,7 @@ func _compose_surface(profile: Resource) -> void:
|
|||
atmosphere.set_shader_parameter("base_color", profile.base_color)
|
||||
atmosphere.set_shader_parameter("crater_color", profile.crater_color)
|
||||
atmosphere.set_shader_parameter("highlight_color", profile.highlight_color)
|
||||
for caption_path in ["../UI/BankCaption", "../UI/FleetCaption"]:
|
||||
for caption_path in ["../UI/BankCaption", "../UI/FleetCaption", "../UI/CaptureLabel"]:
|
||||
var caption: Label = get_node(caption_path)
|
||||
caption.add_theme_color_override("font_color", profile.caption_color)
|
||||
caption.add_theme_color_override("font_outline_color", profile.caption_outline_color)
|
||||
|
|
|
|||
Loading…
Reference in a new issue