@dreadwood-types/types 0.1.318 → 0.1.319
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/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 +3 -0
- package/dist/campTraders.js.map +1 -1
- package/dist/expandedContracts.d.ts.map +1 -1
- package/dist/expandedContracts.js +4 -1
- package/dist/expandedContracts.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +2 -0
- package/dist/legacy.d.ts.map +1 -1
- package/dist/legacy.js +2 -0
- package/dist/legacy.js.map +1 -1
- package/dist/millstreamHamlet.d.ts +302 -0
- package/dist/millstreamHamlet.d.ts.map +1 -0
- package/dist/millstreamHamlet.js +364 -0
- package/dist/millstreamHamlet.js.map +1 -0
- package/dist/millstreamQuestDef.d.ts +42 -0
- package/dist/millstreamQuestDef.d.ts.map +1 -0
- package/dist/millstreamQuestDef.js +252 -0
- package/dist/millstreamQuestDef.js.map +1 -0
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +31 -0
- package/dist/quests.js.map +1 -1
- package/dist/storyQuests.d.ts +1 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +18 -0
- package/dist/storyQuests.js.map +1 -1
- package/dist/storyWindows.d.ts +1 -1
- package/dist/storyWindows.d.ts.map +1 -1
- package/dist/storyWindows.js +6 -1
- package/dist/storyWindows.js.map +1 -1
- package/package.json +43 -43
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { INN_BREAD_PRICE } from './tavern.js';
|
|
2
|
+
export const MILLSTREAM_ID = 'millstream-hamlet';
|
|
3
|
+
export const MILLSTREAM_NAME = 'Millstream Hamlet';
|
|
4
|
+
export const MILLSTREAM_MILL_NAME = 'The Mill on the Millstream';
|
|
5
|
+
export const MILLSTREAM_FORD_NAME = 'Millstream Ford';
|
|
6
|
+
// ---- The ground -------------------------------------------------------------------------------------------------------------------
|
|
7
|
+
/** The whole claim: south of Brindlecross (x 1800-1935, z 1030-1140), west of Lantern Wake (x 1936+); the sea starts at about z 1296. */
|
|
8
|
+
export const MILLSTREAM_CLAIM = { minX: 1792, maxX: 1919, minZ: 1152, maxZ: 1343 };
|
|
9
|
+
/** The hamlet itself (the discovery zone): the green, bakery, mill, herbalist, farm, pond and the stream down to the ford. */
|
|
10
|
+
export const MILLSTREAM_HAMLET_BOX = { minX: 1830, maxX: 1890, minZ: 1164, maxZ: 1258 };
|
|
11
|
+
/** The land is flat grass at height 3 here; the pond and stream are cut into it. */
|
|
12
|
+
export const MILLSTREAM_LAND_HEIGHT = 3;
|
|
13
|
+
/** The pond and the stream lie this far under the banks (as the Brindle Stream's does), so the water reads as water but the banks need no easing. */
|
|
14
|
+
export const MILLSTREAM_WATER_DEPTH = 0.3;
|
|
15
|
+
/** Millstream Road: dirt, two tiles wide, from the south edge of Brindlecross to the ford lane. */
|
|
16
|
+
export const MILLSTREAM_ROAD = { x0: 1861, x1: 1862, zFrom: 1141, zTo: 1253 };
|
|
17
|
+
/** The cross lanes: north of the pond (to the Hedgerow Thicket) and the ford lane (to Stag Meadow). */
|
|
18
|
+
export const MILLSTREAM_LANES = [
|
|
19
|
+
{ minX: 1863, maxX: 1900, minZ: 1172, maxZ: 1173 },
|
|
20
|
+
{ minX: 1863, maxX: 1900, minZ: 1252, maxZ: 1253 },
|
|
21
|
+
{ minX: 1840, maxX: 1860, minZ: 1186, maxZ: 1187 },
|
|
22
|
+
];
|
|
23
|
+
/** The Mill Pond: an ellipse. The stream leaves its south edge, three tiles wide, down to the sea. */
|
|
24
|
+
export const MILL_POND = { cx: 1880.5, cz: 1186.5, rx: 6, rz: 4.5 };
|
|
25
|
+
export const MILLSTREAM_STREAM = { minX: 1880, maxX: 1882, zFrom: 1192 };
|
|
26
|
+
/** The ford: stepping stones across the stream (stone, height 2, walkable). */
|
|
27
|
+
export const MILLSTREAM_FORD = { minX: 1879, maxX: 1883, minZ: 1252, maxZ: 1254 };
|
|
28
|
+
export function msInBox(b, x, z, pad = 0) {
|
|
29
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
30
|
+
}
|
|
31
|
+
/** Water in the Mill Pond or the stream (the backend carves it; it keeps carving past this until it meets the sea). */
|
|
32
|
+
export function millstreamIsPond(x, z) {
|
|
33
|
+
const dx = (x - MILL_POND.cx) / MILL_POND.rx;
|
|
34
|
+
const dz = (z - MILL_POND.cz) / MILL_POND.rz;
|
|
35
|
+
return dx * dx + dz * dz <= 1;
|
|
36
|
+
}
|
|
37
|
+
export function millstreamIsStream(x, z) {
|
|
38
|
+
return x >= MILLSTREAM_STREAM.minX && x <= MILLSTREAM_STREAM.maxX && z >= MILLSTREAM_STREAM.zFrom;
|
|
39
|
+
}
|
|
40
|
+
export function millstreamIsFord(x, z) {
|
|
41
|
+
return msInBox(MILLSTREAM_FORD, x, z);
|
|
42
|
+
}
|
|
43
|
+
export const MILLSTREAM_STANDS = {
|
|
44
|
+
/** Where Millstream Road leaves Brindlecross's south edge. */
|
|
45
|
+
road: { x: 1862, z: 1154 },
|
|
46
|
+
green: { x: 1862, z: 1180 },
|
|
47
|
+
bakery: { x: 1850, z: 1183 },
|
|
48
|
+
mill: { x: 1876, z: 1198 },
|
|
49
|
+
herbalist: { x: 1846, z: 1211 },
|
|
50
|
+
farm: { x: 1846, z: 1235 },
|
|
51
|
+
ford: { x: 1862, z: 1251 },
|
|
52
|
+
eastBank: { x: 1886, z: 1252 },
|
|
53
|
+
pegs: { x: 1878, z: 1270 },
|
|
54
|
+
cart: { x: 1900, z: 1266 },
|
|
55
|
+
};
|
|
56
|
+
// ---- The mill-wheel clock (a pure function of the UTC wall clock: the same for everyone and every restart, nothing saved) -------------------
|
|
57
|
+
/** Six minutes: the race runs 3.5, slackens for half a minute, stands dry 1.5 and fills again for half a minute. The wheel turns in the first four. */
|
|
58
|
+
export const MILL_FLOW_CYCLE_MS = 360_000;
|
|
59
|
+
const FLOW_EDGES = [
|
|
60
|
+
[0, 'run'],
|
|
61
|
+
[210_000, 'slack'],
|
|
62
|
+
[240_000, 'dry'],
|
|
63
|
+
[330_000, 'rise'],
|
|
64
|
+
];
|
|
65
|
+
const FLOW_END_MS = 240_000;
|
|
66
|
+
export function millFlow(nowMs) {
|
|
67
|
+
const t = ((nowMs % MILL_FLOW_CYCLE_MS) + MILL_FLOW_CYCLE_MS) % MILL_FLOW_CYCLE_MS;
|
|
68
|
+
let phase = 'run';
|
|
69
|
+
for (const [from, p] of FLOW_EDGES)
|
|
70
|
+
if (t >= from)
|
|
71
|
+
phase = p;
|
|
72
|
+
const flowing = t < FLOW_END_MS;
|
|
73
|
+
return { phase, msUntilFlow: flowing ? 0 : MILL_FLOW_CYCLE_MS - t, msLeftFlow: flowing ? FLOW_END_MS - t : 0 };
|
|
74
|
+
}
|
|
75
|
+
/** The wheel will turn while the race runs and slackens; it will not in the dry or the rise. */
|
|
76
|
+
export const isMillFlowing = (nowMs) => millFlow(nowMs).msLeftFlow > 0;
|
|
77
|
+
function flowWait(ms) {
|
|
78
|
+
const s = Math.max(1, Math.round(ms / 1000));
|
|
79
|
+
return s >= 90 ? `about ${Math.round(s / 60)} minutes` : `about ${s} seconds`;
|
|
80
|
+
}
|
|
81
|
+
/** The race gauge's line (readable any time, quest or not). */
|
|
82
|
+
export function millRaceLine(nowMs) {
|
|
83
|
+
const f = millFlow(nowMs);
|
|
84
|
+
if (f.phase === 'run')
|
|
85
|
+
return `The race is running full: the wheel will turn for ${flowWait(f.msLeftFlow)} more before the water begins to slacken.`;
|
|
86
|
+
if (f.phase === 'slack')
|
|
87
|
+
return `The race is slackening and the wheel is slowing: ${flowWait(f.msLeftFlow)} left before it stops.`;
|
|
88
|
+
if (f.phase === 'dry')
|
|
89
|
+
return `The race stands dry while the pond fills. Water in ${flowWait(f.msUntilFlow)}.`;
|
|
90
|
+
return `The pond is filling and the first water is creeping down the race. Running full in ${flowWait(f.msUntilFlow)}.`;
|
|
91
|
+
}
|
|
92
|
+
// ---- The pieces ---------------------------------------------------------------------------------------------------------------------
|
|
93
|
+
const p = (id, model, x, z, facing = 's') => ({ id: `ms-${id}`, model, facing, x, z });
|
|
94
|
+
/** Kit stand-ins (logged in the upgrades list): cottages for the bakery, mill, herbalist and farm, the clay oven, sacks, crates, lamps. */
|
|
95
|
+
export const MILLSTREAM_PIECES = [
|
|
96
|
+
p('bakery', 'millcottage', 1850, 1178),
|
|
97
|
+
p('bakery-oven', 'clayoven', 1856, 1181),
|
|
98
|
+
p('bakery-sacks-a', 'flourstack', 1846, 1181),
|
|
99
|
+
p('bakery-sacks-b', 'flourstack', 1847, 1181),
|
|
100
|
+
p('bakery-crates', 'evstorecrates', 1853, 1183),
|
|
101
|
+
p('well', 'townwell1x1', 1865, 1176),
|
|
102
|
+
p('planter', 'townplanter1x1', 1858, 1176),
|
|
103
|
+
p('mill', 'millcottage', 1871, 1197),
|
|
104
|
+
p('mill-sack-a', 'flourstack', 1867, 1202),
|
|
105
|
+
p('mill-sack-b', 'flourstack', 1868, 1202),
|
|
106
|
+
p('mill-sack-c', 'flourstack', 1869, 1202),
|
|
107
|
+
p('mill-crates', 'evstorecrates', 1873, 1202),
|
|
108
|
+
p('mill-hay', 'hbhaybales', 1865, 1194),
|
|
109
|
+
p('herbalist', 'millcottage', 1846, 1206),
|
|
110
|
+
p('herb-bed-a', 'herbbed', 1840, 1213),
|
|
111
|
+
p('herb-bed-b', 'herbbed', 1844, 1213),
|
|
112
|
+
p('herb-bed-c', 'herbbed', 1848, 1213),
|
|
113
|
+
p('herb-planter', 'townplanter1x1', 1851, 1207),
|
|
114
|
+
p('farmhouse', 'fredcottage', 1846, 1230),
|
|
115
|
+
p('haystack', 'haystack', 1854, 1228),
|
|
116
|
+
p('trough', 'hbtrough', 1851, 1234),
|
|
117
|
+
p('shed', 'nyeshed', 1836, 1227),
|
|
118
|
+
p('lamp-1', 'townlantern1x1', 1860, 1172),
|
|
119
|
+
p('lamp-2', 'townlantern1x1', 1863, 1175),
|
|
120
|
+
p('lamp-3', 'townlantern1x1', 1860, 1196),
|
|
121
|
+
p('lamp-4', 'townlantern1x1', 1863, 1210),
|
|
122
|
+
p('lamp-5', 'townlantern1x1', 1860, 1224),
|
|
123
|
+
p('lamp-6', 'townlantern1x1', 1863, 1246),
|
|
124
|
+
p('ford-lamp-w', 'townlantern1x1', 1877, 1251),
|
|
125
|
+
p('ford-lamp-e', 'townlantern1x1', 1885, 1251),
|
|
126
|
+
p('waypost', 'townwaypost1x1', 1864, 1168),
|
|
127
|
+
// The Bean Row Burrow's bean rows (the boars' ground): poles at the head of every other row.
|
|
128
|
+
...[1200, 1204, 1208, 1212, 1216].map((z) => p(`beans-${z}`, 'hbbeanpoles', 1812, z)),
|
|
129
|
+
];
|
|
130
|
+
/** Working stations: the bakery's stove and fire, the herbalist's cauldron (any cauldron brews any recipe), and the hamlet's Bounty Board. */
|
|
131
|
+
export const MILLSTREAM_STATIONS = [
|
|
132
|
+
{ id: 'ms-stove', kind: 'stove', style: '', x: 1852, z: 1182 },
|
|
133
|
+
{ id: 'ms-fire', kind: 'campfire', style: '', x: 1858, z: 1183 },
|
|
134
|
+
{ id: 'ms-cauldron', kind: 'cauldron', style: 'cauldron-s', x: 1851, z: 1210 },
|
|
135
|
+
{ id: 'ms-board', kind: 'bountyboard', style: 'wall-s', x: 1866, z: 1181 },
|
|
136
|
+
];
|
|
137
|
+
export const MILLSTREAM_CAULDRON_ID = 'ms-cauldron';
|
|
138
|
+
/** The wheat plots (rows of ripe wheat, reaped by hand for the mill). */
|
|
139
|
+
export const MILLSTREAM_FIELDS = [
|
|
140
|
+
{ id: 'ms-field-a', minX: 1832, maxX: 1843, minZ: 1238, maxZ: 1246 },
|
|
141
|
+
{ id: 'ms-field-b', minX: 1846, maxX: 1858, minZ: 1238, maxZ: 1246 },
|
|
142
|
+
{ id: 'ms-field-c', minX: 1865, maxX: 1876, minZ: 1236, maxZ: 1246 },
|
|
143
|
+
];
|
|
144
|
+
export const MILLSTREAM_SIGNS = [
|
|
145
|
+
{ id: 'ms-sign-road', x: 1864, z: 1153, style: 'placard-Millstream Hamlet: bakery, mill, herbalist and farm. Boars in the beans, thieves in the hedge: Combat 10+' },
|
|
146
|
+
{ id: 'ms-sign-green', x: 1859, z: 1180, style: 'fingerpost-The Bakery|The Mill' },
|
|
147
|
+
{ id: 'ms-sign-ford', x: 1864, z: 1250, style: 'fingerpost-Millstream Ford and Stag Meadow|Millstream Hamlet' },
|
|
148
|
+
{ id: 'ms-sign-pegs', x: 1878, z: 1262, style: 'placard-Fishing pegs: tide snapper where the stream runs brackish (Fishing 14)' },
|
|
149
|
+
];
|
|
150
|
+
// ---- The people ----------------------------------------------------------------------------------------------------------------------
|
|
151
|
+
export const MILLSTREAM_FOLK_NAMES = {
|
|
152
|
+
miller: 'Miller Hamish Burr',
|
|
153
|
+
farmer: 'Farmer Dunstan Fell',
|
|
154
|
+
herbalist: 'Herbalist Wenna Thatch',
|
|
155
|
+
carter: 'Carter Piers Lowther',
|
|
156
|
+
baker: 'Gilda Roe',
|
|
157
|
+
};
|
|
158
|
+
export const MILLSTREAM_FOLK = [
|
|
159
|
+
{
|
|
160
|
+
id: 'ms-miller',
|
|
161
|
+
name: MILLSTREAM_FOLK_NAMES.miller,
|
|
162
|
+
place: 'the mill, Millstream Hamlet',
|
|
163
|
+
x: 1876, z: 1198, faceX: 1879, faceZ: 1198, leash: 1,
|
|
164
|
+
speak: "Hamish Burr, miller. Bring me wheat from the plots down the lane and I will grind it into flour for nothing, and the baker will bless you for it. When the wheel is not stuck, that is.",
|
|
165
|
+
extras: [
|
|
166
|
+
{ id: 'wheel', label: 'The wheel', say: "The race runs on a clock the pond sets: full for a little over three minutes, slackening for half of one, then dry while the pond fills. The gauge by the sluice tells you where it stands. To loose a stuck wheel the water must go through in its order: the pond sluice, the race gate, the wheel brake, then the hopper chute. Out of order, or too slow, and the water slops over and carries you back to the mill yard." },
|
|
167
|
+
{ id: 'grind', label: 'Grinding', say: "Reap the ripe plots by hand and bring me the sheaves: I grind every one you hold, free, and the flour bakes into bread at any fire or range. The baker's oven is the best in the valley." },
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: 'ms-farmer',
|
|
172
|
+
name: MILLSTREAM_FOLK_NAMES.farmer,
|
|
173
|
+
place: 'the farmhouse, Millstream Hamlet',
|
|
174
|
+
x: 1846, z: 1234, faceX: 1846, faceZ: 1236, leash: 1,
|
|
175
|
+
speak: "Dunstan Fell. Three plots of wheat, a dozen rows of beans over west, and more boar than bean. Reap the ripe plots if you like, the mill wants every sheaf, but mind the boars, they are not particular whose beans they eat.",
|
|
176
|
+
extras: [
|
|
177
|
+
{ id: 'plots', label: 'The wheat plots', say: "The ripe plots stand pale gold; a reaped one stubbles over and ripens again after a while. Foraging pays you for each sheaf. The wheat is anyone's to reap for the mill, but the plots are not for sale." },
|
|
178
|
+
{ id: 'burrow', label: 'The Bean Row Burrow', say: "West of the farm, behind the hedge, where I used to grow beans. The boars came out of the old burrow in spring and have rooted the whole run flat. They fight back hard if you crowd them, so take them one at a time." },
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
id: 'ms-herbalist',
|
|
183
|
+
name: MILLSTREAM_FOLK_NAMES.herbalist,
|
|
184
|
+
place: "the herbalist's cottage, Millstream Hamlet",
|
|
185
|
+
x: 1846, z: 1210, faceX: 1846, faceZ: 1212, leash: 1,
|
|
186
|
+
speak: "Wenna Thatch. Herbs in the beds, mint on the stream bank and a cauldron by my door that is free to anyone with the herb, a vial and a pestle and mortar. If you can brew, brew; if you cannot, I will show you how.",
|
|
187
|
+
extras: [
|
|
188
|
+
{ id: 'mint', label: 'Water mint', say: "Water mint grows on both banks of the Millstream, among the reeds (Foraging 10). Brew it with a vial of water into a Mini Fishing Potion at my cauldron (Potion Making 12): the lads at the pegs swear by it." },
|
|
189
|
+
{ id: 'garden', label: 'The garden', say: "Hawkweed in the third bed (Foraging 14) for the archers' draught. It flowers late and bitter, and Piers the carter hates the smell of it." },
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: 'ms-carter',
|
|
194
|
+
name: MILLSTREAM_FOLK_NAMES.carter,
|
|
195
|
+
place: 'the green, Millstream Hamlet',
|
|
196
|
+
x: 1865, z: 1183, faceX: 1867, faceZ: 1183, leash: 1,
|
|
197
|
+
speak: "Piers Lowther, carter, though I am a carter without a cart at the minute. Went over the ford with a load of flour for the bakery and the near wheel gave way in Stag Meadow. Hedge-thieves had the crates before I had the wheel off. If you are going that way...",
|
|
198
|
+
extras: [
|
|
199
|
+
{ id: 'meadow', label: 'Stag Meadow', say: "East bank, south of the ford lane: good grass and a herd of big bristle-backed stags that mind their own business until you put a hand on one. The wagon is on its side near the middle of the meadow; the crates went rolling." },
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
];
|
|
203
|
+
export function millstreamFolkByName(name) {
|
|
204
|
+
return name ? MILLSTREAM_FOLK.find((f) => f.name === name) ?? null : null;
|
|
205
|
+
}
|
|
206
|
+
export function millstreamFolkById(id) {
|
|
207
|
+
return id ? MILLSTREAM_FOLK.find((f) => f.id === id) ?? null : null;
|
|
208
|
+
}
|
|
209
|
+
/** The baker: a CampTrader entry (campTraders.ts adds it to CAMP_TRADERS) and a camp kitchen (campKitchens.ts) with a daily order. */
|
|
210
|
+
export const MILLSTREAM_BAKER = {
|
|
211
|
+
id: 'camp-millstream',
|
|
212
|
+
name: MILLSTREAM_FOLK_NAMES.baker,
|
|
213
|
+
place: 'the bakery, Millstream Hamlet',
|
|
214
|
+
x: 1850, z: 1182, faceX: 1850, faceZ: 1184, leash: 1,
|
|
215
|
+
shopTitle: "Gilda's Bakery",
|
|
216
|
+
stock: [
|
|
217
|
+
{ kind: 'bread', price: INN_BREAD_PRICE },
|
|
218
|
+
{ kind: 'cookedrabbit', price: 30 },
|
|
219
|
+
{ kind: 'cookedtrout', price: 40 },
|
|
220
|
+
],
|
|
221
|
+
buys: {},
|
|
222
|
+
speak: "Gilda Roe, and this is the oven that feeds the whole valley. Flour from the mill, a fire under it and an honest hand: that is bread. Ask me what I want baked today.",
|
|
223
|
+
trade: 'Bread fresh from the oven, and a little cold rabbit and trout for the road. I want flour and loaves more than I want your coin, though: ask about the day\'s order.',
|
|
224
|
+
};
|
|
225
|
+
// ---- The quest props ----------------------------------------------------------------------------------------------------------------
|
|
226
|
+
export const MSH_PROP = { wheel: 'mswheel', gauge: 'msgauge', beans: 'msbeans', box: 'msbox', cart: 'mscart' };
|
|
227
|
+
/** The Stuck Wheel: the pond sluice, the race gate, the wheel brake and the hopper chute, in the order the water goes. West bank, north to south. */
|
|
228
|
+
export const MSH_WHEEL = [
|
|
229
|
+
{ id: 'ms-quest-wheel-1', x: 1878, z: 1192, style: `${MSH_PROP.wheel}:1` },
|
|
230
|
+
{ id: 'ms-quest-wheel-2', x: 1878, z: 1196, style: `${MSH_PROP.wheel}:2` },
|
|
231
|
+
{ id: 'ms-quest-wheel-3', x: 1878, z: 1200, style: `${MSH_PROP.wheel}:3` },
|
|
232
|
+
{ id: 'ms-quest-wheel-4', x: 1876, z: 1203, style: `${MSH_PROP.wheel}:4` },
|
|
233
|
+
];
|
|
234
|
+
export const MSH_WHEEL_ORDER = MSH_WHEEL.map((w) => w.style);
|
|
235
|
+
export const MSH_GAUGE = { id: 'ms-quest-gauge', x: 1876, z: 1192, style: `${MSH_PROP.gauge}:race` };
|
|
236
|
+
/** Three trampled bean-pole stakes at the Burrow's edge (Boars in the Beans). */
|
|
237
|
+
export const MSH_BEANS = [
|
|
238
|
+
{ id: 'ms-quest-beans-a', x: 1822, z: 1203, style: `${MSH_PROP.beans}:a` },
|
|
239
|
+
{ id: 'ms-quest-beans-b', x: 1822, z: 1209, style: `${MSH_PROP.beans}:b` },
|
|
240
|
+
{ id: 'ms-quest-beans-c', x: 1822, z: 1215, style: `${MSH_PROP.beans}:c` },
|
|
241
|
+
];
|
|
242
|
+
/** The lost cart's wagon and the three spilled flour crates in Stag Meadow. */
|
|
243
|
+
export const MSH_CART = { id: 'ms-quest-cart', x: 1900, z: 1266, style: `${MSH_PROP.cart}:wagon` };
|
|
244
|
+
export const MSH_BOXES = [
|
|
245
|
+
{ id: 'ms-quest-box-a', x: 1896, z: 1263, style: `${MSH_PROP.box}:a` },
|
|
246
|
+
{ id: 'ms-quest-box-b', x: 1904, z: 1272, style: `${MSH_PROP.box}:b` },
|
|
247
|
+
{ id: 'ms-quest-box-c', x: 1909, z: 1262, style: `${MSH_PROP.box}:c` },
|
|
248
|
+
];
|
|
249
|
+
export const MILLSTREAM_QUEST_PROPS = [...MSH_WHEEL, MSH_GAUGE, ...MSH_BEANS, MSH_CART, ...MSH_BOXES];
|
|
250
|
+
export function millstreamPropModel(prop) {
|
|
251
|
+
if (prop === MSH_PROP.wheel)
|
|
252
|
+
return 'lwropepost';
|
|
253
|
+
if (prop === MSH_PROP.gauge || prop === MSH_PROP.beans)
|
|
254
|
+
return 'townwaypost1x1';
|
|
255
|
+
if (prop === MSH_PROP.box)
|
|
256
|
+
return 'evstorecrates';
|
|
257
|
+
if (prop === MSH_PROP.cart)
|
|
258
|
+
return 'hbtinkerwagon';
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
export const MILLSTREAM_QUEST_PROP_NAMES = {
|
|
262
|
+
[MSH_WHEEL[0].style]: 'Pond Sluice',
|
|
263
|
+
[MSH_WHEEL[1].style]: 'Race Gate',
|
|
264
|
+
[MSH_WHEEL[2].style]: 'Wheel Brake',
|
|
265
|
+
[MSH_WHEEL[3].style]: 'Hopper Chute',
|
|
266
|
+
[MSH_GAUGE.style]: 'Race Gauge',
|
|
267
|
+
[MSH_BEANS[0].style]: 'Trampled Bean Stake',
|
|
268
|
+
[MSH_BEANS[1].style]: 'Trampled Bean Stake',
|
|
269
|
+
[MSH_BEANS[2].style]: 'Trampled Bean Stake',
|
|
270
|
+
[MSH_CART.style]: "Lowther's Wagon",
|
|
271
|
+
[MSH_BOXES[0].style]: 'Spilled Flour Crate',
|
|
272
|
+
[MSH_BOXES[1].style]: 'Spilled Flour Crate',
|
|
273
|
+
[MSH_BOXES[2].style]: 'Spilled Flour Crate',
|
|
274
|
+
};
|
|
275
|
+
/** The idle line for a prop clicked when the quest does not want it (the gauge says the race any time). */
|
|
276
|
+
export function millstreamPropIdleLine(prop, nowMs) {
|
|
277
|
+
if (prop === MSH_PROP.gauge)
|
|
278
|
+
return millRaceLine(nowMs);
|
|
279
|
+
if (prop === MSH_PROP.wheel)
|
|
280
|
+
return `A gate on the Millstream's race. ${millRaceLine(nowMs)} Miller Hamish Burr's quest The Stuck Wheel has you work the four in order.`;
|
|
281
|
+
if (prop === MSH_PROP.beans)
|
|
282
|
+
return 'A bean stake, snapped and trampled flat by something with tusks. Farmer Dunstan Fell\'s quest Boars in the Beans wants it looked over.';
|
|
283
|
+
if (prop === MSH_PROP.box)
|
|
284
|
+
return "A crate split open in the grass, flour spilled and trodden. It is Carter Piers Lowther's, if you are doing his errand.";
|
|
285
|
+
if (prop === MSH_PROP.cart)
|
|
286
|
+
return "Piers Lowther's wagon, on its side with a wheel off. The load is gone.";
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
/** Story effect: the wrong gate, or the water running out, carries you back to the mill yard (backend world.ts applyStoryEffect). */
|
|
290
|
+
export const MILL_SPILL_EFFECT = 'mill-spill';
|
|
291
|
+
export const MILL_SPILL_TEXT = 'The water slops over the gate and sweeps you off your feet. You wash up in the mill yard, soaked, with the whole race to open again.';
|
|
292
|
+
export const MILLSTREAM_DENS = [
|
|
293
|
+
{
|
|
294
|
+
id: 'bean-row-burrow',
|
|
295
|
+
label: 'Bean Row Burrow',
|
|
296
|
+
box: { minX: 1800, maxX: 1826, minZ: 1196, maxZ: 1224 },
|
|
297
|
+
stand: { x: 1828, z: 1208 },
|
|
298
|
+
blurb: "The old bean rows west of the farm, rooted flat by the wild boars that came up out of the burrow in spring.",
|
|
299
|
+
kind: 'boar',
|
|
300
|
+
level: [10, 12],
|
|
301
|
+
spots: [{ x: 1806, z: 1204, leash: 4 }, { x: 1812, z: 1210, leash: 4 }, { x: 1818, z: 1204, leash: 4 }, { x: 1808, z: 1218, leash: 4 }, { x: 1818, z: 1216, leash: 4 }],
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
id: 'hedgerow-thicket',
|
|
305
|
+
label: 'Hedgerow Thicket',
|
|
306
|
+
box: { minX: 1892, maxX: 1916, minZ: 1176, maxZ: 1206 },
|
|
307
|
+
stand: { x: 1890, z: 1174 },
|
|
308
|
+
blurb: "A tangled hedge east of the Mill Pond where the thieves who rob the carters on the Millstream lanes lie up.",
|
|
309
|
+
kind: 'hedgethief',
|
|
310
|
+
level: [12, 14],
|
|
311
|
+
spots: [{ x: 1898, z: 1182, leash: 3 }, { x: 1906, z: 1186, leash: 3 }, { x: 1900, z: 1194, leash: 3 }, { x: 1910, z: 1198, leash: 3 }],
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
id: 'stag-meadow',
|
|
315
|
+
label: 'Stag Meadow',
|
|
316
|
+
box: { minX: 1892, maxX: 1914, minZ: 1258, maxZ: 1284 },
|
|
317
|
+
stand: { x: 1890, z: 1256 },
|
|
318
|
+
blurb: "Good grass south of the ford lane where a herd of bristlehart stags grazes: peaceable until a hand is laid on one. The carter's wagon lies on its side in the middle.",
|
|
319
|
+
kind: 'bristlehartstag',
|
|
320
|
+
level: [15, 18],
|
|
321
|
+
spots: [{ x: 1898, z: 1268, leash: 5 }, { x: 1904, z: 1278, leash: 5 }, { x: 1908, z: 1270, leash: 5 }],
|
|
322
|
+
},
|
|
323
|
+
];
|
|
324
|
+
export const MILLSTREAM_DEN_BOXES = Object.fromEntries(MILLSTREAM_DENS.map((d) => [d.id, d.box]));
|
|
325
|
+
export const MILLSTREAM_DEN_PACE = { speed: 1.1, idleChance: 0.6, pause: [3, 8] };
|
|
326
|
+
// ---- Herbs and fish ---------------------------------------------------------------------------------------------------------------------
|
|
327
|
+
/** Patches placed by the backend on the nearest suitable tile: water mint on both banks (Foraging 10), hawkweed in the garden (Foraging 14). */
|
|
328
|
+
export const MILLSTREAM_HERBS = [
|
|
329
|
+
{ herb: 'watermint', x: 1878, z: 1214 },
|
|
330
|
+
{ herb: 'watermint', x: 1878, z: 1226 },
|
|
331
|
+
{ herb: 'watermint', x: 1884, z: 1214 },
|
|
332
|
+
{ herb: 'watermint', x: 1884, z: 1226 },
|
|
333
|
+
{ herb: 'hawkweed', x: 1838, z: 1218 },
|
|
334
|
+
{ herb: 'hawkweed', x: 1841, z: 1218 },
|
|
335
|
+
{ herb: 'hawkweed', x: 1844, z: 1218 },
|
|
336
|
+
];
|
|
337
|
+
/** Rough water tiles of three tide snapper spots below the ford, found by the backend on the finished stream. */
|
|
338
|
+
export const MILLSTREAM_FISH_HINTS = [
|
|
339
|
+
{ x: 1881, z: 1264 },
|
|
340
|
+
{ x: 1881, z: 1272 },
|
|
341
|
+
{ x: 1881, z: 1280 },
|
|
342
|
+
];
|
|
343
|
+
/** Fishing pegs on the banks beside them (stand-ins): style is the side the peg faces. */
|
|
344
|
+
export const MILLSTREAM_PEGS = [
|
|
345
|
+
{ id: 'ms-peg-1', x: 1879, z: 1264, style: 'e' },
|
|
346
|
+
{ id: 'ms-peg-2', x: 1883, z: 1272, style: 'w' },
|
|
347
|
+
{ id: 'ms-peg-3', x: 1879, z: 1280, style: 'e' },
|
|
348
|
+
];
|
|
349
|
+
// ---- Places, labels, guide text ---------------------------------------------------------------------------------------------------------
|
|
350
|
+
/** The discovery zones, smallest first (types expandedContracts.ts INSERTED_DISCOVERY_ZONES): the three dens, then the hamlet. */
|
|
351
|
+
export const MILLSTREAM_ZONES = [
|
|
352
|
+
...MILLSTREAM_DENS.map((d) => ({ id: d.id, label: d.label, box: d.box })),
|
|
353
|
+
{ id: MILLSTREAM_ID, label: MILLSTREAM_NAME, box: MILLSTREAM_HAMLET_BOX },
|
|
354
|
+
];
|
|
355
|
+
export const MILLSTREAM_ZONE_IDS = MILLSTREAM_ZONES.map((z) => z.id);
|
|
356
|
+
export const MILLSTREAM_DISCOVERY_ZONES = MILLSTREAM_ZONES.map((z) => ({ id: z.id, label: z.label, coordinateFrame: 'world', ...z.box }));
|
|
357
|
+
/** The paper-map labels (the dens take theirs from their zones). */
|
|
358
|
+
export const MILLSTREAM_MAP_LABELS = [
|
|
359
|
+
{ x: 1862, z: 1180, label: MILLSTREAM_NAME },
|
|
360
|
+
{ x: 1881, z: 1187, label: 'Mill Pond' },
|
|
361
|
+
{ x: 1881, z: 1252, label: MILLSTREAM_FORD_NAME },
|
|
362
|
+
];
|
|
363
|
+
export const MILLSTREAM_PLACE_TEXT = `${MILLSTREAM_NAME} lies south of Brindlecross, down Millstream Road from the crossroads, for levels 10 to 18: the bakery on the green (Gilda Roe and the day's baking order), the mill on the Millstream below the Mill Pond (Miller Hamish Burr, who grinds wheat into flour for nothing), the herbalist's cottage with a free cauldron, and Farmer Dunstan Fell's three wheat plots. The stream runs on south past a ford of stepping stones to three fishing pegs. Over the ford and east, Stag Meadow holds a herd of bristlehart stags and Piers Lowther's lost wagon; the Hedgerow Thicket east of the pond hides hedge-thieves, and boars have taken the old Bean Row Burrow west of the farm.`;
|
|
364
|
+
//# sourceMappingURL=millstreamHamlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"millstreamHamlet.js","sourceRoot":"","sources":["../src/millstreamHamlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The five Millstream Hamlet quests (T122, 2026-10-15; millstreamHamlet.ts), levels 10-18, one for each of the hamlet's trades:
|
|
3
|
+
*
|
|
4
|
+
* The Stuck Wheel (Miller Hamish Burr, Combat 10): reap six sheaves of wheat, then THE SET PIECE: free the mill by working the pond sluice, the
|
|
5
|
+
* race gate, the wheel brake and the hopper chute IN ORDER while the water runs (the six-minute race clock, storyWindows.ts `mill-flow`); the
|
|
6
|
+
* wrong gate, or the water running out, washes you back to the mill yard. Then grind the sheaves at the mill and bring Hamish six flour.
|
|
7
|
+
* Boars in the Beans (Farmer Dunstan Fell, Combat 11): look over three trampled bean stakes and put down six wild boars in the Bean Row Burrow.
|
|
8
|
+
* Water Mint and a Pot (Herbalist Wenna Thatch, Combat 12, Foraging 10, Potion Making 12): pick two sprigs of water mint on the stream bank and
|
|
9
|
+
* brew a Mini Fishing Potion at the hamlet's cauldron. She lends a pestle and mortar and two vials.
|
|
10
|
+
* A Dozen Loaves (Baker Gilda Roe, Combat 13): bake six loaves of bread (flour from the mill) and bring them to the oven.
|
|
11
|
+
* The Lost Cart (Carter Piers Lowther, Combat 15, after A Dozen Loaves): cross the ford to Stag Meadow, find the three crates of flour the thieves
|
|
12
|
+
* left, and bring the six sacks back to Piers.
|
|
13
|
+
*
|
|
14
|
+
* Kept in their own file and entered in storyQuests.ts STORY_QUESTS, like thawCrossingQuestDef.ts. Types only from storyQuests.ts (no runtime
|
|
15
|
+
* import, so no cycle). Rewards are placeholders for the balance pass (James, 2026-10-12: balance last).
|
|
16
|
+
*/
|
|
17
|
+
import type { StoryQuestDef, StoryNpcRef } from './storyQuests.js';
|
|
18
|
+
export declare const MSH_MILLER: StoryNpcRef;
|
|
19
|
+
export declare const MSH_FARMER: StoryNpcRef;
|
|
20
|
+
export declare const MSH_HERBALIST: StoryNpcRef;
|
|
21
|
+
export declare const MSH_CARTER: StoryNpcRef;
|
|
22
|
+
export declare const MSH_BAKER: StoryNpcRef;
|
|
23
|
+
export declare const STUCK_WHEEL_COMBAT_LEVEL = 10;
|
|
24
|
+
export declare const BOARS_COMBAT_LEVEL = 11;
|
|
25
|
+
export declare const MINT_COMBAT_LEVEL = 12;
|
|
26
|
+
export declare const MINT_FORAGING_LEVEL = 10;
|
|
27
|
+
export declare const MINT_POTION_LEVEL = 12;
|
|
28
|
+
export declare const LOAVES_COMBAT_LEVEL = 13;
|
|
29
|
+
export declare const LOST_CART_COMBAT_LEVEL = 15;
|
|
30
|
+
export declare const STUCK_WHEEL_WHEAT = 6;
|
|
31
|
+
export declare const STUCK_WHEEL_FLOUR = 6;
|
|
32
|
+
export declare const BOARS_TO_KILL = 6;
|
|
33
|
+
export declare const LOAVES_TO_BAKE = 6;
|
|
34
|
+
export declare const LOST_CART_FLOUR = 6;
|
|
35
|
+
/** Flour in each of the three spilled crates (the crates give it; the quest takes it back). */
|
|
36
|
+
export declare const LOST_CART_FLOUR_PER_BOX = 2;
|
|
37
|
+
export declare const STUCK_WHEEL_QUEST: StoryQuestDef;
|
|
38
|
+
export declare const BOARS_IN_THE_BEANS_QUEST: StoryQuestDef;
|
|
39
|
+
export declare const WATER_MINT_AND_A_POT_QUEST: StoryQuestDef;
|
|
40
|
+
export declare const A_DOZEN_LOAVES_QUEST: StoryQuestDef;
|
|
41
|
+
export declare const THE_LOST_CART_QUEST: StoryQuestDef;
|
|
42
|
+
//# sourceMappingURL=millstreamQuestDef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"millstreamQuestDef.d.ts","sourceRoot":"","sources":["../src/millstreamQuestDef.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAInE,eAAO,MAAM,UAAU,aAAoC,CAAC;AAC5D,eAAO,MAAM,UAAU,aAAoC,CAAC;AAC5D,eAAO,MAAM,aAAa,aAAuC,CAAC;AAClE,eAAO,MAAM,UAAU,aAAoC,CAAC;AAC5D,eAAO,MAAM,SAAS,aAAmC,CAAC;AAE1D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,+FAA+F;AAC/F,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAIzC,eAAO,MAAM,iBAAiB,EAAE,aAuD/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,aAgDtC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,aAkDxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAqClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aA4CjC,CAAC"}
|