Vault sync 2026-10-20: rules, counters, migration 1.4.0 #3
@@ -54,18 +54,18 @@ allDocs.push(...(await parseGear(ctx)));
|
|||||||
|
|
||||||
console.log(`[build-packs] parsed ${allDocs.length} documents total`);
|
console.log(`[build-packs] parsed ${allDocs.length} documents total`);
|
||||||
|
|
||||||
// 2b. Assign signature spells: every discipline lists the spells of its own school.
|
// 2b. signatureSpells = every spell belonging to the discipline (own school or
|
||||||
// Sacred Magic lists only the common prayers (the rest are deity-specific).
|
// listed in the spell's requirements.discipline).
|
||||||
for (const disc of allDocs) {
|
for (const disc of allDocs) {
|
||||||
if (disc.subType !== 'discipline') continue;
|
if (disc.subType !== 'discipline') continue;
|
||||||
const sys = disc.system as Record<string, any>;
|
const sys = disc.system as Record<string, any>;
|
||||||
const spells = allDocs.filter((d) => {
|
sys.signatureSpells = allDocs
|
||||||
|
.filter((d) => {
|
||||||
if (d.subType !== 'spell') return false;
|
if (d.subType !== 'spell') return false;
|
||||||
const sp = d.system as Record<string, any>;
|
const sp = d.system as Record<string, any>;
|
||||||
if (sp.school !== disc.id || sp.isSuperspell) return false;
|
return sp.school === disc.id || (sp.requirements?.discipline ?? []).includes(disc.id);
|
||||||
return disc.id !== 'sacred' || sp.deity === 'common';
|
})
|
||||||
});
|
.map((d) => d.name);
|
||||||
sys.signatureSpells = spells.map((d) => d.name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Group by pack and emit one JSON per doc into packs-src/<pack>/.
|
// 3. Group by pack and emit one JSON per doc into packs-src/<pack>/.
|
||||||
|
|||||||
Reference in New Issue
Block a user