M6.18: Skill expansion to 5 per ability — 12 new Theriapolis-flavored skills
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>
This commit is contained in:
@@ -401,6 +401,19 @@ public sealed class CharacterBuilder
|
||||
SkillId.SleightOfHand => "sleight_of_hand",
|
||||
SkillId.Stealth => "stealth",
|
||||
SkillId.Survival => "survival",
|
||||
|
||||
SkillId.Brawl => "brawl",
|
||||
SkillId.BuildRead => "build_read",
|
||||
SkillId.Driving => "driving",
|
||||
SkillId.Endurance => "endurance",
|
||||
SkillId.Force => "force",
|
||||
SkillId.Fortitude => "fortitude",
|
||||
SkillId.Hardiness => "hardiness",
|
||||
SkillId.Haulage => "haulage",
|
||||
SkillId.LungCraft => "lung_craft",
|
||||
SkillId.Marksmanship => "marksmanship",
|
||||
SkillId.PainTolerance => "pain_tolerance",
|
||||
SkillId.ScentSpeak => "scent_speak",
|
||||
_ => s.ToString().ToLowerInvariant(),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user