47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
Accessible tabletop RPG gaming engine for the Alien RPG space station USCSS CETORHINA. Designed for blind/visually impaired players. Czech UI, English skill names. Runs as Emacs Lisp package within Doom Emacs — minibuffer completion, no file navigation.
|
|
|
|
## Architecture
|
|
|
|
**alien-rpg.el** (main engine, ~900 lines, lexical-binding):
|
|
|
|
- **Data**: `alien-rpg-rooms` (131 rooms as connection graph), `alien-rpg-decks` (10 decks A-J), `alien-rpg-character` (static), `alien-rpg-state` (mutable). Station name in `alien-rpg-station-name`.
|
|
- **Room IDs**: ASCII slugs (e.g., `B-ridici-stredisko`). Display names use Czech diacritics (`Řídící středisko`).
|
|
- **Navigation**: Graph-based. `alien-rpg-move` (adjacent), `alien-rpg-teleport` (any). `alien-rpg-find-path` uses BFS to find ALL shortest paths.
|
|
- **No dice rolling**: Player rolls physical dice. Engine tracks state only.
|
|
- **Weapons/Armor**: Structured plists — weapons: `(:name :bonus :damage :range :ammo :weight)`, armor: `(:name :rating :weight)`.
|
|
- **State**: Health, stress, injuries, conditions, weapons, armor, gear, notes. Auto-saves via `alien-rpg--autosave`.
|
|
- **Keybindings**: `SPC G` prefix (Doom Emacs). No `r` (roll removed). `a` = armor, `c` = condition.
|
|
|
|
**Reference docs** (org-mode, Czech):
|
|
- `paluby/paluba-{A..J}.org` + `paluba-GH.org` — deck descriptions
|
|
- `stanice.org` — station overview, průlezy, communication tower
|
|
- `herni_karta.org` — character card
|
|
- `workflow.org` — gameplay tutorial, keybindings
|
|
|
|
## Key Design Constraints
|
|
|
|
- **Concise output**: 3-5 lines per command. No emoji, no decorative borders. Room codes everywhere.
|
|
- **Screen reader friendly**: All interactions via minibuffer completion or short buffer output.
|
|
- **Zero dependencies**: All data embedded in Elisp. No external files at runtime.
|
|
- **Doom Emacs required**: `map!` macro, `SPC` leader.
|
|
- **PDF-verified data**: Room names and connections verified against `reference_pdf/` maps. Thick red lines on maps = doors. Centrální šachta = round room with upside-down person icon.
|
|
|
|
## Map Structure
|
|
|
|
- Decks A (top) to J (bottom), vertical station
|
|
- Central shaft: B-J (A is isolated, access from B only)
|
|
- Průlezy F↔G: F1↔G1, F2↔G2, F5↔G5, F6↔G6, F7↔G7, F8↔G8
|
|
- Průlezy G↔H: G3↔H3, G4↔H4, G7↔H7, G8↔H8, G9↔H9 (communication tower)
|
|
- G9 connects via Nouzové shromaždiště (top of G), NOT centrální šachta
|
|
- F centrální šachta is at TOP of deck F, connects to Zbrojnice via corridor
|
|
|
|
## Development
|
|
|
|
No build system, tests, or CI. Load via `(load! "~/alienrpg/alien-rpg")` in `~/.doom.d/config.el`. Internal helpers use `alien-rpg--` double-dash prefix.
|