2.7 KiB
2.7 KiB
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 inalien-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-pathuses 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 Gprefix (Doom Emacs). Nor(roll removed).a= armor,c= condition.
Reference docs (org-mode, Czech):
paluby/paluba-{A..J}.org+paluba-GH.org— deck descriptionsstanice.org— station overview, průlezy, communication towerherni_karta.org— character cardworkflow.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,SPCleader. - 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.