Character creation: - Full RQ3 Previous Experience wizard (4-step: identity, characteristics, culture/occupation/skills, review+save) with all 29 occupations across 4 cultures; skills computed as base + category modifier + years × multiplier - Character sheet expanded to show culture, occupation, derived stats (HP/FP/MP/ DB/SR), all 7 skill category modifier badges, computed skill percentages grouped by category, weapon attack/parry %, hit locations with armour AP - Location/destination tracker on character sheet (auto-saves on blur) - parry_percent stored on combatant_weapons Personality traits: - 24 predefined traits (Brave, Greedy, Cautious, etc.) each rated 0-100% - Trait → action bias map drives scene choice weighting - rollPersonalityAction() rolls d100 per trait, sums biases, returns suggestion - Trait editor (pill UI) on both character sheet and NPC view - Adventure tab: Roll Personality button fires traits, highlights suggested choice Tables and data: - Import RQ3 character creation tables (Culture d8, Occupation d100 ×4, Craft sub-tables, Language Proficiency, Dropped Oil Lamp, Aging, Armor Points) - Cross-table links: Culture → Occupation, Barbarian/Civilized Crafter → Craft - Fix rollOnTable to use actual dice notation instead of flat random row index - Remove unused resolveHeadInjury function Session tools: - Clear All button wipes all session data (characters, NPCs, enemies, combat, adventure, log) while keeping tables and spell mappings - PATCH /api/characters/:id/traits and /api/npcs/:id/traits endpoints - GET /api/rules/personality-traits reference endpoint - POST /api/adventure/personality-roll endpoint
2.5 KiB
2.5 KiB
RQ3 Story Tool — To-Do
High priority (mechanics gaps)
- Fix
rollOnTableto 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 - Resolve stuck-weapon follow-up after impale/slash special hits (
attemptWeaponRemoval,removeStuckWeaponFromSelf,removeStuckWeaponWithFirstAid)
Medium priority (missing features)
Adventure / CYOA
- 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/:idendpoint 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.dirtybeing set totrueon GET requests
Cleanup
- Remove dead
state.reactionTypefrom frontend state
Done
- Player character generator — random/deliberate/combined methods, correct RQ3 derived stats
- Fix total HP formula (was CON+SIZ, now ceil((CON+SIZ)/2)); fix hit location HPs
- Skill category modifiers (all 7, primary/secondary/negative influences) + fatigue points
- Inventory system — items with ENC tracking, effective FP = STR+CON − total ENC
- Adventure scene engine — procedural CYOA choices resolved via skill checks; scene state persisted
- Import RQ3 character creation tables (Culture, Occupation, Craft, Language, Aging, etc.) with cross-table links