forked from phenom/healer-man
Release Healer Man 0.1.22
This commit is contained in:
1 parent
f6f2375145
commit
7f6001723a
144 files changed
+54107
-690
No files matched your search
@@ -0,0 +1,75 @@
|
||||
import type { DungeonDefinition } from "./dungeonTypes";
|
||||
import type { DungeonEncounterDefinition } from "./dungeonEncounterTypes";
|
||||
|
||||
export interface WowVerifiedNoOpInstanceReview {
|
||||
readonly dungeonId: "stormwind-stockade" | "razorfen-kraul" | "ragefire-chasm";
|
||||
readonly sourceFile: string;
|
||||
readonly sha256: string;
|
||||
readonly reviewedBehavior: string;
|
||||
}
|
||||
|
||||
const SOURCE_ROOT = "../HealerMan-Storage/pipeline-work/dungeons/azerothcore-scripts/src/server/scripts";
|
||||
|
||||
/**
|
||||
* These pinned instance scripts only register an empty InstanceScript. Keeping
|
||||
* that fact executable prevents the production audit from inventing doors,
|
||||
* waves, or gates that the authoritative source does not define.
|
||||
*/
|
||||
export const WOW_VERIFIED_NO_OP_INSTANCE_REVIEWS: readonly WowVerifiedNoOpInstanceReview[] = Object.freeze([
|
||||
{
|
||||
dungeonId: "stormwind-stockade",
|
||||
sourceFile: `${SOURCE_ROOT}/EasternKingdoms/TheStockade/instance_the_stockade.cpp`,
|
||||
sha256: "5e86a879ea7919840567607e6fbc1b6df2c50581f23574295430b46701f54a49",
|
||||
reviewedBehavior: "The pinned Stockade instance script only constructs and registers an empty InstanceScript; it defines no saved encounter state, gates, waves, summons, or route transitions.",
|
||||
},
|
||||
{
|
||||
dungeonId: "razorfen-kraul",
|
||||
sourceFile: `${SOURCE_ROOT}/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp`,
|
||||
sha256: "50309cf599020ca404d3230f134919349177a98aa572bf61132dd0e14504da54",
|
||||
reviewedBehavior: "The pinned Razorfen Kraul instance script only constructs and registers an empty InstanceScript; it defines no saved encounter state, gates, waves, summons, or route transitions.",
|
||||
},
|
||||
{
|
||||
dungeonId: "ragefire-chasm",
|
||||
sourceFile: `${SOURCE_ROOT}/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp`,
|
||||
sha256: "294d043e5e6f02f3fbe82f369129659617da30727e048ffa4a333237e58a22f6",
|
||||
reviewedBehavior: "The pinned Ragefire Chasm instance script only constructs and registers an empty InstanceScript; it defines no saved encounter state, gates, waves, summons, or route transitions.",
|
||||
},
|
||||
]);
|
||||
|
||||
function reviewedNoOpEncounter(
|
||||
definition: DungeonDefinition,
|
||||
review: WowVerifiedNoOpInstanceReview,
|
||||
): DungeonEncounterDefinition {
|
||||
return Object.freeze({
|
||||
id: `${definition.id}:source-reviewed-instance`,
|
||||
dungeonId: definition.id,
|
||||
initialPhase: "active",
|
||||
source: Object.freeze({
|
||||
fidelity: "source-exact",
|
||||
scope: "instance-orchestration",
|
||||
files: Object.freeze([review.sourceFile]),
|
||||
reviewedBehavior: review.reviewedBehavior,
|
||||
adaptations: Object.freeze([]),
|
||||
remainingGaps: Object.freeze([]),
|
||||
}),
|
||||
rules: Object.freeze([]),
|
||||
});
|
||||
}
|
||||
|
||||
export function withWowVerifiedNoOpInstanceContent(
|
||||
definition: DungeonDefinition,
|
||||
): DungeonDefinition {
|
||||
const review = WOW_VERIFIED_NO_OP_INSTANCE_REVIEWS.find(
|
||||
(candidate) => candidate.dungeonId === definition.id,
|
||||
);
|
||||
if (!review) return definition;
|
||||
const encounterId = `${definition.id}:source-reviewed-instance`;
|
||||
if (definition.encounters?.some((encounter) => encounter.id === encounterId)) return definition;
|
||||
return Object.freeze({
|
||||
...definition,
|
||||
encounters: Object.freeze([
|
||||
...(definition.encounters ?? []),
|
||||
reviewedNoOpEncounter(definition, review),
|
||||
]),
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user