Skill trees now render the way the source does: each class has three named subtrees (e.g. Swordmaster: The Blade / The Will / The Way), each with its own 3-col or 5-col grid, sized in 72px cells. Extractor parses subtrees separately so the per-tree row/col coordinates are correct (previously all 22 nodes were stacked on one combined grid and overlapped). Connector edges are mapped per-subtree too. Loadout: new global 3-ability + 3-technique slot row at the bottom of the Skill Trees panel. The cap is global across all 5 classes (matches the source HTML which has `id=active-Ability-N` / `id=active-Technique-N` without per-tree scope). Click a slot to pick from any allocated Ability or Spice (for Ability slots) or any allocated Perk (for Technique slots); right-click clears. Slot backgrounds use the local ability.png / technique.png artwork copied into /icons. Label overlap fix: constrained the name label under each node to the node width (72px) and bumped the vertical gap from 44 to 60px so 2-3 line names have room without bleeding into the row below. Existing saved builds migrate cleanly — loadout normalizes to length-3 slot arrays if absent or malformed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
388 lines
No EOL
12 KiB
JSON
388 lines
No EOL
12 KiB
JSON
{
|
|
"id": "benegesserit",
|
|
"name": "Bene Gesserit",
|
|
"subtrees": [
|
|
{
|
|
"name": "Weirding Way",
|
|
"cols": 3,
|
|
"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"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "The Voice",
|
|
"cols": 3,
|
|
"nodes": [
|
|
{
|
|
"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"
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"from": "Skills.Perk.VoiceAnalysis",
|
|
"to": "Skills.Spice.VoiceSplash"
|
|
},
|
|
{
|
|
"from": "Skills.Ability.VoiceStop",
|
|
"to": "Skills.Spice.VoiceSplash"
|
|
},
|
|
{
|
|
"from": "Skills.Ability.Blindspot",
|
|
"to": "Skills.Perk.VoiceAnalysis"
|
|
},
|
|
{
|
|
"from": "Skills.Ability.VoiceStop",
|
|
"to": "Skills.Attribute.Manipulation1"
|
|
},
|
|
{
|
|
"from": "Skills.Ability.Blindspot",
|
|
"to": "Skills.Ability.VoiceCompel"
|
|
},
|
|
{
|
|
"from": "Skills.Ability.VoiceCompel",
|
|
"to": "Skills.Attribute.Manipulation1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Body Control",
|
|
"cols": 5,
|
|
"nodes": [
|
|
{
|
|
"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.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"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |