Files
stefwill 5e83fe1ef2 feat: full character creation, personality traits, and session quality-of-life
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
2026-07-03 21:44:11 +10:00

2.5 KiB
Raw Permalink Blame History

RQ3 Story Tool — To-Do

High priority (mechanics gaps)

  • 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
  • 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/: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

  • 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