@dreadwood-types/types 0.1.322 → 0.1.324
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/attackableNpcs.d.ts.map +1 -1
- package/dist/attackableNpcs.js +2 -0
- package/dist/attackableNpcs.js.map +1 -1
- package/dist/bossSignatures.d.ts +1 -1
- package/dist/bossSignatures.d.ts.map +1 -1
- package/dist/bossSignatures.js +6 -0
- package/dist/bossSignatures.js.map +1 -1
- package/dist/campKitchens.d.ts.map +1 -1
- package/dist/campKitchens.js +9 -0
- package/dist/campKitchens.js.map +1 -1
- package/dist/campTraders.d.ts.map +1 -1
- package/dist/campTraders.js +12 -0
- package/dist/campTraders.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/deepSeam.js +1 -1
- package/dist/deepSeam.js.map +1 -1
- package/dist/expandedContracts.d.ts.map +1 -1
- package/dist/expandedContracts.js +2 -1
- package/dist/expandedContracts.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/knuckleboneIslesQuest.js +2 -2
- package/dist/knuckleboneIslesQuest.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/legacy.d.ts.map +1 -1
- package/dist/legacy.js +3 -0
- package/dist/legacy.js.map +1 -1
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +31 -0
- package/dist/quests.js.map +1 -1
- package/dist/rangersRest.d.ts +253 -0
- package/dist/rangersRest.d.ts.map +1 -0
- package/dist/rangersRest.js +278 -0
- package/dist/rangersRest.js.map +1 -0
- package/dist/rangersRestDens.d.ts +118 -0
- package/dist/rangersRestDens.d.ts.map +1 -0
- package/dist/rangersRestDens.js +165 -0
- package/dist/rangersRestDens.js.map +1 -0
- package/dist/rangersRestQuestDef.d.ts +34 -0
- package/dist/rangersRestQuestDef.d.ts.map +1 -0
- package/dist/rangersRestQuestDef.js +256 -0
- package/dist/rangersRestQuestDef.js.map +1 -0
- package/dist/storyQuests.d.ts +1 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +17 -0
- package/dist/storyQuests.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { greenwoodBrookX } from './greenwoodWilds.js';
|
|
2
|
+
export const RANGERS_REST_ID = 'rangers-rest';
|
|
3
|
+
export const RANGERS_REST_NAME = "Ranger's Rest";
|
|
4
|
+
export const RANGERS_REST_LEVELS = { min: 21, max: 30 };
|
|
5
|
+
/** The whole reach: land tiles only (the south coast bites into it from x 1640 at z 1274 to x 1700 at z 1300). */
|
|
6
|
+
export const RANGERS_REST_BOX = { minX: 1646, maxX: 1789, minZ: 1204, maxZ: 1290 };
|
|
7
|
+
export function inRangersRestBox(x, z, pad = 0) {
|
|
8
|
+
const b = RANGERS_REST_BOX;
|
|
9
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
10
|
+
}
|
|
11
|
+
/** The camp's ground (bare earth), east of the brook. */
|
|
12
|
+
export const RANGERS_CAMP_BOX = { minX: 1740, maxX: 1758, minZ: 1208, maxZ: 1230 };
|
|
13
|
+
export function inRangersCamp(x, z, pad = 0) {
|
|
14
|
+
const b = RANGERS_CAMP_BOX;
|
|
15
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
16
|
+
}
|
|
17
|
+
export const RANGERS_CAMP_DISCOVERY_ZONE = { id: RANGERS_REST_ID, label: RANGERS_REST_NAME, coordinateFrame: 'world', ...RANGERS_CAMP_BOX };
|
|
18
|
+
/** The road corridor claimed on the program board: nobody else builds in x 1788-1791, z 1096-1206. */
|
|
19
|
+
export const RANGERS_ROAD_CORRIDOR = { minX: 1788, maxX: 1791, minZ: 1096, maxZ: 1206 };
|
|
20
|
+
/** The roads (world polylines, width in tiles), laid as Path. The first starts on the Brindle Road's west end tile. */
|
|
21
|
+
export const RANGERS_PATHS = [
|
|
22
|
+
{ id: 'rangers-road', w: 3, pts: [[1790, 1094], [1790, 1170], [1790, 1208], [1782, 1216], [1762, 1220]] },
|
|
23
|
+
{ id: 'pen-lane', w: 2, pts: [[1776, 1218], [1777, 1228]] },
|
|
24
|
+
{ id: 'ford-lane', w: 2, pts: [[1750, 1230], [1742, 1234], [1734, 1236]] },
|
|
25
|
+
{ id: 'west-track', w: 2, pts: [[1726, 1236], [1716, 1240], [1700, 1246], [1686, 1254], [1674, 1262]] },
|
|
26
|
+
];
|
|
27
|
+
// ---- The Run: the Mossy Brook's south reach ------------------------------------------------------------------------------------------
|
|
28
|
+
/** The stream: three tiles of water (half 1) from the Greenwood's last brook row to its pool, on the brook's own sine line. */
|
|
29
|
+
export const RANGERS_RUN = { minZ: 1201, maxZ: 1268, half: 1 };
|
|
30
|
+
export function rangersRunX(z) {
|
|
31
|
+
return greenwoodBrookX(z);
|
|
32
|
+
}
|
|
33
|
+
/** The pool the run ends in. */
|
|
34
|
+
export const RANGERS_POOL = { cx: 1734, cz: 1273, radius: 4 };
|
|
35
|
+
/** The ford: sand rows under the timber bridge (walkable). */
|
|
36
|
+
export const RANGERS_BRIDGE = { id: 'rr-bridge', model: 'hbfordbridge', facing: 'e', x: rangersRunX(1236), z: 1236 };
|
|
37
|
+
export function inRangersFordRows(x, z) {
|
|
38
|
+
return z >= RANGERS_BRIDGE.z - 1 && z <= RANGERS_BRIDGE.z + 1 && Math.abs(x - RANGERS_BRIDGE.x) <= 4;
|
|
39
|
+
}
|
|
40
|
+
/** Is this tile water of the run or its pool (the ford's rows are a sand strip, not water)? */
|
|
41
|
+
export function inRangersWater(x, z) {
|
|
42
|
+
if (inRangersFordRows(x, z))
|
|
43
|
+
return false;
|
|
44
|
+
const p = RANGERS_POOL;
|
|
45
|
+
if (z >= RANGERS_RUN.minZ && z <= RANGERS_RUN.maxZ && Math.abs(x - rangersRunX(z)) <= RANGERS_RUN.half)
|
|
46
|
+
return true;
|
|
47
|
+
return Math.hypot(x - p.cx, z - p.cz) <= p.radius;
|
|
48
|
+
}
|
|
49
|
+
/** Three timber pegs on the run's east bank (stand-ins, `fishingpeg`, style = the side facing the water), one beside each river spot. */
|
|
50
|
+
export const RANGERS_PEG_ROWS = [1244, 1250, 1256];
|
|
51
|
+
export const RANGERS_PEGS = RANGERS_PEG_ROWS.map((z, i) => ({
|
|
52
|
+
id: `rr-peg-${i + 1}`,
|
|
53
|
+
x: rangersRunX(z) + 2,
|
|
54
|
+
z,
|
|
55
|
+
style: 'w',
|
|
56
|
+
}));
|
|
57
|
+
/** Where the river fish rise: the run's east-most water tile beside each peg (kind `river`, the Salmon Leap's fly tackle). */
|
|
58
|
+
export const RANGERS_RIVER_SPOTS = RANGERS_PEG_ROWS.map((z) => ({ x: rangersRunX(z) + 1, z }));
|
|
59
|
+
const kit = (id, model, x, z, scale) => ({ id, kind: 'dreadmodel', style: `${model}-s`, x, z, ...(scale ? { scale } : {}) });
|
|
60
|
+
const lamp = (id, x, z) => kit(id, 'townlantern1x1', x, z);
|
|
61
|
+
/** The camp's pieces and working stations. */
|
|
62
|
+
export const RANGERS_CAMP_PIECES = [
|
|
63
|
+
kit('rr-smithy', 'bcsmithy', 1744, 1212),
|
|
64
|
+
kit('rr-cookhouse', 'towncookhouse5x3', 1751, 1212),
|
|
65
|
+
kit('rr-quench', 'hbtrough', 1741, 1216),
|
|
66
|
+
kit('rr-racks', 'toolrack', 1741, 1220),
|
|
67
|
+
kit('rr-logs', 'birchlogpile', 1741, 1224),
|
|
68
|
+
kit('rr-crates', 'hbcrates', 1752, 1225),
|
|
69
|
+
kit('rr-sacks', 'hubsack', 1752, 1222),
|
|
70
|
+
kit('rr-cratestack', 'evcratestack', 1750, 1228),
|
|
71
|
+
kit('rr-wagon', 'hbtinkerwagon', 1744, 1228),
|
|
72
|
+
kit('rr-bench', 'hbbench', 1747, 1220),
|
|
73
|
+
{ id: 'rr-barrel', kind: 'barrel', style: 'barrel', x: 1742, z: 1229, scale: 1 },
|
|
74
|
+
lamp('rr-lamp-ne', 1753, 1210),
|
|
75
|
+
lamp('rr-lamp-se', 1753, 1220),
|
|
76
|
+
lamp('rr-lamp-nw', 1741, 1210),
|
|
77
|
+
lamp('rr-lamp-sw', 1742, 1218),
|
|
78
|
+
{ id: 'rr-furnace', kind: 'furnace', style: '', x: 1743, z: 1217 },
|
|
79
|
+
{ id: 'rr-anvil', kind: 'anvil', style: '', x: 1745, z: 1217 },
|
|
80
|
+
{ id: 'rr-bench-station', kind: 'workbench', style: 'face0', x: 1747, z: 1218 },
|
|
81
|
+
{ id: 'rr-stove', kind: 'stove', style: '', x: 1751, z: 1217 },
|
|
82
|
+
{ id: 'rr-fire', kind: 'campfire', style: 'beach-pit', x: 1749, z: 1222, scale: 1 },
|
|
83
|
+
{ id: 'rr-board', kind: 'bountyboard', style: 'wall-s', x: 1748, z: 1226 },
|
|
84
|
+
{ id: 'rr-bank', kind: 'bankchest', style: '', x: 1755, z: 1222, scale: 1.25 },
|
|
85
|
+
];
|
|
86
|
+
/** The pen: a fenced stable yard east of the camp. The gate gap is on the north side where the pen lane comes in. */
|
|
87
|
+
export const RANGERS_PEN_BOX = { minX: 1768, maxX: 1786, minZ: 1226, maxZ: 1244 };
|
|
88
|
+
export const RANGERS_PEN_GATE = { minX: 1776, maxX: 1778, z: 1226 };
|
|
89
|
+
export function rangersPenFence() {
|
|
90
|
+
const b = RANGERS_PEN_BOX;
|
|
91
|
+
const out = [];
|
|
92
|
+
for (let x = b.minX; x <= b.maxX; x++) {
|
|
93
|
+
if (!(x >= RANGERS_PEN_GATE.minX && x <= RANGERS_PEN_GATE.maxX))
|
|
94
|
+
out.push(kit(`rr-fence-${x}-${b.minZ}`, 'townfencebit1x1', x, b.minZ));
|
|
95
|
+
out.push(kit(`rr-fence-${x}-${b.maxZ}`, 'townfencebit1x1', x, b.maxZ));
|
|
96
|
+
}
|
|
97
|
+
for (let z = b.minZ + 1; z < b.maxZ; z++) {
|
|
98
|
+
out.push(kit(`rr-fence-${b.minX}-${z}`, 'townfencebit1x1', b.minX, z));
|
|
99
|
+
out.push(kit(`rr-fence-${b.maxX}-${z}`, 'townfencebit1x1', b.maxX, z));
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
export const RANGERS_PEN_PIECES = [
|
|
104
|
+
kit('rr-pen-stable', 'hbstable', 1773, 1240),
|
|
105
|
+
kit('rr-pen-trough', 'hbtroughlarge', 1782, 1236),
|
|
106
|
+
kit('rr-pen-hay-1', 'hbhaybales', 1770, 1232),
|
|
107
|
+
kit('rr-pen-hay-2', 'hbhaybales', 1783, 1241),
|
|
108
|
+
kit('rr-pen-hitch', 'hbhitchpost', 1779, 1230),
|
|
109
|
+
kit('rr-pen-gate', 'pengate', RANGERS_PEN_GATE.minX + 1, RANGERS_PEN_GATE.z),
|
|
110
|
+
lamp('rr-pen-lamp', 1775, 1227),
|
|
111
|
+
];
|
|
112
|
+
/** Whinstone Knoll: iron and coal seams south-east of the camp (ORE_ROCK_KIND styles). Iron is Mining 15, coal 22 (mining.ts). */
|
|
113
|
+
export const RANGERS_SEAMS = [
|
|
114
|
+
{ id: 'rr-seam-coal-1', x: 1752, z: 1252, style: 'coal' },
|
|
115
|
+
{ id: 'rr-seam-coal-2', x: 1756, z: 1252, style: 'coal' },
|
|
116
|
+
{ id: 'rr-seam-iron-1', x: 1753, z: 1256, style: 'iron' },
|
|
117
|
+
{ id: 'rr-seam-iron-2', x: 1757, z: 1256, style: 'iron' },
|
|
118
|
+
{ id: 'rr-seam-iron-3', x: 1761, z: 1256, style: 'iron' },
|
|
119
|
+
];
|
|
120
|
+
export const RANGERS_KNOLL_BOX = { minX: 1748, maxX: 1764, minZ: 1248, maxZ: 1260 };
|
|
121
|
+
/** Herb patches (HerbKind, types potionMaking.ts): ironwort 22, nightshade 25, marsh marigold 29 (by the water). Placed on the nearest bare grass. */
|
|
122
|
+
export const RANGERS_HERBS = [
|
|
123
|
+
{ herb: 'ironwort', x: 1722, z: 1223 }, { herb: 'ironwort', x: 1738, z: 1262 },
|
|
124
|
+
{ herb: 'nightshade', x: 1712, z: 1230 }, { herb: 'nightshade', x: 1744, z: 1270 },
|
|
125
|
+
{ herb: 'marshmarigold', x: 1723, z: 1215 }, { herb: 'marshmarigold', x: 1737, z: 1246 }, { herb: 'marshmarigold', x: 1738, z: 1280 },
|
|
126
|
+
];
|
|
127
|
+
/** Wild supplies (forage patches): blackberries on the knoll's far side and the trail, field mushrooms under the grove. */
|
|
128
|
+
export const RANGERS_FORAGE = [
|
|
129
|
+
{ forage: 'blackberries', x: 1786, z: 1252 }, { forage: 'blackberries', x: 1780, z: 1258 }, { forage: 'blackberries', x: 1684, z: 1240 },
|
|
130
|
+
{ forage: 'fieldmushroom', x: 1760, z: 1268 }, { forage: 'fieldmushroom', x: 1770, z: 1266 }, { forage: 'fieldmushroom', x: 1712, z: 1214 },
|
|
131
|
+
];
|
|
132
|
+
/** Ranger's Grove: felling trees (spruce Woodwork 15, alder 25, ash 30), planted on free grass by species weight. */
|
|
133
|
+
export const RANGERS_GROVE = {
|
|
134
|
+
id: 'rangers-grove',
|
|
135
|
+
box: { minX: 1746, maxX: 1786, minZ: 1264, maxZ: 1284 },
|
|
136
|
+
species: [['spruce', 0.5], ['ash', 0.8], ['alder', 1]],
|
|
137
|
+
chance: 0.2,
|
|
138
|
+
};
|
|
139
|
+
/** The signs (the placard signpost). */
|
|
140
|
+
export const RANGERS_SIGNS = [
|
|
141
|
+
{ id: 'rr-sign-road', x: 1787, z: 1204, text: "Ranger's Rest, south of the Greenwood Wilds. A camp with a bank, a smith and a hot pot for rangers and hunters of Combat 21 and over." },
|
|
142
|
+
{ id: 'rr-sign-camp', x: 1763, z: 1222, text: "Ranger's Rest. The bank chest and the Bounty Board are by the fire, the smithy west of it. The Mossy Brook runs by the ford." },
|
|
143
|
+
{ id: 'rr-sign-ford', x: 1733, z: 1233, text: "The Run. The Mossy Brook runs on south from the Wilds to the pool. Fly-fishing pegs below the camp: Grayling from Fishing 25, Arctic Char from 33." },
|
|
144
|
+
{ id: 'rr-sign-pen', x: 1775, z: 1224, text: "The Rangers' Pen. Hounds and horses stabled here. Mind the gate." },
|
|
145
|
+
{ id: 'rr-sign-trail', x: 1710, z: 1242, text: "The Ranger's Trail. Five posts, in order, east to west. A post out of turn and the trail goes cold." },
|
|
146
|
+
{ id: 'rr-sign-hide', x: 1706, z: 1258, text: "The Poachers' Hide ahead. Snares in the grass and men who set them. Combat 25 and over." },
|
|
147
|
+
];
|
|
148
|
+
export const RANGERS_FOLK_NAMES = {
|
|
149
|
+
tracker: 'Tracker Idris Mallow',
|
|
150
|
+
fletcher: 'Fletcher Lorcan Teague',
|
|
151
|
+
warden: 'Warden Corra Haldane',
|
|
152
|
+
kennelman: 'Kennelman Dob Harrow',
|
|
153
|
+
captain: 'Ranger-Captain Sabine Thorley',
|
|
154
|
+
};
|
|
155
|
+
const CAMP_PLACE = "Ranger's Rest, the Greenwood's south reach";
|
|
156
|
+
/** The five residents (named residents on the default look, stationary): the camp's cook is in campTraders.ts. */
|
|
157
|
+
export const RANGERS_FOLK = [
|
|
158
|
+
{
|
|
159
|
+
id: 'rr-tracker',
|
|
160
|
+
name: RANGERS_FOLK_NAMES.tracker,
|
|
161
|
+
place: CAMP_PLACE,
|
|
162
|
+
x: 1755, z: 1226, faceX: 1753, faceZ: 1226, leash: 1,
|
|
163
|
+
speak: "Idris Mallow, tracker. I read the ground so the others do not have to: what walked here, how heavy, how long ago. South of the brook it is lynx and mole, and now and then a boot that has no business being there.",
|
|
164
|
+
extras: [{ id: 'sign', label: 'The sign', say: "Fresh prints are sharp at the edges and wet at the bottom. A lynx's are round with no claw marks. A man's boots are the ones that turn around and go back the way they came, because he has remembered something." }],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: 'rr-fletcher',
|
|
168
|
+
name: RANGERS_FOLK_NAMES.fletcher,
|
|
169
|
+
place: CAMP_PLACE,
|
|
170
|
+
x: 1744, z: 1226, faceX: 1746, faceZ: 1226, leash: 1,
|
|
171
|
+
speak: "Lorcan Teague, fletcher. Spruce for the quick light bow, ash for the heavy one, and a camp that burns through arrows faster than I can split shafts. There is a grove south of the knoll with both, if you have the arm for it.",
|
|
172
|
+
extras: [{ id: 'wood', label: 'The grove', say: "Spruce you can fell from Woodwork 15 and ash from 30, and an ash is a rare thing, so do not fell the young ones. Bring the logs here and I will tell you what they are good for." }],
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: 'rr-warden',
|
|
176
|
+
name: RANGERS_FOLK_NAMES.warden,
|
|
177
|
+
place: CAMP_PLACE,
|
|
178
|
+
x: 1757, z: 1214, faceX: 1755, faceZ: 1214, leash: 1,
|
|
179
|
+
speak: "Corra Haldane, warden of the south reach. Somebody has been setting snares across the game trails and taking what he finds, and he does it with a crew. They have a hide in the thicket south of the brook. I would like it closed.",
|
|
180
|
+
extras: [{ id: 'hide', label: 'The Hide', say: "A hollow in the thicket west of the pool, hung with nets. Their master throws a weighted net when he is pressed, and the cord is told a turn ahead: step out of the ring and it drops on nothing." }],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
id: 'rr-kennelman',
|
|
184
|
+
name: RANGERS_FOLK_NAMES.kennelman,
|
|
185
|
+
place: "the Rangers' Pen, Ranger's Rest",
|
|
186
|
+
x: 1777, z: 1230, faceX: 1777, faceZ: 1228, leash: 1,
|
|
187
|
+
speak: "Dob Harrow, kennelman. I keep the hounds and the horses, and I lose one of them about once a month. Brindle slipped her lead at dawn and has not come home. She is a good dog and a stupid one.",
|
|
188
|
+
extras: [{ id: 'hounds', label: 'The hounds', say: "They follow a trail better than any of us. A lost one leaves her collar, her prints and the bones she has buried, in that order, and then she sits by whatever she has decided to guard." }],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: 'rr-captain',
|
|
192
|
+
name: RANGERS_FOLK_NAMES.captain,
|
|
193
|
+
place: CAMP_PLACE,
|
|
194
|
+
x: 1746, z: 1223, faceX: 1749, faceZ: 1222, leash: 1,
|
|
195
|
+
speak: "Sabine Thorley, ranger-captain. Every ranger who has walked out of this camp has walked the Trail first: five posts in the west wood, in order, east to west, with the roots for company. It teaches you to look before you step.",
|
|
196
|
+
extras: [{ id: 'trial', label: 'The Trial', say: "A post out of turn and the trail goes cold and you start again from the first. I do not mind, and the roots do not either. When you have touched all five I would like a word." }],
|
|
197
|
+
},
|
|
198
|
+
];
|
|
199
|
+
export function rangersFolkByName(name) {
|
|
200
|
+
return name ? RANGERS_FOLK.find((p) => p.name === name) ?? null : null;
|
|
201
|
+
}
|
|
202
|
+
/** The camp's cook, which lives in CAMP_TRADERS (campTraders.ts) beside the other camps' cooks. */
|
|
203
|
+
export const RANGERS_CAMP_COOK = { id: 'camp-rangers-rest', name: 'Mags Fernley', x: 1750, z: 1220, faceX: 1749, faceZ: 1222 };
|
|
204
|
+
// ---- Quest props -----------------------------------------------------------------------------------------------------------------------
|
|
205
|
+
export const RR_PROP = { track: 'rrtrack', post: 'rrpost', hound: 'rrhound', snare: 'rrsnare' };
|
|
206
|
+
/** Fresh Sign: four sets of tracks on the way round the dens. */
|
|
207
|
+
export const RR_TRACK_LYNX = { id: 'rr-track-lynx', x: 1668, z: 1230, style: `${RR_PROP.track}:lynx` };
|
|
208
|
+
export const RR_TRACK_STAG = { id: 'rr-track-stag', x: 1700, z: 1228, style: `${RR_PROP.track}:stag` };
|
|
209
|
+
export const RR_TRACK_BOOT = { id: 'rr-track-boot', x: 1702, z: 1260, style: `${RR_PROP.track}:boot` };
|
|
210
|
+
export const RR_TRACK_BRANCH = { id: 'rr-track-branch', x: 1722, z: 1250, style: `${RR_PROP.track}:branch` };
|
|
211
|
+
/** The Ranger's Trial: five posts east to west, an ORDERED touch. */
|
|
212
|
+
export const RR_POST_1 = { id: 'rr-post-1', x: 1712, z: 1244, style: `${RR_PROP.post}:1` };
|
|
213
|
+
export const RR_POST_2 = { id: 'rr-post-2', x: 1696, z: 1232, style: `${RR_PROP.post}:2` };
|
|
214
|
+
export const RR_POST_3 = { id: 'rr-post-3', x: 1682, z: 1242, style: `${RR_PROP.post}:3` };
|
|
215
|
+
export const RR_POST_4 = { id: 'rr-post-4', x: 1668, z: 1254, style: `${RR_PROP.post}:4` };
|
|
216
|
+
export const RR_POST_5 = { id: 'rr-post-5', x: 1654, z: 1236, style: `${RR_PROP.post}:5` };
|
|
217
|
+
export const RR_POST_ORDER = [RR_POST_1.style, RR_POST_2.style, RR_POST_3.style, RR_POST_4.style, RR_POST_5.style];
|
|
218
|
+
/** A Hound Gone Astray: the collar, the prints, the buried bone, and Brindle herself. */
|
|
219
|
+
export const RR_HOUND_COLLAR = { id: 'rr-hound-collar', x: 1716, z: 1214, style: `${RR_PROP.hound}:collar` };
|
|
220
|
+
export const RR_HOUND_PRINTS = { id: 'rr-hound-prints', x: 1681, z: 1218, style: `${RR_PROP.hound}:prints` };
|
|
221
|
+
export const RR_HOUND_BONE = { id: 'rr-hound-bone', x: 1670, z: 1238, style: `${RR_PROP.hound}:bone` };
|
|
222
|
+
export const RR_HOUND_BRINDLE = { id: 'rr-hound-brindle', x: 1660, z: 1250, style: `${RR_PROP.hound}:brindle` };
|
|
223
|
+
/** Snares in the Dark: three poachers' snares at the Hide's edge. */
|
|
224
|
+
export const RR_SNARE_1 = { id: 'rr-snare-1', x: 1704, z: 1261, style: `${RR_PROP.snare}:1` };
|
|
225
|
+
export const RR_SNARE_2 = { id: 'rr-snare-2', x: 1714, z: 1261, style: `${RR_PROP.snare}:2` };
|
|
226
|
+
export const RR_SNARE_3 = { id: 'rr-snare-3', x: 1725, z: 1268, style: `${RR_PROP.snare}:3` };
|
|
227
|
+
export const RANGERS_QUEST_PROPS = [
|
|
228
|
+
RR_TRACK_LYNX, RR_TRACK_STAG, RR_TRACK_BOOT, RR_TRACK_BRANCH,
|
|
229
|
+
RR_POST_1, RR_POST_2, RR_POST_3, RR_POST_4, RR_POST_5,
|
|
230
|
+
RR_HOUND_COLLAR, RR_HOUND_PRINTS, RR_HOUND_BONE, RR_HOUND_BRINDLE,
|
|
231
|
+
RR_SNARE_1, RR_SNARE_2, RR_SNARE_3,
|
|
232
|
+
];
|
|
233
|
+
export const RANGERS_QUEST_PROP_NAMES = {
|
|
234
|
+
[RR_TRACK_LYNX.style]: 'Lynx Tracks',
|
|
235
|
+
[RR_TRACK_STAG.style]: 'Stag Tracks',
|
|
236
|
+
[RR_TRACK_BOOT.style]: 'Boot Prints',
|
|
237
|
+
[RR_TRACK_BRANCH.style]: 'Dragged Branch',
|
|
238
|
+
[RR_POST_1.style]: 'Trail Post (First)',
|
|
239
|
+
[RR_POST_2.style]: 'Trail Post (Second)',
|
|
240
|
+
[RR_POST_3.style]: 'Trail Post (Third)',
|
|
241
|
+
[RR_POST_4.style]: 'Trail Post (Fourth)',
|
|
242
|
+
[RR_POST_5.style]: 'Trail Post (Fifth)',
|
|
243
|
+
[RR_HOUND_COLLAR.style]: "Brindle's Collar",
|
|
244
|
+
[RR_HOUND_PRINTS.style]: 'Hound Prints',
|
|
245
|
+
[RR_HOUND_BONE.style]: 'Buried Bone',
|
|
246
|
+
[RR_HOUND_BRINDLE.style]: 'Brindle',
|
|
247
|
+
[RR_SNARE_1.style]: "Poacher's Snare (West)",
|
|
248
|
+
[RR_SNARE_2.style]: "Poacher's Snare (Middle)",
|
|
249
|
+
[RR_SNARE_3.style]: "Poacher's Snare (East)",
|
|
250
|
+
};
|
|
251
|
+
/** The model a Ranger's Rest quest prop draws with (frontend quest-prop models that already exist), or null if not one of them. */
|
|
252
|
+
export function rangersPropModel(prop) {
|
|
253
|
+
if (prop === RR_PROP.track)
|
|
254
|
+
return 'questhogtracks';
|
|
255
|
+
if (prop === RR_PROP.post)
|
|
256
|
+
return 'questbeacon';
|
|
257
|
+
if (prop === RR_PROP.hound)
|
|
258
|
+
return 'questclue';
|
|
259
|
+
if (prop === RR_PROP.snare)
|
|
260
|
+
return 'questbrokenfence';
|
|
261
|
+
return null;
|
|
262
|
+
}
|
|
263
|
+
/** Standable tiles for teleports, smokes and the helper. */
|
|
264
|
+
export const RANGERS_STANDS = {
|
|
265
|
+
road: { x: 1789, z: 1190 },
|
|
266
|
+
camp: { x: 1752, z: 1224 },
|
|
267
|
+
smithy: { x: 1745, z: 1220 },
|
|
268
|
+
board: { x: 1750, z: 1228 },
|
|
269
|
+
pen: { x: 1777, z: 1229 },
|
|
270
|
+
ford: { x: 1734, z: 1234 },
|
|
271
|
+
pegs: { x: 1735, z: 1247 },
|
|
272
|
+
knoll: { x: 1755, z: 1254 },
|
|
273
|
+
grove: { x: 1766, z: 1262 },
|
|
274
|
+
trail: { x: 1714, z: 1242 },
|
|
275
|
+
};
|
|
276
|
+
/** What the guide, the verify links and the quest helper say about the place. */
|
|
277
|
+
export const RANGERS_PLACE_TEXT = "Ranger's Rest lies in the Greenwood's south reach, down Ranger's Road from the Brindle Road's west end: a smithy with a furnace, an anvil and a workbench, a cookhouse with a hot pot, a bank chest and a Bounty Board by the fire, a stable pen, and three timber pegs on the Mossy Brook's south run for fly-fishing. Iron and coal on Whinstone Knoll, spruce, ash and alder in the Ranger's Grove, and herbs along the run. Five people work it.";
|
|
278
|
+
//# sourceMappingURL=rangersRest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rangersRest.js","sourceRoot":"","sources":["../src/rangersRest.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAW,CAAC;AACjE,kHAAkH;AAClH,MAAM,CAAC,MAAM,gBAAgB,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnG,MAAM,UAAU,gBAAgB,CAAC,CAAS,EAAE,CAAS,EAAE,GAAG,GAAG,CAAC;IAC5D,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;AAC1F,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnG,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,GAAG,GAAG,CAAC;IACzD,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;AAC1F,CAAC;AACD,MAAM,CAAC,MAAM,2BAA2B,GAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;AAE3J,sGAAsG;AACtG,MAAM,CAAC,MAAM,qBAAqB,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAExG,uHAAuH;AACvH,MAAM,CAAC,MAAM,aAAa,GAA+E;IACvG,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;IACzG,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;IAC3D,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;IAC1E,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;CACxG,CAAC;AAEF,yIAAyI;AAEzI,+HAA+H;AAC/H,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AACxE,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAW,CAAC;AACvE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAW,CAAC;AAC9H,MAAM,UAAU,iBAAiB,CAAC,CAAS,EAAE,CAAS;IACpD,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC;AACD,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,CAAS,EAAE,CAAS;IACjD,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,GAAG,YAAY,CAAC;IACvB,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACpH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,yIAAyI;AACzI,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAoE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3H,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;IACrB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IACrB,CAAC;IACD,KAAK,EAAE,GAAY;CACpB,CAAC,CAAC,CAAC;AACJ,8HAA8H;AAC9H,MAAM,CAAC,MAAM,mBAAmB,GAA4C,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAcxI,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS,EAAE,KAAc,EAAe,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnL,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAe,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhG,8CAA8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IACxC,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;IACnD,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IACxC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IACvC,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;IAC1C,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IACxC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;IACtC,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;IAChD,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5C,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;IACtC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;IAChF,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAClE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC9D,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC/E,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC9D,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;IACnF,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC1E,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;CAC/E,CAAC;AAEF,qHAAqH;AACrH,MAAM,CAAC,MAAM,eAAe,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAW,CAAC;AAC7E,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,GAAG,eAAe,CAAC;IAC1B,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AACD,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5C,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;IACjD,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC7C,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;IAC7C,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9C,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,kIAAkI;AAClI,MAAM,CAAC,MAAM,aAAa,GAAoH;IAC5I,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;CAC1D,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpG,sJAAsJ;AACtJ,MAAM,CAAC,MAAM,aAAa,GAA0H;IAClJ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC9E,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAClF,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;CACtI,CAAC;AACF,2HAA2H;AAC3H,MAAM,CAAC,MAAM,cAAc,GAAiH;IAC1I,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IACxI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;CAC5I,CAAC;AACF,qHAAqH;AACrH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,EAAE,eAAe;IACnB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAoB;IACzE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAA6C;IAClG,MAAM,EAAE,GAAG;CACH,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAA0G;IAClI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,uIAAuI,EAAE;IACvL,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,8HAA8H,EAAE;IAC9K,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,oJAAoJ,EAAE;IACpM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,kEAAkE,EAAE;IACjH,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,qGAAqG,EAAE;IACtJ,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,yFAAyF,EAAE;CAC1I,CAAC;AAkBF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,+BAA+B;CAChC,CAAC;AAEX,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAEhE,kHAAkH;AAClH,MAAM,CAAC,MAAM,YAAY,GAA+B;IACtD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,kBAAkB,CAAC,OAAO;QAChC,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,qNAAqN;QAC5N,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,mNAAmN,EAAE,CAAC;KACtQ;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,kBAAkB,CAAC,QAAQ;QACjC,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,iOAAiO;QACxO,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,kLAAkL,EAAE,CAAC;KACtO;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,kBAAkB,CAAC,MAAM;QAC/B,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,qOAAqO;QAC5O,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,mMAAmM,EAAE,CAAC;KACtP;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,kBAAkB,CAAC,SAAS;QAClC,KAAK,EAAE,iCAAiC;QACxC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,iMAAiM;QACxM,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,0LAA0L,EAAE,CAAC;KACjP;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,kBAAkB,CAAC,OAAO;QAChC,KAAK,EAAE,UAAU;QACjB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,EAAE,mOAAmO;QAC1O,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,gLAAgL,EAAE,CAAC;KACrO;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,IAA+B;IAC/D,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC;AAExI,2IAA2I;AAE3I,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAW,CAAC;AAGzG,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;AACpH,MAAM,CAAC,MAAM,aAAa,GAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;AACpH,MAAM,CAAC,MAAM,aAAa,GAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;AACpH,MAAM,CAAC,MAAM,eAAe,GAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;AAC1H,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACxG,MAAM,CAAC,MAAM,SAAS,GAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACxG,MAAM,CAAC,MAAM,SAAS,GAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACxG,MAAM,CAAC,MAAM,SAAS,GAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACxG,MAAM,CAAC,MAAM,SAAS,GAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACtI,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;AAC1H,MAAM,CAAC,MAAM,eAAe,GAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;AAC1H,MAAM,CAAC,MAAM,aAAa,GAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;AACpH,MAAM,CAAC,MAAM,gBAAgB,GAAgB,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;AAC7H,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC3G,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAC3G,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAE3G,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe;IAC5D,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IACrD,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB;IACjE,UAAU,EAAE,UAAU,EAAE,UAAU;CACnC,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa;IACpC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa;IACpC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa;IACpC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,gBAAgB;IACzC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,oBAAoB;IACvC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,qBAAqB;IACxC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,oBAAoB;IACvC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,qBAAqB;IACxC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,oBAAoB;IACvC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,kBAAkB;IAC3C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,cAAc;IACvC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa;IACpC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS;IACnC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,wBAAwB;IAC5C,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,0BAA0B;IAC9C,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,wBAAwB;CAC7C,CAAC;AACF,mIAAmI;AACnI,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,gBAAgB,CAAC;IACpD,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC;IAChD,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAC/C,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,kBAAkB,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC1B,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC1B,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC5B,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC3B,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IACzB,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC1B,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC1B,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;IAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;CACnB,CAAC;AAEX,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAC7B,sbAAsb,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RANGER'S REST'S DENS AND THE SNARE-MASTER (T120, 2026-10-15; plan `.cursor/task-plans/2026-10-15-t120-rangers-rest.md`; rangersRest.ts has the camp).
|
|
3
|
+
* The Greenwood's south reach had no creatures of its own. Three dens of EXISTING kinds (the Greenwood's lynx, mole, bristlehart stag, knuckleroot
|
|
4
|
+
* and thornwood reiver), scaled to levels 22-30, are set on the reach's west and south, in the pattern of the Dwarf Road's dens
|
|
5
|
+
* (dwarfRoadDens.ts, T102): a creature of a den is told apart from the same kind elsewhere by its id (`rrd-<site>-<kind>-<n>`), the backend rolls its
|
|
6
|
+
* level, hit, drops, respawn and aggro from THIS file, and it hunts only a player standing INSIDE its own den's box and gives up at its leash. A den
|
|
7
|
+
* needs no new model, name, icon or guide row.
|
|
8
|
+
*
|
|
9
|
+
* The Snare-Master is the reach's mini-boss (levels 28-29): the poachers' chief, in the Snare Cut south-west of the Hide. Passive until struck like
|
|
10
|
+
* the rest of the west. Every fourth blow is his Net Cast (bossSignatures.ts `net-cast`): he whirls a weighted net and a ring of cord closes round
|
|
11
|
+
* him a full turn ahead; step out of reach and it misses (the E8 step-clear counter). Drawn as a Thornwood Reiver at a larger scale until a model of
|
|
12
|
+
* his own exists (upgrades row `snare-master-model`).
|
|
13
|
+
*
|
|
14
|
+
* Nothing here is 41+. Every number is a PLACEHOLDER for the balance pass. World tiles (x east, z south).
|
|
15
|
+
*/
|
|
16
|
+
import type { LanternWakeBox } from './lanternWake.js';
|
|
17
|
+
import type { DiscoveryZone } from './landmarks.js';
|
|
18
|
+
export type RangersDenKind = 'barkhidelynx' | 'burrowmole' | 'knuckleroot' | 'bristlehartstag' | 'thornreiver';
|
|
19
|
+
export type RangersDenSiteId = 'lynx-brake' | 'rootmoor-hollow' | 'poachers-hide';
|
|
20
|
+
export type RangersDenSpot = {
|
|
21
|
+
readonly x: number;
|
|
22
|
+
readonly z: number;
|
|
23
|
+
readonly leash: number;
|
|
24
|
+
};
|
|
25
|
+
export type RangersDenGroup = {
|
|
26
|
+
readonly kind: RangersDenKind;
|
|
27
|
+
/** Level rolled between these two (each respawn rolls again). */
|
|
28
|
+
readonly level: readonly [number, number];
|
|
29
|
+
readonly maxHit: number;
|
|
30
|
+
/** Health is the band's ordinary health for the rolled level, times this. */
|
|
31
|
+
readonly healthScale: number;
|
|
32
|
+
/** A player this close (tiles) inside the den's box is hunted; the creature gives up this far (leash) from its spot. */
|
|
33
|
+
readonly aggro: number;
|
|
34
|
+
readonly leashRadius: number;
|
|
35
|
+
readonly notice: string;
|
|
36
|
+
readonly respawnMs: {
|
|
37
|
+
readonly minMs: number;
|
|
38
|
+
readonly maxMs: number;
|
|
39
|
+
};
|
|
40
|
+
readonly pace: {
|
|
41
|
+
readonly speed: number;
|
|
42
|
+
readonly idleChance: number;
|
|
43
|
+
readonly pause: readonly [number, number];
|
|
44
|
+
};
|
|
45
|
+
readonly spots: readonly RangersDenSpot[];
|
|
46
|
+
readonly drops: readonly {
|
|
47
|
+
readonly itemKind: string;
|
|
48
|
+
readonly chance: number;
|
|
49
|
+
readonly minQty: number;
|
|
50
|
+
readonly maxQty: number;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
export type RangersDenSite = {
|
|
54
|
+
readonly id: RangersDenSiteId;
|
|
55
|
+
readonly label: string;
|
|
56
|
+
readonly box: LanternWakeBox;
|
|
57
|
+
/** Where the guide and the verify link send a player: open ground on the den's edge nearest the camp's tracks. */
|
|
58
|
+
readonly stand: {
|
|
59
|
+
readonly x: number;
|
|
60
|
+
readonly z: number;
|
|
61
|
+
};
|
|
62
|
+
readonly blurb: string;
|
|
63
|
+
readonly groups: readonly RangersDenGroup[];
|
|
64
|
+
};
|
|
65
|
+
export declare const RANGERS_DEN_SITES: readonly RangersDenSite[];
|
|
66
|
+
export declare const RANGERS_DEN_SITE_IDS: readonly RangersDenSiteId[];
|
|
67
|
+
export declare function inRangersDenBox(box: LanternWakeBox, x: number, z: number): boolean;
|
|
68
|
+
/** The den whose box holds this tile, or null. The boxes never overlap (scripts/rangers-rest-test.mjs). */
|
|
69
|
+
export declare function rangersDenSiteAt(x: number, z: number): RangersDenSite | null;
|
|
70
|
+
/** A den creature's server id: `rrd-<site>-<kind>-<n>`. */
|
|
71
|
+
export declare const RANGERS_DEN_ID_PREFIX = "rrd-";
|
|
72
|
+
export declare function rangersDenId(site: RangersDenSiteId, kind: RangersDenKind, n: number): string;
|
|
73
|
+
/** The site and group an id names, or null for any other creature. */
|
|
74
|
+
export declare function parseRangersDenId(id: string): {
|
|
75
|
+
site: RangersDenSite;
|
|
76
|
+
group: RangersDenGroup;
|
|
77
|
+
} | null;
|
|
78
|
+
export declare const SNARE_MASTER_KIND = "snaremaster";
|
|
79
|
+
export declare const SNARE_MASTER_NAME = "Snare-Master";
|
|
80
|
+
export declare const SNARE_CUT_BOX: LanternWakeBox;
|
|
81
|
+
export declare const SNARE_MASTER: {
|
|
82
|
+
readonly id: "rrd-snaremaster-1";
|
|
83
|
+
readonly x: 1682;
|
|
84
|
+
readonly z: 1278;
|
|
85
|
+
readonly leash: 4;
|
|
86
|
+
readonly level: readonly [number, number];
|
|
87
|
+
readonly maxHit: 24;
|
|
88
|
+
/** A boss's hide: much thicker than the level's ordinary health. */
|
|
89
|
+
readonly healthScale: 2.2;
|
|
90
|
+
/** Drawn bigger than a Thornwood Reiver (the same model, scaled). */
|
|
91
|
+
readonly scale: 1.5;
|
|
92
|
+
readonly note: "The poachers' chief, a long man in a cloak of nets who has never been caught in one. Passive until struck. Every fourth blow he whirls a weighted net and a ring of cord closes round him, announced a turn ahead: step clear of the ring and the blow goes wide. Back five to seven minutes after he falls.";
|
|
93
|
+
};
|
|
94
|
+
export declare const SNARE_MASTER_RESPAWN_MS: {
|
|
95
|
+
readonly minMs: 300000;
|
|
96
|
+
readonly maxMs: 420000;
|
|
97
|
+
};
|
|
98
|
+
export declare const SNARE_MASTER_PACE: {
|
|
99
|
+
readonly speed: 0.9;
|
|
100
|
+
readonly idleChance: 0.6;
|
|
101
|
+
readonly pause: readonly [number, number];
|
|
102
|
+
};
|
|
103
|
+
/** Placeholders for the balance pass: coins, spruce arrows, ash, hide and a chance at a steel bar. */
|
|
104
|
+
export declare const SNARE_MASTER_DROPS: readonly {
|
|
105
|
+
itemKind: string;
|
|
106
|
+
chance: number;
|
|
107
|
+
minQty: number;
|
|
108
|
+
maxQty: number;
|
|
109
|
+
}[];
|
|
110
|
+
/** The model the client draws him with until he has one (the Thornwood Reiver's, at SNARE_MASTER.scale). */
|
|
111
|
+
export declare const SNARE_MASTER_STAND_IN = "thornreiver";
|
|
112
|
+
export declare const RANGERS_PEN_ZONE_BOX: LanternWakeBox;
|
|
113
|
+
export declare const RANGERS_RUN_ZONE_BOX: LanternWakeBox;
|
|
114
|
+
export declare const RANGERS_TRAIL_ZONE_BOX: LanternWakeBox;
|
|
115
|
+
export declare const RANGERS_GROVE_ZONE_BOX: LanternWakeBox;
|
|
116
|
+
export declare const RANGERS_KNOLL_ZONE_BOX: LanternWakeBox;
|
|
117
|
+
export declare const RANGERS_REST_DISCOVERY_ZONES: readonly DiscoveryZone[];
|
|
118
|
+
//# sourceMappingURL=rangersRestDens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rangersRestDens.d.ts","sourceRoot":"","sources":["../src/rangersRestDens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { RANGERS_CAMP_DISCOVERY_ZONE } from './rangersRest.js';
|
|
2
|
+
const lynxDrops = [
|
|
3
|
+
{ itemKind: 'coins', chance: 1, minQty: 60, maxQty: 120 },
|
|
4
|
+
{ itemKind: 'rawgame', chance: 0.7, minQty: 1, maxQty: 2 },
|
|
5
|
+
{ itemKind: 'harepelt', chance: 0.3, minQty: 1, maxQty: 1 },
|
|
6
|
+
];
|
|
7
|
+
const moleDrops = [
|
|
8
|
+
{ itemKind: 'coins', chance: 1, minQty: 40, maxQty: 90 },
|
|
9
|
+
{ itemKind: 'rawgame', chance: 0.6, minQty: 1, maxQty: 2 },
|
|
10
|
+
{ itemKind: 'coal', chance: 0.2, minQty: 1, maxQty: 2 },
|
|
11
|
+
];
|
|
12
|
+
const rootDrops = [
|
|
13
|
+
{ itemKind: 'coins', chance: 1, minQty: 90, maxQty: 170 },
|
|
14
|
+
{ itemKind: 'sprucewood', chance: 0.4, minQty: 1, maxQty: 3 },
|
|
15
|
+
{ itemKind: 'ashwood', chance: 0.1, minQty: 1, maxQty: 1 },
|
|
16
|
+
];
|
|
17
|
+
const stagDrops = [
|
|
18
|
+
{ itemKind: 'coins', chance: 1, minQty: 70, maxQty: 140 },
|
|
19
|
+
{ itemKind: 'rawvenison', chance: 0.8, minQty: 1, maxQty: 2 },
|
|
20
|
+
{ itemKind: 'deerhide', chance: 0.4, minQty: 1, maxQty: 1 },
|
|
21
|
+
];
|
|
22
|
+
const reiverDrops = [
|
|
23
|
+
{ itemKind: 'coins', chance: 1, minQty: 100, maxQty: 200 },
|
|
24
|
+
{ itemKind: 'sprucearrow', chance: 0.6, minQty: 6, maxQty: 14 },
|
|
25
|
+
{ itemKind: 'bread', chance: 0.4, minQty: 1, maxQty: 2 },
|
|
26
|
+
{ itemKind: 'deerhide', chance: 0.2, minQty: 1, maxQty: 1 },
|
|
27
|
+
];
|
|
28
|
+
export const RANGERS_DEN_SITES = [
|
|
29
|
+
{
|
|
30
|
+
id: 'lynx-brake',
|
|
31
|
+
label: 'The Lynx Brake',
|
|
32
|
+
box: { minX: 1656, maxX: 1672, minZ: 1208, maxZ: 1226 },
|
|
33
|
+
stand: { x: 1676, z: 1217 },
|
|
34
|
+
blurb: 'A thicket of hazel and bramble on the reach\'s north-west edge, where the barkhide lynxes den and the moles undermine the path.',
|
|
35
|
+
groups: [
|
|
36
|
+
{
|
|
37
|
+
kind: 'barkhidelynx', level: [24, 27], maxHit: 15, healthScale: 1.2, aggro: 5, leashRadius: 12,
|
|
38
|
+
notice: 'A barkhide lynx slides out of the hazel at you!', respawnMs: { minMs: 80_000, maxMs: 130_000 },
|
|
39
|
+
pace: { speed: 1.5, idleChance: 0.5, pause: [3, 7] },
|
|
40
|
+
spots: [{ x: 1660, z: 1212, leash: 4 }, { x: 1666, z: 1218, leash: 4 }, { x: 1661, z: 1222, leash: 4 }],
|
|
41
|
+
drops: lynxDrops,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
kind: 'burrowmole', level: [22, 25], maxHit: 11, healthScale: 1.1, aggro: 4, leashRadius: 10,
|
|
45
|
+
notice: 'The ground heaves and a burrow mole comes up at your feet!', respawnMs: { minMs: 70_000, maxMs: 110_000 },
|
|
46
|
+
pace: { speed: 0.9, idleChance: 0.6, pause: [3, 8] },
|
|
47
|
+
spots: [{ x: 1669, z: 1211, leash: 3 }, { x: 1658, z: 1219, leash: 3 }],
|
|
48
|
+
drops: moleDrops,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'rootmoor-hollow',
|
|
54
|
+
label: 'Rootmoor Hollow',
|
|
55
|
+
box: { minX: 1690, maxX: 1710, minZ: 1208, maxZ: 1224 },
|
|
56
|
+
stand: { x: 1700, z: 1227 },
|
|
57
|
+
blurb: 'A low hollow of old stumps north of the trail, where the knuckleroots stand and the old bristlehart stags lie up among them.',
|
|
58
|
+
groups: [
|
|
59
|
+
{
|
|
60
|
+
kind: 'knuckleroot', level: [26, 30], maxHit: 17, healthScale: 1.5, aggro: 4, leashRadius: 10,
|
|
61
|
+
notice: 'A knuckleroot tears itself out of the moss and lurches at you!', respawnMs: { minMs: 90_000, maxMs: 140_000 },
|
|
62
|
+
pace: { speed: 0.7, idleChance: 0.65, pause: [4, 10] },
|
|
63
|
+
spots: [{ x: 1695, z: 1212, leash: 3 }, { x: 1704, z: 1216, leash: 3 }, { x: 1698, z: 1221, leash: 3 }],
|
|
64
|
+
drops: rootDrops,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
kind: 'bristlehartstag', level: [25, 28], maxHit: 15, healthScale: 1.3, aggro: 6, leashRadius: 14,
|
|
68
|
+
notice: 'A bristlehart stag lowers its bristled back and charges you!', respawnMs: { minMs: 90_000, maxMs: 140_000 },
|
|
69
|
+
pace: { speed: 1.6, idleChance: 0.45, pause: [2, 6] },
|
|
70
|
+
spots: [{ x: 1707, z: 1211, leash: 4 }, { x: 1693, z: 1217, leash: 4 }],
|
|
71
|
+
drops: stagDrops,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'poachers-hide',
|
|
77
|
+
label: "The Poachers' Hide",
|
|
78
|
+
box: { minX: 1700, maxX: 1722, minZ: 1262, maxZ: 1282 },
|
|
79
|
+
stand: { x: 1709, z: 1257 },
|
|
80
|
+
blurb: 'A hollow in the thicket south of the trail, hung with nets and snares, where the Thornwood Reivers lie up between raids on the game trails.',
|
|
81
|
+
groups: [
|
|
82
|
+
{
|
|
83
|
+
kind: 'thornreiver', level: [26, 29], maxHit: 16, healthScale: 1.3, aggro: 6, leashRadius: 14,
|
|
84
|
+
notice: 'A poacher drops his net and comes at you with a knife!', respawnMs: { minMs: 100_000, maxMs: 150_000 },
|
|
85
|
+
pace: { speed: 1.3, idleChance: 0.5, pause: [3, 7] },
|
|
86
|
+
spots: [{ x: 1704, z: 1266, leash: 4 }, { x: 1710, z: 1270, leash: 4 }, { x: 1716, z: 1266, leash: 4 }, { x: 1706, z: 1276, leash: 4 }, { x: 1716, z: 1278, leash: 4 }],
|
|
87
|
+
drops: reiverDrops,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
export const RANGERS_DEN_SITE_IDS = RANGERS_DEN_SITES.map((s) => s.id);
|
|
93
|
+
export function inRangersDenBox(box, x, z) {
|
|
94
|
+
return x >= box.minX && x <= box.maxX && z >= box.minZ && z <= box.maxZ;
|
|
95
|
+
}
|
|
96
|
+
/** The den whose box holds this tile, or null. The boxes never overlap (scripts/rangers-rest-test.mjs). */
|
|
97
|
+
export function rangersDenSiteAt(x, z) {
|
|
98
|
+
for (const site of RANGERS_DEN_SITES)
|
|
99
|
+
if (inRangersDenBox(site.box, x, z))
|
|
100
|
+
return site;
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/** A den creature's server id: `rrd-<site>-<kind>-<n>`. */
|
|
104
|
+
export const RANGERS_DEN_ID_PREFIX = 'rrd-';
|
|
105
|
+
export function rangersDenId(site, kind, n) {
|
|
106
|
+
return `${RANGERS_DEN_ID_PREFIX}${site}-${kind}-${n}`;
|
|
107
|
+
}
|
|
108
|
+
/** The site and group an id names, or null for any other creature. */
|
|
109
|
+
export function parseRangersDenId(id) {
|
|
110
|
+
if (!id.startsWith(RANGERS_DEN_ID_PREFIX))
|
|
111
|
+
return null;
|
|
112
|
+
for (const site of RANGERS_DEN_SITES) {
|
|
113
|
+
for (const group of site.groups) {
|
|
114
|
+
if (id.startsWith(`${RANGERS_DEN_ID_PREFIX}${site.id}-${group.kind}-`))
|
|
115
|
+
return { site, group };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
// ---- The Snare-Master (the reach's mini-boss, levels 28-29) -------------------------------------------------------------------------
|
|
121
|
+
export const SNARE_MASTER_KIND = 'snaremaster';
|
|
122
|
+
export const SNARE_MASTER_NAME = 'Snare-Master';
|
|
123
|
+
export const SNARE_CUT_BOX = { minX: 1674, maxX: 1690, minZ: 1272, maxZ: 1284 };
|
|
124
|
+
export const SNARE_MASTER = {
|
|
125
|
+
id: 'rrd-snaremaster-1',
|
|
126
|
+
x: 1682,
|
|
127
|
+
z: 1278,
|
|
128
|
+
leash: 4,
|
|
129
|
+
level: [28, 29],
|
|
130
|
+
maxHit: 24,
|
|
131
|
+
/** A boss's hide: much thicker than the level's ordinary health. */
|
|
132
|
+
healthScale: 2.2,
|
|
133
|
+
/** Drawn bigger than a Thornwood Reiver (the same model, scaled). */
|
|
134
|
+
scale: 1.5,
|
|
135
|
+
note: "The poachers' chief, a long man in a cloak of nets who has never been caught in one. Passive until struck. Every fourth blow he whirls a weighted net and a ring of cord closes round him, announced a turn ahead: step clear of the ring and the blow goes wide. Back five to seven minutes after he falls.",
|
|
136
|
+
};
|
|
137
|
+
export const SNARE_MASTER_RESPAWN_MS = { minMs: 300_000, maxMs: 420_000 };
|
|
138
|
+
export const SNARE_MASTER_PACE = { speed: 0.9, idleChance: 0.6, pause: [3, 8] };
|
|
139
|
+
/** Placeholders for the balance pass: coins, spruce arrows, ash, hide and a chance at a steel bar. */
|
|
140
|
+
export const SNARE_MASTER_DROPS = [
|
|
141
|
+
{ itemKind: 'coins', chance: 1, minQty: 350, maxQty: 700 },
|
|
142
|
+
{ itemKind: 'sprucearrow', chance: 1, minQty: 20, maxQty: 40 },
|
|
143
|
+
{ itemKind: 'ashwood', chance: 0.6, minQty: 2, maxQty: 4 },
|
|
144
|
+
{ itemKind: 'deerhide', chance: 0.5, minQty: 1, maxQty: 2 },
|
|
145
|
+
{ itemKind: 'steelbar', chance: 0.25, minQty: 1, maxQty: 1 },
|
|
146
|
+
];
|
|
147
|
+
/** The model the client draws him with until he has one (the Thornwood Reiver's, at SNARE_MASTER.scale). */
|
|
148
|
+
export const SNARE_MASTER_STAND_IN = 'thornreiver';
|
|
149
|
+
// ---- Places (Explorer discovery zones, listed ahead of the Greenwood's own) ----------------------------------------------------------
|
|
150
|
+
export const RANGERS_PEN_ZONE_BOX = { minX: 1768, maxX: 1786, minZ: 1226, maxZ: 1244 };
|
|
151
|
+
export const RANGERS_RUN_ZONE_BOX = { minX: 1723, maxX: 1740, minZ: 1238, maxZ: 1282 };
|
|
152
|
+
export const RANGERS_TRAIL_ZONE_BOX = { minX: 1648, maxX: 1716, minZ: 1230, maxZ: 1260 };
|
|
153
|
+
export const RANGERS_GROVE_ZONE_BOX = { minX: 1746, maxX: 1786, minZ: 1264, maxZ: 1284 };
|
|
154
|
+
export const RANGERS_KNOLL_ZONE_BOX = { minX: 1748, maxX: 1764, minZ: 1248, maxZ: 1260 };
|
|
155
|
+
export const RANGERS_REST_DISCOVERY_ZONES = [
|
|
156
|
+
RANGERS_CAMP_DISCOVERY_ZONE,
|
|
157
|
+
{ id: 'rangers-pen', label: "The Rangers' Pen", coordinateFrame: 'world', ...RANGERS_PEN_ZONE_BOX },
|
|
158
|
+
{ id: 'rangers-run', label: "The Ranger's Run", coordinateFrame: 'world', ...RANGERS_RUN_ZONE_BOX },
|
|
159
|
+
{ id: 'rangers-trail', label: "The Ranger's Trail", coordinateFrame: 'world', ...RANGERS_TRAIL_ZONE_BOX },
|
|
160
|
+
{ id: 'rangers-grove', label: "The Ranger's Grove", coordinateFrame: 'world', ...RANGERS_GROVE_ZONE_BOX },
|
|
161
|
+
{ id: 'whinstone-knoll', label: 'Whinstone Knoll', coordinateFrame: 'world', ...RANGERS_KNOLL_ZONE_BOX },
|
|
162
|
+
...RANGERS_DEN_SITES.map((s) => ({ id: s.id, label: s.label, coordinateFrame: 'world', ...s.box })),
|
|
163
|
+
{ id: 'snare-cut', label: 'The Snare Cut', coordinateFrame: 'world', ...SNARE_CUT_BOX },
|
|
164
|
+
];
|
|
165
|
+
//# sourceMappingURL=rangersRestDens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rangersRestDens.js","sourceRoot":"","sources":["../src/rangersRestDens.ts"],"names":[],"mappings":"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"}
|