Update class mechanics, stat rulesets, and CoA reference catalogs

This commit is contained in:
phenom committed 2026-10-04 12:56:30 -04:00
1 parent b16821e92e
commit 39458d5de6
221 files changed
+2584962 -568

No files matched your search

+5 -2
View File
@@ -17,6 +17,7 @@ import { TALENT_NODES, TALENT_TREES } from "../src/game/talentCatalog";
const projectRoot = resolve(import.meta.dirname, "..");
const talentOutputDirectory = resolve(projectRoot, "src/game/generated/talentUi");
const coaAbilityOutputDirectory = resolve(projectRoot, "src/game/generated/coaAbilities");
const coaOnly = process.argv.includes("--coa-only");
function writeJson(file: string, value: unknown): void {
writeFileSync(file, `${JSON.stringify(value)}\n`, "utf8");
@@ -33,9 +34,10 @@ function removeStaleJson(directory: string, expectedNames: ReadonlySet<string>):
mkdirSync(talentOutputDirectory, { recursive: true });
const talentClassIds = new Set<ClassId>(TALENT_TREES.map((tree) => tree.classId));
const talentFileNames = new Set([...talentClassIds].map((classId) => `${classId}.json`));
removeStaleJson(talentOutputDirectory, talentFileNames);
if (!coaOnly) removeStaleJson(talentOutputDirectory, talentFileNames);
for (const classId of talentClassIds) {
if (coaOnly && !COA_CLASS_IDS.includes(classId as CoaClassId)) continue;
const trees = TALENT_TREES.filter((tree) => tree.classId === classId).map((tree) => ({
id: tree.id,
classId: tree.classId,
@@ -103,4 +105,5 @@ for (const classId of COA_CLASS_IDS) {
});
}
console.log(`Generated ${talentFileNames.size} talent UI shards and ${coaAbilityFileNames.size} Conquest ability shards from ${basename(coaAbilityInput)}.`);
const writtenTalentCount = coaOnly ? [...talentClassIds].filter((classId) => COA_CLASS_IDS.includes(classId as CoaClassId)).length : talentFileNames.size;
console.log(`Generated ${writtenTalentCount} talent UI shards and ${coaAbilityFileNames.size} Conquest ability shards from ${basename(coaAbilityInput)}.`);