Commit Graph

3 Commits

Author SHA1 Message Date
Brian Fertig 2ede7cb160 Add level-5 class selection with Vanguard and Wraith bonuses
- Introduce data/classes.json as the single source for roster, copy, accents, icon frames, perk numbers, and console chrome
- Add ClassModel (pure reads), ClassState (idempotent run ledger + save round-trip), and Aiming (intercept solve + barrel geometry) so perks are testable without Phaser
- Wire CombatSystem to the class ledger: Vanguard dual-cannon volley, Wraith predictive aim with a max-lead fallback to raw aim; cooldown unchanged
- Add full-screen ClassWindow console over the frozen GameScene (looping muted feed, Trestle briefing, themed tabs, PICK confirm), opened once at level 5 when combat is quiet or via the ship console door / ?level5 dev param
- Persist record.playerClass in saves and clear it on New Game; ship console now shows a class plate with crest + banked skill points instead of the choose-class door
2026-09-26 18:58:37 -06:00
Brian Fertig 2e9b1ace5a Record per-bay cargo purchase costs and use them as the profit baseline
- CargoHold gains a parallel `costs` ledger (credits/unit actually paid, or null when no cost is on file), kept aligned across add/remove/set/capacity/dropFirstNot and serialized via toJSON/fromJSON
- ShopView stamps each bought bay with the trade's unit price so the console can compare exit prices against what was really paid
- ShipScreenModel/ShipWindow surface per-bay costs, a total-cost hold meta line, and a "PAID" chip + reference line in the bay manifest; bays with no cost read "NO COST" instead of inventing one
- GameScene passes the bay's recorded cost into scoutGood() so exit profits re-baseline against the purchase (falling back to the catalog value when absent), and restore/quest-handoff paths load null costs cleanly for legacy saves
- Adds arid-shop-02 video asset and updates cargo/saves/ship-window/shop-ui tests to cover the new ledger
2026-09-19 13:40:27 -06:00
Brian Fertig 154ee9fd97 Add Ship Screen console with status and cargo tabs
- Wire the deck's SHIP slot to a full-screen ShipWindow (depth 80) following the Map/Quest window contract: bay-camera video panel with NO SIGNAL fallback, tab row, glitch/sweep dressing, ESC/scrim close, and exclusive open/close against research/map/quests/comms.
- Add data-driven Ship Status plate via pure js/ship/ShipScreenModel.js resolving every stat row from data/shipScreen.json (hull/shields live vs nominal, shield recharge, flight, fire rate/DPS, cargo/mineral holds) plus the combat level journey timeline that swaps to a CHOOSE YOUR CLASS door at level 5.
- Add Cargo Holds tab: bay grid with filled/empty/locked states, mineral aggregate bar, and a selected-bay manifest reusing TradeScout.scoutGood() for ranked exits in the buy/sell style.
- Register data/shipScreen.json in the manifest, preload ship.mp4 with skip-if-missing guard, and add dev test + screenshot harness (dev/ship-window.test.mjs, dev/ship-shot.{html,mjs}).
2026-09-19 09:28:09 -06:00