Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: ~/.claude/plans/i-want-a-plan-breezy-eclipse.md on the 4090.
space_arena.gd: target handle becomes {kind,id} (_target_body_id: String alongside int _target_entity_id); branch _set_target/_update_reticule/_aim_forward/_refresh_target_hud (369-545) on kind; _try_pick_target (424) includes _world_bodies with per-candidate threshold maxf(8.0, radius*1.15) preferring smaller angular miss; _cycle_target (447) ships first then nearest ~10 bodies; handle ScanBodyAck/SurveyReport(List); SURVEY button (radar SCAN stays separate); update stale "never send Target" comments. celestial_body_node.gd: set_selected() torus ring at radius·1.25. game_server_client.gd: extended target() + scan_body(). New survey panel. Update docs/PROTOCOL.md. Tests: wire_selftest.gd round-trips + arena_smoke.gd fake-report + radius-50 pick test.
Part of the **Game Unification** lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: `~/.claude/plans/i-want-a-plan-breezy-eclipse.md` on the 4090.
Part of EPIC #927.
`space_arena.gd`: target handle becomes {kind,id} (`_target_body_id: String` alongside int `_target_entity_id`); branch `_set_target`/`_update_reticule`/`_aim_forward`/`_refresh_target_hud` (369-545) on kind; `_try_pick_target` (424) includes `_world_bodies` with per-candidate threshold `maxf(8.0, radius*1.15)` preferring smaller angular miss; `_cycle_target` (447) ships first then nearest ~10 bodies; handle `ScanBodyAck`/`SurveyReport(List)`; SURVEY button (radar SCAN stays separate); update stale "never send Target" comments. `celestial_body_node.gd`: `set_selected()` torus ring at radius·1.25. `game_server_client.gd`: extended `target()` + `scan_body()`. New survey panel. Update `docs/PROTOCOL.md`. Tests: `wire_selftest.gd` round-trips + `arena_smoke.gd` fake-report + radius-50 pick test.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan:
~/.claude/plans/i-want-a-plan-breezy-eclipse.mdon the 4090.Part of EPIC #927.
space_arena.gd: target handle becomes {kind,id} (_target_body_id: Stringalongside int_target_entity_id); branch_set_target/_update_reticule/_aim_forward/_refresh_target_hud(369-545) on kind;_try_pick_target(424) includes_world_bodieswith per-candidate thresholdmaxf(8.0, radius*1.15)preferring smaller angular miss;_cycle_target(447) ships first then nearest ~10 bodies; handleScanBodyAck/SurveyReport(List); SURVEY button (radar SCAN stays separate); update stale "never send Target" comments.celestial_body_node.gd:set_selected()torus ring at radius·1.25.game_server_client.gd: extendedtarget()+scan_body(). New survey panel. Updatedocs/PROTOCOL.md. Tests:wire_selftest.gdround-trips +arena_smoke.gdfake-report + radius-50 pick test.Implementation up: spikersoft-games-godot PR #10. Unified {kind,id} target handle, radius-aware pick (maxf(8, r*1.15)) with angular-miss tie-break, CelestialBodyNode.set_selected torus ring, SURVEY button + survey panel (safe-area aware), PROTOCOL.md updated. Headless wire_selftest + arena_smoke PASS (Godot 4.7 downloaded and actually run). Merge AFTER backend #521-#523; needs games.pck re-export for the iOS shell after merge. Will close after merge.
Resolved in spikersoft-games-godot PR #10 (merged to main). Unified {kind,id} target handle, radius-aware pick, radar-contact store + cycling (incl. ContactLost lostEntityId field fix), SURVEY button + safe-area survey panel, PROTOCOL.md updated. Reminder: games.pck re-export for the iOS shell. Closing.