cb-98e.3: Firing system + animation harness (laser reference) #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "crew/peba/cb-98e.3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Epic cb-98e, child .3. Firing system + animation harness.
Verified (peba): typecheck + muzzles.check + randomizer.check + build green; laser fires from correct muzzle along aim and retires (headless screenshot); app loads clean.
Unblocks cb-98e.4 (missile/chaff) and cb-98e.5 (raybeam/grapple). Auto-merged per standing policy.
🤖 Generated with Claude Code
Adds the mechanism to FIRE weapons and the ticker-driven animation harness that per-weapon effects plug into. - src/ship/effects/muzzles.ts: pixi-free firingOrigins(spec) — muzzle position + aim per hardpoint copy, mirroring drawWeapons() exactly (mirror splay: -y copy uses -angle). - src/ship/effects/{types,laser,index}.ts: Effect/FireParams contract, the laser reference effect (bolt launches along aim, travels, fades), and a fireWeapon() dispatch table — ONE FILE PER WEAPON so cb-98e.4/.5 add a file + one line each. - src/ship/firing.ts: FiringSystem spawns/updates/retires effects; no leaks. - Canvas: owns the FiringSystem, adds its layer, keeps it glued to the ship transform each frame, drives it from app.ticker, exposes fire() on the handle; torn down with the app on unmount. - Fire controls: per-hardpoint fire (ControlsPanel), Fire All (Toolbar), spacebar. - Self-check: src/ship/effects/muzzles.check.ts (mirror splay, radial, forward aim). Verified: typecheck + muzzles.check + randomizer.check + build all green; laser fires from the correct muzzle along its aim and retires (headless-screenshot confirmed); real app loads with no runtime errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Pull request closed