@dreadwood-types/types 0.1.47 → 0.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adventure.d.ts +6 -6
- package/dist/adventure.d.ts.map +1 -1
- package/dist/appearance.d.ts +16 -6
- package/dist/appearance.d.ts.map +1 -1
- package/dist/appearance.js +43 -31
- package/dist/appearance.js.map +1 -1
- package/dist/areaTransitions.d.ts +1 -1
- package/dist/areaTransitions.d.ts.map +1 -1
- package/dist/areaTransitions.js +13 -0
- package/dist/areaTransitions.js.map +1 -1
- package/dist/bank.d.ts.map +1 -1
- package/dist/bearFloes.d.ts +83 -0
- package/dist/bearFloes.d.ts.map +1 -0
- package/dist/bearFloes.js +126 -0
- package/dist/bearFloes.js.map +1 -0
- package/dist/blacksmithing.d.ts +3 -0
- package/dist/blacksmithing.d.ts.map +1 -1
- package/dist/blacksmithing.js +81 -1
- package/dist/blacksmithing.js.map +1 -1
- package/dist/bloodRiver.d.ts +9 -6
- package/dist/bloodRiver.d.ts.map +1 -1
- package/dist/bloodRiver.js +19 -17
- package/dist/bloodRiver.js.map +1 -1
- package/dist/brokenRoad.d.ts.map +1 -1
- package/dist/capital.d.ts +541 -165
- package/dist/capital.d.ts.map +1 -1
- package/dist/capital.js +934 -163
- package/dist/capital.js.map +1 -1
- package/dist/charcoal.d.ts +43 -0
- package/dist/charcoal.d.ts.map +1 -0
- package/dist/charcoal.js +78 -0
- package/dist/charcoal.js.map +1 -0
- package/dist/clientConfig.d.ts +7 -2
- package/dist/clientConfig.d.ts.map +1 -1
- package/dist/clientConfig.js +14 -5
- package/dist/clientConfig.js.map +1 -1
- package/dist/constants.d.ts +196 -11
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +372 -21
- package/dist/constants.js.map +1 -1
- package/dist/cooking.d.ts.map +1 -1
- package/dist/cooking.js +2 -0
- package/dist/cooking.js.map +1 -1
- package/dist/dragonfire.d.ts +75 -0
- package/dist/dragonfire.d.ts.map +1 -0
- package/dist/dragonfire.js +73 -0
- package/dist/dragonfire.js.map +1 -0
- package/dist/dungeonCharts.d.ts +18 -0
- package/dist/dungeonCharts.d.ts.map +1 -0
- package/dist/dungeonCharts.js +67 -0
- package/dist/dungeonCharts.js.map +1 -0
- package/dist/equipment.d.ts +2 -0
- package/dist/equipment.d.ts.map +1 -1
- package/dist/equipment.js +37 -1
- package/dist/equipment.js.map +1 -1
- package/dist/frozenSet.d.ts +36 -0
- package/dist/frozenSet.d.ts.map +1 -0
- package/dist/frozenSet.js +58 -0
- package/dist/frozenSet.js.map +1 -0
- package/dist/goblinCave.d.ts +4 -4
- package/dist/goblinCave.d.ts.map +1 -1
- package/dist/goblinCave.js +1 -1
- package/dist/groundItems.d.ts.map +1 -1
- package/dist/groundItems.js +27 -0
- package/dist/groundItems.js.map +1 -1
- package/dist/harbour.d.ts +223 -0
- package/dist/harbour.d.ts.map +1 -0
- package/dist/harbour.js +264 -0
- package/dist/harbour.js.map +1 -0
- package/dist/iceDepths.d.ts +150 -0
- package/dist/iceDepths.d.ts.map +1 -0
- package/dist/iceDepths.js +132 -0
- package/dist/iceDepths.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/interiorFurniture.d.ts +57 -0
- package/dist/interiorFurniture.d.ts.map +1 -0
- package/dist/interiorFurniture.js +159 -0
- package/dist/interiorFurniture.js.map +1 -0
- package/dist/landmarks.d.ts +83 -59
- package/dist/landmarks.d.ts.map +1 -1
- package/dist/landmarks.js +194 -134
- package/dist/landmarks.js.map +1 -1
- package/dist/messages.d.ts +77 -5
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js.map +1 -1
- package/dist/mineCave.d.ts +7 -7
- package/dist/mineCave.d.ts.map +1 -1
- package/dist/mining.d.ts +8 -0
- package/dist/mining.d.ts.map +1 -1
- package/dist/mining.js +8 -0
- package/dist/mining.js.map +1 -1
- package/dist/questGuide.d.ts +30 -0
- package/dist/questGuide.d.ts.map +1 -0
- package/dist/questGuide.js +3 -0
- package/dist/questGuide.js.map +1 -0
- package/dist/quests.d.ts +29 -0
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +70 -0
- package/dist/quests.js.map +1 -1
- package/dist/snow.d.ts +2 -2
- package/dist/snow.d.ts.map +1 -1
- package/dist/snow.js +8 -5
- package/dist/snow.js.map +1 -1
- package/dist/spiderCave.d.ts.map +1 -1
- package/dist/travel.d.ts +7 -4
- package/dist/travel.d.ts.map +1 -1
- package/dist/travel.js +20 -4
- package/dist/travel.js.map +1 -1
- package/dist/woodwork.d.ts +8 -2
- package/dist/woodwork.d.ts.map +1 -1
- package/dist/woodwork.js +13 -3
- package/dist/woodwork.js.map +1 -1
- package/dist/xp.d.ts +18 -7
- package/dist/xp.d.ts.map +1 -1
- package/dist/xp.js +20 -9
- package/dist/xp.js.map +1 -1
- package/dist/zones.d.ts +5 -0
- package/dist/zones.d.ts.map +1 -1
- package/dist/zones.js +8 -3
- package/dist/zones.js.map +1 -1
- package/package.json +1 -1
package/dist/harbour.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { NORTH_SHIFT } from './constants.js';
|
|
2
|
+
import { CAPITAL_AVENUE_Z, CAPITAL_BRIDGE_HALF_W, CAPITAL_FLOOR_H, CAPITAL_GATE_HALF_W, CAPITAL_MOAT_MAX_X, } from './capital.js';
|
|
3
|
+
/**
|
|
4
|
+
* THE KING'S HARBOUR
|
|
5
|
+
*
|
|
6
|
+
* The Capital's port (2026-09-21, James: "the capital city should have a
|
|
7
|
+
* large port coming out of it"). The city's north side is the edge of the
|
|
8
|
+
* world, so the sea is to the east: everything east of HARBOUR_SEA_X is the
|
|
9
|
+
* Sound, open water to the map's edge, with a shore curving back east to
|
|
10
|
+
* the edge south of the harbour. Between the moat and the water sits a
|
|
11
|
+
* walled harbour ward on the city's own axis: the East Gate's bridge lands
|
|
12
|
+
* on the Harbour Road, which runs the Royal Way's rows straight to the
|
|
13
|
+
* quay and on out along the Royal Pier. Warehouses face the quay either
|
|
14
|
+
* side of the road with cranes at their doors, the harbour master's house
|
|
15
|
+
* and the customs house face the road, an inn and a chandler behind them,
|
|
16
|
+
* and a breakwater runs out from the north tower to a lighthouse at the
|
|
17
|
+
* harbour mouth. Ships lie alongside the piers with gangplanks down; the
|
|
18
|
+
* harbour master sells passage on Branson's chart (travel.ts).
|
|
19
|
+
*
|
|
20
|
+
* World tiles, absolute like the capital's. Backend builder:
|
|
21
|
+
* capitalHarbour.ts. Assets: the quay grammar in pierDeck.ts (`quay`
|
|
22
|
+
* base), the lighthouse and harbour tower in capitalMonuments.ts, the
|
|
23
|
+
* crane in capitalFabric.ts (yardprop `crane`).
|
|
24
|
+
*/
|
|
25
|
+
/** The ward: the moat's east bank to the quay edge, the wall rows included. */
|
|
26
|
+
export const HARBOUR_MIN_X = CAPITAL_MOAT_MAX_X + 1;
|
|
27
|
+
/** The quay's edge tile: the last land, the water begins on the next. */
|
|
28
|
+
export const HARBOUR_MAX_X = 819;
|
|
29
|
+
export const HARBOUR_SEA_X = HARBOUR_MAX_X + 1;
|
|
30
|
+
export const HARBOUR_NORTH_Z = 108;
|
|
31
|
+
export const HARBOUR_SOUTH_Z = 212;
|
|
32
|
+
/** Everything the ward and the bay own, for the sweep and the levelling. */
|
|
33
|
+
export const HARBOUR_WORKS = { minX: HARBOUR_MIN_X, maxX: 927, minZ: 64, maxZ: 296 };
|
|
34
|
+
/** The ward's floor is the city's; the quay stands two heights over the water. */
|
|
35
|
+
export const HARBOUR_FLOOR_H = CAPITAL_FLOOR_H;
|
|
36
|
+
export const HARBOUR_WATER_H = 0;
|
|
37
|
+
export const HARBOUR_SHORE_H = 1;
|
|
38
|
+
/** The Harbour Road: the Way's rows, kerbed, from the bridge foot to the quay. */
|
|
39
|
+
export const HARBOUR_ROAD_Z = CAPITAL_AVENUE_Z;
|
|
40
|
+
export const HARBOUR_ROAD_HALF_W = CAPITAL_GATE_HALF_W;
|
|
41
|
+
export const HARBOUR_ROAD_KERB_HALF_W = CAPITAL_BRIDGE_HALF_W;
|
|
42
|
+
/** The quay strip along the water, six wide, flags. */
|
|
43
|
+
export const HARBOUR_QUAY_MIN_X = 814;
|
|
44
|
+
/** Wall towers every this many tiles along the harbour walls. */
|
|
45
|
+
export const HARBOUR_BASTION_EVERY = 16;
|
|
46
|
+
/** The drums at the water ends of the walls stand on the quay's corners. */
|
|
47
|
+
export const HARBOUR_TOWER_X = 818;
|
|
48
|
+
const inRect = (r, x, z) => x >= r.minX && x <= r.maxX && z >= r.minZ && z <= r.maxZ;
|
|
49
|
+
/**
|
|
50
|
+
* The piers: stone, terrain at the ward's height with the quay grammar on
|
|
51
|
+
* their edges. The Royal Pier is on the road's rows; the two smaller piers
|
|
52
|
+
* flank it.
|
|
53
|
+
*/
|
|
54
|
+
export const HARBOUR_ROYAL_PIER = { minX: HARBOUR_SEA_X, maxX: 853, minZ: HARBOUR_ROAD_Z - 3, maxZ: HARBOUR_ROAD_Z + 3 };
|
|
55
|
+
export const HARBOUR_NORTH_PIER = { minX: HARBOUR_SEA_X, maxX: 845, minZ: 128, maxZ: 131 };
|
|
56
|
+
export const HARBOUR_SOUTH_PIER = { minX: HARBOUR_SEA_X, maxX: 845, minZ: 189, maxZ: 192 };
|
|
57
|
+
export const HARBOUR_PIERS = [HARBOUR_ROYAL_PIER, HARBOUR_NORTH_PIER, HARBOUR_SOUTH_PIER];
|
|
58
|
+
/** The breakwater from the north tower, three wide, and its head with the lighthouse on it. */
|
|
59
|
+
export const HARBOUR_MOLE = { minX: HARBOUR_SEA_X, maxX: 861, minZ: HARBOUR_NORTH_Z, maxZ: HARBOUR_NORTH_Z + 2 };
|
|
60
|
+
export const HARBOUR_MOLE_HEAD = { minX: 862, maxX: 866, minZ: 106, maxZ: 112 };
|
|
61
|
+
export const HARBOUR_LIGHTHOUSE = { x: 864, z: 109 };
|
|
62
|
+
/**
|
|
63
|
+
* The ships. `style` is the ship kind and its bow's heading (face90 is bow
|
|
64
|
+
* east, face270 bow west, face0 bow south); `hull` is the water the hull
|
|
65
|
+
* lies over, blocked so nothing paths under a keel; `plank` is the pier
|
|
66
|
+
* tile the gangplank leaves from and the side it goes over.
|
|
67
|
+
*/
|
|
68
|
+
export const HARBOUR_SHIPS = [
|
|
69
|
+
{
|
|
70
|
+
id: 'royal-north',
|
|
71
|
+
x: 838,
|
|
72
|
+
z: 153,
|
|
73
|
+
style: 'harbourship-crimson-face90',
|
|
74
|
+
hull: { minX: 830, maxX: 846, minZ: 151, maxZ: 155 },
|
|
75
|
+
plank: { x: 838, z: HARBOUR_ROYAL_PIER.minZ, side: 'north' },
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: 'royal-south',
|
|
79
|
+
x: 842,
|
|
80
|
+
z: 167,
|
|
81
|
+
style: 'harbourship-gold-face270',
|
|
82
|
+
hull: { minX: 834, maxX: 850, minZ: 165, maxZ: 169 },
|
|
83
|
+
plank: { x: 842, z: HARBOUR_ROYAL_PIER.maxZ, side: 'south' },
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'north-pier',
|
|
87
|
+
x: 834,
|
|
88
|
+
z: 124,
|
|
89
|
+
style: 'harbourship-green-face90',
|
|
90
|
+
hull: { minX: 826, maxX: 842, minZ: 122, maxZ: 126 },
|
|
91
|
+
plank: { x: 834, z: HARBOUR_NORTH_PIER.minZ, side: 'north' },
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 'north-pier-south',
|
|
95
|
+
x: 834,
|
|
96
|
+
z: 135,
|
|
97
|
+
style: 'harbourship-blue-face270',
|
|
98
|
+
hull: { minX: 826, maxX: 842, minZ: 133, maxZ: 137 },
|
|
99
|
+
plank: { x: 834, z: HARBOUR_NORTH_PIER.maxZ, side: 'south' },
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: 'south-pier',
|
|
103
|
+
x: 832,
|
|
104
|
+
z: 185,
|
|
105
|
+
style: 'landingship-face270',
|
|
106
|
+
hull: { minX: 827, maxX: 837, minZ: 183, maxZ: 187 },
|
|
107
|
+
plank: { x: 832, z: HARBOUR_SOUTH_PIER.minZ, side: 'north' },
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: 'south-pier-south',
|
|
111
|
+
x: 830,
|
|
112
|
+
z: 196,
|
|
113
|
+
style: 'viking-face90',
|
|
114
|
+
hull: { minX: 826, maxX: 834, minZ: 194, maxZ: 198 },
|
|
115
|
+
plank: { x: 830, z: HARBOUR_SOUTH_PIER.maxZ, side: 'south' },
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: 'south-quay',
|
|
119
|
+
x: 823,
|
|
120
|
+
z: 204,
|
|
121
|
+
style: 'viking-face0',
|
|
122
|
+
hull: { minX: 821, maxX: 825, minZ: 200, maxZ: 208 },
|
|
123
|
+
plank: { x: HARBOUR_MAX_X, z: 204, side: 'east' },
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
/**
|
|
127
|
+
* The buildings. Warehouses face the quay (door east), the master's house
|
|
128
|
+
* and the customs house face the road, the inn and the chandler stand
|
|
129
|
+
* behind them on the road too. Styles as the capital's landmarks.
|
|
130
|
+
*/
|
|
131
|
+
export const HARBOUR_LANDMARKS = [
|
|
132
|
+
{ id: 'harbour-master', kind: 'stonehouse', style: 'hall-s', x: 800, z: 148, board: 'Harbour Master' },
|
|
133
|
+
{ id: 'customs', kind: 'stonehouse', style: 'bank-n', x: 800, z: 172, board: 'Customs House' },
|
|
134
|
+
{ id: 'anchor-inn', kind: 'stonehouse', style: 'pub-s', x: 784, z: 148 },
|
|
135
|
+
{ id: 'chandler', kind: 'stonehouse', style: 'shop-n', x: 784, z: 172, board: 'Chandler' },
|
|
136
|
+
{ id: 'warehouse-n1', kind: 'warehouse', style: 'store-e', x: 806, z: 134 },
|
|
137
|
+
{ id: 'warehouse-n2', kind: 'warehouse', style: 'store-e', x: 806, z: 119 },
|
|
138
|
+
{ id: 'warehouse-s1', kind: 'warehouse', style: 'store-e', x: 806, z: 186 },
|
|
139
|
+
{ id: 'warehouse-s2', kind: 'warehouse', style: 'store-e', x: 806, z: 201 },
|
|
140
|
+
];
|
|
141
|
+
/**
|
|
142
|
+
* The two open yards that replaced the blind terraces (the Capital redesign,
|
|
143
|
+
* 2026-09-25: no blind buildings anywhere James can see from the East Gate).
|
|
144
|
+
* Both run from the moat's bank to the warehouses' backs (x 771-797).
|
|
145
|
+
*
|
|
146
|
+
* The Net Yard, inside the north wall: net drying frames, fish racks, rope
|
|
147
|
+
* coils, a boat on trestles, barrels.
|
|
148
|
+
*/
|
|
149
|
+
export const HARBOUR_NET_YARD = {
|
|
150
|
+
minX: HARBOUR_MIN_X + 2,
|
|
151
|
+
maxX: HARBOUR_MIN_X + 28,
|
|
152
|
+
minZ: HARBOUR_NORTH_Z + 2,
|
|
153
|
+
maxZ: HARBOUR_NORTH_Z + 24,
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* The Fish Market, inside the south wall: six striped stalls in two rows
|
|
157
|
+
* facing each other across an aisle (the three on the quay stay too), fish
|
|
158
|
+
* racks and ice crates round them. The Fishmonger's tile is the aisle's
|
|
159
|
+
* middle (phase 2).
|
|
160
|
+
*/
|
|
161
|
+
export const HARBOUR_FISH_MARKET = {
|
|
162
|
+
minX: HARBOUR_MIN_X + 2,
|
|
163
|
+
maxX: HARBOUR_MIN_X + 28,
|
|
164
|
+
minZ: HARBOUR_SOUTH_Z - 24,
|
|
165
|
+
maxZ: HARBOUR_SOUTH_Z - 2,
|
|
166
|
+
};
|
|
167
|
+
const FISH_MARKET_X = (HARBOUR_FISH_MARKET.minX + HARBOUR_FISH_MARKET.maxX) / 2;
|
|
168
|
+
const FISH_MARKET_Z = (HARBOUR_FISH_MARKET.minZ + HARBOUR_FISH_MARKET.maxZ) / 2;
|
|
169
|
+
export const HARBOUR_FISH_MARKET_KEEPER = { x: FISH_MARKET_X, z: FISH_MARKET_Z };
|
|
170
|
+
/** The six stalls: `marketstall fish-<facing>`, each counter three tiles along x, fronting the aisle. */
|
|
171
|
+
export const HARBOUR_FISH_MARKET_STALLS = [-6, 0, 6].flatMap((dx) => [
|
|
172
|
+
{ x: FISH_MARKET_X + dx, z: FISH_MARKET_Z - 3, facing: 's', style: 'fish-s' },
|
|
173
|
+
{ x: FISH_MARKET_X + dx, z: FISH_MARKET_Z + 3, facing: 'n', style: 'fish-n' },
|
|
174
|
+
]);
|
|
175
|
+
/** Treadwheel cranes on the quay edge, at the warehouse doors. */
|
|
176
|
+
export const HARBOUR_CRANES = [
|
|
177
|
+
{ x: 818, z: 124 },
|
|
178
|
+
{ x: 818, z: 140 },
|
|
179
|
+
{ x: 818, z: 180 },
|
|
180
|
+
{ x: 818, z: 196 },
|
|
181
|
+
];
|
|
182
|
+
/** The fish market on the south quay: stalls with their backs to the water. */
|
|
183
|
+
export const HARBOUR_FISH_STALLS = [
|
|
184
|
+
{ x: 816, z: 198 },
|
|
185
|
+
{ x: 816, z: 202 },
|
|
186
|
+
{ x: 816, z: 206 },
|
|
187
|
+
];
|
|
188
|
+
/** The sailings board at the Royal Pier's root. */
|
|
189
|
+
export const HARBOUR_BOARD = { x: 817, z: 154 };
|
|
190
|
+
/**
|
|
191
|
+
* Marlow stands out on the Royal Pier at the crimson ship's gangplank, not
|
|
192
|
+
* back on the quay: the man who sells you a passage is beside the ship that
|
|
193
|
+
* carries it (James, 2026-09-22). The board still meets you at the root.
|
|
194
|
+
*/
|
|
195
|
+
export const HARBOUR_MASTER = { x: 837, z: 158, faceX: 838, faceZ: 154 };
|
|
196
|
+
/** Where a sailing puts you ashore: the Royal Pier beside the first gangplank. */
|
|
197
|
+
export const HARBOUR_LANDING = { x: 836, z: HARBOUR_ROAD_Z };
|
|
198
|
+
/** The name on the road and the map. */
|
|
199
|
+
export const HARBOUR_NAME = "The King's Harbour";
|
|
200
|
+
/** The wall rows and the tiles inward that the wall pieces fill. */
|
|
201
|
+
export function onHarbourWall(x, z) {
|
|
202
|
+
if (x < HARBOUR_MIN_X || x > HARBOUR_MAX_X)
|
|
203
|
+
return false;
|
|
204
|
+
return z === HARBOUR_NORTH_Z || z === HARBOUR_NORTH_Z + 1 || z === HARBOUR_SOUTH_Z || z === HARBOUR_SOUTH_Z - 1;
|
|
205
|
+
}
|
|
206
|
+
export function inHarbourWard(x, z) {
|
|
207
|
+
return x >= HARBOUR_MIN_X && x <= HARBOUR_MAX_X && z >= HARBOUR_NORTH_Z && z <= HARBOUR_SOUTH_Z;
|
|
208
|
+
}
|
|
209
|
+
/** Inside the walls: where the buildings and yards are. */
|
|
210
|
+
export function inHarbourInterior(x, z) {
|
|
211
|
+
return inHarbourWard(x, z) && !onHarbourWall(x, z);
|
|
212
|
+
}
|
|
213
|
+
export function onHarbourRoad(x, z) {
|
|
214
|
+
return x >= HARBOUR_MIN_X && x < HARBOUR_QUAY_MIN_X && Math.abs(z - HARBOUR_ROAD_Z) <= HARBOUR_ROAD_KERB_HALF_W;
|
|
215
|
+
}
|
|
216
|
+
export function onHarbourQuay(x, z) {
|
|
217
|
+
return x >= HARBOUR_QUAY_MIN_X && x <= HARBOUR_MAX_X && inHarbourInterior(x, z);
|
|
218
|
+
}
|
|
219
|
+
export function onHarbourPier(x, z) {
|
|
220
|
+
return HARBOUR_PIERS.some((p) => inRect(p, x, z));
|
|
221
|
+
}
|
|
222
|
+
export function onHarbourMole(x, z) {
|
|
223
|
+
return inRect(HARBOUR_MOLE, x, z) || inRect(HARBOUR_MOLE_HEAD, x, z);
|
|
224
|
+
}
|
|
225
|
+
/** Every stone deck standing over the water: the piers and the breakwater. */
|
|
226
|
+
export function onHarbourDeck(x, z) {
|
|
227
|
+
return onHarbourPier(x, z) || onHarbourMole(x, z);
|
|
228
|
+
}
|
|
229
|
+
/** A small deterministic hash in [0, 1) for the shore's wander. */
|
|
230
|
+
function shoreHash(x, z) {
|
|
231
|
+
let h = (x * 374761393 + z * 668265263) | 0;
|
|
232
|
+
h = Math.imul(h ^ (h >>> 13), 1274126177);
|
|
233
|
+
return ((h ^ (h >>> 16)) >>> 0) / 4294967296;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* The Sound's shore south of the harbour: the first water column on a row.
|
|
237
|
+
* Straight along the quay and the ward, then bending east below the south
|
|
238
|
+
* tower to reach the map's edge, wandering a tile or two so it is a coast
|
|
239
|
+
* and not a ruler.
|
|
240
|
+
*/
|
|
241
|
+
export const HARBOUR_SHORE_BEND_Z = 240;
|
|
242
|
+
export function harbourShoreX(z) {
|
|
243
|
+
if (z <= HARBOUR_SHORE_BEND_Z)
|
|
244
|
+
return HARBOUR_SEA_X;
|
|
245
|
+
const run = z - HARBOUR_SHORE_BEND_Z;
|
|
246
|
+
const hz = z - NORTH_SHIFT;
|
|
247
|
+
const w = (shoreHash(Math.floor(hz / 3), 7) + shoreHash(Math.floor(hz / 5) + 3, 11)) / 2;
|
|
248
|
+
return Math.min(HARBOUR_WORKS.maxX + 1, HARBOUR_SEA_X + Math.round(run * 2.7 + w * 4 - 2));
|
|
249
|
+
}
|
|
250
|
+
/** The Sound: sea from the shore to the map's edge, the north rows included, the decks excepted. */
|
|
251
|
+
export function inHarbourSea(x, z) {
|
|
252
|
+
if (z < HARBOUR_WORKS.minZ || z > HARBOUR_WORKS.maxZ)
|
|
253
|
+
return false;
|
|
254
|
+
if (onHarbourDeck(x, z))
|
|
255
|
+
return false;
|
|
256
|
+
if (z <= HARBOUR_WORKS.minZ + 2 && x >= HARBOUR_MIN_X)
|
|
257
|
+
return true;
|
|
258
|
+
return x >= harbourShoreX(z);
|
|
259
|
+
}
|
|
260
|
+
/** Laid stone: the ward inside its walls, the piers and the breakwater (see the frontend's LaidPaving). */
|
|
261
|
+
export function inHarbourPaving(x, z) {
|
|
262
|
+
return inHarbourInterior(x, z) || onHarbourDeck(x, z);
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=harbour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harbour.js","sourceRoot":"","sources":["../src/harbour.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { iceDepthsPropBlocks, type EntityKind } from './constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* The Frozen Depths (2026-09-21, James: "expand the frozen dungeon to have
|
|
4
|
+
* boss rooms"): five boss rooms carved in the off-map strip north of the
|
|
5
|
+
* Ice Prison, reached from the Frozen Shrine, which is the dungeon's hub.
|
|
6
|
+
*
|
|
7
|
+
* There are no puzzles. Every "lever" on the reference map (the chain
|
|
8
|
+
* winches, the soul braziers, the reagent bench, the relic lift) is a rune
|
|
9
|
+
* arch in the shrine's wall that teleports you into its room, and every
|
|
10
|
+
* room has an arch by its arrival tile that teleports you back. The one
|
|
11
|
+
* gate is the lift down to the Final Core: the four wing bosses each drop
|
|
12
|
+
* a relic, and the lift wants all four in the bag (kept, not spent).
|
|
13
|
+
*
|
|
14
|
+
* Layout in world tiles (the strip runs x 928-1183; the prison holds
|
|
15
|
+
* x 1112-1160, z 102-180; the Rat Tunnel holds x 1032-1080). Two rows of
|
|
16
|
+
* rooms north of the shrine, walls of the same dark rock between them:
|
|
17
|
+
*
|
|
18
|
+
* z 6-40 Rune Chamber (Frost Warden) x 1086-1114
|
|
19
|
+
* Ritual Chamber (Ice Lich) x 1150-1178
|
|
20
|
+
* z 50-94 Shattered Hollow (Bonechill Yeti) x 1086-1114
|
|
21
|
+
* Final Core (Glacial Behemoth) x 1118-1146
|
|
22
|
+
* Lower Laboratory (Frost Alchemist) x 1150-1178
|
|
23
|
+
*
|
|
24
|
+
* Each room's arrival tile is at its south end and its return arch is in
|
|
25
|
+
* the south wall behind it; the boss waits at the far end. The hub's
|
|
26
|
+
* arches: west wall (rune at z 116, hollow at the seal's row), east wall
|
|
27
|
+
* (ritual at the seal's row, lab at z 134), and the Warden's sealed door
|
|
28
|
+
* in the north wall, which is the lift.
|
|
29
|
+
*/
|
|
30
|
+
export type IceDepthsRoomId = 'rune' | 'hollow' | 'ritual' | 'lab' | 'core';
|
|
31
|
+
export type IceDepthsBossKind = 'frostwarden' | 'bonechillyeti' | 'icelich' | 'frostalchemist' | 'glacialbehemoth';
|
|
32
|
+
/** The relic each wing boss drops, in the order of the rooms above. */
|
|
33
|
+
export type IceDepthsRelicKind = 'gatesealkey' | 'prisonchainhook' | 'frostsigil' | 'crystalphial';
|
|
34
|
+
export declare const ICE_DEPTHS_RELICS: ReadonlyArray<IceDepthsRelicKind>;
|
|
35
|
+
export type IceDepthsRoom = {
|
|
36
|
+
id: IceDepthsRoomId;
|
|
37
|
+
/** The room's name, on the cover and in Examine. */
|
|
38
|
+
title: string;
|
|
39
|
+
/** The line under the title on the cover. */
|
|
40
|
+
line: string;
|
|
41
|
+
boss: IceDepthsBossKind;
|
|
42
|
+
bossName: string;
|
|
43
|
+
minX: number;
|
|
44
|
+
maxX: number;
|
|
45
|
+
minZ: number;
|
|
46
|
+
maxZ: number;
|
|
47
|
+
cx: number;
|
|
48
|
+
cz: number;
|
|
49
|
+
/** The room's floor height (the shrine is -1). */
|
|
50
|
+
floorH: number;
|
|
51
|
+
/** Where the hub's arch drops you. */
|
|
52
|
+
arrival: {
|
|
53
|
+
x: number;
|
|
54
|
+
z: number;
|
|
55
|
+
};
|
|
56
|
+
/** The arch back to the hub, in the south wall behind the arrival tile. */
|
|
57
|
+
returnArch: {
|
|
58
|
+
x: number;
|
|
59
|
+
z: number;
|
|
60
|
+
};
|
|
61
|
+
/** Where the boss stands. */
|
|
62
|
+
bossSpawn: {
|
|
63
|
+
x: number;
|
|
64
|
+
z: number;
|
|
65
|
+
};
|
|
66
|
+
/** The arch in the shrine's wall that leads here, and where you land coming back. */
|
|
67
|
+
hubArch: {
|
|
68
|
+
x: number;
|
|
69
|
+
z: number;
|
|
70
|
+
facing: 'n' | 'e' | 'w';
|
|
71
|
+
};
|
|
72
|
+
hubArrival: {
|
|
73
|
+
x: number;
|
|
74
|
+
z: number;
|
|
75
|
+
};
|
|
76
|
+
/** The relic the boss drops, for the lift; the Final Core drops none. */
|
|
77
|
+
relic?: IceDepthsRelicKind;
|
|
78
|
+
};
|
|
79
|
+
export declare const ICE_DEPTHS_ROOMS: Readonly<Record<IceDepthsRoomId, IceDepthsRoom>>;
|
|
80
|
+
export declare const ICE_DEPTHS_ROOM_IDS: ReadonlyArray<IceDepthsRoomId>;
|
|
81
|
+
/** Wall margin included: rock, lighting and colouring cover the rock between the rooms. */
|
|
82
|
+
export declare const ICE_DEPTHS_BOUNDS: {
|
|
83
|
+
readonly minX: number;
|
|
84
|
+
readonly maxX: number;
|
|
85
|
+
readonly minZ: 0;
|
|
86
|
+
readonly maxZ: 100;
|
|
87
|
+
};
|
|
88
|
+
export declare function inIceDepths(x: number, z: number): boolean;
|
|
89
|
+
/** The room whose floor rectangle holds the tile, wall tiles excluded. */
|
|
90
|
+
export declare function iceDepthsRoomAt(x: number, z: number): IceDepthsRoomId | null;
|
|
91
|
+
/**
|
|
92
|
+
* Portal arches are rune arches whose style carries `portal-<room>` (into
|
|
93
|
+
* a room) or `portal-hub` (back to the shrine), after the facing letter and,
|
|
94
|
+
* for the lift, the `sealed` token that keeps the slab drawn:
|
|
95
|
+
* `w-portal-rune`, `s-portal-hub`, `n-sealed-portal-core`.
|
|
96
|
+
*/
|
|
97
|
+
export declare const ICE_DEPTHS_PORTAL_TOKEN = "portal-";
|
|
98
|
+
export type IceDepthsPortalTarget = IceDepthsRoomId | 'hub';
|
|
99
|
+
export declare function iceDepthsPortalTarget(style: string | undefined): IceDepthsPortalTarget | null;
|
|
100
|
+
export declare function iceDepthsPortalStyle(facing: 'n' | 's' | 'e' | 'w', target: IceDepthsPortalTarget, sealed?: boolean): string;
|
|
101
|
+
/**
|
|
102
|
+
* Boss levels and max hits (backend npcs.ts reads these; the game guide
|
|
103
|
+
* prints them). Raised on 2026-09-22 with the level cap at 60 (James:
|
|
104
|
+
* "frozen bosses can be higher levels"): the Alchemist is the first wing a
|
|
105
|
+
* level-50 party should try, the Behemoth sits ten past the cap. Order
|
|
106
|
+
* also fixes the Frozen equipment drop odds (ICE_DEPTHS_BOSS_TIER).
|
|
107
|
+
*/
|
|
108
|
+
export declare const ICE_DEPTHS_BOSS_STATS: Readonly<Record<IceDepthsBossKind, {
|
|
109
|
+
level: number;
|
|
110
|
+
maxHit: number;
|
|
111
|
+
}>>;
|
|
112
|
+
/** The bosses, where they stand, and the scale the client draws them at (player-rig giants). */
|
|
113
|
+
export declare const ICE_DEPTHS_BOSS_SPAWNS: ReadonlyArray<{
|
|
114
|
+
kind: IceDepthsBossKind;
|
|
115
|
+
room: IceDepthsRoomId;
|
|
116
|
+
x: number;
|
|
117
|
+
z: number;
|
|
118
|
+
scale?: number;
|
|
119
|
+
}>;
|
|
120
|
+
/**
|
|
121
|
+
* The Depths' own dressing, one entity kind styled by token (the dreadprop
|
|
122
|
+
* pattern). Solid unless listed in ICE_DEPTHS_PROP_WALK_THROUGH.
|
|
123
|
+
*
|
|
124
|
+
* obelisk a black monolith with a glowing diamond rune (the ring round an arena)
|
|
125
|
+
* wolfstatue-<f> a stone wolf seated on a plinth, facing n/s/e/w
|
|
126
|
+
* coffin, coffin-ew a stone sarcophagus, lid ajar, long on z or on x
|
|
127
|
+
* ribcage a beast's ribcage in the ice
|
|
128
|
+
* throne the Lich's throne of black stone and ice on its own step
|
|
129
|
+
* altar a ritual altar with a skull and a lit rune
|
|
130
|
+
* vat-red|blue|green a great cauldron glowing that colour, steam over it
|
|
131
|
+
* tube a glass specimen tube on an iron base with a figure frozen in it
|
|
132
|
+
* pipe-ns|ew|corner a run of ice-glass pipe on iron stands (corner turns n to e)
|
|
133
|
+
* valve-red|blue|green a valve wheel on a pedestal
|
|
134
|
+
* shelf a potion shelf, bottles glowing
|
|
135
|
+
* bench the alchemist's bench with a burner and flasks
|
|
136
|
+
* grate an iron floor grate (walk-through)
|
|
137
|
+
* medallion the snowflake medallion set in the floor, three tiles across (walk-through)
|
|
138
|
+
* runecircle a glowing rune circle on the floor, three tiles across (walk-through)
|
|
139
|
+
* spill-red|blue|green a spill of reagent across the floor (walk-through)
|
|
140
|
+
* lantern-red|blue|green a lantern hung from the dark on a chain (walk-through)
|
|
141
|
+
* ladder a ladder up the rock face (walk-through)
|
|
142
|
+
* brazier-blue a pedestal brazier burning cold blue
|
|
143
|
+
* chest an iron-bound chest of the Warden's things
|
|
144
|
+
*/
|
|
145
|
+
export declare const ICE_DEPTHS_PROP_STYLES: ReadonlyArray<string>;
|
|
146
|
+
/** Solid or floor, by style: see iceDepthsPropBlocks in constants.ts. */
|
|
147
|
+
export { iceDepthsPropBlocks };
|
|
148
|
+
/** The drops that are not equipment, so the guide can group them. */
|
|
149
|
+
export declare const ICE_DEPTHS_MATERIAL_KINDS: ReadonlyArray<EntityKind>;
|
|
150
|
+
//# sourceMappingURL=iceDepths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iceDepths.d.ts","sourceRoot":"","sources":["../src/iceDepths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { GRID_WIDTH, UNDERGROUND_ORIGIN_X, iceDepthsPropBlocks } from './constants.js';
|
|
2
|
+
export const ICE_DEPTHS_RELICS = ['gatesealkey', 'prisonchainhook', 'frostsigil', 'crystalphial'];
|
|
3
|
+
/** The shrine's centre column, the same as ICE_PRISON_CX in landmarks.ts. */
|
|
4
|
+
const HUB_CX = UNDERGROUND_ORIGIN_X + 208;
|
|
5
|
+
/** The shrine's walls, the same as ICE_PRISON_SHRINE (halfW 16, z 110-140). */
|
|
6
|
+
const HUB_WALL_W = HUB_CX - 17;
|
|
7
|
+
const HUB_WALL_E = HUB_CX + 17;
|
|
8
|
+
const HUB_MIN_Z = 110;
|
|
9
|
+
const HUB_SEAL_Z = 125;
|
|
10
|
+
function room(id, title, line, boss, bossName, minX, minZ, hubArch, relic) {
|
|
11
|
+
const maxX = minX + 28;
|
|
12
|
+
const maxZ = minZ + (id === 'rune' || id === 'ritual' ? 34 : 44);
|
|
13
|
+
const cx = minX + 14;
|
|
14
|
+
const cz = Math.floor((minZ + maxZ) / 2);
|
|
15
|
+
const hubArrival = hubArch.facing === 'w' ? { x: hubArch.x + 2, z: hubArch.z }
|
|
16
|
+
: hubArch.facing === 'e' ? { x: hubArch.x - 2, z: hubArch.z }
|
|
17
|
+
: { x: hubArch.x, z: hubArch.z + 3 };
|
|
18
|
+
return {
|
|
19
|
+
id, title, line, boss, bossName, minX, maxX, minZ, maxZ, cx, cz,
|
|
20
|
+
floorH: -1,
|
|
21
|
+
arrival: { x: cx, z: maxZ - 2 },
|
|
22
|
+
returnArch: { x: cx, z: maxZ + 1 },
|
|
23
|
+
bossSpawn: { x: cx, z: minZ + Math.floor((maxZ - minZ) * 0.4) },
|
|
24
|
+
hubArch,
|
|
25
|
+
hubArrival,
|
|
26
|
+
relic,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export const ICE_DEPTHS_ROOMS = {
|
|
30
|
+
rune: room('rune', 'The Rune Chamber', 'Something has kept its post a very long time.', 'frostwarden', 'Frost Warden', 1086, 6, { x: HUB_WALL_W, z: HUB_MIN_Z + 6, facing: 'w' }, 'gatesealkey'),
|
|
31
|
+
hollow: room('hollow', 'The Shattered Hollow', 'The ice underfoot is not all one piece.', 'bonechillyeti', 'Bonechill Yeti', 1086, 50, { x: HUB_WALL_W, z: HUB_SEAL_Z, facing: 'w' }, 'prisonchainhook'),
|
|
32
|
+
ritual: room('ritual', 'The Ritual Chamber', 'The runes on the floor are still warm.', 'icelich', 'Ice Lich', 1150, 6, { x: HUB_WALL_E, z: HUB_SEAL_Z, facing: 'e' }, 'frostsigil'),
|
|
33
|
+
lab: room('lab', 'The Lower Laboratory', 'Something in the vats is still bubbling.', 'frostalchemist', 'Frost Alchemist', 1150, 50, { x: HUB_WALL_E, z: HUB_MIN_Z + 24, facing: 'e' }, 'crystalphial'),
|
|
34
|
+
core: room('core', 'The Final Core', 'The cold here has a heartbeat.', 'glacialbehemoth', 'Glacial Behemoth', 1118, 50, { x: HUB_CX, z: HUB_MIN_Z - 1, facing: 'n' }),
|
|
35
|
+
};
|
|
36
|
+
export const ICE_DEPTHS_ROOM_IDS = ['rune', 'hollow', 'ritual', 'lab', 'core'];
|
|
37
|
+
/** Wall margin included: rock, lighting and colouring cover the rock between the rooms. */
|
|
38
|
+
export const ICE_DEPTHS_BOUNDS = {
|
|
39
|
+
minX: UNDERGROUND_ORIGIN_X + 154,
|
|
40
|
+
maxX: GRID_WIDTH - 1,
|
|
41
|
+
minZ: 0,
|
|
42
|
+
maxZ: 100,
|
|
43
|
+
};
|
|
44
|
+
export function inIceDepths(x, z) {
|
|
45
|
+
return x >= ICE_DEPTHS_BOUNDS.minX && x <= ICE_DEPTHS_BOUNDS.maxX && z >= ICE_DEPTHS_BOUNDS.minZ && z <= ICE_DEPTHS_BOUNDS.maxZ;
|
|
46
|
+
}
|
|
47
|
+
/** The room whose floor rectangle holds the tile, wall tiles excluded. */
|
|
48
|
+
export function iceDepthsRoomAt(x, z) {
|
|
49
|
+
for (const id of ICE_DEPTHS_ROOM_IDS) {
|
|
50
|
+
const r = ICE_DEPTHS_ROOMS[id];
|
|
51
|
+
if (x >= r.minX && x <= r.maxX && z >= r.minZ && z <= r.maxZ)
|
|
52
|
+
return id;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Portal arches are rune arches whose style carries `portal-<room>` (into
|
|
58
|
+
* a room) or `portal-hub` (back to the shrine), after the facing letter and,
|
|
59
|
+
* for the lift, the `sealed` token that keeps the slab drawn:
|
|
60
|
+
* `w-portal-rune`, `s-portal-hub`, `n-sealed-portal-core`.
|
|
61
|
+
*/
|
|
62
|
+
export const ICE_DEPTHS_PORTAL_TOKEN = 'portal-';
|
|
63
|
+
export function iceDepthsPortalTarget(style) {
|
|
64
|
+
if (typeof style !== 'string')
|
|
65
|
+
return null;
|
|
66
|
+
const i = style.indexOf(ICE_DEPTHS_PORTAL_TOKEN);
|
|
67
|
+
if (i < 0)
|
|
68
|
+
return null;
|
|
69
|
+
const target = style.slice(i + ICE_DEPTHS_PORTAL_TOKEN.length);
|
|
70
|
+
if (target === 'hub')
|
|
71
|
+
return 'hub';
|
|
72
|
+
return ICE_DEPTHS_ROOM_IDS.includes(target) ? target : null;
|
|
73
|
+
}
|
|
74
|
+
export function iceDepthsPortalStyle(facing, target, sealed = false) {
|
|
75
|
+
return `${facing}-${sealed ? 'sealed-' : ''}${ICE_DEPTHS_PORTAL_TOKEN}${target}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Boss levels and max hits (backend npcs.ts reads these; the game guide
|
|
79
|
+
* prints them). Raised on 2026-09-22 with the level cap at 60 (James:
|
|
80
|
+
* "frozen bosses can be higher levels"): the Alchemist is the first wing a
|
|
81
|
+
* level-50 party should try, the Behemoth sits ten past the cap. Order
|
|
82
|
+
* also fixes the Frozen equipment drop odds (ICE_DEPTHS_BOSS_TIER).
|
|
83
|
+
*/
|
|
84
|
+
export const ICE_DEPTHS_BOSS_STATS = {
|
|
85
|
+
frostalchemist: { level: 52, maxHit: 28 },
|
|
86
|
+
frostwarden: { level: 55, maxHit: 30 },
|
|
87
|
+
bonechillyeti: { level: 58, maxHit: 36 },
|
|
88
|
+
icelich: { level: 62, maxHit: 34 },
|
|
89
|
+
glacialbehemoth: { level: 70, maxHit: 48 },
|
|
90
|
+
};
|
|
91
|
+
/** The bosses, where they stand, and the scale the client draws them at (player-rig giants). */
|
|
92
|
+
export const ICE_DEPTHS_BOSS_SPAWNS = ICE_DEPTHS_ROOM_IDS.map((id) => {
|
|
93
|
+
const r = ICE_DEPTHS_ROOMS[id];
|
|
94
|
+
const scale = r.boss === 'bonechillyeti' ? 2.05 : r.boss === 'glacialbehemoth' ? 2.4 : r.boss === 'frostwarden' ? 1.2 : undefined;
|
|
95
|
+
return { kind: r.boss, room: id, x: r.bossSpawn.x, z: r.bossSpawn.z, scale };
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* The Depths' own dressing, one entity kind styled by token (the dreadprop
|
|
99
|
+
* pattern). Solid unless listed in ICE_DEPTHS_PROP_WALK_THROUGH.
|
|
100
|
+
*
|
|
101
|
+
* obelisk a black monolith with a glowing diamond rune (the ring round an arena)
|
|
102
|
+
* wolfstatue-<f> a stone wolf seated on a plinth, facing n/s/e/w
|
|
103
|
+
* coffin, coffin-ew a stone sarcophagus, lid ajar, long on z or on x
|
|
104
|
+
* ribcage a beast's ribcage in the ice
|
|
105
|
+
* throne the Lich's throne of black stone and ice on its own step
|
|
106
|
+
* altar a ritual altar with a skull and a lit rune
|
|
107
|
+
* vat-red|blue|green a great cauldron glowing that colour, steam over it
|
|
108
|
+
* tube a glass specimen tube on an iron base with a figure frozen in it
|
|
109
|
+
* pipe-ns|ew|corner a run of ice-glass pipe on iron stands (corner turns n to e)
|
|
110
|
+
* valve-red|blue|green a valve wheel on a pedestal
|
|
111
|
+
* shelf a potion shelf, bottles glowing
|
|
112
|
+
* bench the alchemist's bench with a burner and flasks
|
|
113
|
+
* grate an iron floor grate (walk-through)
|
|
114
|
+
* medallion the snowflake medallion set in the floor, three tiles across (walk-through)
|
|
115
|
+
* runecircle a glowing rune circle on the floor, three tiles across (walk-through)
|
|
116
|
+
* spill-red|blue|green a spill of reagent across the floor (walk-through)
|
|
117
|
+
* lantern-red|blue|green a lantern hung from the dark on a chain (walk-through)
|
|
118
|
+
* ladder a ladder up the rock face (walk-through)
|
|
119
|
+
* brazier-blue a pedestal brazier burning cold blue
|
|
120
|
+
* chest an iron-bound chest of the Warden's things
|
|
121
|
+
*/
|
|
122
|
+
export const ICE_DEPTHS_PROP_STYLES = [
|
|
123
|
+
'obelisk', 'wolfstatue-n', 'wolfstatue-s', 'wolfstatue-e', 'wolfstatue-w', 'coffin', 'coffin-ew', 'ribcage', 'throne', 'altar',
|
|
124
|
+
'vat-red', 'vat-blue', 'vat-green', 'tube', 'pipe-ns', 'pipe-ew', 'pipe-corner', 'valve-red', 'valve-blue', 'valve-green',
|
|
125
|
+
'shelf', 'bench', 'grate', 'medallion', 'runecircle', 'spill-red', 'spill-blue', 'spill-green',
|
|
126
|
+
'lantern-red', 'lantern-blue', 'lantern-green', 'ladder', 'brazier-blue', 'chest',
|
|
127
|
+
];
|
|
128
|
+
/** Solid or floor, by style: see iceDepthsPropBlocks in constants.ts. */
|
|
129
|
+
export { iceDepthsPropBlocks };
|
|
130
|
+
/** The drops that are not equipment, so the guide can group them. */
|
|
131
|
+
export const ICE_DEPTHS_MATERIAL_KINDS = ['bonechillpelt', 'glacialore', 'frozencore', 'behemothcrystalshard'];
|
|
132
|
+
//# sourceMappingURL=iceDepths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iceDepths.js","sourceRoot":"","sources":["../src/iceDepths.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,4 +28,13 @@ export * from './adventure.js';
|
|
|
28
28
|
export * from './brokenRoad.js';
|
|
29
29
|
export * from './bloodRiver.js';
|
|
30
30
|
export * from './capital.js';
|
|
31
|
+
export * from './harbour.js';
|
|
32
|
+
export * from './iceDepths.js';
|
|
33
|
+
export * from './questGuide.js';
|
|
34
|
+
export * from './frozenSet.js';
|
|
35
|
+
export * from './interiorFurniture.js';
|
|
36
|
+
export * from './dungeonCharts.js';
|
|
37
|
+
export * from './charcoal.js';
|
|
38
|
+
export * from './dragonfire.js';
|
|
39
|
+
export * from './bearFloes.js';
|
|
31
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -28,4 +28,13 @@ export * from './adventure.js';
|
|
|
28
28
|
export * from './brokenRoad.js';
|
|
29
29
|
export * from './bloodRiver.js';
|
|
30
30
|
export * from './capital.js';
|
|
31
|
+
export * from './harbour.js';
|
|
32
|
+
export * from './iceDepths.js';
|
|
33
|
+
export * from './questGuide.js';
|
|
34
|
+
export * from './frozenSet.js';
|
|
35
|
+
export * from './interiorFurniture.js';
|
|
36
|
+
export * from './dungeonCharts.js';
|
|
37
|
+
export * from './charcoal.js';
|
|
38
|
+
export * from './dragonfire.js';
|
|
39
|
+
export * from './bearFloes.js';
|
|
31
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|