- 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>
51 lines
No EOL
1.1 KiB
JSON
51 lines
No EOL
1.1 KiB
JSON
{
|
|
"xp": {
|
|
"character": "character-xp.json",
|
|
"combat": "spec-combat.json",
|
|
"crafting": "spec-crafting.json",
|
|
"exploration": "spec-exploration.json",
|
|
"gathering": "spec-gathering.json",
|
|
"sabotage": "spec-sabotage.json"
|
|
},
|
|
"factions": {
|
|
"atreides": "faction-atreides.json",
|
|
"harkonnen": "faction-harkonnen.json"
|
|
},
|
|
"skills": [
|
|
{
|
|
"id": "benegesserit",
|
|
"name": "Bene Gesserit",
|
|
"file": "skills-benegesserit.json",
|
|
"nodes": 22,
|
|
"edges": 23
|
|
},
|
|
{
|
|
"id": "mentat",
|
|
"name": "Mentat",
|
|
"file": "skills-mentat.json",
|
|
"nodes": 22,
|
|
"edges": 22
|
|
},
|
|
{
|
|
"id": "planetologist",
|
|
"name": "Planetologist",
|
|
"file": "skills-planetologist.json",
|
|
"nodes": 20,
|
|
"edges": 10
|
|
},
|
|
{
|
|
"id": "swordmaster",
|
|
"name": "Swordmaster",
|
|
"file": "skills-swordmaster.json",
|
|
"nodes": 22,
|
|
"edges": 22
|
|
},
|
|
{
|
|
"id": "trooper",
|
|
"name": "Trooper",
|
|
"file": "skills-trooper.json",
|
|
"nodes": 22,
|
|
"edges": 22
|
|
}
|
|
]
|
|
} |