@dreadwood-types/types 0.1.370 → 0.1.372
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/ashfallCamp.d.ts +9 -2
- package/dist/ashfallCamp.d.ts.map +1 -1
- package/dist/ashfallCamp.js +35 -15
- package/dist/ashfallCamp.js.map +1 -1
- 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/brackenHeath.d.ts +285 -0
- package/dist/brackenHeath.d.ts.map +1 -0
- package/dist/brackenHeath.js +381 -0
- package/dist/brackenHeath.js.map +1 -0
- package/dist/brackenHeathDens.d.ts +124 -0
- package/dist/brackenHeathDens.d.ts.map +1 -0
- package/dist/brackenHeathDens.js +163 -0
- package/dist/brackenHeathDens.js.map +1 -0
- package/dist/brackenHeathQuestDef.d.ts +20 -0
- package/dist/brackenHeathQuestDef.d.ts.map +1 -0
- package/dist/brackenHeathQuestDef.js +116 -0
- package/dist/brackenHeathQuestDef.js.map +1 -0
- package/dist/campKitchens.d.ts.map +1 -1
- package/dist/campKitchens.js +5 -0
- package/dist/campKitchens.js.map +1 -1
- package/dist/campTraders.d.ts.map +1 -1
- package/dist/campTraders.js +13 -0
- package/dist/campTraders.js.map +1 -1
- package/dist/constants.d.ts +7 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +20 -0
- 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 +2 -1
- package/dist/explorerLedger.d.ts.map +1 -1
- package/dist/explorerLedger.js +6 -0
- package/dist/explorerLedger.js.map +1 -1
- package/dist/fairFolk.d.ts +7 -1
- package/dist/fairFolk.d.ts.map +1 -1
- package/dist/fairFolk.js +7 -0
- package/dist/fairFolk.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +4 -0
- package/dist/legacy.d.ts.map +1 -1
- package/dist/legacy.js +4 -0
- package/dist/legacy.js.map +1 -1
- package/dist/messages.d.ts +35 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js.map +1 -1
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +19 -0
- package/dist/quests.js.map +1 -1
- package/dist/steeredRide.d.ts +240 -0
- package/dist/steeredRide.d.ts.map +1 -0
- package/dist/steeredRide.js +431 -0
- package/dist/steeredRide.js.map +1 -0
- package/dist/storyQuests.d.ts +1 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +13 -0
- package/dist/storyQuests.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brackenHeath.d.ts","sourceRoot":"","sources":["../src/brackenHeath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
export const BRACKEN_HEATH_ID = 'bracken-heath';
|
|
2
|
+
export const BRACKEN_HEATH_NAME = 'Bracken Heath';
|
|
3
|
+
export const BRACKEN_HEATH_LEVELS = { min: 1, max: 30 };
|
|
4
|
+
export function inBhBox(b, x, z, pad = 0) {
|
|
5
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
6
|
+
}
|
|
7
|
+
/** The whole heath this place claims (the Trout Fishery's fence at x 762 and Highwayman's Ridge at z 438 are outside it). */
|
|
8
|
+
export const BRACKEN_HEATH_BOX = { minX: 691, maxX: 761, minZ: 256, maxZ: 437 };
|
|
9
|
+
export const inBrackenHeath = (x, z, pad = 0) => inBhBox(BRACKEN_HEATH_BOX, x, z, pad);
|
|
10
|
+
/** Heathside Start, the hub by the moat. */
|
|
11
|
+
export const HEATHSIDE_START_BOX = { minX: 731, maxX: 761, minZ: 257, maxZ: 279 };
|
|
12
|
+
/** The Pup Track's fence (its lanes are inside it). */
|
|
13
|
+
export const PUP_TRACK_BOX = { minX: 694, maxX: 729, minZ: 257, maxZ: 280 };
|
|
14
|
+
/** The gap in the Pup Track's south fence, beside its start line. */
|
|
15
|
+
export const PUP_TRACK_GATE = { z: 280, minX: 711, maxX: 718 };
|
|
16
|
+
/** The South Circle: standing stones on the Dash's far turn. */
|
|
17
|
+
export const SOUTH_CIRCLE = { cx: 709, cz: 417, radius: 10, stones: 18 };
|
|
18
|
+
export const SOUTH_CIRCLE_BOX = { minX: 698, maxX: 720, minZ: 406, maxZ: 428 };
|
|
19
|
+
/** The Lookout Rise: a low mound with a lookout post, north of the wild heath (flat ground about height 1; the top stands 3 higher). */
|
|
20
|
+
export const LOOKOUT_RISE = { cx: 712, cz: 330, radius: 4, rise: 3 };
|
|
21
|
+
export const LOOKOUT_RISE_BOX = { minX: 707, maxX: 717, minZ: 325, maxZ: 335 };
|
|
22
|
+
/** How high the Lookout Rise lifts a tile above the ground, or 0 outside it. */
|
|
23
|
+
export function lookoutRiseLift(x, z) {
|
|
24
|
+
const d = Math.hypot(x - LOOKOUT_RISE.cx, z - LOOKOUT_RISE.cz);
|
|
25
|
+
if (d > LOOKOUT_RISE.radius)
|
|
26
|
+
return 0;
|
|
27
|
+
if (d <= 1.5)
|
|
28
|
+
return LOOKOUT_RISE.rise;
|
|
29
|
+
if (d <= 3)
|
|
30
|
+
return LOOKOUT_RISE.rise - 1;
|
|
31
|
+
return 1;
|
|
32
|
+
}
|
|
33
|
+
// ---- The two courses ---------------------------------------------------------------------------------------------------------------------
|
|
34
|
+
/** Wainwright Pip Larkin lends the carts (both courses); he stands at the cart shed. */
|
|
35
|
+
export const BH_KEEPER_NAME = 'Wainwright Pip Larkin';
|
|
36
|
+
export const PUP_TRACK_ID = 'pup-track';
|
|
37
|
+
export const HEATH_DASH_ID = 'heath-dash';
|
|
38
|
+
export const HEATH_DASH_COMBAT = 21;
|
|
39
|
+
/**
|
|
40
|
+
* THE PUP TRACK: two laps of a short fenced loop beside the moat (72 tiles a lap), at any level. Hay and gorse in the lanes, two straw mats and
|
|
41
|
+
* one loose sheep. About half a minute. Starts on the south straight heading west.
|
|
42
|
+
*/
|
|
43
|
+
export const PUP_TRACK = {
|
|
44
|
+
id: PUP_TRACK_ID,
|
|
45
|
+
name: 'The Pup Track',
|
|
46
|
+
keeper: BH_KEEPER_NAME,
|
|
47
|
+
keeperReach: 4,
|
|
48
|
+
waypoints: [[714, 276], [701, 276], [698, 273], [698, 264], [701, 261], [722, 261], [725, 264], [725, 273], [722, 276], [714, 276]],
|
|
49
|
+
laps: 2,
|
|
50
|
+
startLane: 1,
|
|
51
|
+
combat: 0,
|
|
52
|
+
speed: 1.4,
|
|
53
|
+
boostSpeed: 2,
|
|
54
|
+
slowSpeed: 0.85,
|
|
55
|
+
boostTiles: 10,
|
|
56
|
+
slowTiles: 6,
|
|
57
|
+
pay: 12,
|
|
58
|
+
knockCoins: 1,
|
|
59
|
+
minPay: 3,
|
|
60
|
+
checkpoints: [72],
|
|
61
|
+
hazards: [
|
|
62
|
+
{ id: 'pt-hay-1', p: 20, lane: 0, kind: 'hay' },
|
|
63
|
+
{ id: 'pt-gorse-1', p: 36, lane: 2, kind: 'gorse' },
|
|
64
|
+
{ id: 'pt-hay-2', p: 44, lane: 1, kind: 'hay' },
|
|
65
|
+
{ id: 'pt-gorse-2', p: 57, lane: 0, kind: 'gorse' },
|
|
66
|
+
],
|
|
67
|
+
boosts: [
|
|
68
|
+
{ id: 'pt-mat-1', p: 31, lane: 1 },
|
|
69
|
+
{ id: 'pt-mat-2', p: 66, lane: 2 },
|
|
70
|
+
],
|
|
71
|
+
crossers: [
|
|
72
|
+
{ id: 'bhx-pup-sheep', kind: 'sheep', name: 'Loose Sheep', p: 40, reach: 3, msPerTile: 700, phaseMs: 0 },
|
|
73
|
+
],
|
|
74
|
+
maxRunMs: 70_000,
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* THE HEATH DASH: one long loop round the heath for levels 21-30 (about 300 tiles). The gorse chicane and the barrel alley down the east side, a
|
|
78
|
+
* loose sheep, the boost-mat straight along the south with a hare from the heath darting across, the turn through the South Circle, and the long
|
|
79
|
+
* west straight home with more mats, hay, barrels and a second hare. Six checkpoint flags.
|
|
80
|
+
*/
|
|
81
|
+
export const HEATH_DASH = {
|
|
82
|
+
id: HEATH_DASH_ID,
|
|
83
|
+
name: 'The Heath Dash',
|
|
84
|
+
keeper: BH_KEEPER_NAME,
|
|
85
|
+
keeperReach: 4,
|
|
86
|
+
waypoints: [[752, 280], [752, 298], [757, 303], [757, 313], [752, 318], [752, 412], [742, 422], [714, 422], [704, 412], [698, 406], [698, 290]],
|
|
87
|
+
laps: 1,
|
|
88
|
+
startLane: 1,
|
|
89
|
+
combat: HEATH_DASH_COMBAT,
|
|
90
|
+
speed: 1.5,
|
|
91
|
+
boostSpeed: 2.2,
|
|
92
|
+
slowSpeed: 0.9,
|
|
93
|
+
boostTiles: 18,
|
|
94
|
+
slowTiles: 10,
|
|
95
|
+
pay: 60,
|
|
96
|
+
knockCoins: 4,
|
|
97
|
+
minPay: 12,
|
|
98
|
+
checkpoints: [40, 95, 140, 175, 225, 270],
|
|
99
|
+
hazards: [
|
|
100
|
+
// The gorse chicane.
|
|
101
|
+
{ id: 'hd-gorse-1', p: 24, lane: 1, kind: 'gorse' },
|
|
102
|
+
{ id: 'hd-gorse-2', p: 32, lane: 0, kind: 'gorse' },
|
|
103
|
+
// The barrel alley.
|
|
104
|
+
{ id: 'hd-barrel-1', p: 58, lane: 2, kind: 'barrel' },
|
|
105
|
+
{ id: 'hd-barrel-2', p: 66, lane: 0, kind: 'barrel' },
|
|
106
|
+
{ id: 'hd-barrel-3', p: 74, lane: 1, kind: 'barrel' },
|
|
107
|
+
{ id: 'hd-barrel-4', p: 82, lane: 2, kind: 'barrel' },
|
|
108
|
+
{ id: 'hd-barrel-5', p: 90, lane: 0, kind: 'barrel' },
|
|
109
|
+
{ id: 'hd-hay-1', p: 108, lane: 1, kind: 'hay' },
|
|
110
|
+
{ id: 'hd-hay-2', p: 120, lane: 2, kind: 'hay' },
|
|
111
|
+
{ id: 'hd-gorse-3', p: 138, lane: 0, kind: 'gorse' },
|
|
112
|
+
// Through the South Circle.
|
|
113
|
+
{ id: 'hd-hay-3', p: 178, lane: 2, kind: 'hay' },
|
|
114
|
+
{ id: 'hd-gorse-4', p: 184, lane: 1, kind: 'gorse' },
|
|
115
|
+
// The west straight home.
|
|
116
|
+
{ id: 'hd-hay-4', p: 205, lane: 1, kind: 'hay' },
|
|
117
|
+
{ id: 'hd-barrel-6', p: 214, lane: 2, kind: 'barrel' },
|
|
118
|
+
{ id: 'hd-gorse-5', p: 232, lane: 0, kind: 'gorse' },
|
|
119
|
+
{ id: 'hd-hay-5', p: 250, lane: 2, kind: 'hay' },
|
|
120
|
+
{ id: 'hd-barrel-7', p: 260, lane: 1, kind: 'barrel' },
|
|
121
|
+
{ id: 'hd-gorse-6', p: 280, lane: 1, kind: 'gorse' },
|
|
122
|
+
{ id: 'hd-hay-6', p: 290, lane: 0, kind: 'hay' },
|
|
123
|
+
],
|
|
124
|
+
boosts: [
|
|
125
|
+
{ id: 'hd-mat-1', p: 147, lane: 1 },
|
|
126
|
+
{ id: 'hd-mat-2', p: 160, lane: 2 },
|
|
127
|
+
{ id: 'hd-mat-3', p: 196, lane: 0 },
|
|
128
|
+
{ id: 'hd-mat-4', p: 222, lane: 1 },
|
|
129
|
+
{ id: 'hd-mat-5', p: 268, lane: 2 },
|
|
130
|
+
],
|
|
131
|
+
crossers: [
|
|
132
|
+
{ id: 'bhx-dash-sheep', kind: 'sheep', name: 'Loose Sheep', p: 100, reach: 4, msPerTile: 600, phaseMs: 0 },
|
|
133
|
+
{ id: 'bhx-dash-hare-1', kind: 'brownhare', name: 'Heath Hare', p: 155, reach: 4, msPerTile: 450, phaseMs: 1700 },
|
|
134
|
+
{ id: 'bhx-dash-hare-2', kind: 'brownhare', name: 'Heath Hare', p: 240, reach: 4, msPerTile: 420, phaseMs: 900 },
|
|
135
|
+
],
|
|
136
|
+
maxRunMs: 150_000,
|
|
137
|
+
};
|
|
138
|
+
export const BH_COURSES = [PUP_TRACK, HEATH_DASH];
|
|
139
|
+
export function bhCourseById(id) {
|
|
140
|
+
return BH_COURSES.find((c) => c.id === id) ?? null;
|
|
141
|
+
}
|
|
142
|
+
/** The ids of every crosser NPC (never fought, never in the generic wander). */
|
|
143
|
+
export const BH_CROSSER_ID_PREFIX = 'bhx-';
|
|
144
|
+
export function isBhCrosserId(id) {
|
|
145
|
+
return id.startsWith(BH_CROSSER_ID_PREFIX);
|
|
146
|
+
}
|
|
147
|
+
/** Times a board can hold (anything outside is not a run we could have measured). */
|
|
148
|
+
export const BH_PLAUSIBLE_MS = {
|
|
149
|
+
[PUP_TRACK_ID]: { min: 12_000, max: PUP_TRACK.maxRunMs },
|
|
150
|
+
[HEATH_DASH_ID]: { min: 30_000, max: HEATH_DASH.maxRunMs },
|
|
151
|
+
};
|
|
152
|
+
export function bhPlausible(courseId, ms) {
|
|
153
|
+
const r = BH_PLAUSIBLE_MS[courseId];
|
|
154
|
+
return !!r && Number.isFinite(ms) && ms >= r.min && ms <= r.max;
|
|
155
|
+
}
|
|
156
|
+
/** The world timer the weekly Fastest Times boards are saved under (one save, both courses). */
|
|
157
|
+
export const BH_BOARD_TIMER_KEY = 'heath-dash-board';
|
|
158
|
+
/** Quickest first: a Dash under `underMs` unlocks the paint for good. Oak is every cart's own. */
|
|
159
|
+
export const BH_PAINTS = [
|
|
160
|
+
{ id: 'gorse', label: 'Gorse Yellow', underMs: 58_000, mark: 'heath:paint-gorse' },
|
|
161
|
+
{ id: 'heather', label: 'Heather Purple', underMs: 54_000, mark: 'heath:paint-heather' },
|
|
162
|
+
{ id: 'capital', label: 'Capital Blue', underMs: 51_500, mark: 'heath:paint-capital' },
|
|
163
|
+
];
|
|
164
|
+
/** The paint a rider's cart wears: the best they have unlocked. */
|
|
165
|
+
export function bhPaintFor(marks) {
|
|
166
|
+
const have = new Set(marks);
|
|
167
|
+
let best = 'oak';
|
|
168
|
+
for (const p of BH_PAINTS)
|
|
169
|
+
if (have.has(p.mark))
|
|
170
|
+
best = p.id;
|
|
171
|
+
return best;
|
|
172
|
+
}
|
|
173
|
+
/** The paints a finished Dash of `ms` unlocks (every one it is under). */
|
|
174
|
+
export function bhPaintsEarned(ms) {
|
|
175
|
+
return BH_PAINTS.filter((p) => ms < p.underMs).map((p) => p.mark);
|
|
176
|
+
}
|
|
177
|
+
/** Ledger marks the ride writes (explorerLedger.ts LEDGER_HEATH_LINES). */
|
|
178
|
+
export const BH_MARK_PUP = 'heath:pup';
|
|
179
|
+
export const BH_MARK_DASH = 'heath:dash';
|
|
180
|
+
export const BH_MARK_CLEAN = 'heath:clean';
|
|
181
|
+
const kit = (id, model, x, z, facing = 's', scale) => ({ id, kind: 'dreadmodel', style: `${model}-${facing}`, x, z, ...(scale ? { scale } : {}) });
|
|
182
|
+
const ride = (id, style, x, z) => ({ id, kind: 'rideprop', style, x, z });
|
|
183
|
+
const lamp = (id, x, z) => kit(id, 'townlantern1x1', x, z);
|
|
184
|
+
export const HEATH_DASH_START_GATE = { id: 'bh-dash-start', label: 'Heath Dash Start Line', x: 752, z: 281, facing: 'n' };
|
|
185
|
+
export const HEATH_DASH_FINISH_ARCH = { id: 'bh-dash-finish', label: 'Heath Dash Finish Line', x: 698, z: 291, facing: 's' };
|
|
186
|
+
export const PUP_TRACK_START_GATE = { id: 'bh-pup-start', label: 'Pup Track Start Line', x: 715, z: 276, facing: 'e' };
|
|
187
|
+
export const BH_LINES = [HEATH_DASH_START_GATE, HEATH_DASH_FINISH_ARCH, PUP_TRACK_START_GATE];
|
|
188
|
+
/** A line's pieces: three runs of bunting (across offsets -4..4) and a pole beyond each verge. */
|
|
189
|
+
export function bhLinePieces(line) {
|
|
190
|
+
const alongX = line.facing === 'n' || line.facing === 's';
|
|
191
|
+
const at = (o) => (alongX ? { x: line.x + o, z: line.z } : { x: line.x, z: line.z + o });
|
|
192
|
+
const run = (id, o) => ({ ...kit(`${line.id}-${id}`, 'fairbunting', 0, 0, line.facing), ...at(o) });
|
|
193
|
+
const pole = (id, o) => ({ ...kit(`${line.id}-${id}`, 'fairbuntingpole', 0, 0, line.facing), ...at(o) });
|
|
194
|
+
return [pole('pole-a', -5), run('bunting-a', -3), run('bunting-m', 0), run('bunting-b', 3), pole('pole-b', 5)];
|
|
195
|
+
}
|
|
196
|
+
export function bhLineOf(entityId) {
|
|
197
|
+
return entityId ? BH_LINES.find((l) => entityId.startsWith(`${l.id}-`)) ?? null : null;
|
|
198
|
+
}
|
|
199
|
+
/** Heathside Start: the shed, paddock, pavilion, cookhouse, benches, bunting, signal post and lamps. No bank. */
|
|
200
|
+
export const HEATHSIDE_PIECES = [
|
|
201
|
+
kit('bh-shed', 'hbstable', 741, 262),
|
|
202
|
+
kit('bh-pavilion', 'fortrookawning', 745, 273),
|
|
203
|
+
kit('bh-cookhouse', 'towncookhouse5x3', 735, 270),
|
|
204
|
+
{ id: 'bh-stove', kind: 'stove', style: '', x: 738, z: 274 },
|
|
205
|
+
{ id: 'bh-fire', kind: 'campfire', style: 'beach-pit', x: 733, z: 276, scale: 1 },
|
|
206
|
+
kit('bh-board-hub', 'catchboard', 759, 276, 'w'),
|
|
207
|
+
kit('bh-bench-1', 'hbbench', 759, 271, 'w'),
|
|
208
|
+
kit('bh-bench-2', 'hbbench', 759, 266, 'w'),
|
|
209
|
+
kit('bh-bunting-pole-w', 'fairbuntingpole', 748, 278),
|
|
210
|
+
kit('bh-bunting', 'fairbunting', 752, 278),
|
|
211
|
+
kit('bh-bunting-pole-e', 'fairbuntingpole', 756, 278),
|
|
212
|
+
kit('bh-signal', 'townbannerpost1x1', 746, 280),
|
|
213
|
+
kit('bh-crates', 'hbcrates', 733, 262),
|
|
214
|
+
kit('bh-hay-store', 'hbhaybales', 735, 260),
|
|
215
|
+
kit('bh-trough', 'sheeptrough', 737, 266),
|
|
216
|
+
lamp('bh-lamp-nw', 732, 258),
|
|
217
|
+
lamp('bh-lamp-ne', 760, 258),
|
|
218
|
+
lamp('bh-lamp-s', 742, 278),
|
|
219
|
+
// Two racers parked in the paddock (the ride's own cart, drawn by the client from the style).
|
|
220
|
+
ride('bh-racer-1', 'cart-oak', 748, 262),
|
|
221
|
+
ride('bh-racer-2', 'cart-gorse', 753, 262),
|
|
222
|
+
];
|
|
223
|
+
/** The paddock's rails (gate gap on its south side). */
|
|
224
|
+
export const PADDOCK_BOX = { minX: 745, maxX: 757, minZ: 258, maxZ: 267 };
|
|
225
|
+
export const PADDOCK_GATE = { z: 267, minX: 750, maxX: 752 };
|
|
226
|
+
/** A ring of rail posts round a box (every perimeter tile but the gap). */
|
|
227
|
+
export function bhFenceRing(prefix, b, gap) {
|
|
228
|
+
const out = [];
|
|
229
|
+
for (let z = b.minZ; z <= b.maxZ; z++) {
|
|
230
|
+
for (let x = b.minX; x <= b.maxX; x++) {
|
|
231
|
+
if (x !== b.minX && x !== b.maxX && z !== b.minZ && z !== b.maxZ)
|
|
232
|
+
continue;
|
|
233
|
+
if (inBhBox(gap, x, z))
|
|
234
|
+
continue;
|
|
235
|
+
out.push(kit(`${prefix}-${x}-${z}`, 'hbfence', x, z));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return out;
|
|
239
|
+
}
|
|
240
|
+
export function bhFences() {
|
|
241
|
+
return [
|
|
242
|
+
...bhFenceRing('bh-pup-fence', PUP_TRACK_BOX, { minX: PUP_TRACK_GATE.minX, maxX: PUP_TRACK_GATE.maxX, minZ: PUP_TRACK_GATE.z, maxZ: PUP_TRACK_GATE.z }),
|
|
243
|
+
...bhFenceRing('bh-paddock', PADDOCK_BOX, { minX: PADDOCK_GATE.minX, maxX: PADDOCK_GATE.maxX, minZ: PADDOCK_GATE.z, maxZ: PADDOCK_GATE.z }),
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
/** The finish: the Fastest Times board beside the arch, a bench and lamps (Timekeeper Bea Corrin reads it out). */
|
|
247
|
+
export const FINISH_PIECES = [
|
|
248
|
+
kit('bh-board-finish', 'catchboard', 704, 292, 'w'),
|
|
249
|
+
kit('bh-finish-bench', 'hbbench', 706, 287, 'w'),
|
|
250
|
+
lamp('bh-finish-lamp-n', 703, 286),
|
|
251
|
+
lamp('bh-finish-lamp-s', 703, 296),
|
|
252
|
+
];
|
|
253
|
+
/** The Pup Track's infield: hay and a trough for the loose sheep. */
|
|
254
|
+
export const PUP_INFIELD_PIECES = [
|
|
255
|
+
kit('bh-pup-hay-1', 'hbhaybales', 706, 268),
|
|
256
|
+
kit('bh-pup-hay-2', 'hbhaybales', 716, 269),
|
|
257
|
+
kit('bh-pup-trough', 'sheeptrough', 711, 266),
|
|
258
|
+
];
|
|
259
|
+
/** The Lookout Rise's post and the wild heath's warning pieces. */
|
|
260
|
+
export const HEATH_PIECES = [
|
|
261
|
+
kit('bh-lookout-post', 'townbannerpost1x1', 712, 330),
|
|
262
|
+
kit('bh-lookout-brazier', 'evwatchbrazierlit', 714, 331),
|
|
263
|
+
];
|
|
264
|
+
/** The checkpoint flags: one beside the right-hand verge at each checkpoint (placed by the backend from the course). */
|
|
265
|
+
export function bhCheckpointStyle(n) {
|
|
266
|
+
return `flag-${n}`;
|
|
267
|
+
}
|
|
268
|
+
/** The signs (placard signposts). */
|
|
269
|
+
export const BH_SIGNS = [
|
|
270
|
+
{ id: 'bh-sign-strip', x: 692, z: 255, text: "Bracken Heath, round the Brackenstone: carts lent at Heathside Start, the Pup Track for any level, the Heath Dash for Combat 21 and over. Wild heath beyond, levels 18 to 30. No bank on the heath: banks are in the towns." },
|
|
271
|
+
{ id: 'bh-sign-start', x: 744, z: 282, text: "Heathside Start. Wainwright Pip Larkin lends the carts. The cart rolls by itself: you pick the lane. Hay, gorse, barrels and loose sheep knock coins off your pay, they never hurt you. There is no bank here: banks are in the towns." },
|
|
272
|
+
{ id: 'bh-sign-pup', x: 719, z: 282, text: 'The Pup Track. Two laps of the fence, any level. Left and right to change lane (keys, the arrows, or tap the lane). Hit nothing and Pip pays the whole purse.' },
|
|
273
|
+
{ id: 'bh-sign-finish', x: 707, z: 294, text: "The Heath Dash finish. Timekeeper Bea Corrin keeps the Fastest Times this week. The board starts again each Monday." },
|
|
274
|
+
{ id: 'bh-sign-wild', x: 725, z: 337, text: 'The wild heath. Gorse boars, adders and jackals in the brake and the run, things in the bracken that are not bracken, and harrier hawks. Levels 18 to 30. Nothing out there heals you.' },
|
|
275
|
+
{ id: 'bh-sign-thicket', x: 733, z: 398, text: "Old Gorsetusk's Thicket. A boar the size of a cart, moss on his tusks and a temper older than the Capital. When he lowers his head, get out of the lane he paints. Combat 26 and over." },
|
|
276
|
+
{ id: 'bh-sign-circle', x: 716, z: 407, text: 'The South Circle. Older than Brackenstone and smaller, and nobody remembers who stood the stones. The Heath Dash runs straight through it.' },
|
|
277
|
+
];
|
|
278
|
+
/** Sheet 8's six people, by their exact names. The cook is a counter in campTraders.ts (she BUYS cooking and sells no food). */
|
|
279
|
+
export const BH_FOLK_NAMES = {
|
|
280
|
+
wainwright: BH_KEEPER_NAME,
|
|
281
|
+
timekeeper: 'Timekeeper Bea Corrin',
|
|
282
|
+
carthand: 'Cart-Hand Ned Tolley',
|
|
283
|
+
warden: 'Course Warden Odo Fenn',
|
|
284
|
+
cook: 'Cook Maud Sallow',
|
|
285
|
+
racer: 'Racer Dilly Marsh',
|
|
286
|
+
};
|
|
287
|
+
const START = 'Heathside Start, Bracken Heath';
|
|
288
|
+
/** The five residents (named residents on the default look, stationary). Pip Larkin and Bea Corrin answer the ride's menus too (backend). */
|
|
289
|
+
export const BH_FOLK = [
|
|
290
|
+
{
|
|
291
|
+
id: 'bh-wainwright',
|
|
292
|
+
name: BH_FOLK_NAMES.wainwright,
|
|
293
|
+
place: START,
|
|
294
|
+
x: 741, z: 266, faceX: 741, faceZ: 263,
|
|
295
|
+
speak: "Pip Larkin, wainwright. I build the Heath Racers and I lend them, and I mend them after. A Racer rolls on by itself once Ned gives it the shove: all you do is pick your lane. The Pup Track is for anybody; the Heath Dash is for riders who can stand up to what lives out on the heath, Combat 21 and over.",
|
|
296
|
+
extras: [
|
|
297
|
+
{ id: 'lanes', label: 'How to steer', say: 'Three lanes, marked by the turf stripes and the flag posts. Left and right moves you a lane: the arrow keys, A and D, the arrows on the screen, or tap the lane you want. Hay, gorse, barrels and loose sheep slow you and knock coins off the pay. Straw mats give you a burst. Nobody gets hurt: a Racer is too slow to hurt anybody and too heavy to tip.' },
|
|
298
|
+
{ id: 'pay', label: 'The pay', say: 'A clean Pup Track is twelve coins and a clean Dash sixty; every knock takes a little off. I pay one run in five minutes. Ride as often as you like after that, for the board and for the joy of it.' },
|
|
299
|
+
],
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
id: 'bh-timekeeper',
|
|
303
|
+
name: BH_FOLK_NAMES.timekeeper,
|
|
304
|
+
place: 'the Heath Dash finish, Bracken Heath',
|
|
305
|
+
x: 703, z: 289, faceX: 698, faceZ: 290,
|
|
306
|
+
speak: "Bea Corrin, timekeeper. I have a bell, a board and a very good eye, and I do not round up. Every finish goes on the Fastest Times this week, the quickest ten of each course, and the board is wiped clean on Monday morning so nobody sits on a time for ever.",
|
|
307
|
+
extras: [
|
|
308
|
+
{ id: 'paint', label: 'Cart paint', say: `Ned paints a Racer for any rider who earns it, on the Heath Dash: ${BH_PAINTS.map((p) => `${p.label} under ${p.underMs / 1000} seconds`).join(', ')}. It is paint, nothing more. It goes no faster, whatever Dilly says.` },
|
|
309
|
+
],
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
id: 'bh-carthand',
|
|
313
|
+
name: BH_FOLK_NAMES.carthand,
|
|
314
|
+
place: 'the paddock at Heathside Start, Bracken Heath',
|
|
315
|
+
x: 751, z: 265, faceX: 751, faceZ: 262,
|
|
316
|
+
speak: "Ned Tolley, cart-hand. I keep the Racers greased, the wheels true and the hay out of the axles, and I give each one the shove at the line. If your cart is painted, I painted it.",
|
|
317
|
+
extras: [{ id: 'paint', label: 'The paint pots', say: 'Oak for everybody. Gorse Yellow, Heather Purple and Capital Blue for the quick ones: Bea writes your time, I paint your cart, and you keep it. The best you have earned goes on every Racer you ride.' }],
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
id: 'bh-warden',
|
|
321
|
+
name: BH_FOLK_NAMES.warden,
|
|
322
|
+
place: START,
|
|
323
|
+
x: 744, z: 284, faceX: 744, faceZ: 300,
|
|
324
|
+
speak: "Odo Fenn, course warden. I walk the course every morning, stand the flags up, and chase off whatever got into the lanes overnight. The sheep I can manage. The boars I leave to riders with swords. And the big one in the thicket I leave alone.",
|
|
325
|
+
extras: [{ id: 'heath', label: 'The wild heath', say: 'Inside the loop it is wild: gorse boars and adders in the brake, jackals running in fours, bracken lurkers that sit still until you walk into them, and hawks. Levels eighteen to thirty. Old Gorsetusk keeps the thicket by the south turn. Nothing out there heals you, so eat before you go.' }],
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: 'bh-racer',
|
|
329
|
+
name: BH_FOLK_NAMES.racer,
|
|
330
|
+
place: START,
|
|
331
|
+
x: 756, z: 281, faceX: 752, faceZ: 284,
|
|
332
|
+
speak: "Dilly Marsh. I have ridden the Dash more times than Ned has painted it. The trick is not the fast lane, there is no fast lane: it is looking two hazards ahead and swerving once, not twice. Swerve twice and you clip the stripe.",
|
|
333
|
+
extras: [{ id: 'tips', label: 'Racing tips', say: 'Watch the barrel alley: the barrels go left, left, middle, right, left... no, I am not telling you. The hares on the south straight do not care about your pay. And take the straw mats: a mat after a knock takes the knock off your legs.' }],
|
|
334
|
+
},
|
|
335
|
+
];
|
|
336
|
+
export function bhFolkByName(name) {
|
|
337
|
+
return name ? BH_FOLK.find((p) => p.name === name) ?? null : null;
|
|
338
|
+
}
|
|
339
|
+
/** The cook, who lives in CAMP_TRADERS (campTraders.ts) beside the other camps' cooks. */
|
|
340
|
+
export const BH_COOK = { id: 'camp-bracken-heath', name: BH_FOLK_NAMES.cook, x: 736, z: 275, faceX: 738, faceZ: 274 };
|
|
341
|
+
// ---- Quest props -------------------------------------------------------------------------------------------------------------------------
|
|
342
|
+
export const BH_PROP = { flag: 'bhflag' };
|
|
343
|
+
/** A checkpoint flag the old boar has gored, at the edge of his thicket (Old Gorsetusk). The ride quests count Ledger marks instead (a `bout` step). */
|
|
344
|
+
export const BH_GORED_FLAG = { id: 'bh-gored-flag', x: 730, z: 398, style: `${BH_PROP.flag}:gored` };
|
|
345
|
+
export const BH_QUEST_PROPS = [BH_GORED_FLAG];
|
|
346
|
+
export const BH_QUEST_PROP_NAMES = {
|
|
347
|
+
[BH_GORED_FLAG.style]: 'Gored Checkpoint Flag',
|
|
348
|
+
};
|
|
349
|
+
/** The model a Bracken Heath quest prop draws with (frontend quest-prop models that already exist), or null. */
|
|
350
|
+
export function bhPropModel(prop) {
|
|
351
|
+
if (prop === BH_PROP.flag)
|
|
352
|
+
return 'questbrokenfence';
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
/** Standable tiles for teleports, smokes and the helper. */
|
|
356
|
+
export const BH_STANDS = {
|
|
357
|
+
strip: { x: 694, z: 254 },
|
|
358
|
+
start: { x: 744, z: 276 },
|
|
359
|
+
shed: { x: 741, z: 267 },
|
|
360
|
+
pup: { x: 714, z: 282 },
|
|
361
|
+
dashStart: { x: 748, z: 282 },
|
|
362
|
+
finish: { x: 704, z: 288 },
|
|
363
|
+
chicane: { x: 759, z: 290 },
|
|
364
|
+
barrels: { x: 746, z: 350 },
|
|
365
|
+
circle: { x: 712, z: 404 },
|
|
366
|
+
lookout: { x: 712, z: 336 },
|
|
367
|
+
wild: { x: 725, z: 336 },
|
|
368
|
+
thicket: { x: 733, z: 397 },
|
|
369
|
+
};
|
|
370
|
+
/** What the guide, the verify links and the quest helper say about the place. */
|
|
371
|
+
export const BRACKEN_HEATH_PLACE_TEXT = "Bracken Heath is the open heath south of the Capital's moat round the Brackenstone circle, for levels 1 to 30, reached on foot from the Capital's South Gate: over the South Bridge, then east along the strip under the Dreadwoods' wall. Heathside Start lends carts you steer: the Pup Track for any level and the Heath Dash for Combat 21 and over, with a weekly Fastest Times board. The wild heath inside the Dash's loop holds boars, adders, jackals, bracken lurkers, hawks and Old Gorsetusk. Six people work it. There is no bank on the heath.";
|
|
372
|
+
export const HEATHSIDE_DISCOVERY_ZONE = { id: 'heathside-start', label: 'Heathside Start', coordinateFrame: 'world', ...HEATHSIDE_START_BOX };
|
|
373
|
+
export const BRACKEN_HEATH_UMBRELLA_ZONE = { id: BRACKEN_HEATH_ID, label: BRACKEN_HEATH_NAME, coordinateFrame: 'world', ...BRACKEN_HEATH_BOX };
|
|
374
|
+
/** The Explorer's Ledger page of the heath (explorerLedger.ts section `heath`): written by the server from finished rides. */
|
|
375
|
+
export const LEDGER_HEATH_LINES = [
|
|
376
|
+
{ id: BH_MARK_PUP, label: 'Rode the Pup Track to the finish' },
|
|
377
|
+
{ id: BH_MARK_DASH, label: 'Rode the Heath Dash to the finish' },
|
|
378
|
+
{ id: BH_MARK_CLEAN, label: 'Rode the Heath Dash without a single knock' },
|
|
379
|
+
...BH_PAINTS.map((p) => ({ id: p.mark, label: `Earned ${p.label} paint (a Dash under ${Math.round(p.underMs / 1000)} seconds)` })),
|
|
380
|
+
];
|
|
381
|
+
//# sourceMappingURL=brackenHeath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brackenHeath.js","sourceRoot":"","sources":["../src/brackenHeath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BRACKEN HEATH'S WILD HEATH AND OLD GORSETUSK (2026-10-19; brackenHeath.ts has the place). Sheet 9's creatures, in the pattern of Saltgrass Downs'
|
|
3
|
+
* dens (saltgrassDens.ts): three dens of EXISTING kinds inside the Heath Dash's loop, levels 18-28, each told apart from the same kind elsewhere by its
|
|
4
|
+
* id (`bhd-<site>-<kind>-<n>`). The backend rolls level, hit, drops, respawn and aggro from THIS file, and a den creature hunts only a player standing
|
|
5
|
+
* INSIDE its own den's box (never the course, never the start, never the Pup Track) and gives up at its leash.
|
|
6
|
+
*
|
|
7
|
+
* The sheet's creatures are drawn as the kit's own until models of their own exist (backend upgrades row `bracken-heath-creatures`): the gorse boar is
|
|
8
|
+
* the boar, the heath adder the stone serpent, the heath jackal the common fox (not the beach's fox, whose kills are counted for Anne), the bracken lurker the twigling (a bush that walks), the harrier hawk the cliff
|
|
9
|
+
* hawk. Each carries its sheet name. The heath hares are the brown hare, harmless (the north of the heath, for level 1 players), and two of them dart
|
|
10
|
+
* across the Heath Dash's lanes (brackenHeath.ts crossers).
|
|
11
|
+
*
|
|
12
|
+
* OLD GORSETUSK is the heath's mini-boss (level 29): a huge scarred boar with moss on his tusks, in the thicket by the Dash's south turn. Passive until
|
|
13
|
+
* struck. Every fourth blow is his Charge (bossSignatures.ts `gorse-charge`): he lowers his head and a lane is painted on the grass a full turn ahead;
|
|
14
|
+
* step out of it and the charge goes by (the step-clear counter). Drawn as the boar, larger, until a model of his own exists (upgrades row
|
|
15
|
+
* `old-gorsetusk-model`).
|
|
16
|
+
*
|
|
17
|
+
* Nothing here is 41+. Every number is a PLACEHOLDER for the balance pass. Nothing here heals anyone.
|
|
18
|
+
*/
|
|
19
|
+
import type { DiscoveryZone } from './landmarks.js';
|
|
20
|
+
import { type BhBox } from './brackenHeath.js';
|
|
21
|
+
export type BhDenKind = 'boar' | 'stoneserpent' | 'commonfox' | 'twigling' | 'cliffhawk';
|
|
22
|
+
export type BhDenSiteId = 'gorse-brake' | 'jackal-run' | 'bracken-deeps';
|
|
23
|
+
export type BhDenSpot = {
|
|
24
|
+
readonly x: number;
|
|
25
|
+
readonly z: number;
|
|
26
|
+
readonly leash: number;
|
|
27
|
+
};
|
|
28
|
+
export type BhDenGroup = {
|
|
29
|
+
readonly kind: BhDenKind;
|
|
30
|
+
/** What the creature is called on the heath (sheet 9). */
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly level: readonly [number, number];
|
|
33
|
+
readonly maxHit: number;
|
|
34
|
+
readonly healthScale: number;
|
|
35
|
+
readonly aggro: number;
|
|
36
|
+
readonly leashRadius: number;
|
|
37
|
+
readonly notice: string;
|
|
38
|
+
readonly respawnMs: {
|
|
39
|
+
readonly minMs: number;
|
|
40
|
+
readonly maxMs: number;
|
|
41
|
+
};
|
|
42
|
+
readonly pace: {
|
|
43
|
+
readonly speed: number;
|
|
44
|
+
readonly idleChance: number;
|
|
45
|
+
readonly pause: readonly [number, number];
|
|
46
|
+
};
|
|
47
|
+
readonly spots: readonly BhDenSpot[];
|
|
48
|
+
readonly drops: readonly {
|
|
49
|
+
readonly itemKind: string;
|
|
50
|
+
readonly chance: number;
|
|
51
|
+
readonly minQty: number;
|
|
52
|
+
readonly maxQty: number;
|
|
53
|
+
}[];
|
|
54
|
+
};
|
|
55
|
+
export type BhDenSite = {
|
|
56
|
+
readonly id: BhDenSiteId;
|
|
57
|
+
readonly label: string;
|
|
58
|
+
readonly box: BhBox;
|
|
59
|
+
/** Where the guide and the verify link send a player: open ground just outside the den. */
|
|
60
|
+
readonly stand: {
|
|
61
|
+
readonly x: number;
|
|
62
|
+
readonly z: number;
|
|
63
|
+
};
|
|
64
|
+
readonly blurb: string;
|
|
65
|
+
readonly groups: readonly BhDenGroup[];
|
|
66
|
+
};
|
|
67
|
+
export declare const BH_DEN_SITES: readonly BhDenSite[];
|
|
68
|
+
export declare const BH_DEN_SITE_IDS: readonly BhDenSiteId[];
|
|
69
|
+
export declare function inBhDenBox(box: BhBox, x: number, z: number): boolean;
|
|
70
|
+
/** The den whose box holds this tile, or null (the boxes never overlap: scripts/bracken-heath-test.mjs). */
|
|
71
|
+
export declare function bhDenSiteAt(x: number, z: number): BhDenSite | null;
|
|
72
|
+
export declare const BH_DEN_ID_PREFIX = "bhd-";
|
|
73
|
+
export declare function bhDenId(site: BhDenSiteId, kind: BhDenKind, n: number): string;
|
|
74
|
+
/** The site and group an id names, or null for any other creature (Old Gorsetusk's id parses to null). */
|
|
75
|
+
export declare function parseBhDenId(id: string): {
|
|
76
|
+
site: BhDenSite;
|
|
77
|
+
group: BhDenGroup;
|
|
78
|
+
} | null;
|
|
79
|
+
/** Brown hares by another name: level 1-3 game for anybody, never aggressive, on open ground away from the courses. */
|
|
80
|
+
export declare const BH_HARE_NAME = "Heath Hare";
|
|
81
|
+
export declare const BH_HARE_ID_PREFIX = "bhh-";
|
|
82
|
+
export declare const BH_HARES: ReadonlyArray<{
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly x: number;
|
|
85
|
+
readonly z: number;
|
|
86
|
+
readonly leash: number;
|
|
87
|
+
}>;
|
|
88
|
+
export declare const OLD_GORSETUSK_KIND = "oldgorsetusk";
|
|
89
|
+
export declare const OLD_GORSETUSK_NAME = "Old Gorsetusk";
|
|
90
|
+
/** The thicket by the Dash's south turn (the course passes south of it, outside his reach). */
|
|
91
|
+
export declare const GORSETUSK_THICKET_BOX: BhBox;
|
|
92
|
+
export declare const OLD_GORSETUSK: {
|
|
93
|
+
readonly id: "bhd-old-gorsetusk-1";
|
|
94
|
+
readonly x: 733;
|
|
95
|
+
readonly z: 406;
|
|
96
|
+
readonly leash: 4;
|
|
97
|
+
readonly level: readonly [number, number];
|
|
98
|
+
readonly maxHit: 22;
|
|
99
|
+
/** A mini-boss's hide: much thicker than the level's ordinary health. */
|
|
100
|
+
readonly healthScale: 2.3;
|
|
101
|
+
/** Drawn bigger than a boar (the same model, scaled). */
|
|
102
|
+
readonly scale: 2.1;
|
|
103
|
+
readonly note: "A huge scarred boar with moss on his tusks, lord of the thicket by the Heath Dash's south turn. Passive until struck. Every fourth blow he lowers his head and a lane is painted on the grass a full turn ahead: step out of the lane and his Charge goes by. Back five to seven minutes after he falls.";
|
|
104
|
+
};
|
|
105
|
+
export declare const OLD_GORSETUSK_RESPAWN_MS: {
|
|
106
|
+
readonly minMs: 300000;
|
|
107
|
+
readonly maxMs: 420000;
|
|
108
|
+
};
|
|
109
|
+
export declare const OLD_GORSETUSK_PACE: {
|
|
110
|
+
readonly speed: 0.9;
|
|
111
|
+
readonly idleChance: 0.6;
|
|
112
|
+
readonly pause: readonly [number, number];
|
|
113
|
+
};
|
|
114
|
+
/** Placeholders for the balance pass: coins, meat, iron and a rare steel bar. */
|
|
115
|
+
export declare const OLD_GORSETUSK_DROPS: readonly {
|
|
116
|
+
itemKind: string;
|
|
117
|
+
chance: number;
|
|
118
|
+
minQty: number;
|
|
119
|
+
maxQty: number;
|
|
120
|
+
}[];
|
|
121
|
+
/** The model the client draws him with until he has one (the boar's, at OLD_GORSETUSK.scale). */
|
|
122
|
+
export declare const OLD_GORSETUSK_STAND_IN = "boar";
|
|
123
|
+
export declare const BRACKEN_HEATH_DISCOVERY_ZONES: readonly DiscoveryZone[];
|
|
124
|
+
//# sourceMappingURL=brackenHeathDens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brackenHeathDens.d.ts","sourceRoot":"","sources":["../src/brackenHeathDens.ts"],"names":[],"mappings":"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"}
|