@dreadwood-types/types 0.1.370 → 0.1.371

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.
Files changed (59) hide show
  1. package/dist/attackableNpcs.d.ts.map +1 -1
  2. package/dist/attackableNpcs.js +2 -0
  3. package/dist/attackableNpcs.js.map +1 -1
  4. package/dist/bossSignatures.d.ts +1 -1
  5. package/dist/bossSignatures.d.ts.map +1 -1
  6. package/dist/bossSignatures.js +6 -0
  7. package/dist/bossSignatures.js.map +1 -1
  8. package/dist/brackenHeath.d.ts +285 -0
  9. package/dist/brackenHeath.d.ts.map +1 -0
  10. package/dist/brackenHeath.js +381 -0
  11. package/dist/brackenHeath.js.map +1 -0
  12. package/dist/brackenHeathDens.d.ts +124 -0
  13. package/dist/brackenHeathDens.d.ts.map +1 -0
  14. package/dist/brackenHeathDens.js +163 -0
  15. package/dist/brackenHeathDens.js.map +1 -0
  16. package/dist/brackenHeathQuestDef.d.ts +20 -0
  17. package/dist/brackenHeathQuestDef.d.ts.map +1 -0
  18. package/dist/brackenHeathQuestDef.js +116 -0
  19. package/dist/brackenHeathQuestDef.js.map +1 -0
  20. package/dist/campKitchens.d.ts.map +1 -1
  21. package/dist/campKitchens.js +5 -0
  22. package/dist/campKitchens.js.map +1 -1
  23. package/dist/campTraders.d.ts.map +1 -1
  24. package/dist/campTraders.js +13 -0
  25. package/dist/campTraders.js.map +1 -1
  26. package/dist/constants.d.ts +7 -1
  27. package/dist/constants.d.ts.map +1 -1
  28. package/dist/constants.js +2 -0
  29. package/dist/constants.js.map +1 -1
  30. package/dist/expandedContracts.d.ts.map +1 -1
  31. package/dist/expandedContracts.js +2 -1
  32. package/dist/expandedContracts.js.map +1 -1
  33. package/dist/explorerLedger.d.ts +2 -1
  34. package/dist/explorerLedger.d.ts.map +1 -1
  35. package/dist/explorerLedger.js +6 -0
  36. package/dist/explorerLedger.js.map +1 -1
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/legacy.d.ts +4 -0
  42. package/dist/legacy.d.ts.map +1 -1
  43. package/dist/legacy.js +4 -0
  44. package/dist/legacy.js.map +1 -1
  45. package/dist/messages.d.ts +35 -0
  46. package/dist/messages.d.ts.map +1 -1
  47. package/dist/messages.js.map +1 -1
  48. package/dist/quests.d.ts.map +1 -1
  49. package/dist/quests.js +19 -0
  50. package/dist/quests.js.map +1 -1
  51. package/dist/steeredRide.d.ts +240 -0
  52. package/dist/steeredRide.d.ts.map +1 -0
  53. package/dist/steeredRide.js +431 -0
  54. package/dist/steeredRide.js.map +1 -0
  55. package/dist/storyQuests.d.ts +1 -1
  56. package/dist/storyQuests.d.ts.map +1 -1
  57. package/dist/storyQuests.js +13 -0
  58. package/dist/storyQuests.js.map +1 -1
  59. package/package.json +2 -2
@@ -0,0 +1,431 @@
1
+ /**
2
+ * A STEERED RIDE (2026-10-19, first used by Bracken Heath's Pup Track and Heath Dash, brackenHeath.ts): a cart the SERVER moves along a course
3
+ * while the rider picks one of three lanes. Hask's Sled Run (sledRun.ts) is the pattern: the server sets the rider's `path`, the world's
4
+ * ordinary stepping carries them along it at the ride's pace, and the client only draws it. What is new here is the lanes: a course is a
5
+ * centreline of 8-connected tiles, and each lane is that line pushed sideways, so a lane change is two diagonal steps across the turf
6
+ * stripe between two lanes.
7
+ *
8
+ * Everything in this file is pure data and pure maths, shared by the server (which moves the cart, checks hits and pays) and the client
9
+ * (which draws the course's hazards and crossers and the rider's readout). Nothing here touches health: a hazard slows the cart and knocks
10
+ * coins off the pay, and that is all it can do.
11
+ *
12
+ * Coordinates are world tiles (x east, z south). A direction is a step (dx, dz) with each part -1, 0 or 1. The lane offsets are along the
13
+ * rider's RIGHT-hand normal (-dz, dx): lane 0 is the left lane, 1 the middle, 2 the right.
14
+ */
15
+ export const RIDE_LANES = [0, 1, 2];
16
+ /** Tiles sideways from the centreline (along the right-hand normal) for lanes 0, 1 and 2. The tiles between them (offset -1 and 1) are the turf stripes. */
17
+ export const RIDE_LANE_OFFSETS = [-2, 0, 2];
18
+ export const RIDE_LANE_NAMES = ['left', 'middle', 'right'];
19
+ export function isRideLane(v) {
20
+ return v === 0 || v === 1 || v === 2;
21
+ }
22
+ /** The hold at the line between being counted in and the cart rolling. */
23
+ export const RIDE_READY_MS = 3000;
24
+ /** After any ending, the next ride waits this long. */
25
+ export const RIDE_RETRY_MS = 4000;
26
+ /** A finished run pays at most once in this long per rider (another run is always free to ride, and counts for the board). */
27
+ export const RIDE_PAY_WINDOW_MS = 5 * 60_000;
28
+ /** A crosser knocks a rider whose tile is within this (Chebyshev) of its own, and whose progress is within this of its crossing. */
29
+ export const RIDE_CROSSER_HIT = 1;
30
+ /** How many steps back a revisited tile counts as a corner's fold (rideLaneTiles). */
31
+ const RIDE_FOLD_REACH = 8;
32
+ const sign = (n) => (n > 0 ? 1 : n < 0 ? -1 : 0);
33
+ const cheb = (ax, az, bx, bz) => Math.max(Math.abs(ax - bx), Math.abs(az - bz));
34
+ /** The centreline: every tile from the first waypoint to the last, each with its leg's direction. Throws on a leg that is not straight or diagonal. */
35
+ export function rideCentreline(course) {
36
+ const loop = [];
37
+ const wp = course.waypoints;
38
+ for (let i = 0; i + 1 < wp.length; i++) {
39
+ const [ax, az] = wp[i];
40
+ const [bx, bz] = wp[i + 1];
41
+ const ddx = bx - ax, ddz = bz - az;
42
+ if (ddx !== 0 && ddz !== 0 && Math.abs(ddx) !== Math.abs(ddz))
43
+ throw new Error(`ride leg ${ax},${az} -> ${bx},${bz} is neither straight nor diagonal`);
44
+ const dx = sign(ddx), dz = sign(ddz);
45
+ const n = Math.max(Math.abs(ddx), Math.abs(ddz));
46
+ for (let k = 0; k < n; k++)
47
+ loop.push({ x: ax + dx * k, z: az + dz * k, dx, dz });
48
+ }
49
+ const last = wp[wp.length - 1];
50
+ const tail = loop[loop.length - 1];
51
+ const out = [];
52
+ for (let lap = 0; lap < course.laps; lap++)
53
+ out.push(...loop);
54
+ out.push({ x: last[0], z: last[1], dx: tail?.dx ?? 0, dz: tail?.dz ?? 1 });
55
+ return out;
56
+ }
57
+ /** The right-hand normal of a direction. */
58
+ export function rideNormal(dx, dz) {
59
+ return { nx: -dz, nz: dx };
60
+ }
61
+ /**
62
+ * One lane (or the centreline at offset 0) as a walkable chain of tiles: every centreline tile pushed `offset` along its normal, with
63
+ * the gaps a corner opens filled by straight steps and the cusps a corner folds dropped, so each step is to a neighbouring tile and no tile
64
+ * is visited twice. Each tile keeps the centreline index it came from (`p`, never decreasing).
65
+ */
66
+ export function rideLaneTiles(centre, offset) {
67
+ const out = [];
68
+ const seen = new Map();
69
+ const push = (x, z, p) => {
70
+ const key = `${x},${z}`;
71
+ const at = seen.get(key);
72
+ // A fold at an inner corner revisits a tile a few steps back (a second lap revisits it far back, which is no fold).
73
+ if (at !== undefined && out.length - at <= RIDE_FOLD_REACH) {
74
+ // Drop the loop back to where the tile was first stood on.
75
+ for (let i = out.length - 1; i > at; i--)
76
+ seen.delete(`${out[i].x},${out[i].z}`);
77
+ out.length = at + 1;
78
+ return;
79
+ }
80
+ seen.set(key, out.length);
81
+ out.push({ x, z, p, o: offset });
82
+ };
83
+ for (let i = 0; i < centre.length; i++) {
84
+ const c = centre[i];
85
+ // At a corner the tile belongs to the leg it starts (its own direction); a lap's seam is the same.
86
+ const { nx, nz } = rideNormal(c.dx, c.dz);
87
+ const tx = c.x + nx * offset, tz = c.z + nz * offset;
88
+ const prev = out[out.length - 1];
89
+ if (prev) {
90
+ // Fill a gap with straight steps toward the new tile.
91
+ let px = prev.x, pz = prev.z;
92
+ while (cheb(px, pz, tx, tz) > 1) {
93
+ px += sign(tx - px);
94
+ pz += sign(tz - pz);
95
+ push(px, pz, i);
96
+ }
97
+ }
98
+ push(tx, tz, i);
99
+ }
100
+ // An inner corner can still leave a zig (a step sideways and back): a tile whose neighbour two on is already next to the one before it is
101
+ // a detour, so it goes. Repeated until nothing changes.
102
+ for (let changed = true; changed;) {
103
+ changed = false;
104
+ for (let i = 2; i < out.length; i++) {
105
+ if (cheb(out[i].x, out[i].z, out[i - 2].x, out[i - 2].z) <= 1) {
106
+ out.splice(i - 1, 1);
107
+ changed = true;
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ return out;
113
+ }
114
+ const built = new Map();
115
+ export function buildRideCourse(course) {
116
+ const cached = built.get(course.id);
117
+ if (cached && cached.course === course)
118
+ return cached;
119
+ const centre = rideCentreline(course);
120
+ const lanes = [rideLaneTiles(centre, RIDE_LANE_OFFSETS[0]), rideLaneTiles(centre, RIDE_LANE_OFFSETS[1]), rideLaneTiles(centre, RIDE_LANE_OFFSETS[2])];
121
+ const offsets = groundOffsets(centre);
122
+ // The lanes' own tiles are always ground, at their own offset.
123
+ for (const lane of lanes)
124
+ for (const t of lane)
125
+ offsets.set(`${t.x},${t.z}`, t.o);
126
+ const out = { course, centre, lanes, finishP: centre.length - 1, ground: new Set(offsets.keys()), groundOffsets: offsets };
127
+ built.set(course.id, out);
128
+ return out;
129
+ }
130
+ /** The first tile of a lane at or past centreline index p (the last tile when p is past the end). */
131
+ export function rideLaneIndexAt(lane, p) {
132
+ for (let i = 0; i < lane.length; i++)
133
+ if (lane[i].p >= p)
134
+ return i;
135
+ return lane.length - 1;
136
+ }
137
+ /** The tile a hazard or boost mat stands on: its lane's first tile at its index. */
138
+ export function rideMarkTile(b, mark) {
139
+ const lane = b.lanes[mark.lane];
140
+ return lane[rideLaneIndexAt(lane, mark.p)];
141
+ }
142
+ /**
143
+ * Every tile of a course's ground: a solid band round the centreline, each tile with its sideways offset (rounded toward the centre: -2, 0 and 2
144
+ * are the lanes, -1 and 1 the turf stripes, -3 and 3 the verges). A tile belongs to its nearest centreline tile, so a diagonal leg is as solid as a
145
+ * straight one (no checkerboard of gaps between its lanes for a stone to stand in).
146
+ */
147
+ export function rideGroundTiles(b) {
148
+ return [...b.groundOffsets.entries()].map(([k, o]) => {
149
+ const [x, z] = k.split(',').map(Number);
150
+ return { x, z, o };
151
+ });
152
+ }
153
+ function groundOffsets(centre) {
154
+ const best = new Map();
155
+ const first = centre[0], last = centre[centre.length - 1];
156
+ const open = first.x !== last.x || first.z !== last.z;
157
+ centre.forEach((c) => {
158
+ const { nx, nz } = rideNormal(c.dx, c.dz);
159
+ const nn = nx * nx + nz * nz || 1;
160
+ for (let dz = -3; dz <= 3; dz++) {
161
+ for (let dx = -3; dx <= 3; dx++) {
162
+ // Nothing behind the start or past the finish of a course that is not a loop: it begins and ends square.
163
+ if (open) {
164
+ const x = c.x + dx, z = c.z + dz;
165
+ if (cheb(x, z, first.x, first.z) <= 4 && (x - first.x) * first.dx + (z - first.z) * first.dz < 0)
166
+ continue;
167
+ if (cheb(x, z, last.x, last.z) <= 4 && (x - last.x) * last.dx + (z - last.z) * last.dz > 0)
168
+ continue;
169
+ }
170
+ const d = dx * dx + dz * dz;
171
+ const key = `${c.x + dx},${c.z + dz}`;
172
+ const had = best.get(key);
173
+ if (had && had.d <= d)
174
+ continue;
175
+ best.set(key, { d, s: (dx * nx + dz * nz) / nn });
176
+ }
177
+ }
178
+ });
179
+ const out = new Map();
180
+ for (const [key, { s }] of best) {
181
+ const o = Math.sign(s) * Math.floor(Math.abs(s) + 0.25);
182
+ if (Math.abs(o) <= 3)
183
+ out.set(key, o);
184
+ }
185
+ return out;
186
+ }
187
+ /**
188
+ * A lane change: the steps from the rider's tile across to the new lane, landing two centreline tiles ahead, then on along it. `from` is the
189
+ * rider's tile; returns the steps (each to a neighbouring tile) and the index in the new lane where the rider lands, or null when the course
190
+ * is too near its end to change.
191
+ */
192
+ export function rideLaneChange(b, from, to) {
193
+ const lane = b.lanes[to];
194
+ const o = RIDE_LANE_OFFSETS[to];
195
+ // Land two centreline tiles on (up to six round a tight corner), by the shortest way over the course's own ground: never off it, and a
196
+ // diagonal only where both tiles beside it are ground too (the world's own corner rule).
197
+ for (const ahead of [2, 3, 4, 5, 6]) {
198
+ const landIndex = rideLaneIndexAt(lane, from.p + ahead);
199
+ const land = lane[landIndex];
200
+ if (land.p <= from.p || landIndex >= lane.length - 1)
201
+ return null;
202
+ const path = groundPath(b, from, land, 5);
203
+ if (!path)
204
+ continue;
205
+ // A tile between lanes is the stripe: it counts as both lanes it lies between (rideTileLanes), so swerving is never a way past a hazard.
206
+ const steps = path.slice(0, -1).map((t) => ({ x: t.x, z: t.z, p: Math.min(land.p, from.p + 1), o: (from.o + o) / 2 }));
207
+ steps.push(land);
208
+ return { steps, landIndex };
209
+ }
210
+ return null;
211
+ }
212
+ /** The shortest 8-way walk over the course's ground from one tile to another, at most `max` steps (the target included), or null. */
213
+ function groundPath(b, from, to, max) {
214
+ const key = (x, z) => `${x},${z}`;
215
+ const prev = new Map([[key(from.x, from.z), null]]);
216
+ let frontier = [{ x: from.x, z: from.z }];
217
+ for (let depth = 0; depth < max && frontier.length; depth++) {
218
+ const next = [];
219
+ for (const t of frontier) {
220
+ for (let dz = -1; dz <= 1; dz++) {
221
+ for (let dx = -1; dx <= 1; dx++) {
222
+ if (!dx && !dz)
223
+ continue;
224
+ const nx = t.x + dx, nz = t.z + dz, k = key(nx, nz);
225
+ if (prev.has(k) || !b.ground.has(k))
226
+ continue;
227
+ if (dx && dz && (!b.ground.has(key(t.x + dx, t.z)) || !b.ground.has(key(t.x, t.z + dz))))
228
+ continue;
229
+ prev.set(k, key(t.x, t.z));
230
+ if (nx === to.x && nz === to.z) {
231
+ const out = [];
232
+ for (let at = k; at && at !== key(from.x, from.z); at = prev.get(at) ?? null) {
233
+ const [x, z] = at.split(',').map(Number);
234
+ out.unshift({ x, z });
235
+ }
236
+ return out;
237
+ }
238
+ next.push({ x: nx, z: nz });
239
+ }
240
+ }
241
+ }
242
+ frontier = next;
243
+ }
244
+ return null;
245
+ }
246
+ /** The lanes a tile counts as for hits: its own, or both lanes either side of a stripe. */
247
+ export function rideTileLanes(t) {
248
+ const out = [];
249
+ for (const lane of RIDE_LANES)
250
+ if (Math.abs(RIDE_LANE_OFFSETS[lane] - t.o) <= 1)
251
+ out.push(lane);
252
+ return out;
253
+ }
254
+ /** The lane nearest a world tile at the rider's progress (a tap on the course): the lane whose tile a few steps ahead is nearest it. */
255
+ export function rideLaneNearest(b, p, x, z) {
256
+ let best = 1, bestD = Infinity;
257
+ for (const lane of RIDE_LANES) {
258
+ const tiles = b.lanes[lane];
259
+ const t = tiles[rideLaneIndexAt(tiles, p + 3)];
260
+ const d = Math.hypot(t.x - x, t.z - z);
261
+ if (d < bestD) {
262
+ bestD = d;
263
+ best = lane;
264
+ }
265
+ }
266
+ return best;
267
+ }
268
+ /** A crosser's sideways offset at a moment: it runs from -reach to +reach and back, one tile per msPerTile. */
269
+ export function rideCrosserOffset(c, nowMs) {
270
+ const span = c.reach * 2;
271
+ const step = Math.floor((nowMs + c.phaseMs) / c.msPerTile);
272
+ const k = ((step % (span * 2)) + span * 2) % (span * 2);
273
+ return k <= span ? -c.reach + k : c.reach - (k - span);
274
+ }
275
+ /** A crosser's tile at a moment (the centreline tile at its index, pushed sideways by its offset). */
276
+ export function rideCrosserTile(b, c, nowMs) {
277
+ const t = b.centre[Math.min(c.p, b.centre.length - 1)];
278
+ const { nx, nz } = rideNormal(t.dx, t.dz);
279
+ const o = rideCrosserOffset(c, nowMs);
280
+ return { x: t.x + nx * o, z: t.z + nz * o, o };
281
+ }
282
+ /** Is a rider on this tile knocked by this crosser now? */
283
+ export function rideCrosserHits(b, c, rider, nowMs) {
284
+ if (Math.abs(rider.p - c.p) > RIDE_CROSSER_HIT)
285
+ return false;
286
+ const t = rideCrosserTile(b, c, nowMs);
287
+ return cheb(t.x, t.z, rider.x, rider.z) <= RIDE_CROSSER_HIT && Math.abs(t.o - rider.o) <= 1;
288
+ }
289
+ /** The cart's pace at a progress index: slowed after a knock, boosted after a mat, else its own. */
290
+ export function rideSpeedAt(course, p, boostUntil, slowUntil) {
291
+ if (p < slowUntil)
292
+ return course.slowSpeed;
293
+ if (p < boostUntil)
294
+ return course.boostSpeed;
295
+ return course.speed;
296
+ }
297
+ /** What a finished run pays: the course's pay less the knocks, never below its least. */
298
+ export function ridePay(course, knocks) {
299
+ return Math.max(course.minPay, course.pay - Math.max(0, knocks) * course.knockCoins);
300
+ }
301
+ /** Seconds with one decimal: 61840 -> "61.8 s". */
302
+ export function formatRideTime(ms) {
303
+ return `${(Math.max(0, ms) / 1000).toFixed(1)} s`;
304
+ }
305
+ export const RIDE_BOARD_SIZE = 10;
306
+ /** The ISO week a moment falls in (Monday starts a week), the board's key: "2026-W43". */
307
+ export function rideWeekKey(nowMs) {
308
+ const d = new Date(nowMs);
309
+ const day = (d.getUTCDay() + 6) % 7;
310
+ const thursday = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() - day + 3));
311
+ const yearStart = Date.UTC(thursday.getUTCFullYear(), 0, 1);
312
+ const week = Math.floor((thursday.getTime() - yearStart) / 86_400_000 / 7) + 1;
313
+ return `${thursday.getUTCFullYear()}-W${String(week).padStart(2, '0')}`;
314
+ }
315
+ export function emptyRideBoard(nowMs) {
316
+ return { week: rideWeekKey(nowMs), courses: {} };
317
+ }
318
+ function rankRows(rows) {
319
+ return [...rows].sort((a, b) => a.ms - b.ms || a.at - b.at).slice(0, RIDE_BOARD_SIZE);
320
+ }
321
+ /** The board as saved, or a fresh one: last week's board, a broken row, an impossible time or an unknown course is dropped. */
322
+ export function parseRideBoard(raw, nowMs, plausible) {
323
+ const fresh = emptyRideBoard(nowMs);
324
+ if (!raw || typeof raw !== 'object')
325
+ return fresh;
326
+ const r = raw;
327
+ if (r.week !== fresh.week || !r.courses || typeof r.courses !== 'object')
328
+ return fresh;
329
+ for (const [id, list] of Object.entries(r.courses)) {
330
+ if (!Array.isArray(list))
331
+ continue;
332
+ const rows = [];
333
+ for (const row of list.slice(0, 50)) {
334
+ const q = row;
335
+ if (!q || typeof q.name !== 'string' || !q.name || typeof q.ms !== 'number' || !Number.isFinite(q.ms) || typeof q.at !== 'number')
336
+ continue;
337
+ if (!plausible(id, q.ms))
338
+ continue;
339
+ if (rows.some((x) => x.name === q.name))
340
+ continue;
341
+ rows.push({ name: q.name.slice(0, 40), ms: Math.round(q.ms), at: q.at });
342
+ }
343
+ if (rows.length)
344
+ fresh.courses[id] = rankRows(rows);
345
+ }
346
+ return fresh;
347
+ }
348
+ /** A finished run on the board: one row a name (only a quicker run replaces it); a new week starts afresh. */
349
+ export function recordRideTime(save, courseId, name, ms, nowMs) {
350
+ const base = save.week === rideWeekKey(nowMs) ? save : emptyRideBoard(nowMs);
351
+ const rows = base.courses[courseId] ?? [];
352
+ const mine = rows.find((r) => r.name === name);
353
+ if (mine && mine.ms <= ms)
354
+ return { save: base, changed: base !== save, place: ridePlaceOf(rows, name) };
355
+ const next = rankRows([...rows.filter((r) => r.name !== name), { name, ms, at: nowMs }]);
356
+ return { save: { week: base.week, courses: { ...base.courses, [courseId]: next } }, changed: true, place: ridePlaceOf(next, name) };
357
+ }
358
+ export function ridePlaceOf(rows, name) {
359
+ const i = rows.findIndex((r) => r.name === name);
360
+ return i < 0 ? 0 : i + 1;
361
+ }
362
+ /** The board as chat lines, quickest first. */
363
+ export function rideBoardLines(save, course) {
364
+ const rows = save.courses[course.id] ?? [];
365
+ if (!rows.length)
366
+ return [`${course.name} - Fastest Times this week: nobody has a time yet. The board starts again each Monday.`];
367
+ return [`${course.name} - Fastest Times this week:`, ...rows.map((r, i) => `${i + 1}. ${r.name} - ${formatRideTime(r.ms)}`)];
368
+ }
369
+ /** Messages a rider may still send: nothing that moves, acts, trades, fights, eats or sits. Server and client keep the same list. */
370
+ export const RIDE_ALLOWED_MESSAGES = new Set([
371
+ 'ping', 'chunk_request', 'quest_guide_refresh', 'client_error', 'cart_steer', 'chat', 'pm', 'config', 'ledger_request',
372
+ 'friend_add', 'friend_remove', 'block_add', 'block_remove', 'report', 'admin_teleport',
373
+ ]);
374
+ // ---- Pace: every lane takes the same time -------------------------------------------------------------------------------------------------
375
+ /** The walking pace the server's multipliers scale (backend config.ts MOVE_SPEED_TILES_PER_SEC; the backend smoke checks they agree). */
376
+ export const RIDE_WALK_TILES_PER_SEC = 3.9;
377
+ /** What a step costs the world's stepping (a diagonal is root two, as backend map.ts stepCost). */
378
+ export function rideStepCost(a, b) {
379
+ return a.x !== b.x && a.z !== b.z ? Math.SQRT2 : 1;
380
+ }
381
+ function chainCost(tiles) {
382
+ let c = 0;
383
+ for (let i = 1; i < tiles.length; i++)
384
+ c += rideStepCost(tiles[i - 1], tiles[i]);
385
+ return c;
386
+ }
387
+ /**
388
+ * How much faster a lane's cart rolls than the centreline's, so that every lane takes the same time end to end (an outside lane is longer
389
+ * round a corner): the lane's length over the centreline's. The skill is in the hazards, not in hugging the inside.
390
+ */
391
+ export function rideLaneScale(b, lane) {
392
+ const c = chainCost(b.centre);
393
+ return c > 0 ? chainCost(b.lanes[lane]) / c : 1;
394
+ }
395
+ /**
396
+ * The time a clean run takes (no knock), riding at the centreline's pace: with `boosts` every mat taken, without them none. The quickest a run
397
+ * can be is about the first; a careful run with no mats about the second. Used to set the paint times and the board's plausible range.
398
+ */
399
+ export function rideCleanTimeMs(b, boosts) {
400
+ const c = b.course;
401
+ const marks = boosts ? [...c.boosts].sort((x, y) => x.p - y.p) : [];
402
+ let ms = 0;
403
+ let boostUntil = -1;
404
+ let m = 0;
405
+ for (let i = 1; i < b.centre.length; i++) {
406
+ while (m < marks.length && marks[m].p <= i - 1) {
407
+ boostUntil = Math.max(boostUntil, marks[m].p + c.boostTiles);
408
+ m++;
409
+ }
410
+ const speed = rideSpeedAt(c, i - 1, boostUntil, -1);
411
+ ms += (rideStepCost(b.centre[i - 1], b.centre[i]) / (RIDE_WALK_TILES_PER_SEC * speed)) * 1000;
412
+ }
413
+ return Math.round(ms);
414
+ }
415
+ // ---- The keeper's menu (npc_action ids) ---------------------------------------------------------------------------------------------------
416
+ /** `ride:go:<course>` asks for a ride, `ride:board:<course>` reads that course's Fastest Times, `ride:mine` your own times this week. */
417
+ export const RIDE_ACTION_PREFIX = 'ride:';
418
+ export const rideGoAction = (courseId) => `${RIDE_ACTION_PREFIX}go:${courseId}`;
419
+ export const rideBoardAction = (courseId) => `${RIDE_ACTION_PREFIX}board:${courseId}`;
420
+ export const RIDE_MINE_ACTION = `${RIDE_ACTION_PREFIX}mine`;
421
+ export function isRideAction(action) {
422
+ return action.startsWith(RIDE_ACTION_PREFIX);
423
+ }
424
+ /** What an action asks for, or null when it is not a ride action. */
425
+ export function parseRideAction(action) {
426
+ if (action === RIDE_MINE_ACTION)
427
+ return { kind: 'mine' };
428
+ const m = /^ride:(go|board):([a-z0-9-]+)$/.exec(action);
429
+ return m ? { kind: m[1], course: m[2] } : null;
430
+ }
431
+ //# sourceMappingURL=steeredRide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steeredRide.js","sourceRoot":"","sources":["../src/steeredRide.ts"],"names":[],"mappings":"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"}
@@ -429,7 +429,7 @@ export type StoryQuestDef = {
429
429
  after: string;
430
430
  rewards: StoryReward;
431
431
  };
432
- export type StoryQuestId = 'fredsLetter' | 'beagleBirthday' | 'wilsonBigCatch' | 'smithsApprentice' | 'spiderHollowEggs' | 'harbourThief' | 'coldFeet' | 'livoniasDiary' | 'charcoalBurner' | 'iceCuttersKey' | 'hopeWreck' | 'firstSteps' | 'trappersLine' | 'gristForTheMill' | 'shearingDay' | 'dryBarrels' | 'freshLinen' | 'troubleOnTheRoad' | 'everyRoadPays' | 'maribelsLog' | 'mammothRoad' | 'marigoldsStrongbox' | 'tansysCauldron' | 'poulticesForTheLine' | 'frostbiteSalve' | 'cellsBelow' | 'breakingTheIronjaw' | 'floeWatch' | 'samsSecretBait' | 'travellersTonic' | 'bountyHuntersBrew' | 'corvinsRecipes' | 'hogWild' | 'fiveArches' | 'theNewGate' | 'hettiesSails' | 'geeseInTheWheat' | 'nyesStrays' | 'nyesPup' | 'missingShipment' | 'wrensHoney' | 'harvestSupper' | 'goatLookout' | 'jettyPot' | 'theLostGoat' | 'theScarecrowsHat' | 'theHatchetHandle' | 'stonesThatWhisper' | 'crowTrouble' | 'tamsinsLostBasket' | 'theLeakingSluice' | 'haresInTheBeans' | 'whatWokeOldGnasher' | 'theMissingMule' | 'theFallenLimb' | 'troubleOnTheSnareLine' | 'oldTusk' | 'shinyTrouble' | 'nestOfThieves' | 'matterOfWeight' | 'ledgerInTheDust' | 'brokenSignal' | 'flagsAgainstTheWind' | 'bellForTheBeacon' | 'shellGame' | 'brokenExtraction' | 'underTheWhiteStone' | 'silentBells' | 'webInTheReeds' | 'brokenTrestle' | 'matriarchOfTheMere' | 'peatAndSnapper' | 'theBlueDoor' | 'lanternsOfTheRing' | 'theMissingFolios' | 'theRuneboundWarden' | 'lightAtGullhook' | 'lostOnTheTide' | 'salvageRights' | 'theBeaconStair' | 'theLampSnuffer' | 'theColdSignal' | 'gunsOfTheWindbreak' | 'salvageAtTheCleft' | 'theWinchLine' | 'theDarkKeeper' | 'passRoadMarks' | 'chocksForTheSpur' | 'goldForTheGantry' | 'eyesOnTheDens' | 'theRailEater' | 'chartingTheVents' | 'slagAndSilver' | 'lostInTheAsh' | 'scoutingTheBasin' | 'theAshmaw' | 'markingTheLanes' | 'pennantIrons' | 'theLiftCrewsPacks' | 'readingTheRing' | 'oldThunderhorn' | 'theOrderOfStones' | 'theSerpentsMouth' | 'oldBasaltback' | 'readingTheTide' | 'weightsForTheNets' | 'halesLamp' | 'countingGannets' | 'oldSkerrywing' | 'lamplightersErrand' | 'theWholeCommon' | 'mothsOnTheMeadow' | 'theWardensWalk' | 'oldDimwing' | 'readTheTally' | 'lightTheChain' | 'eyesOnThePass' | 'gateHinges' | 'theHollowWatchman' | 'freshSign' | 'spruceAndAsh' | 'aHoundGoneAstray' | 'snaresInTheDark' | 'theRangersTrial' | 'theFirstDrove' | 'fleeceAndFang' | 'saltForThePot' | 'theRustlersCut' | 'greybackOfTheDowns' | 'saltOnTheWind' | 'theLostNets' | 'theBeaconsLastOil' | 'fuelForTheKilns' | 'theWashingPools' | 'raidersOnTheRim' | 'cracksInTheCut' | 'ironForTheHoists' | 'theMarkerCairns' | 'theNorthLedge' | 'reedsForTheRoofs' | 'theFerryErrand' | 'marshFish' | 'oldGreyneck' | 'wreckSalvage' | 'deadMensDig' | 'theFiveBells' | 'skullIsleHunt' | 'reevesNotices' | 'strawAndSteel' | 'supperForTheMuster' | 'aSmithsOrder' | 'planksForTheHall' | 'theNightWatch' | 'marketDayRush' | 'theCaravanRun' | 'surveyorsLine' | 'anchorsInTheIce' | 'acrossTheThaw' | 'theWraithOfTheFall' | 'theStuckWheel' | 'boarsInTheBeans' | 'wennasTonic' | 'aDozenLoaves' | 'theLostCart' | 'theMissingTollMoney' | 'lightTheBeacon' | 'birdsInTheHops' | 'grandfatherGull' | 'lostSupplies' | 'herbalRemedies' | 'fieldShrineMystery' | 'theFirstBeacon' | 'troubleAtCrossing' | 'gullsMap' | 'gullsLowWater' | 'readingTheRed' | 'theLowFord' | 'nightOfTheRedMoon' | 'theSurge' | 'tideOfBlood' | 'gullsFortRook' | 'theCrookedGull' | 'theGuardedJetty' | 'clearingTheAnchorage' | 'theCaptainsStash' | 'theDampNote' | 'thePaleRibs' | 'feathersOnTheCliff' | 'theTideBoard' | 'theTideBroker' | 'gatewardenRounds' | 'strongerBridge' | 'raidersOfTheRedWaste' | 'greenwardensGlade' | 'clearTheLine' | 'ticketsPlease' | 'coalForTheLine' | 'nightMail' | 'emberSeals' | 'cinderAndAsh' | 'crackedBell' | 'crowsOnTheRope' | 'lampsForTheChapel' | 'wardensKey' | 'sextonsLantern' | 'namesOnTheStones' | 'threeBraziers' | 'theTombWarden' | 'sealTheCrypt' | 'tollsAndTallies' | 'theMissingPayroll' | 'whisperInTheReeds' | 'theCaptainsCellar' | 'readingTheEbb' | 'theCrabWarren' | 'theReevesCache' | 'eyesOnTheFarBank' | 'suppliesForTheLine' | 'sappersSpan' | 'holdTheLine' | 'warchiefsHold' | SkillQuestId | LongWinterQuestId | HeartwoodQuestId | IronjawWatchQuestId | DelversLadderId | MiningQuestId | SnowForagingId | BrewersQuestId | LongRoadBrewId | NobleIntrigueId | CloisterRoundId | ThawFishingId | RoadTableId | TimberErrandId | MarksmenQuestId | WarCampQuestId | WardensWritId | EarlyWritId | BorderJobId | WoodsJobId | QuarryQuestId | HopeBrewId | EarlyBrewId | ProspectingId | CapitalQuestId | CapitalShopQuestId | HoldHubQuestId | VoyageQuestId | FishCookQuestId | ReachQuestId | MammothTableId | BayPetQuestId;
432
+ export type StoryQuestId = 'fredsLetter' | 'beagleBirthday' | 'wilsonBigCatch' | 'smithsApprentice' | 'spiderHollowEggs' | 'harbourThief' | 'coldFeet' | 'livoniasDiary' | 'charcoalBurner' | 'iceCuttersKey' | 'hopeWreck' | 'firstSteps' | 'trappersLine' | 'gristForTheMill' | 'shearingDay' | 'dryBarrels' | 'freshLinen' | 'troubleOnTheRoad' | 'everyRoadPays' | 'maribelsLog' | 'mammothRoad' | 'marigoldsStrongbox' | 'tansysCauldron' | 'poulticesForTheLine' | 'frostbiteSalve' | 'cellsBelow' | 'breakingTheIronjaw' | 'floeWatch' | 'samsSecretBait' | 'travellersTonic' | 'bountyHuntersBrew' | 'corvinsRecipes' | 'hogWild' | 'fiveArches' | 'theNewGate' | 'hettiesSails' | 'geeseInTheWheat' | 'nyesStrays' | 'nyesPup' | 'missingShipment' | 'wrensHoney' | 'harvestSupper' | 'goatLookout' | 'jettyPot' | 'theLostGoat' | 'theScarecrowsHat' | 'theHatchetHandle' | 'stonesThatWhisper' | 'crowTrouble' | 'tamsinsLostBasket' | 'theLeakingSluice' | 'haresInTheBeans' | 'whatWokeOldGnasher' | 'theMissingMule' | 'theFallenLimb' | 'troubleOnTheSnareLine' | 'oldTusk' | 'shinyTrouble' | 'nestOfThieves' | 'matterOfWeight' | 'ledgerInTheDust' | 'brokenSignal' | 'flagsAgainstTheWind' | 'bellForTheBeacon' | 'shellGame' | 'brokenExtraction' | 'underTheWhiteStone' | 'silentBells' | 'webInTheReeds' | 'brokenTrestle' | 'matriarchOfTheMere' | 'peatAndSnapper' | 'theBlueDoor' | 'lanternsOfTheRing' | 'theMissingFolios' | 'theRuneboundWarden' | 'lightAtGullhook' | 'lostOnTheTide' | 'salvageRights' | 'theBeaconStair' | 'theLampSnuffer' | 'theColdSignal' | 'gunsOfTheWindbreak' | 'salvageAtTheCleft' | 'theWinchLine' | 'theDarkKeeper' | 'passRoadMarks' | 'chocksForTheSpur' | 'goldForTheGantry' | 'eyesOnTheDens' | 'theRailEater' | 'chartingTheVents' | 'slagAndSilver' | 'lostInTheAsh' | 'scoutingTheBasin' | 'theAshmaw' | 'markingTheLanes' | 'pennantIrons' | 'theLiftCrewsPacks' | 'readingTheRing' | 'oldThunderhorn' | 'theOrderOfStones' | 'theSerpentsMouth' | 'oldBasaltback' | 'readingTheTide' | 'weightsForTheNets' | 'halesLamp' | 'countingGannets' | 'oldSkerrywing' | 'lamplightersErrand' | 'theWholeCommon' | 'mothsOnTheMeadow' | 'theWardensWalk' | 'oldDimwing' | 'readTheTally' | 'lightTheChain' | 'eyesOnThePass' | 'gateHinges' | 'theHollowWatchman' | 'freshSign' | 'spruceAndAsh' | 'aHoundGoneAstray' | 'snaresInTheDark' | 'theRangersTrial' | 'theFirstDrove' | 'fleeceAndFang' | 'saltForThePot' | 'theRustlersCut' | 'greybackOfTheDowns' | 'learnersLap' | 'theHeathDash' | 'oldGorsetusk' | 'saltOnTheWind' | 'theLostNets' | 'theBeaconsLastOil' | 'fuelForTheKilns' | 'theWashingPools' | 'raidersOnTheRim' | 'cracksInTheCut' | 'ironForTheHoists' | 'theMarkerCairns' | 'theNorthLedge' | 'reedsForTheRoofs' | 'theFerryErrand' | 'marshFish' | 'oldGreyneck' | 'wreckSalvage' | 'deadMensDig' | 'theFiveBells' | 'skullIsleHunt' | 'reevesNotices' | 'strawAndSteel' | 'supperForTheMuster' | 'aSmithsOrder' | 'planksForTheHall' | 'theNightWatch' | 'marketDayRush' | 'theCaravanRun' | 'surveyorsLine' | 'anchorsInTheIce' | 'acrossTheThaw' | 'theWraithOfTheFall' | 'theStuckWheel' | 'boarsInTheBeans' | 'wennasTonic' | 'aDozenLoaves' | 'theLostCart' | 'theMissingTollMoney' | 'lightTheBeacon' | 'birdsInTheHops' | 'grandfatherGull' | 'lostSupplies' | 'herbalRemedies' | 'fieldShrineMystery' | 'theFirstBeacon' | 'troubleAtCrossing' | 'gullsMap' | 'gullsLowWater' | 'readingTheRed' | 'theLowFord' | 'nightOfTheRedMoon' | 'theSurge' | 'tideOfBlood' | 'gullsFortRook' | 'theCrookedGull' | 'theGuardedJetty' | 'clearingTheAnchorage' | 'theCaptainsStash' | 'theDampNote' | 'thePaleRibs' | 'feathersOnTheCliff' | 'theTideBoard' | 'theTideBroker' | 'gatewardenRounds' | 'strongerBridge' | 'raidersOfTheRedWaste' | 'greenwardensGlade' | 'clearTheLine' | 'ticketsPlease' | 'coalForTheLine' | 'nightMail' | 'emberSeals' | 'cinderAndAsh' | 'crackedBell' | 'crowsOnTheRope' | 'lampsForTheChapel' | 'wardensKey' | 'sextonsLantern' | 'namesOnTheStones' | 'threeBraziers' | 'theTombWarden' | 'sealTheCrypt' | 'tollsAndTallies' | 'theMissingPayroll' | 'whisperInTheReeds' | 'theCaptainsCellar' | 'readingTheEbb' | 'theCrabWarren' | 'theReevesCache' | 'eyesOnTheFarBank' | 'suppliesForTheLine' | 'sappersSpan' | 'holdTheLine' | 'warchiefsHold' | SkillQuestId | LongWinterQuestId | HeartwoodQuestId | IronjawWatchQuestId | DelversLadderId | MiningQuestId | SnowForagingId | BrewersQuestId | LongRoadBrewId | NobleIntrigueId | CloisterRoundId | ThawFishingId | RoadTableId | TimberErrandId | MarksmenQuestId | WarCampQuestId | WardensWritId | EarlyWritId | BorderJobId | WoodsJobId | QuarryQuestId | HopeBrewId | EarlyBrewId | ProspectingId | CapitalQuestId | CapitalShopQuestId | HoldHubQuestId | VoyageQuestId | FishCookQuestId | ReachQuestId | MammothTableId | BayPetQuestId;
433
433
  export declare const STORY_QUEST_IDS: readonly StoryQuestId[];
434
434
  /** The npc_action id for a story choice. */
435
435
  export declare const STORY_CHOICE_PREFIX = "story:";
@@ -1 +1 @@
1
- {"version":3,"file":"storyQuests.d.ts","sourceRoot":"","sources":["../src/storyQuests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storyQuests.d.ts","sourceRoot":"","sources":["../src/storyQuests.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,8 @@ import { EYES_ON_THE_PASS_QUEST, LIGHT_THE_CHAIN_QUEST, READ_THE_TALLY_QUEST, TH
115
115
  import { CHARTING_THE_VENTS_QUEST, LOST_IN_THE_ASH_QUEST, SCOUTING_THE_BASIN_QUEST, SLAG_AND_SILVER_QUEST, THE_ASHMAW_QUEST } from './ashfallQuestDef.js';
116
116
  import { rangersPropModel } from './rangersRest.js';
117
117
  import { saltgrassPropModel } from './saltgrassDowns.js';
118
+ import { bhPropModel } from './brackenHeath.js';
119
+ import { HEATH_DASH_QUEST, LEARNERS_LAP_QUEST, OLD_GORSETUSK_QUEST } from './brackenHeathQuestDef.js';
118
120
  import { FLEECE_AND_FANG_QUEST, GREYBACK_QUEST, SALT_FOR_THE_POT_QUEST, THE_FIRST_DROVE_QUEST, THE_RUSTLERS_CUT_QUEST } from './saltgrassQuestDef.js';
119
121
  import { FRESH_SIGN_QUEST, HOUND_GONE_ASTRAY_QUEST, RANGERS_TRIAL_QUEST, SNARES_IN_THE_DARK_QUEST, SPRUCE_AND_ASH_QUEST } from './rangersRestQuestDef.js';
120
122
  import { CHOCKS_FOR_THE_SPUR_QUEST, EYES_ON_THE_DENS_QUEST, GOLD_FOR_THE_GANTRY_QUEST, PASS_ROAD_MARKS_QUEST, THE_RAIL_EATER_QUEST } from './dwarfRoadCampQuestDef.js';
@@ -432,6 +434,10 @@ export const STORY_QUEST_IDS = [
432
434
  'saltForThePot',
433
435
  'theRustlersCut',
434
436
  'greybackOfTheDowns',
437
+ // Bracken Heath (brackenHeathQuestDef.ts, 2026-10-19): the steered carts and the wild heath south of the Capital's moat, levels 1-30.
438
+ 'learnersLap',
439
+ 'theHeathDash',
440
+ 'oldGorsetusk',
435
441
  // Saltmere Crescent (saltmereQuest.ts, T68): Tamsin Vale, Old Bren and Corin Hale.
436
442
  'saltOnTheWind',
437
443
  'theLostNets',
@@ -861,6 +867,9 @@ export function questPropModel(style) {
861
867
  const saltgrass = saltgrassPropModel(prop);
862
868
  if (saltgrass)
863
869
  return saltgrass;
870
+ const heath = bhPropModel(prop);
871
+ if (heath)
872
+ return heath;
864
873
  const rangers = rangersPropModel(prop);
865
874
  if (rangers)
866
875
  return rangers;
@@ -4201,6 +4210,10 @@ export const STORY_QUESTS = {
4201
4210
  saltForThePot: SALT_FOR_THE_POT_QUEST,
4202
4211
  theRustlersCut: THE_RUSTLERS_CUT_QUEST,
4203
4212
  greybackOfTheDowns: GREYBACK_QUEST,
4213
+ // ---- Bracken Heath (brackenHeathQuestDef.ts) ------------------------------------------------------------------------------------
4214
+ learnersLap: LEARNERS_LAP_QUEST,
4215
+ theHeathDash: HEATH_DASH_QUEST,
4216
+ oldGorsetusk: OLD_GORSETUSK_QUEST,
4204
4217
  // ---- Saltmere Crescent (saltmereQuest.ts) -------------------------------------------------------------------------------
4205
4218
  saltOnTheWind: SALT_ON_THE_WIND_QUEST,
4206
4219
  theLostNets: LOST_NETS_QUEST,