273 lines
8.4 KiB
TypeScript
273 lines
8.4 KiB
TypeScript
/* Generated by scripts/runewaker-pipeline/build-population.mjs. */
|
|
import type { DungeonBossObjective } from "../dungeonTypes";
|
|
import type { PopulationDefinitionMap, StaticMobSpawnDefinition } from "../mobPopulation";
|
|
|
|
export const SAND_VORTEX_ENTITIES = {
|
|
"rw-sand-vortex-100645": {
|
|
"id": "rw-sand-vortex-100645",
|
|
"name": "Sandlord Sesphiroth",
|
|
"kind": "boss",
|
|
"title": "Sandlord Sesphiroth",
|
|
"hasLoot": false,
|
|
"combat": {
|
|
"level": 63,
|
|
"healthMultiplier": 7.5,
|
|
"damageMultiplier": 1.3,
|
|
"moveSpeed": 2.25,
|
|
"leashRange": 32,
|
|
"mechanicIds": [
|
|
"rw-sand-vortex-100645-spell-494642",
|
|
"rw-sand-vortex-100645-spell-494643",
|
|
"rw-sand-vortex-100645-debuff-494644",
|
|
"rw-sand-vortex-100645-aura-494649"
|
|
],
|
|
"attacks": [
|
|
{
|
|
"id": "basic-attack",
|
|
"name": "Basic Attack",
|
|
"delivery": "melee",
|
|
"target": "primary",
|
|
"school": "physical",
|
|
"animation": "attack",
|
|
"range": 4.5,
|
|
"cooldownMs": 1900,
|
|
"damageMultiplier": 1
|
|
},
|
|
{
|
|
"id": "rw-sand-vortex-100645-spell-494642",
|
|
"name": "Viscous Quicksand",
|
|
"spellId": 494642,
|
|
"delivery": "area",
|
|
"target": "nearby-party",
|
|
"school": "nature",
|
|
"animation": "cast",
|
|
"castTimeMs": 1800,
|
|
"range": 4.5,
|
|
"cooldownMs": 6500,
|
|
"initialCooldownMs": [
|
|
6500,
|
|
6500
|
|
],
|
|
"repeatCooldownMs": [
|
|
6500,
|
|
6500
|
|
],
|
|
"damageMultiplier": 0.85,
|
|
"radius": 3,
|
|
"telegraph": {
|
|
"shape": "circle",
|
|
"anchor": "source",
|
|
"warningMs": 1800,
|
|
"radius": 3
|
|
},
|
|
"runewakerFormula": {
|
|
"schemaVersion": 1,
|
|
"spellId": 494642,
|
|
"componentId": 502512,
|
|
"spellLevel": 0,
|
|
"calculationPath": "magic",
|
|
"powerKind": "source-points",
|
|
"damagePower": -1000,
|
|
"fixedValue": 0,
|
|
"dotBase": 0,
|
|
"runtimeBaselineMultiplier": 0.85,
|
|
"provenance": {
|
|
"sourceFile": "SourceCodeVS2019/Server/NetGameServer/MainProc/MagicProc/MagicProcess.cpp",
|
|
"physicalFunctionLine": 3366,
|
|
"magicFunctionLine": 3651,
|
|
"magicObjectDatabase": "Resource/data/magicobject.db"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "rw-sand-vortex-100645-spell-494643",
|
|
"name": "Sand Fountain",
|
|
"spellId": 494643,
|
|
"delivery": "area",
|
|
"target": "nearby-party",
|
|
"school": "nature",
|
|
"animation": "cast",
|
|
"castTimeMs": 2000,
|
|
"range": 30,
|
|
"cooldownMs": 6500,
|
|
"initialCooldownMs": [
|
|
6500,
|
|
6500
|
|
],
|
|
"repeatCooldownMs": [
|
|
6500,
|
|
6500
|
|
],
|
|
"damageMultiplier": 0.85,
|
|
"radius": 8,
|
|
"telegraph": {
|
|
"shape": "circle",
|
|
"anchor": "source",
|
|
"warningMs": 1800,
|
|
"radius": 8
|
|
},
|
|
"runewakerFormula": {
|
|
"schemaVersion": 1,
|
|
"spellId": 494643,
|
|
"componentId": 502514,
|
|
"spellLevel": 0,
|
|
"calculationPath": "magic",
|
|
"powerKind": "source-points",
|
|
"damagePower": -5000,
|
|
"fixedValue": 0,
|
|
"dotBase": 0,
|
|
"runtimeBaselineMultiplier": 0.85,
|
|
"provenance": {
|
|
"sourceFile": "SourceCodeVS2019/Server/NetGameServer/MainProc/MagicProc/MagicProcess.cpp",
|
|
"physicalFunctionLine": 3366,
|
|
"magicFunctionLine": 3651,
|
|
"magicObjectDatabase": "Resource/data/magicobject.db"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "rw-sand-vortex-100645-debuff-494644",
|
|
"name": "Sandy Ties",
|
|
"delivery": "area",
|
|
"target": "nearby-party",
|
|
"school": "arcane",
|
|
"animation": "cast",
|
|
"castTimeMs": 1800,
|
|
"range": 30,
|
|
"cooldownMs": 12000,
|
|
"initialCooldownMs": [
|
|
12000,
|
|
12000
|
|
],
|
|
"repeatCooldownMs": [
|
|
12000,
|
|
12000
|
|
],
|
|
"damageMultiplier": 0,
|
|
"radius": 15,
|
|
"telegraph": {
|
|
"shape": "circle",
|
|
"anchor": "source",
|
|
"warningMs": 1800,
|
|
"radius": 15
|
|
},
|
|
"effect": {
|
|
"kind": "target-aura",
|
|
"aura": "sandy-ties",
|
|
"durationMs": 6000
|
|
}
|
|
},
|
|
{
|
|
"id": "rw-sand-vortex-100645-aura-494649",
|
|
"name": "Corrosive Sand",
|
|
"delivery": "area",
|
|
"target": "self",
|
|
"school": "arcane",
|
|
"animation": "cast",
|
|
"castTimeMs": 1200,
|
|
"range": 0,
|
|
"cooldownMs": 15000,
|
|
"initialCooldownMs": [
|
|
15000,
|
|
15000
|
|
],
|
|
"repeatCooldownMs": [
|
|
15000,
|
|
15000
|
|
],
|
|
"damageMultiplier": 0,
|
|
"effect": {
|
|
"kind": "aura",
|
|
"aura": "corrosive-sand",
|
|
"durationMs": 7500
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"visual": {
|
|
"primaryColor": "hsl(275 22% 38%)",
|
|
"accentColor": "hsl(303 38% 64%)",
|
|
"scale": 1,
|
|
"archetype": "humanoid",
|
|
"model": {
|
|
"url": "/assets/creatures/sand-vortex/wind-element-sand.glb",
|
|
"rotationY": 0,
|
|
"groundOffset": 1.38269,
|
|
"labelHeight": 9.73484,
|
|
"markerRadius": 3,
|
|
"animationMode": "native"
|
|
}
|
|
}
|
|
}
|
|
} as const satisfies PopulationDefinitionMap;
|
|
|
|
export const SAND_VORTEX_STATIC_SPAWNS = [
|
|
{
|
|
"id": "rw-sand-vortex-spawn-41854657",
|
|
"entityId": "rw-sand-vortex-100645",
|
|
"position": [
|
|
30.596577,
|
|
0.60969,
|
|
16.174141
|
|
],
|
|
"yaw": 3.857177647,
|
|
"spawnMask": 1
|
|
}
|
|
] as const satisfies readonly StaticMobSpawnDefinition[];
|
|
|
|
export const SAND_VORTEX_BOSSES = [
|
|
{
|
|
"id": "rw-sand-vortex-spawn-41854657",
|
|
"name": "Sandlord Sesphiroth",
|
|
"position": [
|
|
30.596577,
|
|
0.60969,
|
|
16.174141
|
|
]
|
|
}
|
|
] as const satisfies readonly DungeonBossObjective[];
|
|
|
|
export const SAND_VORTEX_OBJECTIVE_ORDER = SAND_VORTEX_BOSSES;
|
|
|
|
export const SAND_VORTEX_POPULATION_PROVENANCE = {
|
|
"schemaVersion": 2,
|
|
"dungeonId": "sand-vortex",
|
|
"zoneId": 121,
|
|
"sourceRowCount": 2,
|
|
"importedSpawnCount": 1,
|
|
"excludedRowCount": 1,
|
|
"bossSpawnCount": 1,
|
|
"objectiveOrder": {
|
|
"authoritative": false,
|
|
"kind": "healerMan-distance-derived",
|
|
"evidence": [
|
|
"scripts/runewaker-pipeline/build-population.mjs"
|
|
]
|
|
},
|
|
"sourceSnapshot": "scripts/runewaker-pipeline/snapshots/sand-vortex-zone-121.json",
|
|
"sourceContentSha256": "968fd12996496437817350e96ab80c18ce768e7493b855722678ca3e6015a487",
|
|
"sourceHashes": {
|
|
"backups": {
|
|
"../rom-pvt-server-backups/OneForAll/SQL/databases/ROM_Global.bak": "aa7bf9971c06078d38b1de3602282a924ba277396d1242629e968ccd570da1a5",
|
|
"../rom-pvt-server-backups/OneForAll/SQL/databases/ObjectEdit.bak": "3bb719c3606f3e36b50f2ce9d89da5aba58faa8ff2ab7909d364fc3d68ca8a74"
|
|
},
|
|
"catalogs": {
|
|
"Resource/data/npcobject.db": "b627b6eb269c30576a6558000a31abe2db472689ef9a60cc1c1e20207abd69f1",
|
|
"Resource/data/imageobject.db": "dd5ffcfd74b253dcecaa2f41a931a634dd45ef5f7c13e849d539ddc47fdee1f9",
|
|
"Resource/data/string_enus.db": "4fce021ba9ed110a213e08d3228b2de57cec66ddbbc8cdcf5753204874d9ab75"
|
|
}
|
|
},
|
|
"coordinateTransform": "threeLocal=(inverse(WDB placement)*server)*(meters,meters,-meters)",
|
|
"navmeshProjection": {
|
|
"maximumAllowedDistance": 4,
|
|
"maximumObservedDistance": 12.501287,
|
|
"maximumCombatDistance": 0.378835,
|
|
"deferredRowsBeyondCombatLimit": 1
|
|
},
|
|
"runeWakerIdsAreNamespaced": true,
|
|
"serverEntryPolicy": "RuneWaker numeric ids are never passed to AzerothCore serverEntry.",
|
|
"sourceSpellCatalog": "scripts/runewaker-pipeline/snapshots/runewaker-npc-spell-catalog.json",
|
|
"sourceSpellCatalogSha256": "36bb578bbdda61af6ab864084907b347ff9a4f4c2fff671a2cb6586d535666ec",
|
|
"sourceSpellPolicy": "Only positively classified direct-HP-damage families execute; source fields are preserved and live damage uses the labeled HealerMan baseline adapter when native stats are unavailable."
|
|
} as const;
|