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:
Christopher Wiebe
2026-05-09 20:25:56 -07:00
parent 39117a09ed
commit 97b49d4145
4 changed files with 95 additions and 15 deletions
+8 -8
View File
@@ -10,7 +10,7 @@
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "intimidation", "perception", "survival", "animal_handling"],
"skill_options": ["athletics", "animal_handling", "brawl", "force", "intimidation", "marksmanship", "pain_tolerance", "perception", "survival"],
"subclass_ids": ["pack_forged", "lone_fang"],
"starting_kit": [
{ "item_id": "rend_sword", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -68,7 +68,7 @@
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "insight", "intimidation", "medicine", "perception"],
"skill_options": ["athletics", "endurance", "fortitude", "hardiness", "insight", "intimidation", "medicine", "pain_tolerance", "perception"],
"subclass_ids": ["herd_wall", "antler_guard"],
"starting_kit": [
{ "item_id": "hoof_club", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -128,7 +128,7 @@
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "intimidation", "nature", "perception", "survival"],
"skill_options": ["athletics", "brawl", "endurance", "fortitude", "hardiness", "haulage", "intimidation", "nature", "perception", "survival"],
"subclass_ids": ["blood_memory", "stampede_heart"],
"starting_kit": [
{ "item_id": "paw_axe", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -191,7 +191,7 @@
"weapon_proficiencies": ["simple", "hand_crossbow", "short_sword", "rapier", "natural"],
"tool_proficiencies": ["thieves_tools"],
"skills_choose": 4,
"skill_options": ["acrobatics", "athletics", "deception", "insight", "intimidation", "investigation", "perception", "persuasion", "sleight_of_hand", "stealth"],
"skill_options": ["acrobatics", "athletics", "build_read", "deception", "driving", "insight", "intimidation", "investigation", "marksmanship", "perception", "persuasion", "sleight_of_hand", "stealth"],
"subclass_ids": ["noseblind", "ambush_artist"],
"starting_kit": [
{ "item_id": "thorn_blade", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -255,7 +255,7 @@
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": ["alchemists_supplies", "perfumers_kit"],
"skills_choose": 3,
"skill_options": ["deception", "insight", "investigation", "medicine", "perception", "persuasion", "stealth"],
"skill_options": ["build_read", "deception", "insight", "investigation", "lung_craft", "medicine", "perception", "persuasion", "scent_speak", "stealth"],
"subclass_ids": ["perfumer", "tracker"],
"starting_kit": [
{ "item_id": "fang_knife", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -316,7 +316,7 @@
"weapon_proficiencies": ["simple", "martial", "natural"],
"tool_proficiencies": [],
"skills_choose": 2,
"skill_options": ["athletics", "insight", "intimidation", "medicine", "persuasion", "religion"],
"skill_options": ["athletics", "brawl", "force", "insight", "intimidation", "lung_craft", "medicine", "persuasion", "religion", "scent_speak"],
"subclass_ids": ["the_warden", "the_bridge"],
"starting_kit": [
{ "item_id": "rend_sword", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -377,7 +377,7 @@
"weapon_proficiencies": ["simple", "natural"],
"tool_proficiencies": ["musical_instrument", "musical_instrument_2", "musical_instrument_3"],
"skills_choose": 3,
"skill_options": ["acrobatics", "animal_handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight_of_hand", "stealth", "survival"],
"skill_options": ["acrobatics", "animal_handling", "arcana", "athletics", "brawl", "build_read", "deception", "driving", "endurance", "force", "fortitude", "hardiness", "haulage", "history", "insight", "intimidation", "investigation", "lung_craft", "marksmanship", "medicine", "nature", "pain_tolerance", "perception", "performance", "persuasion", "religion", "scent_speak", "sleight_of_hand", "stealth", "survival"],
"subclass_ids": ["warhorn", "whisperfur"],
"starting_kit": [
{ "item_id": "fang_knife", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },
@@ -440,7 +440,7 @@
"weapon_proficiencies": ["simple", "natural", "firearms"],
"tool_proficiencies": ["tinkers_tools", "artisans_tools", "artisans_tools_2"],
"skills_choose": 3,
"skill_options": ["arcana", "investigation", "medicine", "nature", "perception", "sleight_of_hand"],
"skill_options": ["arcana", "build_read", "driving", "force", "haulage", "investigation", "medicine", "nature", "perception", "sleight_of_hand"],
"subclass_ids": ["combat_engineer", "body_wright"],
"starting_kit": [
{ "item_id": "hoof_club", "qty": 1, "auto_equip": true, "equip_slot": "main_hand" },