Add black hole planet and dark matter resource (#55)

A rare, deterministically-seeded landable body yielding a fourth
resource, dark matter, obtainable only through an extractor - never a
surface pickup. Reuses every existing generic system (resource/planet
definitions, surface profiles, extractor/transporter pipeline) with no
type-switch branching.

Also fixes a latent conquest-gating gap: a surface profile with no
authored PlanetSetup (like the black hole's "void") never registered
capture points at all, permanently blocking extractor placement.
register_capture_points() now treats zero required points as vacuously
conquered, and PlanetSurfaceController registers that zero-point state
explicitly when no setup exists.
This commit is contained in:
Loïc Wisniewski 2026-08-16 13:13:38 +02:00
commit cbe07bbb55
20 changed files with 421 additions and 2 deletions

View file

@ -0,0 +1,15 @@
extends Node2D
# Preview, not a test - a black hole's landed "void" surface: no craters, no
# resource pickups, nothing but the empty field itself.
#
# bash tests/screenshot.sh res://tests/_void_surface_preview.tscn /tmp/void.png 15 720x1280
func _ready() -> void:
GameState.planet_name = "Event Zero"
GameState.planet_definition_id = "black_hole"
GameState.surviving_ship_count = 3
var surface: Node = load("res://PlanetSurface.tscn").instantiate()
surface.get_node("SurfaceController").fade_duration = 0.0
add_child(surface)