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>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# Character Creation — Design Handoff Snapshot
|
||||
|
||||
**Snapshot date:** 2026-04-25
|
||||
**Created for:** Claude Design (UX redesign of the character creation flow)
|
||||
**Project phase at snapshot time:** Phase 5 M3 complete (M4 not yet started)
|
||||
**Design returned:** 2026-04-25 — see `from_design/` and `IMPLEMENTATION_STATUS.md`
|
||||
|
||||
## What this folder is
|
||||
|
||||
A curated, self-contained copy of every file Claude Design needs to
|
||||
understand and redesign the **character creation screen**. The folder
|
||||
mirrors the original repo layout so paths stay obvious:
|
||||
|
||||
```
|
||||
Theriapolis.Game/Screens/ ← the screen + adjacent flow screens
|
||||
Theriapolis.Core/Data/ ← record schemas (CladeDef, ClassDef, etc.)
|
||||
Theriapolis.Core/Rules/Character/ ← what the screen builds (Character, Builder)
|
||||
Theriapolis.Core/Rules/Stats/ ← stat math the screen previews
|
||||
Content/Data/ ← the actual content shown (clades, species, classes, backgrounds)
|
||||
DESIGN_INTENT.md ← extract from the Phase 5 plan §4.2
|
||||
MANIFEST.md ← file list + refresh command
|
||||
```
|
||||
|
||||
## What this folder is NOT
|
||||
|
||||
These files are **copies, not the canonical source**. The real files live
|
||||
at the same paths *without* the `_design_handoff/character_creation/`
|
||||
prefix. If something in here motivates a code change, edit the original.
|
||||
|
||||
It is safe to delete this folder once the Claude Design conversation
|
||||
wraps up — nothing in the build references it.
|
||||
|
||||
See `../README.md` for the broader `_design_handoff/` policy.
|
||||
|
||||
## What Design should know going in
|
||||
|
||||
The current implementation is **a single-screen multi-selector**, not the
|
||||
multi-step wizard the Phase 5 plan originally called for. Section 4.2 of
|
||||
the plan (extracted into `DESIGN_INTENT.md`) describes the originally-
|
||||
intended 7-step flow: Clade → Species → Class → Background → Stats →
|
||||
Skills → Name. M2 collapsed that into one screen for shipping speed; the
|
||||
data model and validation already support either presentation.
|
||||
|
||||
**Inputs the screen orchestrates** (see `Content/Data/` for full content):
|
||||
|
||||
- 7 Clades (Canidae, Felidae, Mustelidae, Ursidae, Cervidae, Bovidae, Leporidae)
|
||||
- 19 Species across those clades
|
||||
- 8 Classes (Fangsworn, Bulwark, Feral, Shadow-Pelt, Scent-Broker, Covenant-Keeper, Muzzle-Speaker, Claw-Wright)
|
||||
- 12 Backgrounds
|
||||
- 2 stat-roll methods (Standard Array assignment, 4d6-drop-lowest reroll)
|
||||
- N class-driven skill picks (varies 2-4 by class)
|
||||
- A name field
|
||||
|
||||
**Output:** a `Character` record (see `Theriapolis.Core/Rules/Character/Character.cs`)
|
||||
with final ability scores, level 1 HP, skill proficiencies, and a starting-
|
||||
kit-populated `Inventory`.
|
||||
|
||||
## What the current screen does well
|
||||
|
||||
- All selectors visible at once → no "what step am I on" confusion
|
||||
- Defaults are sensible → press Confirm immediately and you get a working character
|
||||
- Real-time validation message at the bottom
|
||||
- Live stat preview with clade + species mods applied
|
||||
|
||||
## Known weaknesses worth addressing
|
||||
|
||||
- **No portrait or visual identity.** The screen is text-only; no clade/species illustration.
|
||||
- **No stat-array manual swapping.** Standard Array auto-assigns by class priority; player can't drag the 15 to a different ability.
|
||||
- **Skills are presented as a flat row of toggle buttons.** Wraps inelegantly with 10+ skill options.
|
||||
- **Trait/detriment text is hidden.** Selecting a clade/species shows only the name; you can't see "Pack Instinct: reaction grants +2 AC" without picking and consulting the inventory.
|
||||
- **No retry flow for rolled stats.** "Reroll" replaces the values but doesn't show the previous roll for comparison.
|
||||
- **Background flavor text doesn't display.** Each background has 1-2 sentences of role-playing flavor that never surface.
|
||||
- **No starting kit preview.** Player doesn't see what they'll start with until after creation finishes.
|
||||
|
||||
These are not blockers — they're the natural targets for a UX pass.
|
||||
|
||||
## File index
|
||||
|
||||
See `MANIFEST.md` for the complete list of files included in this snapshot
|
||||
plus the bash command to refresh them from the canonical sources.
|
||||
|
||||
## What Claude Design returned
|
||||
|
||||
`from_design/` contains the React/HTML/CSS prototype Claude Design built
|
||||
from this snapshot — a 7-step wizard with an illuminated-codex aesthetic,
|
||||
drag-and-drop ability assignment, hover popovers for traits, and a live
|
||||
aside summary panel.
|
||||
|
||||
`IMPLEMENTATION_STATUS.md` records what the C# / Myra port preserves
|
||||
faithfully, what was adapted (drag-drop → click-pick-place; hover popovers
|
||||
→ click-to-show detail panel), and what remains as visual / aesthetic gap
|
||||
(parchment background, gilded accents, serif display fonts — Myra theming
|
||||
work, deferred to M6+).
|
||||
Reference in New Issue
Block a user