~bigbes/game-prototype-ftl

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
7b6452c6 — Eugene Blikh 30 days ago
combat: NewEnemyShip layout

PH2 of combat task: enemy ship layout.

- ship.go: NewEnemyShip() returns same 5 rooms as NewPlayerShip
  with each GridX shifted +24 tiles. Pure data; no Ebitengine (IV1).
- ship_test.go: 2 tests covering room count and per-room shift
  (GridX +24, all other fields preserved).

Refs: docs/tasks/combat.md PH2
cbe6e623 — Eugene Blikh 30 days ago
combat: Combat data + updateCombat with tests

PH1 of combat task: pure tick logic.

- combat.go: GameResult/CombatSide/Combat types, NewCombat,
  playerShieldMax, resolveIncoming, updateCombat. Constants
  WeaponChargeMax/ShieldRegen/EnemyFireInterval/HitFlashDuration/
  PlayerHullMax/EnemyHullMax. Imports math/rand only (IV1).
- combat_test.go: 17 tests covering initial state, shield max,
  shield absorb / hull damage / hull clamp / evasion miss-and-hit
  in resolveIncoming, post-result no-op, hit-flash tick, shield
  regen and clamp-on-power-drop, weapon fires / no-charge-when-zero,
  enemy fires on timer, victory and defeat transitions, determinism.

Tests cannot execute in this Claude Code session (Ebitengine GLFW
init requires a display); compile + vet are clean.

Refs: docs/tasks/combat.md PH1
036d6feb — Eugene Blikh 30 days ago
docs(combat): record approved design

combat
fcffe5a1 — Eugene Blikh 30 days ago
docs(systems-power): record review conclusion

systems-power
3144cda7 — Eugene Blikh 30 days ago
systems-power: hoist HUD cellBottom out of inner loop

Reviewer flagged the per-iteration recomputation of cellBottom inside
drawHud's column/cell loops; the value was loop-invariant. Hoist to a
file-scope const and simplify the algebra.

systems-power
f9d6b613 — Eugene Blikh 30 days ago
docs(systems-power): record verify summary

systems-power
1a02c6ed — Eugene Blikh 30 days ago
systems-power: drawHud, room dimming, right-click input

systems-power
1d4896f1 — Eugene Blikh 30 days ago
systems-power: HUD geometry + hudHitTest with tests

systems-power
ef6e0d58 — Eugene Blikh 30 days ago
systems-power: System data + addPower/removePower with tests

systems-power
aff16d4f — Eugene Blikh 30 days ago
docs(systems-power): record approved plan

systems-power
3b451416 — Eugene Blikh 30 days ago
docs(systems-power): record approved design

systems-power
c3461b00 — Eugene Blikh 30 days ago
docs(crew-movement): record review conclusion
1177709a — Eugene Blikh 30 days ago
docs(crew-movement): record verify summary
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.
e1619adc — Eugene Blikh 30 days ago
crew-movement: crew struct, starting roster, tick
8170df95 — Eugene Blikh 30 days ago
crew-movement: walkability + BFS pathfinding with tests
ef9c93cb — Eugene Blikh a month ago
docs(crew-movement): plan + resume summary
aa11b70c — Eugene Blikh a month ago
docs(crew-movement): design
Next