@dreadwood-types/types 0.1.310 → 0.1.312

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 (63) hide show
  1. package/dist/attackableNpcs.d.ts.map +1 -1
  2. package/dist/attackableNpcs.js +4 -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 +12 -0
  7. package/dist/bossSignatures.js.map +1 -1
  8. package/dist/campTraders.d.ts.map +1 -1
  9. package/dist/campTraders.js +15 -0
  10. package/dist/campTraders.js.map +1 -1
  11. package/dist/constants.d.ts +4 -0
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/dwarfRoadCamp.d.ts +188 -0
  15. package/dist/dwarfRoadCamp.d.ts.map +1 -0
  16. package/dist/dwarfRoadCamp.js +210 -0
  17. package/dist/dwarfRoadCamp.js.map +1 -0
  18. package/dist/dwarfRoadCampQuestDef.d.ts +34 -0
  19. package/dist/dwarfRoadCampQuestDef.d.ts.map +1 -0
  20. package/dist/dwarfRoadCampQuestDef.js +241 -0
  21. package/dist/dwarfRoadCampQuestDef.js.map +1 -0
  22. package/dist/dwarfRoadDens.d.ts +117 -0
  23. package/dist/dwarfRoadDens.d.ts.map +1 -0
  24. package/dist/dwarfRoadDens.js +184 -0
  25. package/dist/dwarfRoadDens.js.map +1 -0
  26. package/dist/expandedContracts.d.ts.map +1 -1
  27. package/dist/expandedContracts.js +5 -1
  28. package/dist/expandedContracts.js.map +1 -1
  29. package/dist/index.d.ts +5 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/legacy.d.ts +5 -0
  34. package/dist/legacy.d.ts.map +1 -1
  35. package/dist/legacy.js +5 -0
  36. package/dist/legacy.js.map +1 -1
  37. package/dist/northWilds.d.ts +2 -2
  38. package/dist/northWilds.d.ts.map +1 -1
  39. package/dist/northWilds.js +3 -0
  40. package/dist/northWilds.js.map +1 -1
  41. package/dist/potionMaking.d.ts.map +1 -1
  42. package/dist/potionMaking.js +3 -0
  43. package/dist/potionMaking.js.map +1 -1
  44. package/dist/quests.d.ts.map +1 -1
  45. package/dist/quests.js +56 -0
  46. package/dist/quests.js.map +1 -1
  47. package/dist/storyQuests.d.ts +1 -1
  48. package/dist/storyQuests.d.ts.map +1 -1
  49. package/dist/storyQuests.js +33 -0
  50. package/dist/storyQuests.js.map +1 -1
  51. package/dist/storyWindows.d.ts +1 -1
  52. package/dist/storyWindows.d.ts.map +1 -1
  53. package/dist/storyWindows.js +6 -1
  54. package/dist/storyWindows.js.map +1 -1
  55. package/dist/thawCrossing.d.ts +248 -0
  56. package/dist/thawCrossing.d.ts.map +1 -0
  57. package/dist/thawCrossing.js +330 -0
  58. package/dist/thawCrossing.js.map +1 -0
  59. package/dist/thawCrossingQuestDef.d.ts +38 -0
  60. package/dist/thawCrossingQuestDef.d.ts.map +1 -0
  61. package/dist/thawCrossingQuestDef.js +192 -0
  62. package/dist/thawCrossingQuestDef.js.map +1 -0
  63. package/package.json +2 -2
@@ -0,0 +1,188 @@
1
+ /**
2
+ * THE PASS-ROAD CAMP and the Dwarf Road's middle (T102, 2026-10-14; plan `.cursor/task-plans/2026-10-14-t102-dwarf-road-middle.md`; backend
3
+ * COVERAGE_1_40.md section 6 slice 2). The Dwarf Road (dwarfRoad.ts, T2) had one quest and a handful of single creatures over 137k empty tiles: a
4
+ * level 30-38 player had no camp, no smith, no board and nothing to do between the Old Quarry and the sealed Dwarf Pass. This file adds, all
5
+ * inside T2's box and on the valley floor:
6
+ *
7
+ * - THE PASS-ROAD CAMP (x 1852-1865, z 474-494: west of the road, north of the Avalanche Chute and so past the Cart Run): a smithy with a furnace,
8
+ * an anvil and a workbench, a cookhouse and range with a camp cook (campTraders.ts), a fire, a Bounty Board, stores, lamps, a sign, and a rock
9
+ * face of four seams (coal, iron, gold at Mining 30, silver at Mining 33). Five residents give five quests (dwarfRoadCampQuestDef.ts).
10
+ * - THE SPUR CROSSING: a second runaway-cart set, a lane that crosses the valley (and so the road) at z 779. Two ore carts on the shared clock, one
11
+ * each way, the same `runawaycart` kind as the Cart Run's and the same rule (a hit takes a share of health and never the last point). Time your
12
+ * crossing between them.
13
+ * - Marsh marigolds on the Dwarf Beck's banks (Foraging 29, appended to HERB_PATCH_SPOTS).
14
+ * - The dens and the Rail-Eater, in dwarfRoadDens.ts.
15
+ *
16
+ * The models are the kit's own (Calverton's Smiths' Row and the Toll House use the same ones) as stand-ins, logged in dreadwoods-backend/upgrades.
17
+ * Nothing 41+ is built and the Dwarf Pass stays sealed. Every number is a WORLD tile (x east, z south) and a PLACEHOLDER for the balance pass.
18
+ */
19
+ import type { LanternWakeBox } from './lanternWake.js';
20
+ import type { DiscoveryZone } from './landmarks.js';
21
+ export declare const PASS_CAMP_ID = "pass-road-camp";
22
+ export declare const PASS_CAMP_NAME = "The Pass-Road Camp";
23
+ /** The camp's ground: west of the road (its edge is 2 tiles off the road's), z 474-494, north of the Avalanche Chute (z 514-528). */
24
+ export declare const PASS_CAMP_BOX: LanternWakeBox;
25
+ export declare function inPassCamp(x: number, z: number, pad?: number): boolean;
26
+ export declare const PASS_CAMP_DISCOVERY_ZONE: DiscoveryZone;
27
+ /** One thing laid on the ground: the kit's own kinds and styles (the Toll House's shape), placed by the backend's ground placer. */
28
+ export type PassCampProp = {
29
+ readonly id: string;
30
+ readonly kind: 'dreadmodel' | 'dreadprop' | 'campfire' | 'barrel' | 'bountyboard' | 'furnace' | 'anvil' | 'workbench' | 'stove' | 'signpost';
31
+ readonly style: string;
32
+ readonly x: number;
33
+ readonly z: number;
34
+ readonly scale?: number;
35
+ };
36
+ /** The camp's pieces and working stations. */
37
+ export declare const PASS_CAMP_PIECES: readonly PassCampProp[];
38
+ /** The camp's rock face: four mineral seams (ORE_ROCK_KIND styles) down its west edge. Gold is Mining 30 and silver Mining 33 (mining.ts). */
39
+ export declare const PASS_CAMP_SEAMS: ReadonlyArray<{
40
+ readonly id: string;
41
+ readonly x: number;
42
+ readonly z: number;
43
+ readonly style: 'coal' | 'iron' | 'gold' | 'silver';
44
+ }>;
45
+ /** The signs (the placard signpost): the camp's own, one at each end of the Spur Crossing and one at the Rail-Eater's cut. */
46
+ export declare const PASS_CAMP_SIGNS: ReadonlyArray<{
47
+ readonly id: string;
48
+ readonly x: number;
49
+ readonly z: number;
50
+ readonly text: string;
51
+ }>;
52
+ /** The lane: a cross-valley run along row 779 (rows 778-780 are hit). The ends are the carts' buffers. */
53
+ export declare const SPUR_LANE: {
54
+ readonly z: 779;
55
+ readonly minX: 1868;
56
+ readonly maxX: 1918;
57
+ };
58
+ /** Two ore carts: cart 0 runs west to east, cart 1 east to west, never together (half a cycle apart). */
59
+ export declare const SPUR_CARTS: {
60
+ readonly count: 2;
61
+ readonly speed: 5.5;
62
+ readonly offsetMs: 9500;
63
+ readonly pauseMs: 9500;
64
+ };
65
+ export declare const SPUR_CART_RUN_MS: number;
66
+ export declare const SPUR_CART_CYCLE_MS: number;
67
+ /** A cart hits a player within these of it, the same width as the Cart Run's carts. The cooldown is the Cart Run's too. */
68
+ export declare const SPUR_CART_HIT: {
69
+ readonly dx: 2;
70
+ readonly dz: 1;
71
+ };
72
+ export declare const SPUR_CART_HIT_COOLDOWN_MS = 3500;
73
+ export declare const SPUR_CART_NAME = "Spur Ore Cart";
74
+ export declare const SPUR_CART_NPC_KIND: "runawaycart";
75
+ export declare const SPUR_CART_ID_PREFIX = "dr-spur-cart-";
76
+ export declare const SPUR_CART_WARNING = "An ore cart breaks from the buffer on the Spur and rattles across the valley. Mind the road crossing!";
77
+ export declare const SPUR_CART_HIT_TEXT = "The ore cart clips you on the crossing and spins you into the gravel.";
78
+ /** The waiting tile of cart `i` (its buffer end), and its direction. */
79
+ export declare function spurCartPark(i: number): {
80
+ x: number;
81
+ z: number;
82
+ };
83
+ /**
84
+ * Where cart `i` is at `nowMs`: its column (west to east for even carts, east to west for odd ones), or null while it waits at its buffer. The
85
+ * carts share one clock so every player sees the same carts and nothing is stored.
86
+ */
87
+ export declare function spurCartX(i: number, nowMs: number): number | null;
88
+ export declare function inSpurLane(x: number, z: number): boolean;
89
+ /** The lane's buffers and the piles of ore beside it (kit stand-ins). */
90
+ export declare const SPUR_PIECES: readonly PassCampProp[];
91
+ /**
92
+ * Marsh Marigold (Foraging 29, potionMaking.ts) on the Dwarf Beck's grass banks (the Beck runs east across z 826-846). Final-frame tiles, appended to
93
+ * HERB_PATCH_SPOTS and placed by the backend's later-herbs pass on the nearest bare grass tile with water within two tiles.
94
+ */
95
+ export declare const DWARF_BECK_MARIGOLD_SPOTS: ReadonlyArray<readonly [number, number]>;
96
+ export type DwarfCampFolk = {
97
+ readonly id: string;
98
+ readonly name: string;
99
+ readonly place: string;
100
+ readonly x: number;
101
+ readonly z: number;
102
+ readonly faceX: number;
103
+ readonly faceZ: number;
104
+ readonly leash: number;
105
+ readonly speak: string;
106
+ /** Extra menu lines: id, label, what they say. */
107
+ readonly extras?: ReadonlyArray<{
108
+ readonly id: string;
109
+ readonly label: string;
110
+ readonly say: string;
111
+ }>;
112
+ };
113
+ export declare const DWARF_CAMP_FOLK_NAMES: {
114
+ readonly surveyor: "Surveyor Ilse Marren";
115
+ readonly carter: "Carter Jory Ashby";
116
+ readonly smith: "Smith Brannoch Veld";
117
+ readonly scout: "Scout Hesper Quill";
118
+ readonly sentry: "Sentry Dane Orrin";
119
+ };
120
+ /** The five residents (named residents on the default look, stationary): the camp's cook is in campTraders.ts. */
121
+ export declare const DWARF_CAMP_FOLK: ReadonlyArray<DwarfCampFolk>;
122
+ export declare function dwarfCampFolkByName(name: string | null | undefined): DwarfCampFolk | null;
123
+ /** The camp's cook, which lives in CAMP_TRADERS (campTraders.ts) beside the other camps' cooks. */
124
+ export declare const PASS_CAMP_COOK: {
125
+ readonly id: "camp-pass-road";
126
+ readonly name: "Nora Pike";
127
+ readonly x: 1862;
128
+ readonly z: 486;
129
+ readonly faceX: 1861;
130
+ readonly faceZ: 488;
131
+ };
132
+ export declare const DC_PROP: {
133
+ readonly peg: "dcpeg";
134
+ readonly chock: "dcchock";
135
+ readonly cairn: "dccairn";
136
+ };
137
+ export type DcQuestProp = {
138
+ readonly id: string;
139
+ readonly x: number;
140
+ readonly z: number;
141
+ readonly style: string;
142
+ };
143
+ /** The surveyor's four pegs: the quarry road, the Avalanche Chute, the Cliffside Pass and the Gate Court's approach. */
144
+ export declare const DC_PEG_QUARRY: DcQuestProp;
145
+ export declare const DC_PEG_CHUTE: DcQuestProp;
146
+ export declare const DC_PEG_CLIFF: DcQuestProp;
147
+ export declare const DC_PEG_COURT: DcQuestProp;
148
+ /** The carter's two chocks, one at each end of the Spur lane, set east then west (an ordered touch). */
149
+ export declare const DC_CHOCK_EAST: DcQuestProp;
150
+ export declare const DC_CHOCK_WEST: DcQuestProp;
151
+ /** The scout's three cairns, one outside each of three dens (the Spoil Heaps, the Goat Terraces, the Old Kennels). */
152
+ export declare const DC_CAIRN_SPOIL: DcQuestProp;
153
+ export declare const DC_CAIRN_TERRACE: DcQuestProp;
154
+ export declare const DC_CAIRN_KENNEL: DcQuestProp;
155
+ export declare const DWARF_CAMP_QUEST_PROPS: readonly DcQuestProp[];
156
+ export declare const DWARF_CAMP_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
157
+ /** The model a Pass-Road Camp quest prop draws with (frontend quest-prop models that already exist), or null if not one of them. */
158
+ export declare function dwarfCampPropModel(prop: string): string | null;
159
+ /** Standable tiles for teleports, smokes and the helper. */
160
+ export declare const DWARF_CAMP_STANDS: {
161
+ readonly camp: {
162
+ readonly x: 1861;
163
+ readonly z: 485;
164
+ };
165
+ readonly smithy: {
166
+ readonly x: 1856;
167
+ readonly z: 487;
168
+ };
169
+ readonly board: {
170
+ readonly x: 1860;
171
+ readonly z: 490;
172
+ };
173
+ readonly seams: {
174
+ readonly x: 1853;
175
+ readonly z: 483;
176
+ };
177
+ readonly spurNorth: {
178
+ readonly x: number;
179
+ readonly z: 772;
180
+ };
181
+ readonly spurSouth: {
182
+ readonly x: number;
183
+ readonly z: 787;
184
+ };
185
+ };
186
+ /** What the guide, the verify links and the quest helper say about the place. */
187
+ export declare const DWARF_CAMP_PLACE_TEXT = "The Pass-Road Camp lies on the Dwarf Road's west side, north of the Avalanche Chute and so past the Cart Run: a smithy with a furnace, an anvil and a workbench, a cookhouse with a hot pot, a fire, a Bounty Board and five seams of coal, iron, gold and silver in the rock behind it. Five people work it.";
188
+ //# sourceMappingURL=dwarfRoadCamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dwarfRoadCamp.d.ts","sourceRoot":"","sources":["../src/dwarfRoadCamp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAC7C,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD,qIAAqI;AACrI,eAAO,MAAM,aAAa,EAAE,cAAiE,CAAC;AAC9F,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,OAAO,CAGjE;AACD,eAAO,MAAM,wBAAwB,EAAE,aAAuG,CAAC;AAE/I,oIAAoI;AACpI,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;IAC7I,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAyBnD,CAAC;AAEF,8IAA8I;AAC9I,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;CAAE,CAM/J,CAAC;AAEF,8HAA8H;AAC9H,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKjI,CAAC;AAIF,0GAA0G;AAC1G,eAAO,MAAM,SAAS;;;;CAA8C,CAAC;AACrE,yGAAyG;AACzG,eAAO,MAAM,UAAU;;;;;CAAmE,CAAC;AAC3F,eAAO,MAAM,gBAAgB,QAA4E,CAAC;AAC1G,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AACxE,2HAA2H;AAC3H,eAAO,MAAM,aAAa;;;CAAiB,CAAC;AAC5C,eAAO,MAAM,yBAAyB,OAA6B,CAAC;AACpE,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,EAAG,aAAsB,CAAC;AACzD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,iBAAiB,0GAA0G,CAAC;AACzI,eAAO,MAAM,kBAAkB,0EAA0E,CAAC;AAC1G,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAEhE;AACD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKjE;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExD;AACD,yEAAyE;AACzE,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAM9C,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9E,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxG,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;CAMxB,CAAC;AAIX,kHAAkH;AAClH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,aAAa,CAyCxD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAEzF;AAED,mGAAmG;AACnG,eAAO,MAAM,cAAc;;;;;;;CAAiG,CAAC;AAI7H,eAAO,MAAM,OAAO;;;;CAAgE,CAAC;AACrF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAGlH,wHAAwH;AACxH,eAAO,MAAM,aAAa,EAAE,WAA4F,CAAC;AACzH,eAAO,MAAM,YAAY,EAAE,WAA0F,CAAC;AACtH,eAAO,MAAM,YAAY,EAAE,WAA0F,CAAC;AACtH,eAAO,MAAM,YAAY,EAAE,WAA0F,CAAC;AACtH,wGAAwG;AACxG,eAAO,MAAM,aAAa,EAAE,WAAgH,CAAC;AAC7I,eAAO,MAAM,aAAa,EAAE,WAAgH,CAAC;AAC7I,sHAAsH;AACtH,eAAO,MAAM,cAAc,EAAE,WAAwF,CAAC;AACtH,eAAO,MAAM,gBAAgB,EAAE,WAA4F,CAAC;AAC5H,eAAO,MAAM,eAAe,EAAE,WAA0F,CAAC;AAEzH,eAAO,MAAM,sBAAsB,EAAE,SAAS,WAAW,EAExD,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxE,CAAC;AACF,oIAAoI;AACpI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D;AAED,4DAA4D;AAC5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAOpB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,kTAC+Q,CAAC"}
@@ -0,0 +1,210 @@
1
+ import { DWARF_CART_HIT, DWARF_CART_HIT_COOLDOWN_MS, dwarfRoadCentre } from './dwarfRoad.js';
2
+ export const PASS_CAMP_ID = 'pass-road-camp';
3
+ export const PASS_CAMP_NAME = 'The Pass-Road Camp';
4
+ /** The camp's ground: west of the road (its edge is 2 tiles off the road's), z 474-494, north of the Avalanche Chute (z 514-528). */
5
+ export const PASS_CAMP_BOX = { minX: 1852, maxX: 1865, minZ: 474, maxZ: 494 };
6
+ export function inPassCamp(x, z, pad = 0) {
7
+ const b = PASS_CAMP_BOX;
8
+ return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
9
+ }
10
+ export const PASS_CAMP_DISCOVERY_ZONE = { id: PASS_CAMP_ID, label: PASS_CAMP_NAME, coordinateFrame: 'world', ...PASS_CAMP_BOX };
11
+ const kit = (id, model, x, z, scale) => ({ id, kind: 'dreadmodel', style: `${model}-s`, x, z, ...(scale ? { scale } : {}) });
12
+ const lamp = (id, x, z) => kit(id, 'townlantern1x1', x, z);
13
+ /** The camp's pieces and working stations. */
14
+ export const PASS_CAMP_PIECES = [
15
+ // Buildings: the smithy (the Smiths' Row one) and the cookhouse.
16
+ kit('dc-smithy', 'bcsmithy', 1856, 478),
17
+ kit('dc-cookhouse', 'towncookhouse5x3', 1863, 478),
18
+ kit('dc-quench', 'hbtrough', 1853, 482),
19
+ // Stores: a tool rack, logs for the furnace, crates, sacks, a supply wagon, a bench, a barrel.
20
+ kit('dc-racks', 'toolrack', 1853, 486),
21
+ kit('dc-logs', 'birchlogpile', 1853, 490),
22
+ kit('dc-crates', 'hbcrates', 1864, 491),
23
+ kit('dc-sacks', 'hubsack', 1864, 488),
24
+ kit('dc-cratestack', 'evcratestack', 1862, 492),
25
+ kit('dc-wagon', 'hbtinkerwagon', 1856, 492),
26
+ kit('dc-bench', 'hbbench', 1859, 486),
27
+ { id: 'dc-barrel', kind: 'barrel', style: 'barrel', x: 1854, z: 493, scale: 1 },
28
+ lamp('dc-lamp-ne', 1865, 476),
29
+ lamp('dc-lamp-se', 1865, 486),
30
+ lamp('dc-lamp-nw', 1853, 476),
31
+ lamp('dc-lamp-sw', 1854, 484),
32
+ // The working stations (the skills' own kinds): a furnace and anvil, a workbench, the cookhouse's range, the camp fire and the board.
33
+ { id: 'dc-furnace', kind: 'furnace', style: '', x: 1855, z: 483 },
34
+ { id: 'dc-anvil', kind: 'anvil', style: '', x: 1857, z: 483 },
35
+ { id: 'dc-bench-station', kind: 'workbench', style: 'face0', x: 1859, z: 484 },
36
+ { id: 'dc-stove', kind: 'stove', style: '', x: 1863, z: 483 },
37
+ { id: 'dc-fire', kind: 'campfire', style: 'beach-pit', x: 1861, z: 488, scale: 1 },
38
+ { id: 'dc-board', kind: 'bountyboard', style: 'wall-s', x: 1860, z: 492 },
39
+ ];
40
+ /** The camp's rock face: four mineral seams (ORE_ROCK_KIND styles) down its west edge. Gold is Mining 30 and silver Mining 33 (mining.ts). */
41
+ export const PASS_CAMP_SEAMS = [
42
+ { id: 'dc-seam-coal-1', x: 1851, z: 477, style: 'coal' },
43
+ { id: 'dc-seam-iron-1', x: 1851, z: 480, style: 'iron' },
44
+ { id: 'dc-seam-gold-1', x: 1851, z: 483, style: 'gold' },
45
+ { id: 'dc-seam-silver-1', x: 1851, z: 486, style: 'silver' },
46
+ { id: 'dc-seam-coal-2', x: 1851, z: 489, style: 'coal' },
47
+ ];
48
+ /** The signs (the placard signpost): the camp's own, one at each end of the Spur Crossing and one at the Rail-Eater's cut. */
49
+ export const PASS_CAMP_SIGNS = [
50
+ { id: 'dc-sign-camp', x: 1866, z: 480, text: 'The Pass-Road Camp. A smith, a hot pot and a Bounty Board for the long road north. The Dwarf Pass beyond is sealed to all but the dwarves. Combat 30+.' },
51
+ { id: 'dc-sign-spur-s', x: 1896, z: 783, text: 'SPUR CROSSING. Ore carts run across the valley, one each way, and the road runs across them. Look both ways. The cart takes a third of your health and never the last of it.' },
52
+ { id: 'dc-sign-spur-n', x: 1896, z: 774, text: 'Spur Crossing ahead. Wait at the edge until the cart has gone by, then cross at a run.' },
53
+ { id: 'dc-sign-cut', x: 1869, z: 733, text: 'The Gnawed Cut. Something has been eating the rail. If the sleepers are bare to the iron, turn back.' },
54
+ ];
55
+ // ---- The Spur Crossing: a second set of runaway carts ----------------------------------------------------------------------------------
56
+ /** The lane: a cross-valley run along row 779 (rows 778-780 are hit). The ends are the carts' buffers. */
57
+ export const SPUR_LANE = { z: 779, minX: 1868, maxX: 1918 };
58
+ /** Two ore carts: cart 0 runs west to east, cart 1 east to west, never together (half a cycle apart). */
59
+ export const SPUR_CARTS = { count: 2, speed: 5.5, offsetMs: 9500, pauseMs: 9500 };
60
+ export const SPUR_CART_RUN_MS = Math.round(((SPUR_LANE.maxX - SPUR_LANE.minX) / SPUR_CARTS.speed) * 1000);
61
+ export const SPUR_CART_CYCLE_MS = SPUR_CART_RUN_MS + SPUR_CARTS.pauseMs;
62
+ /** A cart hits a player within these of it, the same width as the Cart Run's carts. The cooldown is the Cart Run's too. */
63
+ export const SPUR_CART_HIT = DWARF_CART_HIT;
64
+ export const SPUR_CART_HIT_COOLDOWN_MS = DWARF_CART_HIT_COOLDOWN_MS;
65
+ export const SPUR_CART_NAME = 'Spur Ore Cart';
66
+ export const SPUR_CART_NPC_KIND = 'runawaycart';
67
+ export const SPUR_CART_ID_PREFIX = 'dr-spur-cart-';
68
+ export const SPUR_CART_WARNING = 'An ore cart breaks from the buffer on the Spur and rattles across the valley. Mind the road crossing!';
69
+ export const SPUR_CART_HIT_TEXT = 'The ore cart clips you on the crossing and spins you into the gravel.';
70
+ /** The waiting tile of cart `i` (its buffer end), and its direction. */
71
+ export function spurCartPark(i) {
72
+ return { x: i % 2 === 0 ? SPUR_LANE.minX : SPUR_LANE.maxX, z: SPUR_LANE.z };
73
+ }
74
+ /**
75
+ * Where cart `i` is at `nowMs`: its column (west to east for even carts, east to west for odd ones), or null while it waits at its buffer. The
76
+ * carts share one clock so every player sees the same carts and nothing is stored.
77
+ */
78
+ export function spurCartX(i, nowMs) {
79
+ const t = (((nowMs - i * SPUR_CARTS.offsetMs) % SPUR_CART_CYCLE_MS) + SPUR_CART_CYCLE_MS) % SPUR_CART_CYCLE_MS;
80
+ if (t >= SPUR_CART_RUN_MS)
81
+ return null;
82
+ const step = Math.floor((t / 1000) * SPUR_CARTS.speed);
83
+ return i % 2 === 0 ? SPUR_LANE.minX + step : SPUR_LANE.maxX - step;
84
+ }
85
+ export function inSpurLane(x, z) {
86
+ return z >= SPUR_LANE.z - SPUR_CART_HIT.dz && z <= SPUR_LANE.z + SPUR_CART_HIT.dz && x >= SPUR_LANE.minX && x <= SPUR_LANE.maxX;
87
+ }
88
+ /** The lane's buffers and the piles of ore beside it (kit stand-ins). */
89
+ export const SPUR_PIECES = [
90
+ kit('dc-spur-buffer-w', 'evrailbuffer', SPUR_LANE.minX - 1, SPUR_LANE.z),
91
+ kit('dc-spur-buffer-e', 'evrailbuffer', SPUR_LANE.maxX + 1, SPUR_LANE.z),
92
+ kit('dc-spur-ore-1', 'evoreiron', 1872, 774),
93
+ kit('dc-spur-ore-2', 'evorecopper', 1914, 785),
94
+ kit('dc-spur-crates', 'evcratestack', 1912, 774),
95
+ ];
96
+ // ---- Marsh marigolds on the Dwarf Beck's banks ---------------------------------------------------------------------------------------
97
+ /**
98
+ * Marsh Marigold (Foraging 29, potionMaking.ts) on the Dwarf Beck's grass banks (the Beck runs east across z 826-846). Final-frame tiles, appended to
99
+ * HERB_PATCH_SPOTS and placed by the backend's later-herbs pass on the nearest bare grass tile with water within two tiles.
100
+ */
101
+ export const DWARF_BECK_MARIGOLD_SPOTS = [
102
+ [1862, 829], [1874, 830], [1897, 832], [1906, 836], [1868, 835],
103
+ ];
104
+ export const DWARF_CAMP_FOLK_NAMES = {
105
+ surveyor: 'Surveyor Ilse Marren',
106
+ carter: 'Carter Jory Ashby',
107
+ smith: 'Smith Brannoch Veld',
108
+ scout: 'Scout Hesper Quill',
109
+ sentry: 'Sentry Dane Orrin',
110
+ };
111
+ const CAMP_PLACE = 'the Pass-Road Camp, Dwarf Road';
112
+ /** The five residents (named residents on the default look, stationary): the camp's cook is in campTraders.ts. */
113
+ export const DWARF_CAMP_FOLK = [
114
+ {
115
+ id: 'dc-surveyor',
116
+ name: DWARF_CAMP_FOLK_NAMES.surveyor,
117
+ place: CAMP_PLACE,
118
+ x: 1858, z: 490, faceX: 1858, faceZ: 492, leash: 1,
119
+ speak: 'Ilse Marren, surveyor to the Western Line. The dwarves drew this road four hundred years ago and not one of their pegs is where their map says. I am putting them back, one at a time, with a lot of walking.',
120
+ extras: [{ id: 'pegs', label: 'The pegs', say: 'Four pegs, from the quarry road to the Cliffside Pass. They are easy to find and hard to walk past: the Cart Run lies in the middle of the list, and I would rather not draw my own funeral.' }],
121
+ },
122
+ {
123
+ id: 'dc-carter',
124
+ name: DWARF_CAMP_FOLK_NAMES.carter,
125
+ place: CAMP_PLACE,
126
+ x: 1858, z: 494, faceX: 1856, faceZ: 492, leash: 1,
127
+ speak: 'Jory Ashby, carter. I haul ore to the camp from the Spur, and the Spur hauls me back if I am slow. Two carts, one each way, and a road that was laid straight through them by somebody who never walked it.',
128
+ extras: [{ id: 'spur', label: 'The Spur', say: 'Watch the carts, not your feet. They run on a clock: one leaves each end every nine seconds or so. Cross behind one and you have the whole lane to yourself.' }],
129
+ },
130
+ {
131
+ id: 'dc-smith',
132
+ name: DWARF_CAMP_FOLK_NAMES.smith,
133
+ place: CAMP_PLACE,
134
+ x: 1856, z: 485, faceX: 1856, faceZ: 483, leash: 1,
135
+ speak: 'Brannoch Veld, smith. The furnace is lit and the anvil is free, and I want nothing for the fire. Bring steel and I will show you what gold does to it. The seams on the rock behind me give coal, iron, gold, and one good vein of silver.',
136
+ extras: [{ id: 'seams', label: 'The seams', say: 'Coal and iron for everyone. Gold takes a Mining of 30 and an iron pick, silver a Mining of 33. Smelt where you stand: the furnace is yours.' }],
137
+ },
138
+ {
139
+ id: 'dc-scout',
140
+ name: DWARF_CAMP_FOLK_NAMES.scout,
141
+ place: CAMP_PLACE,
142
+ x: 1853, z: 479, faceX: 1856, faceZ: 479, leash: 1,
143
+ speak: 'Hesper Quill, scout. I walk the valley and mark what bites. There are four dens now between the Beck and the Gate Court, and a thing in the Gnawed Cut that has been eating the rail. I have a map, and a list of what I would rather not meet.',
144
+ extras: [{ id: 'dens', label: 'The dens', say: 'The Spoil Heaps south of the Spur: beetles and crawlers. The Goat Terraces and the Old Kennels on the Cliffside Pass: goats, hawks, hounds. The Serpent Stones north of the Chute. They only hunt you if you step inside, and they give up at their leash.' }],
145
+ },
146
+ {
147
+ id: 'dc-sentry',
148
+ name: DWARF_CAMP_FOLK_NAMES.sentry,
149
+ place: CAMP_PLACE,
150
+ x: 1865, z: 483, faceX: 1869, faceZ: 483, leash: 1,
151
+ speak: 'Dane Orrin, on watch. The camp is the last post on the Pass-Road; past me there is the Gate Court and a sealed door that the dwarves have not decided about. I keep my eyes on the road and my back to the rock.',
152
+ extras: [{ id: 'watch', label: 'The watch', say: 'Nothing comes up the road at night but the carts, and they are loud enough. It is the Rail-Eater I watch for, in the Gnawed Cut south of the Chute: the sleepers, then the iron, and then it will start on the camp.' }],
153
+ },
154
+ ];
155
+ export function dwarfCampFolkByName(name) {
156
+ return name ? DWARF_CAMP_FOLK.find((p) => p.name === name) ?? null : null;
157
+ }
158
+ /** The camp's cook, which lives in CAMP_TRADERS (campTraders.ts) beside the other camps' cooks. */
159
+ export const PASS_CAMP_COOK = { id: 'camp-pass-road', name: 'Nora Pike', x: 1862, z: 486, faceX: 1861, faceZ: 488 };
160
+ // ---- Quest props -----------------------------------------------------------------------------------------------------------------------
161
+ export const DC_PROP = { peg: 'dcpeg', chock: 'dcchock', cairn: 'dccairn' };
162
+ const c = dwarfRoadCentre;
163
+ /** The surveyor's four pegs: the quarry road, the Avalanche Chute, the Cliffside Pass and the Gate Court's approach. */
164
+ export const DC_PEG_QUARRY = { id: 'dc-peg-quarry', x: c(710) + 7, z: 710, style: `${DC_PROP.peg}:quarry` };
165
+ export const DC_PEG_CHUTE = { id: 'dc-peg-chute', x: c(534) - 7, z: 534, style: `${DC_PROP.peg}:chute` };
166
+ export const DC_PEG_CLIFF = { id: 'dc-peg-cliff', x: c(420) - 8, z: 420, style: `${DC_PROP.peg}:cliff` };
167
+ export const DC_PEG_COURT = { id: 'dc-peg-court', x: c(352) + 7, z: 352, style: `${DC_PROP.peg}:court` };
168
+ /** The carter's two chocks, one at each end of the Spur lane, set east then west (an ordered touch). */
169
+ export const DC_CHOCK_EAST = { id: 'dc-chock-east', x: SPUR_LANE.maxX - 1, z: SPUR_LANE.z + 3, style: `${DC_PROP.chock}:east` };
170
+ export const DC_CHOCK_WEST = { id: 'dc-chock-west', x: SPUR_LANE.minX + 1, z: SPUR_LANE.z + 3, style: `${DC_PROP.chock}:west` };
171
+ /** The scout's three cairns, one outside each of three dens (the Spoil Heaps, the Goat Terraces, the Old Kennels). */
172
+ export const DC_CAIRN_SPOIL = { id: 'dc-cairn-spoil', x: 1887, z: 754, style: `${DC_PROP.cairn}:spoil` };
173
+ export const DC_CAIRN_TERRACE = { id: 'dc-cairn-terrace', x: 1888, z: 420, style: `${DC_PROP.cairn}:terrace` };
174
+ export const DC_CAIRN_KENNEL = { id: 'dc-cairn-kennel', x: 1888, z: 349, style: `${DC_PROP.cairn}:kennel` };
175
+ export const DWARF_CAMP_QUEST_PROPS = [
176
+ DC_PEG_QUARRY, DC_PEG_CHUTE, DC_PEG_CLIFF, DC_PEG_COURT, DC_CHOCK_EAST, DC_CHOCK_WEST, DC_CAIRN_SPOIL, DC_CAIRN_TERRACE, DC_CAIRN_KENNEL,
177
+ ];
178
+ export const DWARF_CAMP_QUEST_PROP_NAMES = {
179
+ [DC_PEG_QUARRY.style]: 'Surveyor Peg (Quarry Road)',
180
+ [DC_PEG_CHUTE.style]: 'Surveyor Peg (Avalanche Chute)',
181
+ [DC_PEG_CLIFF.style]: 'Surveyor Peg (Cliffside Pass)',
182
+ [DC_PEG_COURT.style]: "Surveyor Peg (Gate Court Approach)",
183
+ [DC_CHOCK_EAST.style]: 'Cart Chock (East End)',
184
+ [DC_CHOCK_WEST.style]: 'Cart Chock (West End)',
185
+ [DC_CAIRN_SPOIL.style]: "Scout's Cairn (Spoil Heaps)",
186
+ [DC_CAIRN_TERRACE.style]: "Scout's Cairn (Goat Terraces)",
187
+ [DC_CAIRN_KENNEL.style]: "Scout's Cairn (Old Kennels)",
188
+ };
189
+ /** The model a Pass-Road Camp quest prop draws with (frontend quest-prop models that already exist), or null if not one of them. */
190
+ export function dwarfCampPropModel(prop) {
191
+ if (prop === DC_PROP.peg)
192
+ return 'questsalvage';
193
+ if (prop === DC_PROP.chock)
194
+ return 'questbrokenfence';
195
+ if (prop === DC_PROP.cairn)
196
+ return 'questclue';
197
+ return null;
198
+ }
199
+ /** Standable tiles for teleports, smokes and the helper. */
200
+ export const DWARF_CAMP_STANDS = {
201
+ camp: { x: 1861, z: 485 },
202
+ smithy: { x: 1856, z: 487 },
203
+ board: { x: 1860, z: 490 },
204
+ seams: { x: 1853, z: 483 },
205
+ spurNorth: { x: c(772), z: 772 },
206
+ spurSouth: { x: c(787), z: 787 },
207
+ };
208
+ /** What the guide, the verify links and the quest helper say about the place. */
209
+ export const DWARF_CAMP_PLACE_TEXT = "The Pass-Road Camp lies on the Dwarf Road's west side, north of the Avalanche Chute and so past the Cart Run: a smithy with a furnace, an anvil and a workbench, a cookhouse with a hot pot, a fire, a Bounty Board and five seams of coal, iron, gold and silver in the rock behind it. Five people work it.";
210
+ //# sourceMappingURL=dwarfRoadCamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dwarfRoadCamp.js","sourceRoot":"","sources":["../src/dwarfRoadCamp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The Pass-Road Camp's five quests (T102, 2026-10-14; dwarfRoadCamp.ts, dwarfRoadDens.ts), levels 30-38, on mechanics the game already has:
3
+ *
4
+ * Marks on the Pass-Road (Surveyor Ilse Marren, Combat 30): touch four pegs from the quarry road to the Gate Court's approach (the Cart Run lies
5
+ * between), drive off three cliff hawks, report.
6
+ * Chocks for the Spur (Carter Jory Ashby, Combat 31): clear four iron beetles off the cart wheels, then set the lane's two chocks east then west (an
7
+ * ORDERED touch: the wrong end first and the cart pulls the chock out and the order starts over), report. The lane is the Spur Crossing.
8
+ * Gold for the Gantry (Smith Brannoch Veld, Mining 30): deliver ore cut from the camp's own seams (gold, silver and coal).
9
+ * Eyes on the Dens (Scout Hesper Quill, Combat 34): touch three cairns outside three dens, thin the hounds and serpents inside the dens, report.
10
+ * The Rail-Eater (Sentry Dane Orrin, Combat 36, after Eyes on the Dens): put down the Rail-Eater, a boss that tells its Rail Rend a full turn ahead.
11
+ *
12
+ * Kept in their own file and entered in storyQuests.ts STORY_QUESTS. Types only from storyQuests.ts (no runtime import, so there is no cycle).
13
+ * Rewards are placeholders for the balance pass (James, 2026-10-12: balance last).
14
+ */
15
+ import type { StoryQuestDef, StoryNpcRef } from './storyQuests.js';
16
+ export declare const DC_SURVEYOR: StoryNpcRef;
17
+ export declare const DC_CARTER: StoryNpcRef;
18
+ export declare const DC_SMITH: StoryNpcRef;
19
+ export declare const DC_SCOUT: StoryNpcRef;
20
+ export declare const DC_SENTRY: StoryNpcRef;
21
+ export declare const MARKS_COMBAT_LEVEL = 30;
22
+ export declare const CHOCKS_COMBAT_LEVEL = 31;
23
+ export declare const GANTRY_MINING_LEVEL = 30;
24
+ export declare const DENS_COMBAT_LEVEL = 34;
25
+ export declare const RAIL_EATER_COMBAT_LEVEL = 36;
26
+ export declare const GANTRY_GOLD = 3;
27
+ export declare const GANTRY_SILVER = 2;
28
+ export declare const GANTRY_COAL = 4;
29
+ export declare const PASS_ROAD_MARKS_QUEST: StoryQuestDef;
30
+ export declare const CHOCKS_FOR_THE_SPUR_QUEST: StoryQuestDef;
31
+ export declare const GOLD_FOR_THE_GANTRY_QUEST: StoryQuestDef;
32
+ export declare const EYES_ON_THE_DENS_QUEST: StoryQuestDef;
33
+ export declare const THE_RAIL_EATER_QUEST: StoryQuestDef;
34
+ //# sourceMappingURL=dwarfRoadCampQuestDef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dwarfRoadCampQuestDef.d.ts","sourceRoot":"","sources":["../src/dwarfRoadCampQuestDef.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQnE,eAAO,MAAM,WAAW,aAAsC,CAAC;AAC/D,eAAO,MAAM,SAAS,aAAoC,CAAC;AAC3D,eAAO,MAAM,QAAQ,aAAmC,CAAC;AACzD,eAAO,MAAM,QAAQ,aAAmC,CAAC;AACzD,eAAO,MAAM,SAAS,aAAoC,CAAC;AAE3D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,WAAW,IAAI,CAAC;AAI7B,eAAO,MAAM,qBAAqB,EAAE,aAgDnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAgDvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAwCvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,aAuDpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAqClC,CAAC"}