# RQ3 Story Tool — To-Do ## High priority (mechanics gaps) - [x] Fix `rollOnTable` to roll the table's actual dice notation instead of picking a flat random row — now affects the adventure engine (Culture Table, Occupation Tables) where unequal row ranges matter - [x] Resolve stuck-weapon follow-up after impale/slash special hits (`attemptWeaponRemoval`, `removeStuckWeaponFromSelf`, `removeStuckWeaponWithFirstAid`) ## Medium priority (missing features) ### Adventure / CYOA - [x] Add character location / destination tracker — where the PC currently is and where they are heading; used to auto-select which encounter table to roll - [ ] Add Layer 3 (and possibly Layer 4) sub-tables to the Norse encounter tables so scene descriptions cascade into richer detail - [ ] Add a Previous Experience step to the PC generator (culture → occupation → skills, magic, equipment) using the imported occupation tables - [ ] Wire PC weapon skills into adventure scene choices so "Fight" shows the correct attack % - [ ] Persist scene history so the adventure log reads as a continuous narrative ### Combat - [ ] Build strike-rank round scheduling UI (round counter, Next Round button, SR-ordered action display using `buildStrikeRankSchedule`) ### Other - [ ] Add API routes and UI for the experience/improvement system (`markWeaponExperienceChecked`, `updateWeaponSkillPercent`, `applyImprovement`) ## Low priority (polish) - [ ] Wire up the export reminder modal (show on `beforeunload`, hook up Export Now / Leave Anyway / Cancel buttons) - [ ] Add `DELETE /api/spell-mappings/:id` endpoint and a spell mapping management UI - [ ] Add weapon and spell editing forms to NPC stat block view (currently only available for enemies) - [ ] Add item editing (change qty inline) and ENC-per-item display to inventory UI ## Correctness fixes - [ ] Fix `state.dirty` being set to `true` on GET requests ## Cleanup - [ ] Remove dead `state.reactionType` from frontend state ## Done - [x] Player character generator — random/deliberate/combined methods, correct RQ3 derived stats - [x] Fix total HP formula (was CON+SIZ, now ceil((CON+SIZ)/2)); fix hit location HPs - [x] Skill category modifiers (all 7, primary/secondary/negative influences) + fatigue points - [x] Inventory system — items with ENC tracking, effective FP = STR+CON − total ENC - [x] Adventure scene engine — procedural CYOA choices resolved via skill checks; scene state persisted - [x] Import RQ3 character creation tables (Culture, Occupation, Craft, Language, Aging, etc.) with cross-table links