Release Healer Man 0.1.32

This commit is contained in:
phenom committed 2026-09-12 11:07:25 -04:00
1 parent d3d6aaebdb
commit 6dcb1034e5
102 files changed
+10772 -788

No files matched your search

@@ -437,7 +437,8 @@ for (const recipeName of recipeNames) {
sourceTemplateIds.add(row.templateId);
const template = templateById.get(row.templateId);
if (!template) issue(issues, dungeonId, "source template " + row.templateId + " is unmapped.");
else if (template.classification !== row.classification) {
else if (template.classification !== row.classification
&& template.source?.classificationRule !== "reviewed Lua controller override") {
issue(issues, dungeonId, "classification drift for template " + row.templateId + ".");
}
}
@@ -651,8 +652,13 @@ for (const recipeName of recipeNames) {
}
if (!boss.name?.trim()) issue(issues, dungeonId, boss.id + " objective has no name.");
}
const runtimePrefix = recipe.runtimeIdPrefix ?? "rw-" + dungeonId;
const nonObjectiveBossIds = new Set((recipe.scriptedSpawns ?? [])
.filter((placement) => placement.objective === false)
.map((placement) => runtimePrefix + "-scripted-" + placement.id));
for (const spawn of spawns) {
if (entities[spawn.entityId]?.kind === "boss" && !bossIds.has(spawn.id)) {
if (entities[spawn.entityId]?.kind === "boss" && !bossIds.has(spawn.id)
&& !nonObjectiveBossIds.has(spawn.id)) {
issue(issues, dungeonId, spawn.id + " boss has no objective.");
}
}
@@ -702,8 +708,15 @@ for (const recipeName of recipeNames) {
!route.orderAuthoritative && !route.reachable
)).length;
const scriptedTemplateIds = new Set([
...(recipe.scriptedSpawns ?? []).map((placement) => placement.templateId),
...(recipe.scriptedFormations ?? []).flatMap((formation) => (
formation.members.map((member) => member.templateId)
)),
]);
const expectedEntities = recipe.templates.filter((template) => (
["combat", "boss"].includes(template.classification) && sourceTemplateIds.has(template.id)
["combat", "boss"].includes(template.classification)
&& (sourceTemplateIds.has(template.id) || scriptedTemplateIds.has(template.id))
)).length;
if (expectedEntities !== Object.keys(entities).length) {
issue(issues, dungeonId, "combat source templates and entity counts disagree.");