@dreadwood-types/types 0.1.321 → 0.1.323
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/areaGates.d.ts.map +1 -1
- package/dist/areaGates.js +11 -0
- package/dist/areaGates.js.map +1 -1
- package/dist/areaTransitions.d.ts +1 -1
- package/dist/areaTransitions.d.ts.map +1 -1
- package/dist/areaTransitions.js +11 -0
- package/dist/areaTransitions.js.map +1 -1
- package/dist/attackableNpcs.d.ts.map +1 -1
- package/dist/attackableNpcs.js +4 -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 +12 -0
- package/dist/bossSignatures.js.map +1 -1
- package/dist/campKitchens.d.ts.map +1 -1
- package/dist/campKitchens.js +4 -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 +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.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/explorerLedger.d.ts +1 -1
- package/dist/explorerLedger.d.ts.map +1 -1
- package/dist/explorerLedger.js +6 -0
- package/dist/explorerLedger.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.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 +50 -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 +31 -0
- package/dist/storyQuests.js.map +1 -1
- package/dist/tideTunnel.d.ts +207 -0
- package/dist/tideTunnel.d.ts.map +1 -0
- package/dist/tideTunnel.js +198 -0
- package/dist/tideTunnel.js.map +1 -0
- package/dist/tideTunnelQuests.d.ts +46 -0
- package/dist/tideTunnelQuests.d.ts.map +1 -0
- package/dist/tideTunnelQuests.js +164 -0
- package/dist/tideTunnelQuests.js.map +1 -0
- package/package.json +43 -43
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RANGER'S REST (T120, 2026-10-15; plan `.cursor/task-plans/2026-10-15-t120-rangers-rest.md`; backend COVERAGE_1_40.md section 6, second-wave
|
|
3
|
+
* slice 6): the Greenwood's south reach. The Greenwood Wilds (greenwoodWilds.ts, T2) end at z 1200 and below them 21,724 standable tiles lay empty:
|
|
4
|
+
* a level 21-30 player had no camp, no bank, no anvil and no cook between Brindlecross and the south coast. This is a rangers' camp on the
|
|
5
|
+
* Mossy Brook's south run, in the pattern of the Pass-Road Camp (dwarfRoadCamp.ts, T102):
|
|
6
|
+
*
|
|
7
|
+
* - THE CAMP (x 1740-1758, z 1208-1230, east of the brook): a smithy with a furnace, anvil and workbench, a cookhouse and range with a camp cook
|
|
8
|
+
* (campTraders.ts, campKitchens.ts), a fire, a Bounty Board, a bank chest, stores and lamps. Five rangers give five errands (rangersRestQuestDef.ts).
|
|
9
|
+
* - RANGER'S ROAD: a three-wide road that leaves the Brindle Road's west end (1790, 1094) and runs south down the corridor x 1788-1791 to the camp.
|
|
10
|
+
* - THE RUN: the Mossy Brook carried on south as a stream (the same sine line as the brook, greenwoodBrookX), a timber ford, a pool at its end, and
|
|
11
|
+
* three timber pegs on its east bank: the river spots take the Salmon Leap's fly tackle (Grayling at Fishing 25, Arctic Char at 33).
|
|
12
|
+
* - THE PEN: a fenced stable yard east of the camp with Kennelman Dob Harrow, a stable, a trough, hay and a hitch post.
|
|
13
|
+
* - THE TRAIL: five ordered posts through the west wood (the Ranger's Trial), and the trackers' signs.
|
|
14
|
+
* - Whinstone Knoll (iron and coal seams), Ranger's Grove (spruce, ash and alder to fell), herb patches (ironwort, nightshade, marsh marigold)
|
|
15
|
+
* and forage patches: every one an item the game already has.
|
|
16
|
+
* - Three dens and the Snare-Master are in rangersRestDens.ts.
|
|
17
|
+
*
|
|
18
|
+
* The models are the kit's own as stand-ins (dreadwoods-backend/upgrades). Nothing 41+ is built. Every number is a WORLD tile (x east, z south) and
|
|
19
|
+
* a PLACEHOLDER for the balance pass.
|
|
20
|
+
*/
|
|
21
|
+
import type { LanternWakeBox, LanternWakePoint } from './lanternWake.js';
|
|
22
|
+
import type { DiscoveryZone } from './landmarks.js';
|
|
23
|
+
export declare const RANGERS_REST_ID = "rangers-rest";
|
|
24
|
+
export declare const RANGERS_REST_NAME = "Ranger's Rest";
|
|
25
|
+
export declare const RANGERS_REST_LEVELS: {
|
|
26
|
+
readonly min: 21;
|
|
27
|
+
readonly max: 30;
|
|
28
|
+
};
|
|
29
|
+
/** The whole reach: land tiles only (the south coast bites into it from x 1640 at z 1274 to x 1700 at z 1300). */
|
|
30
|
+
export declare const RANGERS_REST_BOX: LanternWakeBox;
|
|
31
|
+
export declare function inRangersRestBox(x: number, z: number, pad?: number): boolean;
|
|
32
|
+
/** The camp's ground (bare earth), east of the brook. */
|
|
33
|
+
export declare const RANGERS_CAMP_BOX: LanternWakeBox;
|
|
34
|
+
export declare function inRangersCamp(x: number, z: number, pad?: number): boolean;
|
|
35
|
+
export declare const RANGERS_CAMP_DISCOVERY_ZONE: DiscoveryZone;
|
|
36
|
+
/** The road corridor claimed on the program board: nobody else builds in x 1788-1791, z 1096-1206. */
|
|
37
|
+
export declare const RANGERS_ROAD_CORRIDOR: LanternWakeBox;
|
|
38
|
+
/** The roads (world polylines, width in tiles), laid as Path. The first starts on the Brindle Road's west end tile. */
|
|
39
|
+
export declare const RANGERS_PATHS: ReadonlyArray<{
|
|
40
|
+
id: string;
|
|
41
|
+
w: number;
|
|
42
|
+
pts: readonly LanternWakePoint[];
|
|
43
|
+
}>;
|
|
44
|
+
/** 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. */
|
|
45
|
+
export declare const RANGERS_RUN: {
|
|
46
|
+
readonly minZ: 1201;
|
|
47
|
+
readonly maxZ: 1268;
|
|
48
|
+
readonly half: 1;
|
|
49
|
+
};
|
|
50
|
+
export declare function rangersRunX(z: number): number;
|
|
51
|
+
/** The pool the run ends in. */
|
|
52
|
+
export declare const RANGERS_POOL: {
|
|
53
|
+
readonly cx: 1734;
|
|
54
|
+
readonly cz: 1273;
|
|
55
|
+
readonly radius: 4;
|
|
56
|
+
};
|
|
57
|
+
/** The ford: sand rows under the timber bridge (walkable). */
|
|
58
|
+
export declare const RANGERS_BRIDGE: {
|
|
59
|
+
readonly id: "rr-bridge";
|
|
60
|
+
readonly model: "hbfordbridge";
|
|
61
|
+
readonly facing: "e";
|
|
62
|
+
readonly x: number;
|
|
63
|
+
readonly z: 1236;
|
|
64
|
+
};
|
|
65
|
+
export declare function inRangersFordRows(x: number, z: number): boolean;
|
|
66
|
+
/** Is this tile water of the run or its pool (the ford's rows are a sand strip, not water)? */
|
|
67
|
+
export declare function inRangersWater(x: number, z: number): boolean;
|
|
68
|
+
/** Three timber pegs on the run's east bank (stand-ins, `fishingpeg`, style = the side facing the water), one beside each river spot. */
|
|
69
|
+
export declare const RANGERS_PEG_ROWS: readonly number[];
|
|
70
|
+
export declare const RANGERS_PEGS: ReadonlyArray<{
|
|
71
|
+
id: string;
|
|
72
|
+
x: number;
|
|
73
|
+
z: number;
|
|
74
|
+
style: 'w';
|
|
75
|
+
}>;
|
|
76
|
+
/** Where the river fish rise: the run's east-most water tile beside each peg (kind `river`, the Salmon Leap's fly tackle). */
|
|
77
|
+
export declare const RANGERS_RIVER_SPOTS: ReadonlyArray<{
|
|
78
|
+
x: number;
|
|
79
|
+
z: number;
|
|
80
|
+
}>;
|
|
81
|
+
/** One thing laid on the ground: the kit's own kinds and styles (the Pass-Road Camp's shape), placed by the backend's ground placer. */
|
|
82
|
+
export type RangersProp = {
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly kind: 'dreadmodel' | 'dreadprop' | 'campfire' | 'barrel' | 'bountyboard' | 'furnace' | 'anvil' | 'workbench' | 'stove' | 'bankchest' | 'signpost';
|
|
85
|
+
readonly style: string;
|
|
86
|
+
readonly x: number;
|
|
87
|
+
readonly z: number;
|
|
88
|
+
readonly scale?: number;
|
|
89
|
+
};
|
|
90
|
+
/** The camp's pieces and working stations. */
|
|
91
|
+
export declare const RANGERS_CAMP_PIECES: readonly RangersProp[];
|
|
92
|
+
/** The pen: a fenced stable yard east of the camp. The gate gap is on the north side where the pen lane comes in. */
|
|
93
|
+
export declare const RANGERS_PEN_BOX: LanternWakeBox;
|
|
94
|
+
export declare const RANGERS_PEN_GATE: {
|
|
95
|
+
readonly minX: 1776;
|
|
96
|
+
readonly maxX: 1778;
|
|
97
|
+
readonly z: 1226;
|
|
98
|
+
};
|
|
99
|
+
export declare function rangersPenFence(): ReadonlyArray<RangersProp>;
|
|
100
|
+
export declare const RANGERS_PEN_PIECES: readonly RangersProp[];
|
|
101
|
+
/** Whinstone Knoll: iron and coal seams south-east of the camp (ORE_ROCK_KIND styles). Iron is Mining 15, coal 22 (mining.ts). */
|
|
102
|
+
export declare const RANGERS_SEAMS: ReadonlyArray<{
|
|
103
|
+
readonly id: string;
|
|
104
|
+
readonly x: number;
|
|
105
|
+
readonly z: number;
|
|
106
|
+
readonly style: 'coal' | 'iron';
|
|
107
|
+
}>;
|
|
108
|
+
export declare const RANGERS_KNOLL_BOX: LanternWakeBox;
|
|
109
|
+
/** Herb patches (HerbKind, types potionMaking.ts): ironwort 22, nightshade 25, marsh marigold 29 (by the water). Placed on the nearest bare grass. */
|
|
110
|
+
export declare const RANGERS_HERBS: ReadonlyArray<{
|
|
111
|
+
readonly herb: 'ironwort' | 'nightshade' | 'marshmarigold';
|
|
112
|
+
readonly x: number;
|
|
113
|
+
readonly z: number;
|
|
114
|
+
}>;
|
|
115
|
+
/** Wild supplies (forage patches): blackberries on the knoll's far side and the trail, field mushrooms under the grove. */
|
|
116
|
+
export declare const RANGERS_FORAGE: ReadonlyArray<{
|
|
117
|
+
readonly forage: 'blackberries' | 'fieldmushroom';
|
|
118
|
+
readonly x: number;
|
|
119
|
+
readonly z: number;
|
|
120
|
+
}>;
|
|
121
|
+
/** Ranger's Grove: felling trees (spruce Woodwork 15, alder 25, ash 30), planted on free grass by species weight. */
|
|
122
|
+
export declare const RANGERS_GROVE: {
|
|
123
|
+
readonly id: "rangers-grove";
|
|
124
|
+
readonly box: LanternWakeBox;
|
|
125
|
+
readonly species: ReadonlyArray<readonly [string, number]>;
|
|
126
|
+
readonly chance: 0.2;
|
|
127
|
+
};
|
|
128
|
+
/** The signs (the placard signpost). */
|
|
129
|
+
export declare const RANGERS_SIGNS: ReadonlyArray<{
|
|
130
|
+
readonly id: string;
|
|
131
|
+
readonly x: number;
|
|
132
|
+
readonly z: number;
|
|
133
|
+
readonly text: string;
|
|
134
|
+
}>;
|
|
135
|
+
export type RangersFolk = {
|
|
136
|
+
readonly id: string;
|
|
137
|
+
readonly name: string;
|
|
138
|
+
readonly place: string;
|
|
139
|
+
readonly x: number;
|
|
140
|
+
readonly z: number;
|
|
141
|
+
readonly faceX: number;
|
|
142
|
+
readonly faceZ: number;
|
|
143
|
+
readonly leash: number;
|
|
144
|
+
readonly speak: string;
|
|
145
|
+
/** Extra menu lines: id, label, what they say. */
|
|
146
|
+
readonly extras?: ReadonlyArray<{
|
|
147
|
+
readonly id: string;
|
|
148
|
+
readonly label: string;
|
|
149
|
+
readonly say: string;
|
|
150
|
+
}>;
|
|
151
|
+
};
|
|
152
|
+
export declare const RANGERS_FOLK_NAMES: {
|
|
153
|
+
readonly tracker: "Tracker Idris Mallow";
|
|
154
|
+
readonly fletcher: "Fletcher Lorcan Teague";
|
|
155
|
+
readonly warden: "Warden Corra Haldane";
|
|
156
|
+
readonly kennelman: "Kennelman Dob Harrow";
|
|
157
|
+
readonly captain: "Ranger-Captain Sabine Thorley";
|
|
158
|
+
};
|
|
159
|
+
/** The five residents (named residents on the default look, stationary): the camp's cook is in campTraders.ts. */
|
|
160
|
+
export declare const RANGERS_FOLK: ReadonlyArray<RangersFolk>;
|
|
161
|
+
export declare function rangersFolkByName(name: string | null | undefined): RangersFolk | null;
|
|
162
|
+
/** The camp's cook, which lives in CAMP_TRADERS (campTraders.ts) beside the other camps' cooks. */
|
|
163
|
+
export declare const RANGERS_CAMP_COOK: {
|
|
164
|
+
readonly id: "camp-rangers-rest";
|
|
165
|
+
readonly name: "Mags Fernley";
|
|
166
|
+
readonly x: 1750;
|
|
167
|
+
readonly z: 1220;
|
|
168
|
+
readonly faceX: 1749;
|
|
169
|
+
readonly faceZ: 1222;
|
|
170
|
+
};
|
|
171
|
+
export declare const RR_PROP: {
|
|
172
|
+
readonly track: "rrtrack";
|
|
173
|
+
readonly post: "rrpost";
|
|
174
|
+
readonly hound: "rrhound";
|
|
175
|
+
readonly snare: "rrsnare";
|
|
176
|
+
};
|
|
177
|
+
export type RrQuestProp = {
|
|
178
|
+
readonly id: string;
|
|
179
|
+
readonly x: number;
|
|
180
|
+
readonly z: number;
|
|
181
|
+
readonly style: string;
|
|
182
|
+
};
|
|
183
|
+
/** Fresh Sign: four sets of tracks on the way round the dens. */
|
|
184
|
+
export declare const RR_TRACK_LYNX: RrQuestProp;
|
|
185
|
+
export declare const RR_TRACK_STAG: RrQuestProp;
|
|
186
|
+
export declare const RR_TRACK_BOOT: RrQuestProp;
|
|
187
|
+
export declare const RR_TRACK_BRANCH: RrQuestProp;
|
|
188
|
+
/** The Ranger's Trial: five posts east to west, an ORDERED touch. */
|
|
189
|
+
export declare const RR_POST_1: RrQuestProp;
|
|
190
|
+
export declare const RR_POST_2: RrQuestProp;
|
|
191
|
+
export declare const RR_POST_3: RrQuestProp;
|
|
192
|
+
export declare const RR_POST_4: RrQuestProp;
|
|
193
|
+
export declare const RR_POST_5: RrQuestProp;
|
|
194
|
+
export declare const RR_POST_ORDER: readonly string[];
|
|
195
|
+
/** A Hound Gone Astray: the collar, the prints, the buried bone, and Brindle herself. */
|
|
196
|
+
export declare const RR_HOUND_COLLAR: RrQuestProp;
|
|
197
|
+
export declare const RR_HOUND_PRINTS: RrQuestProp;
|
|
198
|
+
export declare const RR_HOUND_BONE: RrQuestProp;
|
|
199
|
+
export declare const RR_HOUND_BRINDLE: RrQuestProp;
|
|
200
|
+
/** Snares in the Dark: three poachers' snares at the Hide's edge. */
|
|
201
|
+
export declare const RR_SNARE_1: RrQuestProp;
|
|
202
|
+
export declare const RR_SNARE_2: RrQuestProp;
|
|
203
|
+
export declare const RR_SNARE_3: RrQuestProp;
|
|
204
|
+
export declare const RANGERS_QUEST_PROPS: readonly RrQuestProp[];
|
|
205
|
+
export declare const RANGERS_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
|
|
206
|
+
/** The model a Ranger's Rest quest prop draws with (frontend quest-prop models that already exist), or null if not one of them. */
|
|
207
|
+
export declare function rangersPropModel(prop: string): string | null;
|
|
208
|
+
/** Standable tiles for teleports, smokes and the helper. */
|
|
209
|
+
export declare const RANGERS_STANDS: {
|
|
210
|
+
readonly road: {
|
|
211
|
+
readonly x: 1789;
|
|
212
|
+
readonly z: 1190;
|
|
213
|
+
};
|
|
214
|
+
readonly camp: {
|
|
215
|
+
readonly x: 1752;
|
|
216
|
+
readonly z: 1224;
|
|
217
|
+
};
|
|
218
|
+
readonly smithy: {
|
|
219
|
+
readonly x: 1745;
|
|
220
|
+
readonly z: 1220;
|
|
221
|
+
};
|
|
222
|
+
readonly board: {
|
|
223
|
+
readonly x: 1750;
|
|
224
|
+
readonly z: 1228;
|
|
225
|
+
};
|
|
226
|
+
readonly pen: {
|
|
227
|
+
readonly x: 1777;
|
|
228
|
+
readonly z: 1229;
|
|
229
|
+
};
|
|
230
|
+
readonly ford: {
|
|
231
|
+
readonly x: 1734;
|
|
232
|
+
readonly z: 1234;
|
|
233
|
+
};
|
|
234
|
+
readonly pegs: {
|
|
235
|
+
readonly x: 1735;
|
|
236
|
+
readonly z: 1247;
|
|
237
|
+
};
|
|
238
|
+
readonly knoll: {
|
|
239
|
+
readonly x: 1755;
|
|
240
|
+
readonly z: 1254;
|
|
241
|
+
};
|
|
242
|
+
readonly grove: {
|
|
243
|
+
readonly x: 1766;
|
|
244
|
+
readonly z: 1262;
|
|
245
|
+
};
|
|
246
|
+
readonly trail: {
|
|
247
|
+
readonly x: 1714;
|
|
248
|
+
readonly z: 1242;
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
/** What the guide, the verify links and the quest helper say about the place. */
|
|
252
|
+
export declare 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.";
|
|
253
|
+
//# sourceMappingURL=rangersRest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rangersRest.d.ts","sourceRoot":"","sources":["../src/rangersRest.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|