Add level-aware builder controls

This commit is contained in:
JB
2026-07-25 20:52:08 -04:00
parent 7f9a75021d
commit 0425fede8e
13 changed files with 654 additions and 26 deletions
+21
View File
@@ -221,6 +221,27 @@ if (gearColumns.some((column) => column.name === 'level')) {
console.log('Moving Gear level from canonical ISAC data to builder-instance state.');
await database.exec('ALTER TABLE gear DROP COLUMN level');
}
if (!gearColumns.some((column) => column.name === 'range_reference_level')) {
console.log('Recording the reference level for canonical Gear ranges.');
await database.exec('ALTER TABLE gear ADD COLUMN range_reference_level INTEGER NOT NULL DEFAULT 50 CHECK(range_reference_level BETWEEN 1 AND 50)');
}
const weaponRangeColumns = await (await database.prepare("PRAGMA table_info('weapon_tier_ranges')")).all();
if (!weaponRangeColumns.some((column) => column.name === 'reference_level')) {
console.log('Recording the reference level for canonical Weapon ranges.');
await database.exec('ALTER TABLE weapon_tier_ranges ADD COLUMN reference_level INTEGER NOT NULL DEFAULT 50 CHECK(reference_level BETWEEN 1 AND 50)');
}
const attributeColumns = await (await database.prepare("PRAGMA table_info('stat_attributes')")).all();
for (const [name, definition] of [
['gear_reference_level', 'INTEGER NOT NULL DEFAULT 50 CHECK(gear_reference_level BETWEEN 1 AND 50)'],
['weapon_reference_level', 'INTEGER NOT NULL DEFAULT 50 CHECK(weapon_reference_level BETWEEN 1 AND 50)']
]) {
if (!attributeColumns.some((column) => column.name === name)) {
console.log(`Recording the reference level for Attribute source ranges: ${name}.`);
await database.exec(`ALTER TABLE stat_attributes ADD COLUMN ${name} ${definition}`);
}
}
const talentColumns = await (await database.prepare("PRAGMA table_info('talents')")).all();
for (const [name, definition] of [