- 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>
136 lines
No EOL
2.4 KiB
JSON
136 lines
No EOL
2.4 KiB
JSON
{
|
|
"header": [
|
|
"Tier",
|
|
"Name",
|
|
"Required Rep",
|
|
"Cumulative"
|
|
],
|
|
"tiers": [
|
|
{
|
|
"tier": 0,
|
|
"name": "Outsider",
|
|
"standingRequired": 0,
|
|
"totalStanding": 0
|
|
},
|
|
{
|
|
"tier": 1,
|
|
"name": "Mercenary",
|
|
"standingRequired": 99,
|
|
"totalStanding": 99
|
|
},
|
|
{
|
|
"tier": 2,
|
|
"name": "Recruit",
|
|
"standingRequired": 150,
|
|
"totalStanding": 249
|
|
},
|
|
{
|
|
"tier": 3,
|
|
"name": "Contractor",
|
|
"standingRequired": 250,
|
|
"totalStanding": 499
|
|
},
|
|
{
|
|
"tier": 4,
|
|
"name": "Agent",
|
|
"standingRequired": 500,
|
|
"totalStanding": 999
|
|
},
|
|
{
|
|
"tier": 5,
|
|
"name": "House Operator",
|
|
"standingRequired": 1000,
|
|
"totalStanding": 1999
|
|
},
|
|
{
|
|
"tier": 6,
|
|
"name": "-",
|
|
"standingRequired": 225,
|
|
"totalStanding": 2224
|
|
},
|
|
{
|
|
"tier": 7,
|
|
"name": "-",
|
|
"standingRequired": 300,
|
|
"totalStanding": 2524
|
|
},
|
|
{
|
|
"tier": 8,
|
|
"name": "-",
|
|
"standingRequired": 375,
|
|
"totalStanding": 2899
|
|
},
|
|
{
|
|
"tier": 9,
|
|
"name": "-",
|
|
"standingRequired": 450,
|
|
"totalStanding": 3349
|
|
},
|
|
{
|
|
"tier": 10,
|
|
"name": "-",
|
|
"standingRequired": 525,
|
|
"totalStanding": 3874
|
|
},
|
|
{
|
|
"tier": 11,
|
|
"name": "-",
|
|
"standingRequired": 600,
|
|
"totalStanding": 4474
|
|
},
|
|
{
|
|
"tier": 12,
|
|
"name": "-",
|
|
"standingRequired": 675,
|
|
"totalStanding": 5149
|
|
},
|
|
{
|
|
"tier": 13,
|
|
"name": "-",
|
|
"standingRequired": 750,
|
|
"totalStanding": 5899
|
|
},
|
|
{
|
|
"tier": 14,
|
|
"name": "-",
|
|
"standingRequired": 825,
|
|
"totalStanding": 6724
|
|
},
|
|
{
|
|
"tier": 15,
|
|
"name": "-",
|
|
"standingRequired": 900,
|
|
"totalStanding": 7624
|
|
},
|
|
{
|
|
"tier": 16,
|
|
"name": "-",
|
|
"standingRequired": 975,
|
|
"totalStanding": 8599
|
|
},
|
|
{
|
|
"tier": 17,
|
|
"name": "-",
|
|
"standingRequired": 1050,
|
|
"totalStanding": 9649
|
|
},
|
|
{
|
|
"tier": 18,
|
|
"name": "-",
|
|
"standingRequired": 1125,
|
|
"totalStanding": 10774
|
|
},
|
|
{
|
|
"tier": 19,
|
|
"name": "-",
|
|
"standingRequired": 1200,
|
|
"totalStanding": 11974
|
|
},
|
|
{
|
|
"tier": 20,
|
|
"name": "Enforcer",
|
|
"standingRequired": 500,
|
|
"totalStanding": 12474
|
|
}
|
|
]
|
|
} |