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:
parent
097e17f7aa
commit
cbe07bbb55
20 changed files with 421 additions and 2 deletions
23
tests/_black_hole_space_preview.gd
Normal file
23
tests/_black_hole_space_preview.gd
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
extends Node2D
|
||||
|
||||
# Preview, not a test - a black hole planet as seen in space, next to a
|
||||
# rocky planet for scale/contrast.
|
||||
#
|
||||
# bash tests/screenshot.sh res://tests/_black_hole_space_preview.tscn /tmp/black_hole.png 15 720x1280
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
GameState.extractors.clear()
|
||||
GameState.buildings.clear()
|
||||
|
||||
_spawn("Event Zero", "black_hole", Vector2(360.0, 420.0), 12345)
|
||||
_spawn("Dustworn", "rocky", Vector2(360.0, 950.0), 4242)
|
||||
|
||||
|
||||
func _spawn(planet_name: String, definition_id: String, at: Vector2, shape_seed: int) -> void:
|
||||
var planet: Node2D = load("res://Planet.tscn").instantiate()
|
||||
planet.planet_name = planet_name
|
||||
planet.definition_id = definition_id
|
||||
planet.shape_seed = shape_seed
|
||||
planet.position = at
|
||||
add_child(planet)
|
||||
Loading…
Reference in a new issue