Take planets by killing what defends them

#211 conquest is the fight now: a planet registers the garrison its setup
authors, each defender's own death counts against it, and the last one takes
the world. The capture points - stand in a ring, wait out a timer, once per
ring - are gone, along with the editor palette that placed them.
#212 conquest opens a dialog on the surface naming the research points
recovered; the award travels with the signal, after it is banked.
#209 the prologue's charted sectors go with the breach, so the map the
survivors keep is of where they now are - and "chart 30 sectors" is no
longer complete before they have flown anywhere.
#218 enemy variety is gated on the FLEET, not on wave strength: a starting
fleet meets chasers only at any wave number, and each vessel past three
opens one more kind.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
This commit is contained in:
Loïc Wisniewski 2026-09-05 13:31:25 +02:00
commit 6e13b6397c
42 changed files with 540 additions and 749 deletions

View file

@ -74,7 +74,6 @@ func _process(delta: float) -> bool:
scratch.setup_id = SCRATCH_ID
scratch.display_name = "Identity Scratch"
scratch.surface_profile_id = "rocky"
scratch.capture_points = PackedVector2Array([Vector2(10.0, 20.0)])
scratch.research_point_reward = 1
if ResourceSaver.save(scratch, SCRATCH_FILE) != OK:
return _fail("could not write the scratch setup")
@ -116,7 +115,7 @@ func _process(delta: float) -> bool:
# --- E. a NEW setup still lands under its id --------------------------
editor.new_setup(NEW_ID, "Identity New", "rocky")
editor.add_capture_point(Vector2(20.0, 30.0))
editor.add_enemy("chaser", Vector2(20.0, 30.0))
if not editor.save_setup().ok:
return _fail("saving a brand-new setup failed")
if not FileAccess.file_exists(ProjectSettings.globalize_path(NEW_PATH)):