136 lines
6.1 KiB
TypeScript
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;
|