dune-tools/character-builder/data/skills-benegesserit.json
Vantz Stockwell 98a1792106 Add Dune Awakening character builder + initial project scaffolding
- character-builder/: Vue 3 + NestJS + Valkey app for planning house, class,
  character XP, 5 spec tracks, faction standing, and skill trees. Shareable
  via short link (POST /api/builds → 8-char nanoid).
- character-builder/data/: parsed JSON tables (character XP through L200,
  5 specs to L100, 2 faction standing tables, 5 class skill trees).
- character-builder/scripts/extract.py: parser that regenerates data/*.json
  from the gitignored sample-data/*.html snapshots.
- Dockerfile + docker-compose.yml: two-container deploy (app + Valkey).
- specialization-calculator/: pre-existing single-file XP/quest calculator,
  carried into the repo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:30:37 -04:00

342 lines
No EOL
9.4 KiB
JSON

{
"id": "benegesserit",
"name": "Bene Gesserit",
"nodes": [
{
"tag": "Skills.Spice.BinduDodge",
"id": "BinduDodge",
"name": "Bindu Dodge",
"kind": "Spice",
"row": 1,
"col": 2,
"maxPoints": 1,
"icon": "t_ui_iconskilltreebindudodge_d.webp",
"url": "https://dune.gaming.tools/skills/skills-spice-bindudodge"
},
{
"tag": "Skills.Ability.BinduNerveStrike",
"id": "BinduNerveStrike",
"name": "Prana-Bindu Strikes",
"kind": "Ability",
"row": 2,
"col": 1,
"maxPoints": 1,
"icon": "t_ui_iconabilitybindunervestrike_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-bindunervestrike"
},
{
"tag": "Skills.Ability.WeirdingStep",
"id": "WeirdingStep",
"name": "Weirding Step",
"kind": "Ability",
"row": 2,
"col": 3,
"maxPoints": 1,
"icon": "t_ui_iconabilityweirdingstep_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-weirdingstep"
},
{
"tag": "Skills.Attribute.WeirdingWay2",
"id": "WeirdingWay2",
"name": "Short Blade Damage",
"kind": "Attribute",
"row": 3,
"col": 2,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeskillbrawler_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-weirdingway2"
},
{
"tag": "Skills.Perk.Backstabber",
"id": "Backstabber",
"name": "Manipulate Instability",
"kind": "Perk",
"row": 4,
"col": 1,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeperkbackstabber_d.webp",
"url": "https://dune.gaming.tools/skills/skills-perk-backstabber"
},
{
"tag": "Skills.Attribute.WeirdingWay1",
"id": "WeirdingWay1",
"name": "Blade Damage",
"kind": "Attribute",
"row": 4,
"col": 3,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeskillbrawler_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-weirdingway1"
},
{
"tag": "Skills.Ability.Hypersprint",
"id": "Hypersprint",
"name": "Bindu Sprint",
"kind": "Ability",
"row": 5,
"col": 2,
"maxPoints": 3,
"icon": "t_ui_iconabilitydash_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-hypersprint"
},
{
"tag": "Skills.Spice.VoiceSplash",
"id": "VoiceSplash",
"name": "Screech",
"kind": "Spice",
"row": 1,
"col": 2,
"maxPoints": 1,
"icon": "t_ui_iconskilltreescreech_d.webp",
"url": "https://dune.gaming.tools/skills/skills-spice-voicesplash"
},
{
"tag": "Skills.Perk.VoiceAnalysis",
"id": "VoiceAnalysis",
"name": "Rapid Register",
"kind": "Perk",
"row": 2,
"col": 1,
"maxPoints": 1,
"icon": "t_ui_iconskilltreevoiceanalysis_d.webp",
"url": "https://dune.gaming.tools/skills/skills-perk-voiceanalysis"
},
{
"tag": "Skills.Ability.VoiceStop",
"id": "VoiceStop",
"name": "Stop",
"kind": "Ability",
"row": 2,
"col": 3,
"maxPoints": 1,
"icon": "t_ui_iconabilityvoicestop_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-voicestop"
},
{
"tag": "Skills.Ability.Blindspot",
"id": "Blindspot",
"name": "Ignore",
"kind": "Ability",
"row": 4,
"col": 1,
"maxPoints": 1,
"icon": "t_ui_iconabilityblindspot_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-blindspot"
},
{
"tag": "Skills.Attribute.Manipulation1",
"id": "Manipulation1",
"name": "Voice Training",
"kind": "Attribute",
"row": 4,
"col": 3,
"maxPoints": 3,
"icon": "t_ui_iconskilltreebenegesseritcooldown_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-manipulation1"
},
{
"tag": "Skills.Ability.VoiceCompel",
"id": "VoiceCompel",
"name": "Compel",
"kind": "Ability",
"row": 5,
"col": 2,
"maxPoints": 1,
"icon": "t_ui_iconabilitythevoicecompel_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-voicecompel"
},
{
"tag": "Skills.Ability.LitanyAgainstFear",
"id": "LitanyAgainstFear",
"name": "Litany Against Fear",
"kind": "Ability",
"row": 1,
"col": 3,
"maxPoints": 3,
"icon": "t_ui_iconabilitylitanyagainstfear_d.webp",
"url": "https://dune.gaming.tools/skills/skills-ability-litanyagainstfear"
},
{
"tag": "Skills.Perk.BinduStability",
"id": "BinduStability",
"name": "Prana-Bindu Stability",
"kind": "Perk",
"row": 2,
"col": 2,
"maxPoints": 3,
"icon": "t_ui_iconskilltreebindustability_d.webp",
"url": "https://dune.gaming.tools/skills/skills-perk-bindustability"
},
{
"tag": "Skills.Perk.MetabolizePoison",
"id": "MetabolizePoison",
"name": "Metabolize Poison",
"kind": "Perk",
"row": 2,
"col": 4,
"maxPoints": 1,
"icon": "t_ui_iconskilltreemetabolizeposion_d.webp",
"url": "https://dune.gaming.tools/skills/skills-perk-metabolizepoison"
},
{
"tag": "Skills.Attribute.SelfControl3",
"id": "SelfControl3",
"name": "Vitality",
"kind": "Attribute",
"row": 3,
"col": 1,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeattributemaxhpbonus_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-selfcontrol3"
},
{
"tag": "Skills.Attribute.SelfControl4",
"id": "SelfControl4",
"name": "Self-Healing",
"kind": "Attribute",
"row": 3,
"col": 3,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeskillmaxhealth_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-selfcontrol4"
},
{
"tag": "Skills.Attribute.SelfControl5",
"id": "SelfControl5",
"name": "Poison Tolerance",
"kind": "Attribute",
"row": 3,
"col": 5,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeattributepoisondefense_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-selfcontrol5"
},
{
"tag": "Skills.Perk.RegenCap",
"id": "RegenCap",
"name": "Trauma Recovery",
"kind": "Perk",
"row": 4,
"col": 2,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeperkhealingfactor_d.webp",
"url": "https://dune.gaming.tools/skills/skills-perk-regencap"
},
{
"tag": "Skills.Attribute.SelfControl2",
"id": "SelfControl2",
"name": "Sun Tolerance",
"kind": "Attribute",
"row": 4,
"col": 4,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeattributesundefense_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-selfcontrol2"
},
{
"tag": "Skills.Attribute.SelfControl1",
"id": "SelfControl1",
"name": "Recovery",
"kind": "Attribute",
"row": 5,
"col": 3,
"maxPoints": 3,
"icon": "t_ui_iconskilltreeskillhealingmultiplier_d.webp",
"url": "https://dune.gaming.tools/skills/skills-attribute-selfcontrol1"
}
],
"edges": [
{
"from": "Skills.Ability.BinduNerveStrike",
"to": "Skills.Spice.BinduDodge"
},
{
"from": "Skills.Ability.WeirdingStep",
"to": "Skills.Spice.BinduDodge"
},
{
"from": "Skills.Ability.BinduNerveStrike",
"to": "Skills.Attribute.WeirdingWay2"
},
{
"from": "Skills.Ability.BinduNerveStrike",
"to": "Skills.Perk.Backstabber"
},
{
"from": "Skills.Ability.WeirdingStep",
"to": "Skills.Attribute.WeirdingWay2"
},
{
"from": "Skills.Ability.WeirdingStep",
"to": "Skills.Attribute.WeirdingWay1"
},
{
"from": "Skills.Attribute.WeirdingWay2",
"to": "Skills.Perk.Backstabber"
},
{
"from": "Skills.Attribute.WeirdingWay1",
"to": "Skills.Attribute.WeirdingWay2"
},
{
"from": "Skills.Ability.Hypersprint",
"to": "Skills.Perk.Backstabber"
},
{
"from": "Skills.Attribute.WeirdingWay1",
"to": "Skills.Perk.Backstabber"
},
{
"from": "Skills.Ability.Hypersprint",
"to": "Skills.Attribute.WeirdingWay1"
},
{
"from": "Skills.Ability.LitanyAgainstFear",
"to": "Skills.Perk.BinduStability"
},
{
"from": "Skills.Ability.LitanyAgainstFear",
"to": "Skills.Perk.MetabolizePoison"
},
{
"from": "Skills.Attribute.SelfControl3",
"to": "Skills.Perk.BinduStability"
},
{
"from": "Skills.Attribute.SelfControl4",
"to": "Skills.Perk.BinduStability"
},
{
"from": "Skills.Attribute.SelfControl4",
"to": "Skills.Perk.MetabolizePoison"
},
{
"from": "Skills.Attribute.SelfControl5",
"to": "Skills.Perk.MetabolizePoison"
},
{
"from": "Skills.Attribute.SelfControl3",
"to": "Skills.Perk.RegenCap"
},
{
"from": "Skills.Attribute.SelfControl4",
"to": "Skills.Perk.RegenCap"
},
{
"from": "Skills.Attribute.SelfControl2",
"to": "Skills.Attribute.SelfControl4"
},
{
"from": "Skills.Attribute.SelfControl2",
"to": "Skills.Attribute.SelfControl5"
},
{
"from": "Skills.Attribute.SelfControl1",
"to": "Skills.Perk.RegenCap"
},
{
"from": "Skills.Attribute.SelfControl1",
"to": "Skills.Attribute.SelfControl2"
}
]
}