Files
Christopher Wiebe b451f83174 Initial commit: Theriapolis baseline at port/godot branch point
Captures the pre-Godot-port state of the codebase. This is the rollback
anchor for the Godot port (M0 of theriapolis-rpg-implementation-plan-godot-port.md).
All Phase 0 through Phase 6.5 work is included; Phase 7 is in flight.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 20:40:51 -07:00

6.2 KiB

Character Creation Snapshot — Manifest

Snapshot taken: 2026-04-25 (Phase 5 M3 complete)

Files in this snapshot

Each row maps canonical source pathsnapshot path within this folder. Snapshot paths mirror the canonical paths exactly so it's obvious where each file came from.

Canonical source Why included
Theriapolis.Game/Screens/CharacterCreationScreen.cs The screen itself — primary subject
Theriapolis.Game/Screens/IScreen.cs Lifecycle interface (Init/Update/Draw)
Theriapolis.Game/Screens/TitleScreen.cs Screen pushed BEFORE character creation
Theriapolis.Game/Screens/WorldGenProgressScreen.cs Screen pushed AFTER character creation
Theriapolis.Core/Data/CladeDef.cs Clade record schema
Theriapolis.Core/Data/SpeciesDef.cs Species record schema
Theriapolis.Core/Data/ClassDef.cs Class record schema (incl. starting_kit)
Theriapolis.Core/Data/BackgroundDef.cs Background record schema
Theriapolis.Core/Data/TraitDef.cs Shared trait/detriment record
Theriapolis.Core/Data/ContentResolver.cs One-shot id→def lookup table loader
Theriapolis.Core/Rules/Character/Character.cs Runtime aggregate the screen produces
Theriapolis.Core/Rules/Character/CharacterBuilder.cs Fluent builder + validation + stat rolls
Theriapolis.Core/Rules/Stats/AbilityScores.cs 6-ability struct + Mod() math
Theriapolis.Core/Rules/Stats/Size.cs SizeCategory enum + helpers
Theriapolis.Core/Rules/Stats/SkillId.cs 18-skill enum + ability mapping
Content/Data/clades.json The 7 clades players choose from
Content/Data/species.json The 19 species filtered by clade
Content/Data/classes.json The 8 classes (with feature defs + level table + starting kit)
Content/Data/backgrounds.json The 12 backgrounds

Refresh command

To bring this snapshot back in sync with the canonical sources, run from the repo root:

# (from repo root C:\Users\chris\OneDrive\Documents\AI\Claude\TTRPG\TheriapolisV3)
mkdir -p _design_handoff/character_creation/Theriapolis.Game/Screens \
         _design_handoff/character_creation/Theriapolis.Core/Data \
         _design_handoff/character_creation/Theriapolis.Core/Rules/Character \
         _design_handoff/character_creation/Theriapolis.Core/Rules/Stats \
         _design_handoff/character_creation/Content/Data

cp Theriapolis.Game/Screens/CharacterCreationScreen.cs   _design_handoff/character_creation/Theriapolis.Game/Screens/
cp Theriapolis.Game/Screens/IScreen.cs                   _design_handoff/character_creation/Theriapolis.Game/Screens/
cp Theriapolis.Game/Screens/TitleScreen.cs               _design_handoff/character_creation/Theriapolis.Game/Screens/
cp Theriapolis.Game/Screens/WorldGenProgressScreen.cs    _design_handoff/character_creation/Theriapolis.Game/Screens/

cp Theriapolis.Core/Data/CladeDef.cs                     _design_handoff/character_creation/Theriapolis.Core/Data/
cp Theriapolis.Core/Data/SpeciesDef.cs                   _design_handoff/character_creation/Theriapolis.Core/Data/
cp Theriapolis.Core/Data/ClassDef.cs                     _design_handoff/character_creation/Theriapolis.Core/Data/
cp Theriapolis.Core/Data/BackgroundDef.cs                _design_handoff/character_creation/Theriapolis.Core/Data/
cp Theriapolis.Core/Data/TraitDef.cs                     _design_handoff/character_creation/Theriapolis.Core/Data/
cp Theriapolis.Core/Data/ContentResolver.cs              _design_handoff/character_creation/Theriapolis.Core/Data/

cp Theriapolis.Core/Rules/Character/Character.cs         _design_handoff/character_creation/Theriapolis.Core/Rules/Character/
cp Theriapolis.Core/Rules/Character/CharacterBuilder.cs  _design_handoff/character_creation/Theriapolis.Core/Rules/Character/

cp Theriapolis.Core/Rules/Stats/AbilityScores.cs         _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/
cp Theriapolis.Core/Rules/Stats/Size.cs                  _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/
cp Theriapolis.Core/Rules/Stats/SkillId.cs               _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/

cp Content/Data/clades.json                              _design_handoff/character_creation/Content/Data/
cp Content/Data/species.json                             _design_handoff/character_creation/Content/Data/
cp Content/Data/classes.json                             _design_handoff/character_creation/Content/Data/
cp Content/Data/backgrounds.json                         _design_handoff/character_creation/Content/Data/

After refreshing, bump the Snapshot taken: date at the top of this file and at the top of README.md.

Files NOT included (and why)

  • Theriapolis.Core/Rules/Stats/{ProficiencyBonus,XpTable,SaveId,DamageType,Condition}.cs — used by combat, not by character creation. Design doesn't need them.
  • Theriapolis.Core/Items/*.cs — inventory mechanics. The starting kit lands via CharacterBuilder.ApplyStartingKit; Design can see the result on the spawned character without touching the equip plumbing.
  • Theriapolis.Core/Persistence/*.cs — character serialization. Orthogonal to creation UX.
  • Theriapolis.Core/Constants.cs — game-wide tuning numbers. Includes RNG_STAT_ROLL (one constant the screen uses) but nothing UX-relevant.
  • The Phase 5 plan in full — only §4.2 is relevant to character creation; it's extracted into DESIGN_INTENT.md.