/* 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;