@dreadwood-types/types 0.1.268 → 0.1.269

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.
@@ -0,0 +1,217 @@
1
+ /**
2
+ * CALVERTON EXTENSION (T71, 2026-10-14; plan `.cursor/task-plans/2026-10-14-t71-calverton-extension.md`). Calverton is the hub town of levels
3
+ * 10-30 in the south and was thin: a bank, a potion shop, a clothes shop, a bounty board and four empty shell buildings. Three new districts
4
+ * are laid OUTSIDE its walls (nothing existing moves) and the empty shells inside get people and stations:
5
+ *
6
+ * - The Wardens' Yard (x 714-746, z 636-660, north of the Dreadwoods gate road): barracks, muster hall, training dummies, archery butts,
7
+ * the Wardens' board (a second bounty board), the Quartermaster's counter. Captain Rhea Ironwell, Quartermaster Bart Hollis, Drillmaster
8
+ * Colm Verrick.
9
+ * - Smiths' Row (x 714-738, z 674-692, south of the gate road): the open forge (2 furnaces, 2 anvils), the joinery (2 workbenches), the
10
+ * cookhouse (2 stoves and a fire). Smith Ansel Moor, Joiner Petra Lyle, Cook Dorcas Marsh.
11
+ * - The Lakeside Market (x 802-850, z 692-707, south of the town wall, east of the gate road): the market hall, six stalls, the caravan
12
+ * yard. Marketmaster Odo Fenn, Fishwife Greta Wick, Net-mender Ned Tabb, Caravan Master Hugh Tarrant.
13
+ * - Inside the walls: Reeve Alis Tilling in the Town Hall and Eadric Wyn at the pub; the kitchen shell gets a stove.
14
+ *
15
+ * Twelve people and two sparring sergeants (named residents on the default look: stand-ins, logged in dreadwoods-backend/upgrades), five counters (existing goods at
16
+ * existing prices: nothing here pays a profit), eight quests (calvertonQuestDef.ts). The pieces are the Hope Town kit's own models.
17
+ *
18
+ * Every number is a WORLD tile (x east, z south). The boxes are claimed in the program file `.cursor/task-plans/2026-10-14-early-game-program.md`.
19
+ */
20
+ import type { DiscoveryZone } from './landmarks.js';
21
+ export type CvBox = {
22
+ readonly minX: number;
23
+ readonly maxX: number;
24
+ readonly minZ: number;
25
+ readonly maxZ: number;
26
+ };
27
+ export type CvFacing = 'n' | 's' | 'e' | 'w';
28
+ export type CvPiece = {
29
+ readonly id: string;
30
+ readonly model: string;
31
+ readonly facing: CvFacing;
32
+ readonly x: number;
33
+ readonly z: number;
34
+ };
35
+ export type CvStation = {
36
+ readonly id: string;
37
+ readonly kind: string;
38
+ readonly style: string;
39
+ readonly x: number;
40
+ readonly z: number;
41
+ };
42
+ export type CvQuestProp = {
43
+ readonly id: string;
44
+ readonly x: number;
45
+ readonly z: number;
46
+ readonly style: string;
47
+ };
48
+ export declare const CALVERTON_YARD_NAME = "Wardens' Yard";
49
+ export declare const CALVERTON_SMITHS_NAME = "Smiths' Row";
50
+ export declare const CALVERTON_MARKET_NAME = "Lakeside Market";
51
+ /** The claimed ground of each district (the whole box is cleared of scatter and eased into the land). */
52
+ export declare const CALVERTON_YARD_BOX: CvBox;
53
+ export declare const CALVERTON_SMITHS_BOX: CvBox;
54
+ export declare const CALVERTON_MARKET_BOX: CvBox;
55
+ export declare const CALVERTON_BOXES: readonly {
56
+ readonly id: string;
57
+ readonly name: string;
58
+ readonly box: CvBox;
59
+ }[];
60
+ /** Each district is levelled flat at the town's own height (3) and eased into the land over this many tiles. */
61
+ export declare const CALVERTON_GROUND_HEIGHT = 3;
62
+ export declare const CALVERTON_EASE = 3;
63
+ /** The discovery zones (types expandedContracts.ts INSERTED_DISCOVERY_ZONES): the three districts, each a place on the paper map. */
64
+ export declare const CALVERTON_DISCOVERY_ZONES: readonly DiscoveryZone[];
65
+ /** The paper-map labels. */
66
+ export declare const CALVERTON_MAP_LABELS: readonly {
67
+ readonly x: number;
68
+ readonly z: number;
69
+ readonly label: string;
70
+ }[];
71
+ export declare function inCvBox(x: number, z: number, b: CvBox, pad?: number): boolean;
72
+ /** Which district a tile is in (with `pad` tiles of margin), or null. */
73
+ export declare function calvertonDistrictAt(x: number, z: number, pad?: number): (typeof CALVERTON_BOXES)[number] | null;
74
+ /** The gate road (Dreadwoods east gate to Calverton's west gate) runs along these rows; the yard and the row open onto it. */
75
+ export declare const CALVERTON_GATE_ROAD: {
76
+ readonly minZ: 664;
77
+ readonly maxZ: 668;
78
+ };
79
+ /** Where each district is entered from the road, and where a player is told to stand. */
80
+ export declare const CALVERTON_STANDS: {
81
+ readonly yardGate: {
82
+ readonly x: 730;
83
+ readonly z: 661;
84
+ };
85
+ readonly smithsLane: {
86
+ readonly x: 726;
87
+ readonly z: 669;
88
+ };
89
+ readonly marketLane: {
90
+ readonly x: 800;
91
+ readonly z: 699;
92
+ };
93
+ };
94
+ /** Worn lanes (width, polyline): the yard's gate lane, the row's lane and cross lane, the market's connection to the gate road. */
95
+ export declare const CALVERTON_PATHS: readonly {
96
+ readonly id: string;
97
+ readonly surface: 'dirt' | 'path' | 'stone';
98
+ readonly w: number;
99
+ readonly pts: readonly (readonly [number, number])[];
100
+ }[];
101
+ /** The kit models are the Hope Town ones (CAPITAL_BUILDING_MODELS); the id prefix `cv-` keeps the cleanup and the tests able to find them. */
102
+ export declare const CALVERTON_PIECES: readonly CvPiece[];
103
+ /**
104
+ * The working stations (real entities: the skills' own kinds). `style` is '' unless the kind wants one. Dummies and butts are `yardprop`
105
+ * styles `dummy` and `butt`; the boards are `bountyboard` style `wall-s`.
106
+ */
107
+ export declare const CALVERTON_STATIONS: readonly CvStation[];
108
+ /** The archery drill's marks: a butt is shot from 6 tiles north of it (types archeryFiringPosition), so the lines and the bow rack sit there. */
109
+ export declare const CALVERTON_BUTT_IDS: readonly string[];
110
+ export declare const CALVERTON_BUTT_ID_PREFIX = "cv-butt-";
111
+ export declare const CALVERTON_BUTT_FIRING_Z = 650;
112
+ export declare const CALVERTON_BUTT_KIT: readonly {
113
+ readonly id: string;
114
+ readonly kind: string;
115
+ readonly style: string;
116
+ readonly x: number;
117
+ readonly z: number;
118
+ }[];
119
+ /** Fence runs round the yard (kit `townfence3x1` modules and `townfencebit1x1` fillers), with the gate gap on the south run. */
120
+ export declare const CALVERTON_YARD_FENCE: readonly {
121
+ readonly id: string;
122
+ readonly axis: 'x' | 'z';
123
+ readonly at: number;
124
+ readonly from: number;
125
+ readonly to: number;
126
+ readonly gap?: readonly [number, number];
127
+ }[];
128
+ /** The signposts: where each district leaves the road. */
129
+ export declare const CALVERTON_SIGNS: readonly {
130
+ readonly id: string;
131
+ readonly x: number;
132
+ readonly z: number;
133
+ readonly style: string;
134
+ }[];
135
+ /** The quest props: the patrol posts (The Night Watch) and the market stalls to set (Market Day Rush). */
136
+ export declare const CV_PROP: {
137
+ readonly post: "cvpost";
138
+ readonly stall: "cvstall";
139
+ };
140
+ export declare const CV_POST_GATE: CvQuestProp;
141
+ export declare const CV_POST_MARKET: CvQuestProp;
142
+ export declare const CV_POST_EAST: CvQuestProp;
143
+ export declare const CV_STALL_BUNTING: CvQuestProp;
144
+ export declare const CV_STALL_SCALES: CvQuestProp;
145
+ export declare const CV_STALL_AWNING: CvQuestProp;
146
+ export declare const CV_STALL_BANNER: CvQuestProp;
147
+ export declare const CV_STALL_CRATES: CvQuestProp;
148
+ export declare const CALVERTON_QUEST_PROPS: readonly CvQuestProp[];
149
+ /** The order Market Day Rush wants the stalls set in. */
150
+ export declare const CV_STALL_ORDER: readonly string[];
151
+ export declare const CALVERTON_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
152
+ /** The model a Calverton quest prop draws with (CAPITAL_BUILDING_MODELS), or null for a prop that is not one of them. */
153
+ export declare function calvertonPropModel(prop: string): string | null;
154
+ export type CalvertonShop = {
155
+ readonly title: string;
156
+ readonly stock: ReadonlyArray<{
157
+ readonly kind: string;
158
+ readonly price: number;
159
+ }>;
160
+ };
161
+ export type CalvertonFolk = {
162
+ readonly id: string;
163
+ readonly name: string;
164
+ /** Where they are, for the guide, the verify links, the resident card and the dialog. */
165
+ readonly place: string;
166
+ readonly x: number;
167
+ readonly z: number;
168
+ readonly faceX: number;
169
+ readonly faceZ: number;
170
+ readonly leash: number;
171
+ readonly speak: string;
172
+ /** Extra menu lines: id, label, what they say. */
173
+ readonly extras?: ReadonlyArray<{
174
+ readonly id: string;
175
+ readonly label: string;
176
+ readonly say: string;
177
+ }>;
178
+ readonly shop?: CalvertonShop;
179
+ /** The line the Trade option opens with. */
180
+ readonly trade?: string;
181
+ };
182
+ export declare const CALVERTON_FOLK_NAMES: {
183
+ readonly reeve: "Reeve Alis Tilling";
184
+ readonly innkeeper: "Eadric Wyn";
185
+ readonly captain: "Captain Rhea Ironwell";
186
+ readonly quartermaster: "Quartermaster Bart Hollis";
187
+ readonly drillmaster: "Drillmaster Colm Verrick";
188
+ readonly smith: "Smith Ansel Moor";
189
+ readonly joiner: "Joiner Petra Lyle";
190
+ readonly cook: "Cook Dorcas Marsh";
191
+ readonly marketmaster: "Marketmaster Odo Fenn";
192
+ readonly fishwife: "Fishwife Greta Wick";
193
+ readonly netmender: "Net-mender Ned Tabb";
194
+ readonly caravan: "Caravan Master Hugh Tarrant";
195
+ };
196
+ export declare const CALVERTON_FOLK: ReadonlyArray<CalvertonFolk>;
197
+ /**
198
+ * The two sparring sergeants of the Wardens' Yard (types sparringYard.ts, home 'calverton'): in the lane between the dummy rows. Not part of
199
+ * CALVERTON_FOLK, so their menu stays the yard's own (Begin a bout, Strike, Guard, Feint, Ask to stop). Same machinery as the Capital's four.
200
+ */
201
+ export declare const CALVERTON_SERGEANT_SPOTS: ReadonlyArray<{
202
+ readonly name: string;
203
+ readonly x: number;
204
+ readonly z: number;
205
+ readonly faceX: number;
206
+ readonly faceZ: number;
207
+ readonly leash: number;
208
+ }>;
209
+ export declare function calvertonFolkByName(name: string | null | undefined): CalvertonFolk | null;
210
+ export declare function calvertonFolkById(id: string | null | undefined): CalvertonFolk | null;
211
+ /** The counters, keyed by the keeper's name (world.ts NAMED_SHOPKEEPERS). */
212
+ export declare const CALVERTON_SHOP_FOLK: ReadonlyArray<CalvertonFolk & {
213
+ readonly shop: CalvertonShop;
214
+ }>;
215
+ /** Where the quest helper and the guide say each district is. */
216
+ export declare const CALVERTON_PLACE_TEXT: Readonly<Record<string, string>>;
217
+ //# sourceMappingURL=calvertonExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calvertonExtension.d.ts","sourceRoot":"","sources":["../src/calvertonExtension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACnH,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzI,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvI,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;AAElH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,yGAAyG;AACzG,eAAO,MAAM,kBAAkB,EAAE,KAAsD,CAAC;AACxF,eAAO,MAAM,oBAAoB,EAAE,KAAsD,CAAC;AAC1F,eAAO,MAAM,oBAAoB,EAAE,KAAsD,CAAC;AAC1F,eAAO,MAAM,eAAe,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAA;CAAE,EAIzG,CAAC;AAEF,gHAAgH;AAChH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,qIAAqI;AACrI,eAAO,MAAM,yBAAyB,EAAE,SAAS,aAAa,EAK3D,CAAC;AAEJ,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,EAAE,SAAS;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAI7G,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAI,GAAG,OAAO,CAExE;AACD,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAE1G;AAED,8HAA8H;AAC9H,eAAO,MAAM,mBAAmB;;;CAAoC,CAAC;AAErE,yFAAyF;AACzF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAInB,CAAC;AAEX,mIAAmI;AACnI,eAAO,MAAM,eAAe,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,EAUpL,CAAC;AAEF,8IAA8I;AAC9I,eAAO,MAAM,gBAAgB,EAAE,SAAS,OAAO,EA+C9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,SAAS,EAqBlD,CAAC;AAEF,iJAAiJ;AACjJ,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAA4C,CAAC;AAC7F,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,kBAAkB,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAQvJ,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,oBAAoB,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAKvM,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,eAAe,EAAE,SAAS;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,EAI7H,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,OAAO;;;CAAgD,CAAC;AACrE,eAAO,MAAM,YAAY,EAAE,WAAyF,CAAC;AACrH,eAAO,MAAM,cAAc,EAAE,WAA6F,CAAC;AAC3H,eAAO,MAAM,YAAY,EAAE,WAAyF,CAAC;AACrH,eAAO,MAAM,gBAAgB,EAAE,WAAiG,CAAC;AACjI,eAAO,MAAM,eAAe,EAAE,WAA+F,CAAC;AAC9H,eAAO,MAAM,eAAe,EAAE,WAA+F,CAAC;AAC9H,eAAO,MAAM,eAAe,EAAE,WAA+F,CAAC;AAC9H,eAAO,MAAM,eAAe,EAAE,WAA+F,CAAC;AAC9H,eAAO,MAAM,qBAAqB,EAAE,SAAS,WAAW,EAEvD,CAAC;AACF,yDAAyD;AACzD,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAyH,CAAC;AAEtK,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASvE,CAAC;AAEF,yHAAyH;AACzH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9D;AAID,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClF,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,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;IACvG,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAOX,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,aAAa,CAsGvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAG7L,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAEzF;AACD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAErF;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAE/F,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIjE,CAAC"}
@@ -0,0 +1,334 @@
1
+ import { INN_BREAD_PRICE } from './tavern.js';
2
+ export const CALVERTON_YARD_NAME = "Wardens' Yard";
3
+ export const CALVERTON_SMITHS_NAME = "Smiths' Row";
4
+ export const CALVERTON_MARKET_NAME = 'Lakeside Market';
5
+ /** The claimed ground of each district (the whole box is cleared of scatter and eased into the land). */
6
+ export const CALVERTON_YARD_BOX = { minX: 714, maxX: 746, minZ: 636, maxZ: 660 };
7
+ export const CALVERTON_SMITHS_BOX = { minX: 714, maxX: 738, minZ: 674, maxZ: 692 };
8
+ export const CALVERTON_MARKET_BOX = { minX: 802, maxX: 850, minZ: 692, maxZ: 707 };
9
+ export const CALVERTON_BOXES = [
10
+ { id: 'wardens-yard', name: CALVERTON_YARD_NAME, box: CALVERTON_YARD_BOX },
11
+ { id: 'smiths-row', name: CALVERTON_SMITHS_NAME, box: CALVERTON_SMITHS_BOX },
12
+ { id: 'lakeside-market', name: CALVERTON_MARKET_NAME, box: CALVERTON_MARKET_BOX },
13
+ ];
14
+ /** Each district is levelled flat at the town's own height (3) and eased into the land over this many tiles. */
15
+ export const CALVERTON_GROUND_HEIGHT = 3;
16
+ export const CALVERTON_EASE = 3;
17
+ /** The discovery zones (types expandedContracts.ts INSERTED_DISCOVERY_ZONES): the three districts, each a place on the paper map. */
18
+ export const CALVERTON_DISCOVERY_ZONES = CALVERTON_BOXES.map((b) => ({
19
+ id: b.id,
20
+ label: b.name,
21
+ coordinateFrame: 'world',
22
+ ...b.box,
23
+ }));
24
+ /** The paper-map labels. */
25
+ export const CALVERTON_MAP_LABELS = [
26
+ { x: 730, z: 648, label: CALVERTON_YARD_NAME },
27
+ { x: 726, z: 683, label: CALVERTON_SMITHS_NAME },
28
+ { x: 826, z: 700, label: CALVERTON_MARKET_NAME },
29
+ ];
30
+ export function inCvBox(x, z, b, pad = 0) {
31
+ return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
32
+ }
33
+ /** Which district a tile is in (with `pad` tiles of margin), or null. */
34
+ export function calvertonDistrictAt(x, z, pad = 0) {
35
+ return CALVERTON_BOXES.find((b) => inCvBox(x, z, b.box, pad)) ?? null;
36
+ }
37
+ /** The gate road (Dreadwoods east gate to Calverton's west gate) runs along these rows; the yard and the row open onto it. */
38
+ export const CALVERTON_GATE_ROAD = { minZ: 664, maxZ: 668 };
39
+ /** Where each district is entered from the road, and where a player is told to stand. */
40
+ export const CALVERTON_STANDS = {
41
+ yardGate: { x: 730, z: 661 },
42
+ smithsLane: { x: 726, z: 669 },
43
+ marketLane: { x: 800, z: 699 },
44
+ };
45
+ /** Worn lanes (width, polyline): the yard's gate lane, the row's lane and cross lane, the market's connection to the gate road. */
46
+ export const CALVERTON_PATHS = [
47
+ { id: 'yard-lane', surface: 'dirt', w: 3, pts: [[730, 663], [730, 656], [730, 646]] },
48
+ { id: 'yard-plaza', surface: 'dirt', w: 3, pts: [[720, 646], [738, 646]] },
49
+ { id: 'yard-ground', surface: 'dirt', w: 9, pts: [[722, 652], [723, 652]] },
50
+ { id: 'yard-range', surface: 'dirt', w: 9, pts: [[739, 653], [740, 653]] },
51
+ { id: 'row-lane', surface: 'dirt', w: 3, pts: [[726, 669], [726, 686]] },
52
+ { id: 'row-cross', surface: 'dirt', w: 3, pts: [[716, 685], [734, 685]] },
53
+ { id: 'row-forge', surface: 'stone', w: 11, pts: [[720, 680], [721, 680]] },
54
+ { id: 'market-lane', surface: 'path', w: 3, pts: [[799, 699], [812, 699]] },
55
+ { id: 'market-floor', surface: 'path', w: 11, pts: [[810, 700], [842, 700]] },
56
+ ];
57
+ /** The kit models are the Hope Town ones (CAPITAL_BUILDING_MODELS); the id prefix `cv-` keeps the cleanup and the tests able to find them. */
58
+ export const CALVERTON_PIECES = [
59
+ // The Wardens' Yard.
60
+ { id: 'cv-yard-barracks', model: 'towntrainingstore5x3', facing: 's', x: 718, z: 640 },
61
+ { id: 'cv-yard-hall', model: 'townmarkethall7x5', facing: 's', x: 738, z: 641 },
62
+ { id: 'cv-yard-stall', model: 'towntradersstall3x3', facing: 's', x: 726, z: 641 },
63
+ { id: 'cv-yard-banner-w', model: 'townbannerpost1x1', facing: 's', x: 727, z: 659 },
64
+ { id: 'cv-yard-banner-e', model: 'townbannerpost1x1', facing: 's', x: 733, z: 659 },
65
+ { id: 'cv-yard-lantern-1', model: 'townlantern1x1', facing: 's', x: 728, z: 655 },
66
+ { id: 'cv-yard-lantern-2', model: 'townlantern1x1', facing: 's', x: 732, z: 655 },
67
+ { id: 'cv-yard-lantern-3', model: 'townlantern1x1', facing: 's', x: 728, z: 647 },
68
+ { id: 'cv-yard-bench', model: 'townrestbench3x1', facing: 's', x: 734, z: 649 },
69
+ // Smiths' Row.
70
+ { id: 'cv-row-smithy', model: 'bcsmithy', facing: 's', x: 721, z: 678 },
71
+ { id: 'cv-row-quench', model: 'hbtrough', facing: 's', x: 720, z: 684 },
72
+ { id: 'cv-row-workshop', model: 'townworkshop5x3', facing: 'w', x: 734, z: 679 },
73
+ { id: 'cv-row-cookhouse', model: 'towncookhouse5x3', facing: 's', x: 722, z: 691 },
74
+ { id: 'cv-row-racks', model: 'toolrack', facing: 's', x: 736, z: 683 },
75
+ { id: 'cv-row-logs', model: 'birchlogpile', facing: 's', x: 736, z: 689 },
76
+ { id: 'cv-row-lantern-1', model: 'townlantern1x1', facing: 's', x: 724, z: 675 },
77
+ { id: 'cv-row-lantern-2', model: 'townlantern1x1', facing: 's', x: 728, z: 675 },
78
+ { id: 'cv-row-lantern-3', model: 'townlantern1x1', facing: 's', x: 728, z: 686 },
79
+ // The Lakeside Market.
80
+ { id: 'cv-market-hall', model: 'townmarkethall7x5', facing: 's', x: 826, z: 697 },
81
+ { id: 'cv-market-stall-1', model: 'towntradersstall3x3', facing: 's', x: 811, z: 697 },
82
+ { id: 'cv-market-stall-2', model: 'towntradersstall3x3', facing: 's', x: 817, z: 697 },
83
+ { id: 'cv-market-stall-3', model: 'towntradersstall3x3', facing: 's', x: 835, z: 697 },
84
+ { id: 'cv-market-stall-4', model: 'towntradersstall3x3', facing: 's', x: 841, z: 697 },
85
+ { id: 'cv-market-fishstall', model: 'towntradersstall3x3', facing: 's', x: 846, z: 703 },
86
+ { id: 'cv-market-fair-red', model: 'fairstallred', facing: 's', x: 810, z: 705 },
87
+ { id: 'cv-market-fair-blue', model: 'fairstallblue', facing: 's', x: 816, z: 705 },
88
+ { id: 'cv-market-fair-green', model: 'fairstallgreen', facing: 's', x: 836, z: 705 },
89
+ { id: 'cv-market-well', model: 'townwell1x1', facing: 's', x: 826, z: 703 },
90
+ { id: 'cv-market-planter-1', model: 'townplanter1x1', facing: 's', x: 822, z: 694 },
91
+ { id: 'cv-market-planter-2', model: 'townplanter1x1', facing: 's', x: 830, z: 694 },
92
+ { id: 'cv-market-wagon-1', model: 'merchantwagon', facing: 's', x: 840, z: 706 },
93
+ { id: 'cv-market-wagon-2', model: 'merchantwagon', facing: 's', x: 844, z: 707 },
94
+ { id: 'cv-market-crates', model: 'hbcrates', facing: 's', x: 838, z: 704 },
95
+ { id: 'cv-market-netrack', model: 'hbnetrack', facing: 's', x: 806, z: 706 },
96
+ { id: 'cv-market-cages', model: 'evcrabcages', facing: 's', x: 808, z: 703 },
97
+ { id: 'cv-market-bench-1', model: 'townrestbench3x1', facing: 's', x: 820, z: 701 },
98
+ { id: 'cv-market-bench-2', model: 'townrestbench3x1', facing: 's', x: 832, z: 701 },
99
+ { id: 'cv-market-lantern-1', model: 'townlantern1x1', facing: 's', x: 805, z: 695 },
100
+ { id: 'cv-market-lantern-2', model: 'townlantern1x1', facing: 's', x: 820, z: 695 },
101
+ { id: 'cv-market-lantern-3', model: 'townlantern1x1', facing: 's', x: 832, z: 695 },
102
+ { id: 'cv-market-lantern-4', model: 'townlantern1x1', facing: 's', x: 847, z: 695 },
103
+ { id: 'cv-market-lantern-5', model: 'townlantern1x1', facing: 's', x: 805, z: 701 },
104
+ { id: 'cv-market-lantern-6', model: 'townlantern1x1', facing: 's', x: 849, z: 700 },
105
+ ];
106
+ /**
107
+ * The working stations (real entities: the skills' own kinds). `style` is '' unless the kind wants one. Dummies and butts are `yardprop`
108
+ * styles `dummy` and `butt`; the boards are `bountyboard` style `wall-s`.
109
+ */
110
+ export const CALVERTON_STATIONS = [
111
+ // Wardens' Yard: training.
112
+ ...[[718, 650], [722, 650], [726, 650], [718, 654], [722, 654], [726, 654]].map(([x, z], i) => ({ id: `cv-dummy-${i + 1}`, kind: 'yardprop', style: 'dummy', x: x, z: z })),
113
+ { id: 'cv-butt-1', kind: 'yardprop', style: 'butt', x: 735, z: 656 },
114
+ { id: 'cv-butt-2', kind: 'yardprop', style: 'butt', x: 739, z: 656 },
115
+ { id: 'cv-butt-3', kind: 'yardprop', style: 'butt', x: 743, z: 656 },
116
+ { id: 'cv-yard-board', kind: 'bountyboard', style: 'wall-s', x: 733, z: 644 },
117
+ { id: 'cv-yard-fire', kind: 'campfire', style: '', x: 733, z: 647 },
118
+ // Smiths' Row.
119
+ { id: 'cv-furnace-1', kind: 'furnace', style: '', x: 717, z: 682 },
120
+ { id: 'cv-furnace-2', kind: 'furnace', style: '', x: 724, z: 682 },
121
+ { id: 'cv-anvil-1', kind: 'anvil', style: '', x: 717, z: 684 },
122
+ { id: 'cv-anvil-2', kind: 'anvil', style: '', x: 724, z: 684 },
123
+ { id: 'cv-bench-1', kind: 'workbench', style: 'face0', x: 730, z: 683 },
124
+ { id: 'cv-bench-2', kind: 'workbench', style: 'face0', x: 730, z: 687 },
125
+ { id: 'cv-stove-1', kind: 'stove', style: '', x: 721, z: 688 },
126
+ { id: 'cv-stove-2', kind: 'stove', style: '', x: 723, z: 688 },
127
+ { id: 'cv-row-fire', kind: 'campfire', style: '', x: 727, z: 690 },
128
+ { id: 'cv-mound', kind: 'charcoalmound', style: '', x: 736, z: 686 },
129
+ // Inside the walls: the empty kitchen shell gets its range.
130
+ { id: 'cv-kitchen-stove', kind: 'stove', style: '', x: 816, z: 676 },
131
+ ];
132
+ /** The archery drill's marks: a butt is shot from 6 tiles north of it (types archeryFiringPosition), so the lines and the bow rack sit there. */
133
+ export const CALVERTON_BUTT_IDS = ['cv-butt-1', 'cv-butt-2', 'cv-butt-3'];
134
+ export const CALVERTON_BUTT_ID_PREFIX = 'cv-butt-';
135
+ export const CALVERTON_BUTT_FIRING_Z = 650;
136
+ export const CALVERTON_BUTT_KIT = [
137
+ ...[735, 739, 743].flatMap((x, i) => [
138
+ { id: `cv-butt-backstop-${i + 1}`, kind: 'yardprop', style: 'trainingbackstop', x, z: 657 },
139
+ { id: `cv-butt-line-${i + 1}`, kind: 'flowers', style: 'trainingline', x, z: 650 },
140
+ ]),
141
+ { id: 'cv-butt-bows', kind: 'yardprop', style: 'chainedbows', x: 745, z: 650 },
142
+ { id: 'cv-yard-rack', kind: 'yardprop', style: 'trainingrack', x: 716, z: 648 },
143
+ { id: 'cv-yard-water', kind: 'yardprop', style: 'trainingwater', x: 716, z: 650 },
144
+ ];
145
+ /** Fence runs round the yard (kit `townfence3x1` modules and `townfencebit1x1` fillers), with the gate gap on the south run. */
146
+ export const CALVERTON_YARD_FENCE = [
147
+ { id: 'cv-yard-fence-n', axis: 'x', at: 636, from: 714, to: 746 },
148
+ { id: 'cv-yard-fence-s', axis: 'x', at: 660, from: 714, to: 746, gap: [728, 732] },
149
+ { id: 'cv-yard-fence-w', axis: 'z', at: 714, from: 637, to: 659 },
150
+ { id: 'cv-yard-fence-e', axis: 'z', at: 746, from: 637, to: 659 },
151
+ ];
152
+ /** The signposts: where each district leaves the road. */
153
+ export const CALVERTON_SIGNS = [
154
+ { id: 'cv-sign-yard', x: 733, z: 662, style: "fingerpost-Wardens' Yard|Calverton|Dreadwoods East Gate" },
155
+ { id: 'cv-sign-row', x: 728, z: 670, style: "fingerpost-Smiths' Row|Calverton|Dreadwoods East Gate" },
156
+ { id: 'cv-sign-market', x: 801, z: 697, style: 'fingerpost-Lakeside Market|Calverton Bridge|Calverton' },
157
+ ];
158
+ /** The quest props: the patrol posts (The Night Watch) and the market stalls to set (Market Day Rush). */
159
+ export const CV_PROP = { post: 'cvpost', stall: 'cvstall' };
160
+ export const CV_POST_GATE = { id: 'cv-quest-post-gate', x: 718, z: 662, style: `${CV_PROP.post}:gate` };
161
+ export const CV_POST_MARKET = { id: 'cv-quest-post-market', x: 801, z: 695, style: `${CV_PROP.post}:market` };
162
+ export const CV_POST_EAST = { id: 'cv-quest-post-east', x: 853, z: 670, style: `${CV_PROP.post}:east` };
163
+ export const CV_STALL_BUNTING = { id: 'cv-quest-stall-bunting', x: 810, z: 702, style: `${CV_PROP.stall}:bunting` };
164
+ export const CV_STALL_SCALES = { id: 'cv-quest-stall-scales', x: 818, z: 702, style: `${CV_PROP.stall}:scales` };
165
+ export const CV_STALL_AWNING = { id: 'cv-quest-stall-awning', x: 828, z: 701, style: `${CV_PROP.stall}:awning` };
166
+ export const CV_STALL_BANNER = { id: 'cv-quest-stall-banner', x: 836, z: 701, style: `${CV_PROP.stall}:banner` };
167
+ export const CV_STALL_CRATES = { id: 'cv-quest-stall-crates', x: 843, z: 700, style: `${CV_PROP.stall}:crates` };
168
+ export const CALVERTON_QUEST_PROPS = [
169
+ CV_POST_GATE, CV_POST_MARKET, CV_POST_EAST, CV_STALL_BUNTING, CV_STALL_SCALES, CV_STALL_AWNING, CV_STALL_BANNER, CV_STALL_CRATES,
170
+ ];
171
+ /** The order Market Day Rush wants the stalls set in. */
172
+ export const CV_STALL_ORDER = [CV_STALL_BUNTING.style, CV_STALL_SCALES.style, CV_STALL_AWNING.style, CV_STALL_BANNER.style, CV_STALL_CRATES.style];
173
+ export const CALVERTON_QUEST_PROP_NAMES = {
174
+ [CV_POST_GATE.style]: 'Patrol Post (Dreadwoods Gate)',
175
+ [CV_POST_MARKET.style]: 'Patrol Post (Lakeside)',
176
+ [CV_POST_EAST.style]: 'Patrol Post (East Road)',
177
+ [CV_STALL_BUNTING.style]: 'Stall Bunting',
178
+ [CV_STALL_SCALES.style]: 'Stall Scales',
179
+ [CV_STALL_AWNING.style]: 'Stall Awning',
180
+ [CV_STALL_BANNER.style]: 'Market Banner',
181
+ [CV_STALL_CRATES.style]: 'Stall Crates',
182
+ };
183
+ /** The model a Calverton quest prop draws with (CAPITAL_BUILDING_MODELS), or null for a prop that is not one of them. */
184
+ export function calvertonPropModel(prop) {
185
+ if (prop === CV_PROP.post)
186
+ return 'townwaypost1x1';
187
+ if (prop === CV_PROP.stall)
188
+ return 'townmarketgoods3x1';
189
+ return null;
190
+ }
191
+ export const CALVERTON_FOLK_NAMES = {
192
+ reeve: 'Reeve Alis Tilling',
193
+ innkeeper: 'Eadric Wyn',
194
+ captain: 'Captain Rhea Ironwell',
195
+ quartermaster: 'Quartermaster Bart Hollis',
196
+ drillmaster: 'Drillmaster Colm Verrick',
197
+ smith: 'Smith Ansel Moor',
198
+ joiner: 'Joiner Petra Lyle',
199
+ cook: 'Cook Dorcas Marsh',
200
+ marketmaster: 'Marketmaster Odo Fenn',
201
+ fishwife: 'Fishwife Greta Wick',
202
+ netmender: 'Net-mender Ned Tabb',
203
+ caravan: 'Caravan Master Hugh Tarrant',
204
+ };
205
+ const BREAD = { kind: 'bread', price: INN_BREAD_PRICE };
206
+ const RABBIT = { kind: 'cookedrabbit', price: 30 };
207
+ const TROUT = { kind: 'cookedtrout', price: 40 };
208
+ const CHAR = { kind: 'cookedchar', price: 46 };
209
+ export const CALVERTON_FOLK = [
210
+ {
211
+ id: 'cv-reeve',
212
+ name: CALVERTON_FOLK_NAMES.reeve,
213
+ place: 'the Town Hall, Calverton',
214
+ x: 790, z: 656, faceX: 792, faceZ: 653, leash: 1,
215
+ speak: "Alis Tilling, reeve of Calverton. The hall has stood empty of business for too long, and the town has outgrown its own front door. There are new yards out past the walls, and I want every newcomer to know where to find them.",
216
+ extras: [{ id: 'districts', label: 'The new yards', say: "The Wardens' Yard is out the west gate, north of the Dreadwoods road: drill, dummies and butts. Smiths' Row is south of the road, forge and joinery and cookhouse. The Lakeside Market is south of the wall, past the bridge road. Go and be seen." }],
217
+ },
218
+ {
219
+ id: 'cv-innkeeper',
220
+ name: CALVERTON_FOLK_NAMES.innkeeper,
221
+ place: 'the pub, Calverton',
222
+ x: 776, z: 677, faceX: 774, faceZ: 677, leash: 1,
223
+ speak: "Eadric Wyn. I pull the beer and I hear the rumours, and the rumours this month are all about the caravans. Nobody trusts the east road since the redcaps got bold, and nobody trusts the west one since forever.",
224
+ extras: [{ id: 'rumours', label: 'Rumours', say: "The Marketmaster is short of hands before every market day, and the Caravan Master pays well for anyone who can stand up straight and carry a manifest to the Marches and back. The Captain wants eyes on the roads, too." }],
225
+ },
226
+ {
227
+ id: 'cv-captain',
228
+ name: CALVERTON_FOLK_NAMES.captain,
229
+ place: "the Wardens' Yard, Calverton",
230
+ x: 738, z: 646, faceX: 738, faceZ: 650, leash: 1,
231
+ speak: "Captain Rhea Ironwell, Calverton Wardens. The Dreadwoods gate, the east road and the lakeside are mine to watch, and I have six wardens for three roads. If you can hold a blade and walk in a straight line, I can use you.",
232
+ extras: [{ id: 'yard', label: 'The yard', say: "Dummies for the strength, butts for the bow. Colm Verrick runs the drill. The board by the fire has contracts: read it, take one, hand it in at the town. Real fights are beyond the walls." }],
233
+ },
234
+ {
235
+ id: 'cv-quartermaster',
236
+ name: CALVERTON_FOLK_NAMES.quartermaster,
237
+ place: "the Wardens' Yard, Calverton",
238
+ x: 726, z: 644, faceX: 726, faceZ: 642, leash: 1,
239
+ speak: "Bart Hollis, quartermaster. Bread, arrows and torches for the wardens, and for anyone the Captain says may buy them. I keep the stores and I keep them honest.",
240
+ trade: "Hollis's Stores. Bread, birch arrows, a torch for the dark and cooked rabbit for the road. Nothing fancy, and the prices are the same as anyone's.",
241
+ shop: { title: "Hollis's Wardens' Stores", stock: [BREAD, { kind: 'bircharrow', price: 20 }, { kind: 'unlitbirchtorch', price: 12 }, RABBIT] },
242
+ },
243
+ {
244
+ id: 'cv-drillmaster',
245
+ name: CALVERTON_FOLK_NAMES.drillmaster,
246
+ place: "the Wardens' Yard, Calverton",
247
+ x: 722, z: 647, faceX: 722, faceZ: 650, leash: 2,
248
+ speak: "Colm Verrick, drillmaster. Hit the dummies until your arm stops aching, then hit them again. The butts are on the far side of the lane: the chained bows are lent to anyone without one. Come back when you can do both without thinking.",
249
+ extras: [{ id: 'drill', label: 'How the drill goes', say: "Dummies teach Strength and Weapon Mastery up to level ten, and the butts teach Archery to ten. After that the Capital's sergeants take over: Hale, Mott, Brack and Vane. They will spar a recruit properly." }],
250
+ },
251
+ {
252
+ id: 'cv-smith',
253
+ name: CALVERTON_FOLK_NAMES.smith,
254
+ place: "Smiths' Row, Calverton",
255
+ x: 720, z: 686, faceX: 720, faceZ: 684, leash: 1,
256
+ speak: "Ansel Moor, smith. Furnaces are lit and the anvils are free, so long as you leave the place as clean as you found it. Bars from ore at the furnace, blades and plates at the anvil. I charge nothing for the fire.",
257
+ extras: [{ id: 'forge', label: 'The forge', say: "Two furnaces and two anvils, all yours. Iron needs Blacksmithing fifteen to smelt, and gold a good deal more. If you have bars and no skill, I have a job that will teach you." }],
258
+ trade: "Moor's Forge Stores. A copper pickaxe for the seams, a folding saw for the timber and a bucket for the quench.",
259
+ shop: { title: "Moor's Forge Stores", stock: [{ kind: 'copperpickaxe', price: 60 }, { kind: 'foldingsaw', price: 30 }, { kind: 'bucket', price: 10 }] },
260
+ },
261
+ {
262
+ id: 'cv-joiner',
263
+ name: CALVERTON_FOLK_NAMES.joiner,
264
+ place: "Smiths' Row, Calverton",
265
+ x: 733, z: 684, faceX: 731, faceZ: 683, leash: 1,
266
+ speak: "Petra Lyle, joiner. Two benches in my shop and a stack of boards for whoever will plane them. The town hall roof wants timber, and I have no hands to spare for the hauling.",
267
+ trade: "Lyle's Joinery Stores. A carving knife for the fine work and a folding saw for the rough, both at the going price.",
268
+ shop: { title: "Lyle's Joinery Stores", stock: [{ kind: 'carvingknife', price: 50 }, { kind: 'foldingsaw', price: 30 }] },
269
+ },
270
+ {
271
+ id: 'cv-cook',
272
+ name: CALVERTON_FOLK_NAMES.cook,
273
+ place: "Smiths' Row, Calverton",
274
+ x: 722, z: 687, faceX: 722, faceZ: 689, leash: 1,
275
+ speak: "Dorcas Marsh. I feed the row and the yard, and the yard eats like it is paid by the plate. The stoves are free, and the fire outside is for anyone with a bit of fish and no patience.",
276
+ trade: "Marsh's Cookhouse. Bread, rabbit off the spit, trout and a char if you want a proper supper.",
277
+ shop: { title: "Marsh's Cookhouse", stock: [BREAD, RABBIT, TROUT, CHAR] },
278
+ },
279
+ {
280
+ id: 'cv-marketmaster',
281
+ name: CALVERTON_FOLK_NAMES.marketmaster,
282
+ place: 'the Lakeside Market, Calverton',
283
+ x: 826, z: 701, faceX: 826, faceZ: 699, leash: 1,
284
+ speak: "Odo Fenn, marketmaster. Every stall in this market answers to me, and every one of them is late. Market day starts at the bell and not a minute after: bunting, scales, awning, banner and crates, in that order, or the whole thing falls over.",
285
+ extras: [{ id: 'fair', label: 'The fair', say: "Past the east gate, Bramble Fair Green wants a different good every hour, and Maud and Perrin pay over the odds for it. This market is for steadier trade: the lake and the road and the town." }],
286
+ },
287
+ {
288
+ id: 'cv-fishwife',
289
+ name: CALVERTON_FOLK_NAMES.fishwife,
290
+ place: 'the Lakeside Market, Calverton',
291
+ x: 846, z: 701, faceX: 846, faceZ: 703, leash: 1,
292
+ speak: "Greta Wick. Fish off the lake and fish off the fishery, and a good deal of both gone before noon. I sell what I cook and I do not haggle, so do not ask.",
293
+ trade: "Wick's Fish Stall. A hot trout, a line and a hook, and a small rod if you have never held one.",
294
+ shop: { title: "Wick's Fish Stall", stock: [TROUT, { kind: 'smallfishingrod', price: 200 }, { kind: 'fishinghook', price: 10 }, { kind: 'fishingfloat', price: 8 }] },
295
+ },
296
+ {
297
+ id: 'cv-netmender',
298
+ name: CALVERTON_FOLK_NAMES.netmender,
299
+ place: 'the Lakeside Market, Calverton',
300
+ x: 808, z: 701, faceX: 808, faceZ: 704, leash: 1,
301
+ speak: "Ned Tabb. I mend nets and I tell lies about the pike that took the last one. The lake is deep off the old pier, and the fishery fish are tame by comparison.",
302
+ },
303
+ {
304
+ id: 'cv-caravan',
305
+ name: CALVERTON_FOLK_NAMES.caravan,
306
+ place: 'the Lakeside Market, Calverton',
307
+ x: 842, z: 704, faceX: 842, faceZ: 706, leash: 1,
308
+ speak: "Hugh Tarrant, caravan master. Two wagons, one road east and one very long way west, and never enough hands. If you can carry a ledger and not lose it, I have a run for you.",
309
+ extras: [{ id: 'run', label: 'The caravan run', say: "East along the road to the Last Weighhouse, where the Weighmaster stamps the tally, then the long way round by the Western Line to Lantern Wake. A clerk there signs for it, and you bring it home. Redcaps and thieves on the way, so keep your wits." }],
310
+ },
311
+ ];
312
+ /**
313
+ * The two sparring sergeants of the Wardens' Yard (types sparringYard.ts, home 'calverton'): in the lane between the dummy rows. Not part of
314
+ * CALVERTON_FOLK, so their menu stays the yard's own (Begin a bout, Strike, Guard, Feint, Ask to stop). Same machinery as the Capital's four.
315
+ */
316
+ export const CALVERTON_SERGEANT_SPOTS = [
317
+ { name: 'Sergeant Pike', x: 720, z: 652, faceX: 720, faceZ: 650, leash: 1 },
318
+ { name: 'Sergeant Lorne', x: 724, z: 652, faceX: 724, faceZ: 650, leash: 1 },
319
+ ];
320
+ export function calvertonFolkByName(name) {
321
+ return name ? CALVERTON_FOLK.find((p) => p.name === name) ?? null : null;
322
+ }
323
+ export function calvertonFolkById(id) {
324
+ return id ? CALVERTON_FOLK.find((p) => p.id === id) ?? null : null;
325
+ }
326
+ /** The counters, keyed by the keeper's name (world.ts NAMED_SHOPKEEPERS). */
327
+ export const CALVERTON_SHOP_FOLK = CALVERTON_FOLK.filter((p) => !!p.shop);
328
+ /** Where the quest helper and the guide say each district is. */
329
+ export const CALVERTON_PLACE_TEXT = {
330
+ 'wardens-yard': "The Wardens' Yard lies just outside Calverton's west gate, on the north side of the Dreadwoods road: a fenced yard with a barracks, a muster hall, dummies, archery butts and a board.",
331
+ 'smiths-row': "Smiths' Row lies on the south side of the same road, a few tiles west of the town wall: the forge, the joinery and the cookhouse.",
332
+ 'lakeside-market': "The Lakeside Market lies south of Calverton's wall, east of the road to the bridge: a paved market with a hall, stalls, a fish stall and the caravan yard.",
333
+ };
334
+ //# sourceMappingURL=calvertonExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calvertonExtension.js","sourceRoot":"","sources":["../src/calvertonExtension.ts"],"names":[],"mappings":"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"}