forked from phenom/healer-man
Release Healer Man 0.1.32
This commit is contained in:
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.");
|
||||
|
||||
Reference in new issue
Block a user