import { iceDepthsPropBlocks, type EntityKind } from './constants.js'; /** * The Frozen Depths (2026-09-21, James: "expand the frozen dungeon to have * boss rooms"): five boss rooms carved in the off-map strip north of the * Ice Prison, reached from the Frozen Shrine, which is the dungeon's hub. * * There are no puzzles. Every "lever" on the reference map (the chain * winches, the soul braziers, the reagent bench, the relic lift) is a rune * arch in the shrine's wall that teleports you into its room, and every * room has an arch by its arrival tile that teleports you back. The one * gate is the lift down to the Final Core: the four wing bosses each drop * a relic, and the lift wants all four in the bag (kept, not spent). * * Layout in world tiles (the strip runs x 928-1183; the prison holds * x 1112-1160, z 102-180; the Rat Tunnel holds x 1032-1080). Two rows of * rooms north of the shrine, walls of the same dark rock between them: * * z 6-40 Rune Chamber (Frost Warden) x 1086-1114 * Ritual Chamber (Ice Lich) x 1150-1178 * z 50-94 Shattered Hollow (Bonechill Yeti) x 1086-1114 * Final Core (Glacial Behemoth) x 1118-1146 * Lower Laboratory (Frost Alchemist) x 1150-1178 * * Each room's arrival tile is at its south end and its return arch is in * the south wall behind it; the boss waits at the far end. The hub's * arches: west wall (rune at z 116, hollow at the seal's row), east wall * (ritual at the seal's row, lab at z 134), and the Warden's sealed door * in the north wall, which is the lift. */ export type IceDepthsRoomId = 'rune' | 'hollow' | 'ritual' | 'lab' | 'core'; export type IceDepthsBossKind = 'frostwarden' | 'bonechillyeti' | 'icelich' | 'frostalchemist' | 'glacialbehemoth'; /** The relic each wing boss drops, in the order of the rooms above. */ export type IceDepthsRelicKind = 'gatesealkey' | 'prisonchainhook' | 'frostsigil' | 'crystalphial'; export declare const ICE_DEPTHS_RELICS: ReadonlyArray; export type IceDepthsRoom = { id: IceDepthsRoomId; /** The room's name, on the cover and in Examine. */ title: string; /** The line under the title on the cover. */ line: string; boss: IceDepthsBossKind; bossName: string; minX: number; maxX: number; minZ: number; maxZ: number; cx: number; cz: number; /** The room's floor height (the shrine is -1). */ floorH: number; /** Where the hub's arch drops you. */ arrival: { x: number; z: number; }; /** The arch back to the hub, in the south wall behind the arrival tile. */ returnArch: { x: number; z: number; }; /** Where the boss stands. */ bossSpawn: { x: number; z: number; }; /** The arch in the shrine's wall that leads here, and where you land coming back. */ hubArch: { x: number; z: number; facing: 'n' | 'e' | 'w'; }; hubArrival: { x: number; z: number; }; /** The relic the boss drops, for the lift; the Final Core drops none. */ relic?: IceDepthsRelicKind; }; export declare const ICE_DEPTHS_ROOMS: Readonly>; export declare const ICE_DEPTHS_ROOM_IDS: ReadonlyArray; /** * The Ice Troll (level 45). It stood at the Frozen Shrine's north end until 2026-10-12, with no door between it and the * prison; when the Frozen Hallway opened at Combat 20 (decision D1) it moved through the west arch into the Shattered * Hollow, behind the Frozen Depths gate (Combat 41 and a Frozen Key). It holds the Hollow's lane, twelve tiles in from * the arrival (beyond its aggro of six) and well short of the Yeti's ground: the lane is reserved floor in every room, * so the spot is always clear (backend iceDepths.ts). ICE_CAVERN_SPAWNS in landmarks.ts reads this. */ export declare const ICE_TROLL_SPAWN: { readonly room: IceDepthsRoomId; readonly x: number; readonly z: number; }; /** Wall margin included: rock, lighting and colouring cover the rock between the rooms. */ export declare const ICE_DEPTHS_BOUNDS: { readonly minX: number; readonly maxX: number; readonly minZ: 0; readonly maxZ: 100; }; export declare function inIceDepths(x: number, z: number): boolean; /** The room whose floor rectangle holds the tile, wall tiles excluded. */ export declare function iceDepthsRoomAt(x: number, z: number): IceDepthsRoomId | null; /** * Portal arches are rune arches whose style carries `portal-` (into * a room) or `portal-hub` (back to the shrine), after the facing letter and, * for the lift, the `sealed` token that keeps the slab drawn: * `w-portal-rune`, `s-portal-hub`, `n-sealed-portal-core`. */ export declare const ICE_DEPTHS_PORTAL_TOKEN = "portal-"; export type IceDepthsPortalTarget = IceDepthsRoomId | 'hub'; export declare function iceDepthsPortalTarget(style: string | undefined): IceDepthsPortalTarget | null; export declare function iceDepthsPortalStyle(facing: 'n' | 's' | 'e' | 'w', target: IceDepthsPortalTarget, sealed?: boolean): string; /** * Boss levels and max hits (backend npcs.ts reads these; the game guide * prints them). Raised on 2026-09-22 with the level cap at 60 (James: * "frozen bosses can be higher levels"): the Alchemist is the first wing a * level-50 party should try, the Behemoth sits ten past the cap. Order * also fixes the Frozen equipment drop odds (ICE_DEPTHS_BOSS_TIER). */ export declare const ICE_DEPTHS_BOSS_STATS: Readonly>; /** The bosses, where they stand, and the scale the client draws them at (player-rig giants). */ export declare const ICE_DEPTHS_BOSS_SPAWNS: ReadonlyArray<{ kind: IceDepthsBossKind; room: IceDepthsRoomId; x: number; z: number; scale?: number; }>; /** * The Depths' own dressing, one entity kind styled by token (the dreadprop * pattern). Solid unless listed in ICE_DEPTHS_PROP_WALK_THROUGH. * * obelisk a black monolith with a glowing diamond rune (the ring round an arena) * wolfstatue- a stone wolf seated on a plinth, facing n/s/e/w * coffin, coffin-ew a stone sarcophagus, lid ajar, long on z or on x * ribcage a beast's ribcage in the ice * throne the Lich's throne of black stone and ice on its own step * altar a ritual altar with a skull and a lit rune * vat-red|blue|green a great cauldron glowing that colour, steam over it * tube a glass specimen tube on an iron base with a figure frozen in it * pipe-ns|ew|corner a run of ice-glass pipe on iron stands (corner turns n to e) * valve-red|blue|green a valve wheel on a pedestal * shelf a potion shelf, bottles glowing * bench the alchemist's bench with a burner and flasks * grate an iron floor grate (walk-through) * medallion the snowflake medallion set in the floor, three tiles across (walk-through) * runecircle a glowing rune circle on the floor, three tiles across (walk-through) * spill-red|blue|green a spill of reagent across the floor (walk-through) * lantern-red|blue|green a lantern hung from the dark on a chain (walk-through) * ladder a ladder up the rock face (walk-through) * brazier-blue a pedestal brazier burning cold blue * chest an iron-bound chest of the Warden's things */ export declare const ICE_DEPTHS_PROP_STYLES: ReadonlyArray; /** Solid or floor, by style: see iceDepthsPropBlocks in constants.ts. */ export { iceDepthsPropBlocks }; /** The drops that are not equipment, so the guide can group them. */ export declare const ICE_DEPTHS_MATERIAL_KINDS: ReadonlyArray; //# sourceMappingURL=iceDepths.d.ts.map