forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
83eac6d476
commit
4957b69e86
21 files changed
+170
-40
No files matched your search
@@ -19,7 +19,6 @@ import {
|
||||
BITE_SIZED_WAILING_CAVERNS_DUNGEON_ID,
|
||||
} from "../dungeonContentSource";
|
||||
const DEADMINES_ROUTE_WIDTH = 34;
|
||||
const SKADI_ROUTE_WIDTH = 32;
|
||||
|
||||
function normalizedName(value: string): string {
|
||||
return value.toLowerCase().replace(/[^a-z0-9]+/g, "");
|
||||
@@ -331,14 +330,17 @@ export function createBiteSizedUtgardePinnacleDefinition(source: DungeonDefiniti
|
||||
const skadi = source.objectiveOrder.find((objective) => normalizedName(objective.name) === "skaditheruthless");
|
||||
const sourceSkadiGroup = source.encounterSpawnGroups?.find((group) => group.id === "utgarde-pinnacle:skadi-ground");
|
||||
const firstWave = source.encounterSpawnGroups?.find((group) => group.id === "utgarde-pinnacle:skadi-first-wave");
|
||||
const skadiStart = source.serverGameObjects.find((object) => object.id === "utgarde-pinnacle:skadi-start");
|
||||
if (!skadi || !sourceSkadiGroup?.spawns[0] || !firstWave?.spawns[0] || !skadiStart) {
|
||||
if (!skadi || !sourceSkadiGroup?.spawns[0] || !firstWave?.spawns[7]) {
|
||||
throw new Error("Utgarde Pinnacle is missing the Skadi room content.");
|
||||
}
|
||||
// The source start object is across a collision gap from the Skadi corridor.
|
||||
const startPosition: Vector3Tuple = [-511, 104.8, 370];
|
||||
const bossPosition = firstWave.spawns[0].position;
|
||||
const route: readonly Vector3Tuple[] = [skadiStart.position, bossPosition];
|
||||
const staticSpawns = routeSpawns(source, route, SKADI_ROUTE_WIDTH);
|
||||
if (staticSpawns.length === 0) throw new Error("Skadi's approach has no room mobs.");
|
||||
const staticSpawns: readonly StaticMobSpawnDefinition[] = [
|
||||
firstWave.spawns[7],
|
||||
firstWave.spawns[6],
|
||||
firstWave.spawns[5],
|
||||
];
|
||||
const skadiSpawn: StaticMobSpawnDefinition = {
|
||||
...sourceSkadiGroup.spawns[0],
|
||||
id: skadi.id,
|
||||
@@ -358,10 +360,10 @@ export function createBiteSizedUtgardePinnacleDefinition(source: DungeonDefiniti
|
||||
fidelity: "healer-man-authored",
|
||||
scope: "boss-progression",
|
||||
files: ["src/game/dungeons/biteSizedWoWDungeons.ts", "src/game/wowWrathEncounterBatchTwoCatalog.ts"],
|
||||
reviewedBehavior: "Clear the three imported mobs near Eagle's Eye, then confront Skadi on the same walkable approach.",
|
||||
reviewedBehavior: "Clear three source wave guards along the walkable Skadi corridor, then confront Skadi at its end.",
|
||||
adaptations: [
|
||||
"The start interaction, flying phase, harpoons, and long wave sequence are omitted from this short run.",
|
||||
"Skadi uses the source boss combat data and objective ID at a floor-snapped source wave position near the entrance.",
|
||||
"Skadi uses the source boss combat data and objective ID at a floor-snapped source wave position at the corridor's end.",
|
||||
],
|
||||
remainingGaps: ["The shortened encounter still needs an in-game combat and completion pass."],
|
||||
},
|
||||
@@ -393,9 +395,9 @@ export function createBiteSizedUtgardePinnacleDefinition(source: DungeonDefiniti
|
||||
entrance: {
|
||||
...source.entrance,
|
||||
name: "Eagle’s Eye Gauntlet",
|
||||
footPosition: skadiStart.position,
|
||||
forward: [-0.167, 0, -0.986],
|
||||
yaw: -2.974,
|
||||
footPosition: startPosition,
|
||||
forward: [0, 0, 1],
|
||||
yaw: 0,
|
||||
},
|
||||
presentation: {
|
||||
...source.presentation,
|
||||
@@ -406,7 +408,7 @@ export function createBiteSizedUtgardePinnacleDefinition(source: DungeonDefiniti
|
||||
unchartedAreaName: "Eagle’s Eye",
|
||||
},
|
||||
areas: [
|
||||
routeArea("entrance", "Eagle’s Eye Gauntlet", skadiStart.position, 30),
|
||||
routeArea("entrance", "Eagle’s Eye Gauntlet", startPosition, 30),
|
||||
routeArea("skadi", "Skadi’s Arena", bossPosition, 34),
|
||||
],
|
||||
entities: entitiesFor(source, staticSpawns, [], [skadiGroup]),
|
||||
|
||||
Reference in new issue
Block a user