@dreadwood-types/types 0.1.273 → 0.1.275
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/areaGates.d.ts.map +1 -1
- package/dist/areaGates.js +11 -0
- package/dist/areaGates.js.map +1 -1
- package/dist/areaTransitions.d.ts +1 -1
- package/dist/areaTransitions.d.ts.map +1 -1
- package/dist/areaTransitions.js +11 -0
- package/dist/areaTransitions.js.map +1 -1
- package/dist/attackableNpcs.d.ts.map +1 -1
- package/dist/attackableNpcs.js +4 -0
- package/dist/attackableNpcs.js.map +1 -1
- package/dist/bossSignatures.d.ts +1 -1
- package/dist/bossSignatures.d.ts.map +1 -1
- package/dist/bossSignatures.js +13 -0
- package/dist/bossSignatures.js.map +1 -1
- package/dist/bounty.d.ts +7 -1
- package/dist/bounty.d.ts.map +1 -1
- package/dist/bounty.js +21 -0
- package/dist/bounty.js.map +1 -1
- package/dist/campTraders.d.ts.map +1 -1
- package/dist/campTraders.js +12 -0
- package/dist/campTraders.js.map +1 -1
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/explorerLedger.d.ts +2 -1
- package/dist/explorerLedger.d.ts.map +1 -1
- package/dist/explorerLedger.js +8 -0
- package/dist/explorerLedger.js.map +1 -1
- package/dist/groundItems.d.ts.map +1 -1
- package/dist/groundItems.js +2 -0
- package/dist/groundItems.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/landmarks.d.ts.map +1 -1
- package/dist/landmarks.js +4 -0
- package/dist/landmarks.js.map +1 -1
- package/dist/legacy.d.ts +1 -0
- package/dist/legacy.d.ts.map +1 -1
- package/dist/legacy.js +1 -0
- package/dist/legacy.js.map +1 -1
- package/dist/northWilds.d.ts +187 -0
- package/dist/northWilds.d.ts.map +1 -0
- package/dist/northWilds.js +270 -0
- package/dist/northWilds.js.map +1 -0
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +25 -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 +16 -0
- package/dist/storyQuests.js.map +1 -1
- package/dist/tollRoad.d.ts +368 -0
- package/dist/tollRoad.d.ts.map +1 -0
- package/dist/tollRoad.js +368 -0
- package/dist/tollRoad.js.map +1 -0
- package/dist/tollRoadQuests.d.ts +60 -0
- package/dist/tollRoadQuests.d.ts.map +1 -0
- package/dist/tollRoadQuests.js +233 -0
- package/dist/tollRoadQuests.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import type { LanternWakeBox } from './lanternWake.js';
|
|
2
|
+
export declare const TOLL_ROAD_NAME = "The Toll Road";
|
|
3
|
+
export declare const TOLL_HOUSE_NAME = "The Ridge Toll House";
|
|
4
|
+
/** The outpost's ground, west of the Fishery road (x 788-796 is the verge and stays clear) and south of the cutting's west ridge (to z 480). */
|
|
5
|
+
export declare const TOLL_HOUSE: LanternWakeBox;
|
|
6
|
+
/** The track from the outpost out to the road (surface only: no entity may stand within 4 of x 792). */
|
|
7
|
+
export declare const TOLL_HOUSE_LINK: {
|
|
8
|
+
readonly minX: 787;
|
|
9
|
+
readonly maxX: 791;
|
|
10
|
+
readonly minZ: 489;
|
|
11
|
+
readonly maxZ: 491;
|
|
12
|
+
};
|
|
13
|
+
export type TollRoadProp = {
|
|
14
|
+
id: string;
|
|
15
|
+
kind: 'dreadmodel' | 'dreadprop' | 'campfire' | 'barrel' | 'logpile' | 'bountyboard';
|
|
16
|
+
style: string;
|
|
17
|
+
x: number;
|
|
18
|
+
z: number;
|
|
19
|
+
scale?: number;
|
|
20
|
+
};
|
|
21
|
+
/** The outpost's pieces: a cook's tent and fire, the Bounty Board on the track side, stores, benches and lanterns. */
|
|
22
|
+
export declare const TOLL_HOUSE_PIECES: readonly TollRoadProp[];
|
|
23
|
+
/** The signs. The Highstone, Webfen and Gullhook signs are the only things that join those places to this road. */
|
|
24
|
+
export declare const TOLL_ROAD_SIGNS: ReadonlyArray<{
|
|
25
|
+
id: string;
|
|
26
|
+
x: number;
|
|
27
|
+
z: number;
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** Standable tiles (teleport links, smokes). */
|
|
31
|
+
export declare const TOLL_ROAD_STANDS: {
|
|
32
|
+
readonly house: {
|
|
33
|
+
readonly x: 777;
|
|
34
|
+
readonly z: 490;
|
|
35
|
+
};
|
|
36
|
+
readonly road: {
|
|
37
|
+
readonly x: 792;
|
|
38
|
+
readonly z: 490;
|
|
39
|
+
};
|
|
40
|
+
readonly stile: {
|
|
41
|
+
readonly x: 816;
|
|
42
|
+
readonly z: 466;
|
|
43
|
+
};
|
|
44
|
+
readonly hollow: {
|
|
45
|
+
readonly x: 836;
|
|
46
|
+
readonly z: 485;
|
|
47
|
+
};
|
|
48
|
+
readonly wagon: {
|
|
49
|
+
readonly x: 800;
|
|
50
|
+
readonly z: 436;
|
|
51
|
+
};
|
|
52
|
+
readonly pond: {
|
|
53
|
+
readonly x: 807;
|
|
54
|
+
readonly z: 490;
|
|
55
|
+
};
|
|
56
|
+
readonly hatch: {
|
|
57
|
+
readonly x: 755;
|
|
58
|
+
readonly z: 449;
|
|
59
|
+
};
|
|
60
|
+
readonly cellar: {
|
|
61
|
+
readonly x: number;
|
|
62
|
+
readonly z: 551;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export declare const TOLL_WARDEN_KIND = "tollwarden";
|
|
66
|
+
export declare const TOLL_WARDEN_NAME = "Toll-Warden Ansel Pike";
|
|
67
|
+
export declare const TOLL_WARDEN: {
|
|
68
|
+
readonly id: "tr-warden";
|
|
69
|
+
readonly kind: "tollwarden";
|
|
70
|
+
readonly name: "Toll-Warden Ansel Pike";
|
|
71
|
+
readonly x: 779;
|
|
72
|
+
readonly z: 489;
|
|
73
|
+
readonly faceX: 786;
|
|
74
|
+
readonly faceZ: 491;
|
|
75
|
+
readonly leash: 1;
|
|
76
|
+
};
|
|
77
|
+
export declare const RIDGE_INFORMER_KIND = "ridgeinformer";
|
|
78
|
+
export declare const RIDGE_INFORMER_NAME = "Whisper Pim";
|
|
79
|
+
export declare const RIDGE_INFORMER: {
|
|
80
|
+
readonly id: "tr-informer";
|
|
81
|
+
readonly kind: "ridgeinformer";
|
|
82
|
+
readonly name: "Whisper Pim";
|
|
83
|
+
readonly x: 807;
|
|
84
|
+
readonly z: 490;
|
|
85
|
+
readonly faceX: 803;
|
|
86
|
+
readonly faceZ: 488;
|
|
87
|
+
readonly leash: 1;
|
|
88
|
+
};
|
|
89
|
+
export declare function isTollRoadFolkKind(kind: string): boolean;
|
|
90
|
+
/** What a click says when it is not a talk (never an attack). */
|
|
91
|
+
export declare const TOLL_ROAD_FOLK_LINES: Readonly<Record<string, string>>;
|
|
92
|
+
export type RedcapCamp = {
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
box: LanternWakeBox;
|
|
96
|
+
/** The ground the camp holds: its footpads and archers rush anyone inside it (a box a little wider than the camp's). */
|
|
97
|
+
hold: LanternWakeBox;
|
|
98
|
+
redcaps: ReadonlyArray<{
|
|
99
|
+
x: number;
|
|
100
|
+
z: number;
|
|
101
|
+
}>;
|
|
102
|
+
archers: ReadonlyArray<{
|
|
103
|
+
x: number;
|
|
104
|
+
z: number;
|
|
105
|
+
}>;
|
|
106
|
+
pieces: readonly TollRoadProp[];
|
|
107
|
+
};
|
|
108
|
+
/** Stile Camp: the toll camp, where the road's coin is counted. */
|
|
109
|
+
export declare const STILE_CAMP: RedcapCamp;
|
|
110
|
+
/** Hollow Camp: the dip where the payroll was cached. */
|
|
111
|
+
export declare const HOLLOW_CAMP: RedcapCamp;
|
|
112
|
+
export declare const REDCAP_CAMPS: readonly RedcapCamp[];
|
|
113
|
+
/** The camps' footpads and archers walk with these ids so a death, a respawn and the aggro tick can tell them from the yard's. */
|
|
114
|
+
export declare const TOLL_CAMP_ID_PREFIX = "trc-";
|
|
115
|
+
/** The camp whose hold a creature of this spawn tile belongs to, or null. */
|
|
116
|
+
export declare function redcapCampAt(x: number, z: number): RedcapCamp | null;
|
|
117
|
+
/** True when the player stands inside the hold of the camp the creature (spawned at sx, sz) keeps. */
|
|
118
|
+
export declare function inOwnCampHold(sx: number, sz: number, px: number, pz: number): boolean;
|
|
119
|
+
/** The wagon wreck at the road's east verge (dressing, not a quest prop): the trail starts beside it. */
|
|
120
|
+
export declare const PAYROLL_WAGON: {
|
|
121
|
+
readonly id: "tr-payroll-wagon";
|
|
122
|
+
readonly kind: "dreadmodel";
|
|
123
|
+
readonly style: "fishcartwreck-e";
|
|
124
|
+
readonly x: 800;
|
|
125
|
+
readonly z: 434;
|
|
126
|
+
};
|
|
127
|
+
export type TollQuestProp = {
|
|
128
|
+
id: string;
|
|
129
|
+
x: number;
|
|
130
|
+
z: number;
|
|
131
|
+
style: string;
|
|
132
|
+
};
|
|
133
|
+
export declare const TR_PROP: {
|
|
134
|
+
readonly tally: "tolltally";
|
|
135
|
+
readonly tracks: "tolltracks";
|
|
136
|
+
readonly chest: "tollpayroll";
|
|
137
|
+
readonly drop: "tolldrop";
|
|
138
|
+
readonly book: "tollbook";
|
|
139
|
+
};
|
|
140
|
+
/** The three tally boards (quest 1): at the Toll House, east of the road by the pond, and at Stile Camp's gate. */
|
|
141
|
+
export declare const TR_TALLY_HOUSE: TollQuestProp;
|
|
142
|
+
export declare const TR_TALLY_POND: TollQuestProp;
|
|
143
|
+
export declare const TR_TALLY_STILE: TollQuestProp;
|
|
144
|
+
export declare const TR_TALLIES: readonly TollQuestProp[];
|
|
145
|
+
/** The five sets of cart tracks, from the wagon to Hollow Camp (the trail skirts Stile Camp's north-east corner). Touch them in order. */
|
|
146
|
+
export declare const TR_TRACKS: readonly TollQuestProp[];
|
|
147
|
+
export declare const TR_TRACKS_ORDER: readonly string[];
|
|
148
|
+
/** The cached payroll in Hollow Camp: a strongbox by the tent (gives the satchel). */
|
|
149
|
+
export declare const TR_PAYROLL_CHEST: TollQuestProp;
|
|
150
|
+
/** The dead drop by the pond: a hollow stump (gives the cellar key). */
|
|
151
|
+
export declare const TR_DEAD_DROP: TollQuestProp;
|
|
152
|
+
/** The Captain's toll book on his table in the cellar hall (quest 4). */
|
|
153
|
+
export declare const TR_TOLL_BOOK: TollQuestProp;
|
|
154
|
+
export declare const TOLL_ROAD_QUEST_PROPS: readonly TollQuestProp[];
|
|
155
|
+
/** The surface props (everything except the cellar's book, which the cellar's carve places underground). */
|
|
156
|
+
export declare const TOLL_ROAD_SURFACE_QUEST_PROPS: readonly TollQuestProp[];
|
|
157
|
+
/** The kit model a Toll Road quest prop draws with (CAPITAL_BUILDING_MODELS stand-ins), or null if not one of them. */
|
|
158
|
+
export declare function tollRoadPropModel(prop: string): string | null;
|
|
159
|
+
export declare const TOLL_ROAD_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
|
|
160
|
+
/** What a prop says when no step wants it. */
|
|
161
|
+
export declare const TOLL_ROAD_PROP_IDLE_LINES: Readonly<Record<string, string>>;
|
|
162
|
+
export declare const TOLL_ROAD_WRONG_TRACKS_NOTICE = "These are not the tracks you were following: the ruts here belong to a lighter cart. Go back to the wagon and pick the trail up again, in order.";
|
|
163
|
+
export declare const PAYROLL_SATCHEL_KIND = "payrollsatchet";
|
|
164
|
+
export declare const CELLAR_KEY_KIND = "cellarkey";
|
|
165
|
+
export declare const TOLL_ROAD_QUEST_ITEM_KINDS: readonly string[];
|
|
166
|
+
export declare const TOLL_ROAD_QUEST_ITEM_NAMES: Readonly<Record<string, string>>;
|
|
167
|
+
export declare const TOLL_ROAD_QUEST_ITEM_NOTES: Readonly<Record<string, string>>;
|
|
168
|
+
/** The hatch in the Ridge yard (a `caveentrance`, kit stair model facing south; the standard gate asks Combat + the key) and where it lands you. */
|
|
169
|
+
export declare const RIDGE_CELLAR_MOUTH: {
|
|
170
|
+
readonly x: 755;
|
|
171
|
+
readonly z: 447;
|
|
172
|
+
readonly style: "wlhaltstair-s";
|
|
173
|
+
};
|
|
174
|
+
export declare const RIDGE_CELLAR_OUTSIDE: {
|
|
175
|
+
readonly x: 755;
|
|
176
|
+
readonly z: 449;
|
|
177
|
+
};
|
|
178
|
+
export declare const RIDGE_CELLAR_COMBAT_LEVEL = 22;
|
|
179
|
+
export declare const CELLAR_CX: number;
|
|
180
|
+
/** The rooms, south to north: the stair vestibule, the store room (guards), a short passage, the Captain's hall. Raw strip tiles. */
|
|
181
|
+
export declare const CELLAR_VESTIBULE: {
|
|
182
|
+
readonly cx: number;
|
|
183
|
+
readonly minZ: 547;
|
|
184
|
+
readonly maxZ: 555;
|
|
185
|
+
readonly halfW: 3;
|
|
186
|
+
readonly floor: "stair-vestibule";
|
|
187
|
+
};
|
|
188
|
+
export declare const CELLAR_STORE: {
|
|
189
|
+
readonly cx: number;
|
|
190
|
+
readonly minZ: 536;
|
|
191
|
+
readonly maxZ: 546;
|
|
192
|
+
readonly halfW: 6;
|
|
193
|
+
readonly floor: "guard-post";
|
|
194
|
+
readonly props: "guard-supplies";
|
|
195
|
+
};
|
|
196
|
+
export declare const CELLAR_PASSAGE: {
|
|
197
|
+
readonly cx: number;
|
|
198
|
+
readonly minZ: 532;
|
|
199
|
+
readonly maxZ: 535;
|
|
200
|
+
readonly halfW: 2;
|
|
201
|
+
readonly floor: "worked-flagstone";
|
|
202
|
+
};
|
|
203
|
+
export declare const CELLAR_HALL: {
|
|
204
|
+
readonly cx: number;
|
|
205
|
+
readonly minZ: 514;
|
|
206
|
+
readonly maxZ: 531;
|
|
207
|
+
readonly halfW: 8;
|
|
208
|
+
readonly floor: "worked-flagstone";
|
|
209
|
+
readonly props: "guard-supplies";
|
|
210
|
+
};
|
|
211
|
+
/** The way back up (the same kit stair, facing north, in the vestibule's south end) and where a player arrives. */
|
|
212
|
+
export declare const RIDGE_CELLAR_EXIT: {
|
|
213
|
+
readonly x: number;
|
|
214
|
+
readonly z: 556;
|
|
215
|
+
readonly style: "wlhaltstair-n";
|
|
216
|
+
};
|
|
217
|
+
export declare const RIDGE_CELLAR_ENTRY: {
|
|
218
|
+
readonly x: number;
|
|
219
|
+
readonly z: 551;
|
|
220
|
+
};
|
|
221
|
+
/** The whole cellar (for the aggro rule, the quest's reach step and the isLowerKingdoms mapping). */
|
|
222
|
+
export declare const RIDGE_CELLAR_BOX: {
|
|
223
|
+
readonly minX: number;
|
|
224
|
+
readonly maxX: number;
|
|
225
|
+
readonly minZ: 512;
|
|
226
|
+
readonly maxZ: 560;
|
|
227
|
+
};
|
|
228
|
+
export declare function inRidgeCellar(x: number, z: number): boolean;
|
|
229
|
+
/** The Captain's hall, where the quest's reach step lands. */
|
|
230
|
+
export declare const RIDGE_CELLAR_HALL_AREA: {
|
|
231
|
+
readonly minX: number;
|
|
232
|
+
readonly maxX: number;
|
|
233
|
+
readonly minZ: 514;
|
|
234
|
+
readonly maxZ: 531;
|
|
235
|
+
};
|
|
236
|
+
/** Which end of the hatch a `caveentrance` is: 'down' the yard's hatch, 'up' the cellar's stair; null for anything else (the Forge Halt's stairs share the model). */
|
|
237
|
+
export type RidgeCellarDoor = 'down' | 'up';
|
|
238
|
+
export declare function ridgeCellarDoorEnd(style: string | undefined, x: number, z: number): RidgeCellarDoor | null;
|
|
239
|
+
export declare const RIDGE_CELLAR_DOWN_LABEL = "Lift the cellar hatch";
|
|
240
|
+
export declare const RIDGE_CELLAR_UP_LABEL = "Climb up to the Ridge yard";
|
|
241
|
+
export declare const RIDGE_CELLAR_DOWN_TEXT = "You lift the hatch and go down the cellar stair. Cold stone, lamp oil and a smell of old cheese and gun-metal. Somebody down here is counting.";
|
|
242
|
+
export declare const RIDGE_CELLAR_UP_TEXT = "You climb up into the Ridge yard and the daylight. The Redcaps are still where you left them.";
|
|
243
|
+
export declare const RIDGE_CELLAR_DOWN_TITLE = "The Ridge Cellar";
|
|
244
|
+
export declare const RIDGE_CELLAR_UP_TITLE = "The Ridge Yard";
|
|
245
|
+
/** The cellar's guards: the Ridge's own footpads and an archer in the store room, one archer in the hall. They hold the rooms they stand in. */
|
|
246
|
+
export declare const CELLAR_GUARD_ID_PREFIX = "trk-";
|
|
247
|
+
export declare const CELLAR_REDCAPS: ReadonlyArray<{
|
|
248
|
+
x: number;
|
|
249
|
+
z: number;
|
|
250
|
+
}>;
|
|
251
|
+
export declare const CELLAR_ARCHERS: ReadonlyArray<{
|
|
252
|
+
x: number;
|
|
253
|
+
z: number;
|
|
254
|
+
}>;
|
|
255
|
+
/** The Redcap Captain: a boss in the hall, one telegraphed blow (bossSignatures.ts `toll-cleave`), back after four minutes. */
|
|
256
|
+
export declare const REDCAP_CAPTAIN_KIND = "redcapcaptain";
|
|
257
|
+
export declare const REDCAP_CAPTAIN_NAME = "Redcap Captain Dorran Voss";
|
|
258
|
+
export declare const REDCAP_CAPTAIN: {
|
|
259
|
+
readonly name: "Redcap Captain Dorran Voss";
|
|
260
|
+
readonly level: readonly [number, number];
|
|
261
|
+
readonly maxHit: 14;
|
|
262
|
+
readonly healthFactor: 1.4;
|
|
263
|
+
readonly respawnMs: 240000;
|
|
264
|
+
readonly aggro: 7;
|
|
265
|
+
readonly leash: 12;
|
|
266
|
+
readonly x: number;
|
|
267
|
+
readonly z: 522;
|
|
268
|
+
readonly spawnLeash: 2;
|
|
269
|
+
readonly text: "Captain Voss looks up from his book. \"The Ridge pays. It always pays. Who sent you, the guard or the sea?\"";
|
|
270
|
+
readonly note: "Black Tom's captain, a heavy man in a red tabard who counts coin at a table in the cellar hall. Every fourth blow is a cleave, announced a full turn ahead and twice an ordinary hit: step out of his reach before it lands and it misses. Two footpads and an archer hold the store room before him.";
|
|
271
|
+
};
|
|
272
|
+
export declare function isTollRoadHostileKind(kind: string): boolean;
|
|
273
|
+
/**
|
|
274
|
+
* The Redcaps send a patrol down the cutting four times a day, at fixed UTC times (06:20, 12:20, 18:20, 00:20), for twelve minutes each.
|
|
275
|
+
* Read off the wall clock like the Passing Bay's raid: nothing rolled or stored, so every server agrees and a restart changes nothing.
|
|
276
|
+
* The squad is a small copy of the Random World Events engine's stream (scaled levels, lighter than a lone creature of the level, never
|
|
277
|
+
* respawning in place, leaving with the last player).
|
|
278
|
+
*/
|
|
279
|
+
export declare const REDCAP_PATROL: {
|
|
280
|
+
readonly periodMs: number;
|
|
281
|
+
/** Minutes past 00:00 UTC the first window opens at. */
|
|
282
|
+
readonly offsetMs: number;
|
|
283
|
+
readonly durationMs: number;
|
|
284
|
+
readonly kind: "redcap";
|
|
285
|
+
readonly archerKind: "redcaparcher";
|
|
286
|
+
readonly name: "Redcap patrol";
|
|
287
|
+
readonly levels: [number, number];
|
|
288
|
+
/** Alive at once with one player on the road, plus `perExtraPlayer` for each more (twice `cap` at most). */
|
|
289
|
+
readonly cap: 3;
|
|
290
|
+
readonly perExtraPlayer: 1;
|
|
291
|
+
/** One more every this long while the road has someone on it. */
|
|
292
|
+
readonly everyMs: 9000;
|
|
293
|
+
readonly firstWave: 2;
|
|
294
|
+
/** The patrol ignores anyone below this Combat (a newcomer passing through is left alone). */
|
|
295
|
+
readonly aggroCombat: 12;
|
|
296
|
+
readonly aggroRadius: 7;
|
|
297
|
+
readonly leashRadius: 40;
|
|
298
|
+
readonly aggroText: "A Redcap patrol swings out across the road: \"Toll! Everyone pays the toll!\"";
|
|
299
|
+
/** Every fourth raider is an archer. */
|
|
300
|
+
readonly archerEvery: 4;
|
|
301
|
+
};
|
|
302
|
+
/** The strip of road the patrol keeps: the cutting between the two ridges (x 786-798) from the north end to the Toll House. */
|
|
303
|
+
export declare const REDCAP_PATROL_ZONE: {
|
|
304
|
+
readonly minX: 786;
|
|
305
|
+
readonly maxX: 798;
|
|
306
|
+
readonly minZ: 436;
|
|
307
|
+
readonly maxZ: 482;
|
|
308
|
+
};
|
|
309
|
+
export declare function inRedcapPatrolZone(x: number, z: number): boolean;
|
|
310
|
+
/** Where the squad forms: on the verge-side ground at the cutting's north mouth and the middle (NPCs, not map entities, so the verge rule does not apply). */
|
|
311
|
+
export declare const REDCAP_PATROL_NESTS: ReadonlyArray<{
|
|
312
|
+
x: number;
|
|
313
|
+
z: number;
|
|
314
|
+
}>;
|
|
315
|
+
/** Patrol raiders felled, in one patrol, that earn the guard's thanks. */
|
|
316
|
+
export declare const REDCAP_PATROL_KILLS_TO_PAY = 4;
|
|
317
|
+
/** The thanks (PLACEHOLDER): once per patrol per player who stood and fought and is still standing when it ends. */
|
|
318
|
+
export declare const REDCAP_PATROL_REWARD: {
|
|
319
|
+
readonly coins: 220;
|
|
320
|
+
readonly explorerXp: 300;
|
|
321
|
+
};
|
|
322
|
+
export declare const REDCAP_PATROL_DIFFICULTY = 1;
|
|
323
|
+
export declare const REDCAP_PATROL_ID_PREFIX = "rp-";
|
|
324
|
+
export declare const REDCAP_PATROL_TEXTS: {
|
|
325
|
+
readonly start: "A Redcap patrol is marching the cutting! Hold the road with the guard until it breaks.";
|
|
326
|
+
readonly endPaid: "The patrol breaks and runs for the ridge. Toll-Warden Pike's lads salute you from the Toll House.";
|
|
327
|
+
readonly endPlain: "The Redcap patrol breaks and runs for the ridge.";
|
|
328
|
+
readonly quiet: "A Redcap patrol is marching the cutting, but the Redcaps have no interest in someone so green. Keep to the verge.";
|
|
329
|
+
readonly warn: "Toll-Warden Pike rings the Toll House bell: a Redcap patrol will march the cutting in a minute or so.";
|
|
330
|
+
};
|
|
331
|
+
/** The Toll House bell rings this long before a window opens. */
|
|
332
|
+
export declare const REDCAP_PATROL_WARN_MS = 90000;
|
|
333
|
+
export type RedcapPatrolWindow = {
|
|
334
|
+
/** Which window this is, counted from the epoch (2026-01-01 00:00 UTC). */
|
|
335
|
+
slot: number;
|
|
336
|
+
startMs: number;
|
|
337
|
+
endMs: number;
|
|
338
|
+
/** True while the patrol is out (now is inside the window). */
|
|
339
|
+
active: boolean;
|
|
340
|
+
/** When the next window opens (the slot after this one when this one is over or is on). */
|
|
341
|
+
nextStartMs: number;
|
|
342
|
+
};
|
|
343
|
+
/** The patrol window `nowMs` is in or the next one: a pure function of the clock. */
|
|
344
|
+
export declare function redcapPatrolWindow(nowMs: number): RedcapPatrolWindow;
|
|
345
|
+
/** The slot whose window is open or the NEXT one to open (the slot the warning belongs to). */
|
|
346
|
+
export declare function redcapPatrolSlotAfter(nowMs: number): number;
|
|
347
|
+
/** The Toll Road's lines (marked by the server, ids are the marks it writes; explorerLedger.ts section `road`). */
|
|
348
|
+
export declare const LEDGER_ROAD_LINES: readonly {
|
|
349
|
+
id: string;
|
|
350
|
+
label: string;
|
|
351
|
+
}[];
|
|
352
|
+
export declare const TOLL_HOUSE_ZONE: {
|
|
353
|
+
readonly id: "ridge-toll-house";
|
|
354
|
+
readonly label: "The Ridge Toll House";
|
|
355
|
+
readonly minX: number;
|
|
356
|
+
readonly maxX: number;
|
|
357
|
+
readonly minZ: number;
|
|
358
|
+
readonly maxZ: number;
|
|
359
|
+
};
|
|
360
|
+
export declare const REDCAP_CAMPS_ZONE: {
|
|
361
|
+
readonly id: "redcap-camps";
|
|
362
|
+
readonly label: "The Redcap Camps";
|
|
363
|
+
readonly minX: number;
|
|
364
|
+
readonly maxX: number;
|
|
365
|
+
readonly minZ: number;
|
|
366
|
+
readonly maxZ: number;
|
|
367
|
+
};
|
|
368
|
+
//# sourceMappingURL=tollRoad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tollRoad.d.ts","sourceRoot":"","sources":["../src/tollRoad.ts"],"names":[],"mappings":"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"}
|