# riusprime/deathventory architecture

> Architecture diagram of the GitHub repository riusprime/deathventory, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/riusprime/deathventory
- Repository: https://github.com/riusprime/deathventory

## Overview

Deathventory: Ember Road is a survival roguelike prototype whose design and implementation-planning baseline is present; the README says implementation remains gated pending DV-000 approval. The intended player loop centers on protecting and rearranging a physical 6×5 backpack while enemies attack from readable directions, within a campaign. The tree identifies campaign, combat, inventory, loot, progression, survival, and presentation areas, but the sampled source does not establish their runtime wiring. The graph therefore shows product areas and documented capabilities without asserting call flow.

Main entry points: [`src/domain/combat`](https://github.com/riusprime/deathventory/tree/main/src/domain/combat) (Combat), [`src/domain/inventory`](https://github.com/riusprime/deathventory/tree/main/src/domain/inventory) (Backpack Inventory), [`src/domain/campaign`](https://github.com/riusprime/deathventory/tree/main/src/domain/campaign) (Campaign Routes), [`data`](https://github.com/riusprime/deathventory/tree/main/data) (Game Definitions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Player Experience"]
  node_campaign["Campaign Routes"]
  node_world["World Travel"]
  node_combat["Combat"]
  node_backpack["Backpack Inventory"]
  node_loot["Loot Rewards"]
  node_progression["Progression"]
  node_survival["Survival"]
end

subgraph group_domain["Game Domain"]
  node_damage["Damage"]
  node_reactions["Reaction Rules"]
  node_events["Game Events"]
  node_knowledge["Knowledge"]
  node_models["Game Models"]
end

subgraph group_content["Game Content"]
  node_contentdata["Game Definitions"]
  node_enemydata["Enemy Definitions"]
  node_itemdata["Item Definitions"]
  node_locationart["Location Art"]
  node_enemyart["Enemy Art"]
  node_itemart["Item Art"]
end

subgraph group_presentation["Presentation"]
  node_firstfight["First Fight"]
  node_standardcombat["Combat View"]
  node_inventoryview["Inventory View"]
  node_worldview["World View"]
  node_hud["HUD"]
  node_audio["Audio"]
end

node_player(("Player"))

node_player -->|"plays campaign"| node_campaign
node_campaign -->|"travels routes"| node_world
node_player -->|"rearranges items"| node_backpack
node_combat -->|"attacks backpack"| node_backpack
node_combat -->|"applies damage"| node_damage
node_combat -->|"uses reactions"| node_reactions
node_combat -->|"yields rewards"| node_loot
node_campaign -->|"advances"| node_progression
node_player -->|"manages survival"| node_survival
node_contentdata -->|"includes definitions"| node_enemydata
node_contentdata -->|"includes definitions"| node_itemdata
node_enemyart -->|"depicts enemies"| node_combat
node_itemart -->|"depicts items"| node_backpack
node_locationart -->|"depicts locations"| node_worldview
node_firstfight -->|"presents combat"| node_combat
node_standardcombat -->|"presents combat"| node_combat
node_inventoryview -->|"presents inventory"| node_backpack
node_worldview -->|"presents travel"| node_world
node_hud -->|"shows status"| node_player
node_audio -->|"supports feedback"| node_combat

click node_campaign "https://github.com/riusprime/deathventory/tree/main/src/domain/campaign"
click node_world "https://github.com/riusprime/deathventory/tree/main/src/domain/world"
click node_combat "https://github.com/riusprime/deathventory/tree/main/src/domain/combat"
click node_backpack "https://github.com/riusprime/deathventory/tree/main/src/domain/inventory"
click node_loot "https://github.com/riusprime/deathventory/tree/main/src/domain/loot"
click node_progression "https://github.com/riusprime/deathventory/tree/main/src/domain/progression"
click node_survival "https://github.com/riusprime/deathventory/tree/main/src/domain/survival"
click node_damage "https://github.com/riusprime/deathventory/tree/main/src/domain/damage"
click node_reactions "https://github.com/riusprime/deathventory/tree/main/src/domain/reactions"
click node_events "https://github.com/riusprime/deathventory/tree/main/src/domain/events"
click node_knowledge "https://github.com/riusprime/deathventory/tree/main/src/domain/knowledge"
click node_models "https://github.com/riusprime/deathventory/tree/main/src/domain/model"
click node_firstfight "https://github.com/riusprime/deathventory/tree/main/src/presentation/first_fight"
click node_standardcombat "https://github.com/riusprime/deathventory/tree/main/src/presentation/standard_combat"
click node_inventoryview "https://github.com/riusprime/deathventory/tree/main/src/presentation/inventory"
click node_worldview "https://github.com/riusprime/deathventory/tree/main/src/presentation/world"
click node_hud "https://github.com/riusprime/deathventory/tree/main/src/presentation/hud"
click node_audio "https://github.com/riusprime/deathventory/tree/main/src/presentation/audio"
click node_contentdata "https://github.com/riusprime/deathventory/tree/main/data"
click node_enemydata "https://github.com/riusprime/deathventory/tree/main/data/enemies"
click node_itemdata "https://github.com/riusprime/deathventory/tree/main/data/items"
click node_locationart "https://github.com/riusprime/deathventory/tree/main/assets/locations"
click node_enemyart "https://github.com/riusprime/deathventory/tree/main/assets/enemies"
click node_itemart "https://github.com/riusprime/deathventory/tree/main/assets/items"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_campaign,node_world,node_combat,node_backpack,node_loot,node_progression,node_survival toneBlue
class node_damage,node_reactions,node_events,node_knowledge,node_models toneAmber
class node_contentdata,node_enemydata,node_itemdata,node_locationart,node_enemyart,node_itemart toneMint
class node_firstfight,node_standardcombat,node_inventoryview,node_worldview,node_hud,node_audio toneRose
class node_player toneIndigo
```

## Components

### Player Experience

- [Campaign Routes](https://github.com/riusprime/deathventory/tree/main/src/domain/campaign): `src/domain/campaign`
- [World Travel](https://github.com/riusprime/deathventory/tree/main/src/domain/world): `src/domain/world`
- [Combat](https://github.com/riusprime/deathventory/tree/main/src/domain/combat): `src/domain/combat`
- [Backpack Inventory](https://github.com/riusprime/deathventory/tree/main/src/domain/inventory): `src/domain/inventory`
- [Loot Rewards](https://github.com/riusprime/deathventory/tree/main/src/domain/loot): `src/domain/loot`
- [Progression](https://github.com/riusprime/deathventory/tree/main/src/domain/progression): `src/domain/progression`
- [Survival](https://github.com/riusprime/deathventory/tree/main/src/domain/survival): `src/domain/survival`

### Game Domain

- [Damage](https://github.com/riusprime/deathventory/tree/main/src/domain/damage): `src/domain/damage`
- [Reaction Rules](https://github.com/riusprime/deathventory/tree/main/src/domain/reactions): `src/domain/reactions`
- [Game Events](https://github.com/riusprime/deathventory/tree/main/src/domain/events): `src/domain/events`
- [Knowledge](https://github.com/riusprime/deathventory/tree/main/src/domain/knowledge): `src/domain/knowledge`
- [Game Models](https://github.com/riusprime/deathventory/tree/main/src/domain/model): `src/domain/model`

### Game Content

- [Game Definitions](https://github.com/riusprime/deathventory/tree/main/data): `data`
- [Enemy Definitions](https://github.com/riusprime/deathventory/tree/main/data/enemies): `data/enemies`
- [Item Definitions](https://github.com/riusprime/deathventory/tree/main/data/items): `data/items`
- [Location Art](https://github.com/riusprime/deathventory/tree/main/assets/locations): `assets/locations`
- [Enemy Art](https://github.com/riusprime/deathventory/tree/main/assets/enemies): `assets/enemies`
- [Item Art](https://github.com/riusprime/deathventory/tree/main/assets/items): `assets/items`

### Presentation

- [First Fight](https://github.com/riusprime/deathventory/tree/main/src/presentation/first_fight): `src/presentation/first_fight`
- [Combat View](https://github.com/riusprime/deathventory/tree/main/src/presentation/standard_combat): `src/presentation/standard_combat`
- [Inventory View](https://github.com/riusprime/deathventory/tree/main/src/presentation/inventory): `src/presentation/inventory`
- [World View](https://github.com/riusprime/deathventory/tree/main/src/presentation/world): `src/presentation/world`
- [HUD](https://github.com/riusprime/deathventory/tree/main/src/presentation/hud): `src/presentation/hud`
- [Audio](https://github.com/riusprime/deathventory/tree/main/src/presentation/audio): `src/presentation/audio`

### Other components

- **Player**

## Connections

- Player → Campaign Routes: plays campaign
- Campaign Routes → World Travel: travels routes
- Player → Backpack Inventory: rearranges items
- Combat → Backpack Inventory: attacks backpack
- Combat → Damage: applies damage
- Combat → Reaction Rules: uses reactions
- Combat → Loot Rewards: yields rewards
- Campaign Routes → Progression: advances
- Player → Survival: manages survival
- Game Definitions → Enemy Definitions: includes definitions
- Game Definitions → Item Definitions: includes definitions
- Enemy Art → Combat: depicts enemies
- Item Art → Backpack Inventory: depicts items
- Location Art → World View: depicts locations
- First Fight → Combat: presents combat
- Combat View → Combat: presents combat
- Inventory View → Backpack Inventory: presents inventory
- World View → World Travel: presents travel
- HUD → Player: shows status
- Audio → Combat: supports feedback
