~bigbes/game-prototype-ftl

ref: 7d266a3ed0ff36694b042467963d582a7b694405 game-prototype-ftl/main.go -rw-r--r-- 3.9 KiB
1b674aa5 — Eugene Blikh 6 days ago
feat(crew): restrict movement to room cell slots

Add per-room cell slots and limit crew movement to unoccupied cells.

- Add Cells field to Room and populate two slots per player room.
- Shift enemy-ship cells by the same x-offset as rooms.
- Build a cellSet lookup and gate moves on it, skipping occupied cells.
- Add cellOccupied check so two crew cannot share a slot.
- Render dim cell markers in render.go.
- Cover cellSet and occupancy with tests; tighten hit-flash test timing.
9eb78ec2 — Eugene Blikh 30 days ago
combat: thread ship through shield/evasion readouts

drawShieldsIndicator and drawEvasionReadout took no Ship and were
calling NewPlayerShip() per frame to locate the Shields/Engines room.
That allocates a 5-room slice each draw call and hides the coupling.
Pass g.ship through instead — explicit interface (GPC1), zero alloc,
and the renderer follows whatever layout main.go owns.
5eed43f0 — Eugene Blikh 30 days ago
combat: render, input, restart

- drawShip gains hitFlashT param; red flash overlay on hit
- drawEnemyShip: full roleColor rooms, same flash rule
- drawHullBars, drawWeaponCharge, drawShieldsIndicator, drawEvasionReadout, drawResultOverlay
- Game gains combat/enemy/rng; updateCombat wired in Update
- HUD clicks no-op after result; R key restarts when fight is decided
1a02c6ed — Eugene Blikh 30 days ago
systems-power: drawHud, room dimming, right-click input

systems-power
3aab76ea — Eugene Blikh 30 days ago
crew-movement: wire input, tick, and render

Add drawCrew to render.go (interpolated circle + selection ring + initial label).
Extend Game with crew slice, walkable-tile map, selectedCrew, and dt-based tick;
handle left-click for crew selection and BFS-path dispatch.
232ad036 — Eugene Blikh a month ago
scaffold game loop and placeholder ship render