Skill list grows from 18 → 30 so every ability has 5 skills tied to it.
New skills appended at SkillId byte indices 18–29 to preserve
save-game compat with pre-M6.18 characters.
STR (+4): Brawl, Build-Read, Force, Haulage
DEX (+2): Driving, Marksmanship
CON (+5): Endurance, Fortitude, Hardiness, Lung-Craft, Pain Tolerance
CHA (+1): Scent-Speak
Endurance covers applied effort over time; Hardiness covers external
condition tolerance (temperature, smoke, altitude); Fortitude is
ingestion-only (poison, spoiled food, ritual draughts). Pain Tolerance
is function-while-wounded. Lung-Craft is breath/voice discipline.
Class skill_options updated across all 8 callings so every new skill
has 3+ class homes (Muzzle-Speaker remains the universal pick of
all 30). Backgrounds left untouched — their skill grants are
doc-canon and would benefit from a separate balancing pass.
CharacterBuilder.SkillToJsonName extended with explicit cases for the
new skills so compound enum names like BuildRead serialize as
"build_read" rather than the fallback "buildread" — caught by
CharacterBuilderTests.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Species variants populated against the M6.13 schema:
- Lion-Folk sex axis: Mane Guard (male) / Huntress Reflexes (female,
+5 ft speed + advantage on initiative).
- Elk-Folk sex axis: Antler Combat with 10 ft reach when full rack
(male, retains seasonal Antler Drag) / Kick (female, prone on crit).
Base traits restored to doc canon: Herd Coordination (Help → +3) +
Endurance Runner (40 ft + advantage CON vs forced march); base speed
bumped 30 → 40; new base detriment Herd Instinct.
Ram-Folk replaced with separate Sheep-Folk + Goat-Folk species rather
than a lineage-axis variant on a single Ram entry. Bovidae now has 4
species. The lineage-axis toggle UI in StepSpecies BuildCard rolled
back; the schema stays for sex-axis (Lion/Elk) which auto-resolves.
ContentLoadTests + HybridCharacterTests updated; Size.cs comment too.
Calling lore: ClassDef gains Description; classes.json populated for
all 8 callings with the doc's italic blockquote + paragraph profile.
StepClass surfaces the description on the card.
Card layout uniformity: StepClass / StepSubclass / StepBackground all
switched to single-column ExpandFill grids (matching StepClade /
StepSpecies). Each card now spans the wizard's content width so the
description and feature chips have room to breathe.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Switch Step 0 (Clade) and Step 1 (Species) from a 3-column card grid
to a 1-column layout, with each card carrying a codex-voice
description paragraph between the meta line and the trait chips.
Rationale: establish the world's tone before mechanics — the player
reads who Canidae or Wolf-Folk *are* before evaluating ability mods
and trait pills. Trade is more vertical scrolling, but the card
content was already going wider than three columns comfortably
allowed once the parchment theme bumped padding.
Schema: CladeDef and SpeciesDef gain a Description field (string,
empty default). Populated for all 7 clades and 19 species, sourced
from the doc's italicized blockquote + a one-sentence summary of
the prose paragraph that follows. Empty descriptions fall through
silently — a species without a description still renders, just
without the paragraph.
UI: MakeGrid in both steps becomes Columns = 1 with ExpandFill;
BuildCard sets card.SizeFlagsHorizontal = ExpandFill (replaces the
fixed CustomMinimumSize 200) and prepends the autowrap description
label after the meta line. Hybrid mode stacks sire and dam single-
column grids vertically — same logic as before, just one card wide
each.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Per audit item #5 — restore the doc trait/detriment lists for the
three species that had the largest gaps.
Brown Bear-Folk: replace Rending Claws (1d8 + STR with two-paw rend)
with Devastating Swipe (2d6 + STR slashing or shove 10 ft.). Drop
Winter Hibernation — the broader Hibernation Recovery now lives at
the clade level (M6.9). Add Forager's Nose (advantage on Survival
to find food, scent-id plants) and Stubborn Vitality (advantage on
death saves). Add the missing detriment pair: Slow Burn (act last
in unexpected combat) and Accidental Destruction (DEX-fail-by-5
breaks objects).
Polar Bear-Folk: upgrade Arctic Adaptation (cold resistance, swim =
walking, env immunity) to Arctic Apex (cold IMMUNITY, swim 30 ft,
hold-breath 15 min). Drop White Pelt (not in doc). Add Patient
Hunter (no-move turn → +1d8 next melee) and Insulating Bulk
(resistance to non-magical bludgeoning). Rename Polar Appetite to
Resource Hungry (doc name) and add the missing Heat Vulnerable
detriment (CON saves above 75°F escalating at 90°F).
Moose-Folk: replace Broad Antlers (1d10 + STR, charge prone) with
Palmate Antlers (2d6 + STR + crit-stun). Replace Swamp Strider with
Wetland Wader (adds swim 20 ft + 5-min breath-hold). Add Don't Tread
on Me (counts +1 size for grapple/shove + reaction kick on adjacent
melee, prof-bonus uses). Add the missing detriment pair: Ursid-Scale
Problems (Large infrastructure issues + Stealth disadvantage) and
Solitary Cervid (no Herd Coordination, CHA disadvantage in groups
larger than 4).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Clade: rename + restore traits to doc-canonical Metabolic Furnace
(cold advantage), Sinuous Body (squeeze + escape), Ferocity (+2 to
melee at half HP, not the JSON's reduced one-shot +1). Detriments:
rename High Metabolism → Burn Rate (doc name) and replace the
JSON-only Scent Marker with Short Fuse (disadvantage on WIS saves
vs. effects provoking rage/aggression — the missing half of the
clade detriment pair).
Ferret-Folk: replace Weaver / Social Charm / Small Frame with
War Dance (bonus-action evasion bonus, prof-bonus uses), Tunnel
Runner (15 ft. burrow + tunnel mastery), Irrepressible (advantage
vs. frightened). Detriments: Attention Deficit (sustained-focus
disadvantage outside combat), Musk Broadcast (stress amplifies
scent involuntarily).
Badger-Folk: replace Burrower / Tenacious Grip / Stocky Build with
Immovable (advantage STR/CON vs. move/prone), Digging Claws (20 ft.
burrow + 1d6 + STR claws + barrier-break advantage; was 10 ft. with
no claw damage), Relentless Endurance (CON-save reaction to drop to
1 HP from 0). Detriments: Tunnel Vision (lock-on Perception
disadvantage), Antisocial Default (CHA disadvantage in groups of
6+). Bumped base_speed to 30; the JSON-only Stocky Build's speed-25
was not in the doc.
Wolverine-Folk: replace Savage Jaws / Indomitable Ferocity / Feared
Kin with Wolverine's Frenzy (renamed from doc's "Feral Rage" to
avoid collision with the Feral class — same mechanic: 1/long rest
1-minute resistance to all damage except psychic), Jaws of Iron
(1d8 + STR bite that chews through soft materials as actions),
Arctic Survivor (cold-environment immunity, no tracks in snow,
arctic Survival advantage). Detriments: Berserker's Toll (one
exhaustion after Frenzy), Feared, Not Loved (CHA persuasion
disadvantage with creatures who know what you are).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace clade traits with the doc-canonical trio: Burst Speed (40 ft.
base + bonus-action Dash, prof-bonus uses), Tremor Sense (detect
ground-vibrating creatures within 30 ft.), Lucky Feet (reroll a 1
on a save, 1/short rest). Drop the misplaced Leaping Strides /
Burrow Savvy / Twitch Reflexes — those were thinner substitutes.
Detriments: Fragile Build now correctly halves to -2 HP/level (was
-1). Add Panic Cascade — forced-Dash on bad fear save, contagious to
allied Leporidae within 15 ft. Drop Constant Vigilance, which was
not in the doc.
Bump Rabbit-Folk base_speed_ft to 40 to match Burst Speed's clade
default. Hare-Folk stays at 45 (its species trait Open Ground Runner
sets that explicitly).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Restore the canonical clade content from theriapolis-rpg-clades.md.
Cervidae traits: Prey Sense (cannot be surprised, +WIS to initiative
twice, advantage on hidden-creature Perception), Flight Response
(reaction half-speed move on hostile-adjacent, prof-bonus uses),
Pivoting Ears (advantage hearing-Perception, cannot be flanked) —
replacing the misplaced Antlers and Fleet-Footed and the reduced
Wide Field of View. Detriments: Freeze Response (stun on first
undetected damage), Predator Aversion (CHA disadvantage near
aggressive predator clades) — replacing the misplaced clade-level
Flight Response (now correctly a trait) and Delicate Frame.
Ursidae traits: Massive Frame (size category Large outright, advantage
STR, doubled carry, Heavy weapons, one-paw -2-size grapple) —
upgrading from the reduced Powerful Build; Thick Hide (AC 12 + CON,
not the wrong 11 + DEX, dropping the un-doc'd bludgeoning resistance);
Hibernation Recovery (full hit-dice on long rest, 24-hour sleep
clears one exhaustion/disease/poison) — replacing the misplaced
Bone-Crushing Jaws (which belongs at species level on a per-bear
basis). Detriments: Ponderous (speed 25, disadvantage DEX area saves,
init -2) — restoring the speed and initiative penalties dropped by
Lumbering; Infrastructure Problem (CHA disadvantage in non-Large
spaces) — replacing the misplaced Heat Intolerance.
Migrate Delicate Frame down to Deer-Folk as Slight Frame (where the
doc puts it), since the clade-level slot is now Predator Aversion.
Heat Intolerance / Bone-Crushing Jaws drop entirely from Ursidae —
they belong on per-species records (Polar Bear's Heat Vulnerable,
Brown Bear's Devastating Swipe), which are part of audit item #5.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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>