Files
healer-man/src/game/dungeons/wailingCaverns.ts
T
2026-08-31 14:12:51 -04:00

136 lines
6.1 KiB
TypeScript

import {
WAILING_CAVERNS_ENTITIES,
WAILING_CAVERNS_ROAMING_PACKS,
WAILING_CAVERNS_STATIC_SPAWNS,
} from "../mobPopulation";
import {
DUNGEON_DEFINITION_SCHEMA_VERSION,
type DungeonDefinition,
} from "../dungeonTypes";
import { withWailingServerCombat } from "../wailingCavernsServer";
export const WAILING_CAVERNS_DEFINITION = {
schemaVersion: DUNGEON_DEFINITION_SCHEMA_VERSION,
id: "wailing-caverns",
title: "Wailing Caverns",
mapId: 43,
lfgDungeonIds: [1],
expansion: "classic",
environmentMode: "global-wmo",
difficultyVariants: [
{ id: "normal", difficulty: "normal", spawnMask: 1, levelRange: [15, 25] },
],
defaultDifficultyId: "normal",
availability: "available",
presentation: {
location: "The Barrens",
theme: "Living caverns",
summary: "Descend into a corrupted cavern and guide your party through its winding depths.",
loadingMessage: "Preparing your expedition...",
unchartedAreaName: "Uncharted Wailing Caverns",
background: "#07110d",
fog: { color: "#07110d", near: 32, far: 240 },
ambientLight: { color: "#93b68f", intensity: 0.2 },
hemisphereLight: { skyColor: "#789c80", groundColor: "#090d0a", intensity: 0.65 },
directionalLight: { color: "#b7c88f", intensity: 1.05, offset: [12, 20, -5] },
materials: {
cutoutPatterns: ["_B1$"],
cutoutNames: ["mat_snktmpvine", "mat_snktmpvine01"],
blendPatterns: ["_B2$"],
blendNames: ["WailingWater"],
additivePatterns: ["_B4$"],
additiveNames: [],
},
map: {
width: 430,
height: 300,
padding: 24,
contours: [
"M24 192 C76 122 119 246 168 170 S249 62 298 128 365 238 412 102",
"M42 236 C106 178 141 281 211 214 S316 43 398 74",
],
},
},
assets: {
visual: [{ id: "main", fileName: "wailing-caverns-visual.glb" }],
collision: [{ id: "main", fileName: "wailing-caverns-collision.glb", triangleCount: 90_000 }],
navigation: { id: "main", fileName: "wailing-caverns-navigation.glb", triangleCount: 45_732 },
editableSource: "wailing-caverns.source.blend",
},
transform: {
position: [0, 0, 0],
rotation: [0, 0, 0],
scale: 1,
fromWow: "three(x,y,z)=(-wow.x,wow.z,wow.y)",
},
entrance: {
name: "The Winding Chasm - Entrance",
footPosition: [163.49, -73.66, 132.9],
forward: [-0.899, 0, -0.438],
yaw: -2.024,
},
bounds: {
min: [-191.6667, -119.1605, -370.8333],
max: [483.4794, 56.469, 554.3612],
},
areas: [
{ id: "entrance", name: "The Winding Chasm - Entrance", center: [163.49, -73.66, 132.9], radius: 34 },
{ id: "lady-anacondra", name: "Lady Anacondra's Lair", center: [-15.34, -87.7, 297.18], radius: 44 },
{ id: "kresh", name: "Kresh's Grotto", center: [64.41, -106.7, 319.08], radius: 44 },
{ id: "lord-cobrahn", name: "Lord Cobrahn's Lair", center: [151.14, -72.63, 414.37], radius: 44 },
{ id: "lord-pythas", name: "Lord Pythas's Lair", center: [-36.81, -79.5, -241.06], radius: 44 },
{ id: "skum", name: "Skum's Den", center: [285.58, -69.19, -312.97], radius: 44 },
{ id: "lord-serpentis", name: "Lord Serpentis's Lair", center: [120.16, -28.58, -24.62], radius: 44 },
{ id: "verdan-the-everliving", name: "Crag of the Everliving", center: [81.86, -30.99, 32.26], radius: 46 },
{ id: "naralex", name: "Dreamer's Rock", center: [-115.41, -94.02, 240.02], radius: 48 },
{ id: "mutanus", name: "Mutanus's Chamber", center: [-151.27, -102.82, 252.26], radius: 44 },
],
entities: withWailingServerCombat(WAILING_CAVERNS_ENTITIES),
staticSpawns: WAILING_CAVERNS_STATIC_SPAWNS,
roamingPacks: WAILING_CAVERNS_ROAMING_PACKS,
bosses: [
{ id: "lady-anacondra-spawn", name: "Lady Anacondra", position: [-15.34, -87.7, 297.18] },
{ id: "kresh-patrol:kresh-roaming", name: "Kresh", position: [64.41, -106.7, 319.08] },
{ id: "lord-cobrahn-spawn", name: "Lord Cobrahn", position: [151.14, -72.63, 414.37] },
{ id: "lord-pythas-spawn", name: "Lord Pythas", position: [-36.81, -79.5, -241.06] },
{ id: "skum-spawn", name: "Skum", position: [285.58, -69.19, -312.97] },
{ id: "lord-serpentis-spawn", name: "Lord Serpentis", position: [120.16, -28.58, -24.62] },
{ id: "verdan-spawn", name: "Verdan the Everliving", position: [81.86, -30.99, 32.26] },
{ id: "mutanus-spawn", name: "Mutanus the Devourer", position: [-151.27, -102.82, 252.26], eventOnly: true },
],
objectiveOrder: [
{ id: "lady-anacondra-spawn", name: "Lady Anacondra", position: [-15.34, -87.7, 297.18] },
{ id: "kresh-patrol:kresh-roaming", name: "Kresh", position: [64.41, -106.7, 319.08] },
{ id: "lord-cobrahn-spawn", name: "Lord Cobrahn", position: [151.14, -72.63, 414.37] },
{ id: "lord-pythas-spawn", name: "Lord Pythas", position: [-36.81, -79.5, -241.06] },
{ id: "skum-spawn", name: "Skum", position: [285.58, -69.19, -312.97] },
{ id: "lord-serpentis-spawn", name: "Lord Serpentis", position: [120.16, -28.58, -24.62] },
{ id: "verdan-spawn", name: "Verdan the Everliving", position: [81.86, -30.99, 32.26] },
{ id: "mutanus-spawn", name: "Mutanus the Devourer", position: [-151.27, -102.82, 252.26], eventOnly: true },
],
navigationLinks: [
{
id: "recast-upper-lower-cavern-gap",
start: [291.607168, -57.993855, -2.433421],
end: [287.852407, -63.96052, 2.616587],
bidirectional: true,
authoredReason: "Golden-fixture bridge for the Recast discontinuity between upper and lower cavern route surfaces.",
},
],
serverGameObjects: [],
provenance: {
clientBuild: "3.3.5a",
clientArchiveHashes: {},
databaseAdapter: "azerothcore-playerbot-e822d7183222",
databaseRevision: "e822d718322289dd036fb2daf8867ba41283bf9a+dirty-file-lock",
sourceSnapshot: "dungeon-pipeline/fixtures/wailing-caverns/source-snapshot.json",
coordinateTransform: "three(x,y,z)=(-wow.x,wow.z,wow.y)",
},
validation: {
status: "green",
report: "dungeon-pipeline/fixtures/wailing-caverns/validation-report.json",
blockers: [],
warnings: ["An authored off-mesh link bridges the steep upper/lower cavern transition."],
},
} as const satisfies DungeonDefinition;