Remove the capture points from the game, to capture a planet you just need to kill all ennemies on it #211

Closed
opened 2026-09-05 08:32:52 +00:00 by metaheavens · 1 comment
Owner
No description provided.
Author
Owner

Implemented in commit 6e13b63 on main. This was the big one.

The rule
A planet registers the garrison its setup authors, each defender's own destroyed signal counts against it, and the last kill takes the world and pays the research award. Capture points are gone entirely - the node, its scene, the capture_points field, the four authored maps' arrays, and the map editor's palette tile, markers, placement, drag and delete paths. The boss encounter is a garrison of one. The surface readout counts GARRISON n/m rather than CAPTURED n/m.

One semantic I had to decide, since the ticket does not say
Capture progress used to persist across landings. The garrison, though, is re-placed in full every time you land - so persisting kills would mean a planet left one-from-clear falls to a single kill against three fresh defenders. The count therefore restarts with the enemies it counts, and a planet already conquered is refused re-registration outright so it can never be handed back. Both cases are pinned by tests.

The kill is bound to the planet id captured when the enemy is spawned, not read at the moment of death: the player may have left the surface by the time a straggler dies, and the planet being fought over is the one they were standing on.

Verification

  • New test_planet_garrison.gd: a real Enemy, destroyed the way anything destroys one, moves the planet toward being held - one kill is progress, the last is conquest, the signal fires exactly once carrying the authored award, and a late kill after the planet has fallen is absorbed without a second payment.
  • test_conquered_planet_clear.gd rewritten for the new rule, including the re-landing case above.
  • 18 test files touched in total; test_capture_points.gd was deleted because it tested a mechanic that no longer exists.
  • One test needed a genuine fix rather than a translation: test_surface_feature_depth.gd failed because the research lab's only drawing scenery WAS the capture rings. Its rule is about features that exist, so an empty profile is now skipped, with a run-wide check that at least one profile had features so it cannot quietly prove nothing.
  • Full suite: 161/162, the one failure being that stale test, fixed and re-run green.
Implemented in commit `6e13b63` on `main`. This was the big one. **The rule** A planet registers the garrison its setup authors, each defender's own `destroyed` signal counts against it, and the last kill takes the world and pays the research award. Capture points are gone entirely - the node, its scene, the `capture_points` field, the four authored maps' arrays, and the map editor's palette tile, markers, placement, drag and delete paths. The boss encounter is a garrison of one. The surface readout counts `GARRISON n/m` rather than `CAPTURED n/m`. **One semantic I had to decide, since the ticket does not say** Capture progress used to persist across landings. The garrison, though, is re-placed in full every time you land - so persisting kills would mean a planet left one-from-clear falls to a single kill against three fresh defenders. The count therefore restarts with the enemies it counts, and a planet already conquered is refused re-registration outright so it can never be handed back. Both cases are pinned by tests. The kill is bound to the planet id captured when the enemy is spawned, not read at the moment of death: the player may have left the surface by the time a straggler dies, and the planet being fought over is the one they were standing on. **Verification** - New `test_planet_garrison.gd`: a real `Enemy`, destroyed the way anything destroys one, moves the planet toward being held - one kill is progress, the last is conquest, the signal fires exactly once carrying the authored award, and a late kill after the planet has fallen is absorbed without a second payment. - `test_conquered_planet_clear.gd` rewritten for the new rule, including the re-landing case above. - 18 test files touched in total; `test_capture_points.gd` was deleted because it tested a mechanic that no longer exists. - One test needed a genuine fix rather than a translation: `test_surface_feature_depth.gd` failed because the research lab's only drawing scenery WAS the capture rings. Its rule is about features that exist, so an empty profile is now skipped, with a run-wide check that at least one profile had features so it cannot quietly prove nothing. - Full suite: **161/162**, the one failure being that stale test, fixed and re-run green.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
metaheavens/spaceship#211
No description provided.