How rurouni88/pc3-d20-devlife works
d20().devLife is a browser roguelike about surviving a software-engineering career. The player configures a character and difficulty, then resolves randomized career events through stat checks and choices; the engine updates the run, presents level-ups and outcomes, and supports continuing or starting another run. Content and progression systems supply archetypes, events, items, perks, and achievements, while save and meta stores preserve run and cross-run state. The graph follows documented imports and composition; unsampled UI and storage details are represented only where the index or README supports them.
Main entry points: game.ts Run engine · ui.ts UI composition · meta.ts Career meta store · app.ts Application entry
Components 27
Play flow
- Application entry
src/js/app.ts
Game rules
- Run engine
src/js/engine/game.ts - SPECIAL stats
src/js/engine/special.ts - Perk system
src/js/data/perks.ts - Game configuration
src/js/core/config.ts - Seeded random
src/js/core/seeded-rng.ts - Dice and utilities
src/js/core/utils.ts
Game content
- Character archetypes
src/js/data/archetypes.ts - Career events
src/data/events - Event selection
src/js/data/events.ts - Equipment and consumables
src/js/data/items.ts - Achievements
src/js/data/achievements.ts
Progress and state
- Run save system
src/js/engine/save.ts - Career meta store
src/js/engine/meta.ts - Browser local storage
Player interface
- UI composition
src/js/ui/ui.ts - Screens and shared UI
src/js/ui/ui-core.ts - Character creation
src/js/ui/ui-character.ts - Event choices
src/js/ui/ui-event.ts - Dice display
src/js/ui/ui-dice.ts - Level-up screen
src/js/ui/ui-levelup.ts - Run-end screen
src/js/ui/ui-endofrun.ts - Settings screen
src/js/ui/ui-settings.ts - Achievement screen
src/js/ui/ui-achievements.ts - Leaderboard screen
src/js/ui/ui-leaderboard.ts - Statistics screen
src/js/ui/ui-statistics.ts
Other components
- Player
Connections 43
- Player → Application entry: starts play
README.md - Application entry → Run engine: controls run
src/js/app.ts - Application entry → Career meta store: uses career state
src/js/app.ts - Application entry → Run save system: uses run saves
src/js/app.ts - Application entry → UI composition: updates interface
src/js/app.ts - Application entry → Seeded random: seeds runs
src/js/app.ts - Application entry → Game configuration: reads settings
src/js/app.ts - Run engine → Event selection: selects events
src/js/engine/game.ts - Run engine → Equipment and consumables: rolls items
src/js/engine/game.ts - Run engine → Character archetypes: uses stat rules
src/js/engine/game.ts - Run engine → Achievements: checks achievements
src/js/engine/game.ts - Run engine → Career meta store: uses run progression
src/js/engine/game.ts - Run engine → SPECIAL stats: updates stats
src/js/engine/game.ts - Run engine → Perk system: applies perks
src/js/engine/game.ts - Run engine → Seeded random: rolls outcomes
src/js/engine/game.ts - Run engine → Dice and utilities: uses dice helpers
src/js/engine/game.ts - Event selection → Career events: loads event content
- Run save system → Browser local storage: persists run
- Career meta store → Browser local storage: persists career
- Run save system → Seeded random: restores random state
src/js/engine/save.ts - Run save system → SPECIAL stats: restores stats
src/js/engine/save.ts - Run save system → Perk system: restores perks
src/js/engine/save.ts - Career meta store → Run engine: records run result
src/js/engine/meta.ts - Career meta store → Run save system: coordinates run state
src/js/engine/meta.ts - UI composition → Screens and shared UI: composes
src/js/ui/ui.ts - UI composition → Character creation: composes
src/js/ui/ui.ts - UI composition → Event choices: composes
src/js/ui/ui.ts - UI composition → Dice display: composes
src/js/ui/ui.ts - UI composition → Level-up screen: composes
src/js/ui/ui.ts - UI composition → Run-end screen: composes
src/js/ui/ui.ts - UI composition → Settings screen: composes
src/js/ui/ui.ts - UI composition → Achievement screen: composes
src/js/ui/ui.ts - UI composition → Leaderboard screen: composes
src/js/ui/ui.ts - UI composition → Statistics screen: composes
src/js/ui/ui.ts - Event choices → Dice display: uses dice display
src/js/ui/ui-event.ts - Screens and shared UI → Career meta store: reads career statistics
src/js/ui/ui-core.ts - Screens and shared UI → Achievements: clears unlocks
src/js/ui/ui-core.ts - Character creation → Character archetypes: presents builds
src/js/ui/ui-character.ts - Level-up screen → Run engine: uses run state
src/js/ui/ui-levelup.ts - Run-end screen → Run save system: uses run saves
src/js/ui/ui-endofrun.ts - Leaderboard screen → Career meta store: reads run records
src/js/ui/ui-leaderboard.ts - Statistics screen → Career meta store: reads career statistics
src/js/ui/ui-statistics.ts - Achievement screen → Achievements: reads achievements
src/js/ui/ui-achievements.ts