@dreadwood-types/types 0.1.367 → 0.1.369

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 (58) hide show
  1. package/dist/animation.js +1 -1
  2. package/dist/animation.js.map +1 -1
  3. package/dist/attackableNpcs.d.ts.map +1 -1
  4. package/dist/attackableNpcs.js +4 -0
  5. package/dist/attackableNpcs.js.map +1 -1
  6. package/dist/bossSignatures.d.ts +1 -1
  7. package/dist/bossSignatures.d.ts.map +1 -1
  8. package/dist/bossSignatures.js +12 -0
  9. package/dist/bossSignatures.js.map +1 -1
  10. package/dist/campKitchens.d.ts.map +1 -1
  11. package/dist/campKitchens.js +5 -0
  12. package/dist/campKitchens.js.map +1 -1
  13. package/dist/campTraders.d.ts.map +1 -1
  14. package/dist/campTraders.js +14 -0
  15. package/dist/campTraders.js.map +1 -1
  16. package/dist/constants.d.ts +6 -0
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js.map +1 -1
  19. package/dist/expandedContracts.d.ts.map +1 -1
  20. package/dist/expandedContracts.js +2 -1
  21. package/dist/expandedContracts.js.map +1 -1
  22. package/dist/groundItems.d.ts.map +1 -1
  23. package/dist/groundItems.js +2 -0
  24. package/dist/groundItems.js.map +1 -1
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/ironjawRound.d.ts +313 -0
  30. package/dist/ironjawRound.d.ts.map +1 -0
  31. package/dist/ironjawRound.js +397 -0
  32. package/dist/ironjawRound.js.map +1 -0
  33. package/dist/lamplightCommon.d.ts +350 -0
  34. package/dist/lamplightCommon.d.ts.map +1 -0
  35. package/dist/lamplightCommon.js +350 -0
  36. package/dist/lamplightCommon.js.map +1 -0
  37. package/dist/lamplightQuestDef.d.ts +33 -0
  38. package/dist/lamplightQuestDef.d.ts.map +1 -0
  39. package/dist/lamplightQuestDef.js +165 -0
  40. package/dist/lamplightQuestDef.js.map +1 -0
  41. package/dist/leanRules.d.ts.map +1 -1
  42. package/dist/leanRules.js +3 -0
  43. package/dist/leanRules.js.map +1 -1
  44. package/dist/legacy.d.ts +2 -0
  45. package/dist/legacy.d.ts.map +1 -1
  46. package/dist/legacy.js +2 -0
  47. package/dist/legacy.js.map +1 -1
  48. package/dist/messages.d.ts +6 -0
  49. package/dist/messages.d.ts.map +1 -1
  50. package/dist/messages.js.map +1 -1
  51. package/dist/quests.d.ts.map +1 -1
  52. package/dist/quests.js +31 -0
  53. package/dist/quests.js.map +1 -1
  54. package/dist/storyQuests.d.ts +1 -1
  55. package/dist/storyQuests.d.ts.map +1 -1
  56. package/dist/storyQuests.js +22 -0
  57. package/dist/storyQuests.js.map +1 -1
  58. package/package.json +43 -43
@@ -0,0 +1,313 @@
1
+ export declare const IRONJAW_ROUND_NAME = "The Ironjaw Round";
2
+ export declare const IRONJAW_ROUND_ID = "ironjaw-round";
3
+ /** The Round's slice of the world: the Dragon ring (x 420-507, z 436-523) and the Ogre camp (z < 384) are outside it. */
4
+ export declare const IRONJAW_ROUND_BOX: {
5
+ readonly minX: 496;
6
+ readonly maxX: 639;
7
+ readonly minZ: 384;
8
+ readonly maxZ: 505;
9
+ };
10
+ type Box = {
11
+ readonly minX: number;
12
+ readonly maxX: number;
13
+ readonly minZ: number;
14
+ readonly maxZ: number;
15
+ };
16
+ export declare function inIronjawRoundBox(x: number, z: number): boolean;
17
+ /** The Round's rules: all numbers are placeholders. */
18
+ export declare const IR_MIN_COMBAT = 30;
19
+ /** Hand the card back within this long of taking it. */
20
+ export declare const IR_LIMIT_MS: number;
21
+ /** A Round can never be walked faster than this (a teleport or a shortcut cannot be a counted Round): the loop is about 350 tiles. */
22
+ export declare const IR_MIN_ROUND_MS = 90000;
23
+ /** A card nobody touched for this long is forgotten (a running card is judged at its limit, not this). */
24
+ export declare const IR_SESSION_GRACE_MS: number;
25
+ /** How close you must be to Joss to take or hand in a card, and to a stake to stamp it (tiles, Chebyshev). */
26
+ export declare const IR_JOSS_REACH = 5;
27
+ export declare const IR_STAKE_REACH = 4;
28
+ /** A counted Round pays once a window per name (a Round is always free to walk again, and always counts for the board and the Ledger). */
29
+ export declare const IR_PRIZE_WINDOW_MS: number;
30
+ export declare const IR_PRIZE: {
31
+ readonly coins: 360;
32
+ readonly explorerXp: 120;
33
+ };
34
+ /** The Ledger mark of a counted Round (the Lean page, leanRules.ts). */
35
+ export declare const IR_LEAN_MARK = "lean:ironjaw-round";
36
+ /** The cosmetic pennant (a plain bag item; one held at a time). */
37
+ export declare const IR_PENNANT_KIND = "ironjawpennant";
38
+ export declare const IR_PENNANT_NAME = "Ironjaw Round Pennant";
39
+ export declare const IR_PENNANT_DESC = "A small red and iron pennant on a stick, given to anyone who has walked the Ironjaw Round on a clean card. Cosmetic: it does nothing but say so.";
40
+ export declare const IR_PROP: {
41
+ readonly stake: "irstake";
42
+ readonly board: "irboard";
43
+ };
44
+ export type IrStake = {
45
+ readonly n: 1 | 2 | 3;
46
+ readonly id: string;
47
+ readonly label: string;
48
+ readonly x: number;
49
+ readonly z: number;
50
+ /** The quarter whose hunters the clapper calls. */
51
+ readonly quarter: Box;
52
+ readonly style: string;
53
+ };
54
+ /** Stake 1 and 2 stand on the Watch's own lookout mounds, one tile north of the mound's centre so the centre stays standable (ironjawWatch.ts IW_LOOKOUT_WEST / EAST); stake 3 on the new south-east knoll. */
55
+ export declare const IR_STAKES: readonly IrStake[];
56
+ export declare function irStakeByStyle(style: string | undefined | null): IrStake | undefined;
57
+ export declare function irStakeById(id: string | undefined | null): IrStake | undefined;
58
+ export declare const IR_STAKE_NAMES: Readonly<Record<string, string>>;
59
+ /** The Round board and the tally rack stand at the Watch's north edge, OUTSIDE the lanterns (the safe pocket's north row is z 428). */
60
+ export declare const IR_BOARD: {
61
+ readonly id: "ir-board";
62
+ readonly x: 545;
63
+ readonly z: 424;
64
+ readonly style: "irboard:1";
65
+ readonly name: "The Round Board";
66
+ };
67
+ export declare const IR_RACK: {
68
+ readonly id: "ir-rack";
69
+ readonly x: 537;
70
+ readonly z: 424;
71
+ readonly model: "toolrack-s";
72
+ };
73
+ export declare const IR_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
74
+ export declare const IR_PROP_VERBS: Readonly<Record<string, string>>;
75
+ /** The model a Round prop is drawn with (storyQuests.ts questPropModel): the tally post, and the Watch's starter board. */
76
+ export declare function ironjawRoundPropModel(prop: string): string | null;
77
+ export declare function isIronjawRoundProp(style: string | undefined | null): boolean;
78
+ /**
79
+ * The loop, as the corners of the trail that is trodden to dirt two tiles wide (the Ironjaw track's east and west arms, z 396-398, are the north run and stay
80
+ * as they are). Clockwise from the board: west to stake 1, east to stake 2, down the east side to stake 3 and back by the Watch's north-east corner.
81
+ */
82
+ export declare const IR_TRAIL: readonly (readonly {
83
+ x: number;
84
+ z: number;
85
+ }[])[];
86
+ /** The painted waymark stones with the red band, as signs along the trail: where to go next. */
87
+ export declare const IR_WAYMARKS: readonly {
88
+ readonly id: string;
89
+ readonly x: number;
90
+ readonly z: number;
91
+ readonly text: string;
92
+ }[];
93
+ /** Five ambush dips: a cleared pocket (radius 2) ringed with dead trees and rock piles with a gap or two, beside the trail. */
94
+ export declare const IR_DIPS: readonly {
95
+ readonly id: string;
96
+ readonly name: string;
97
+ readonly x: number;
98
+ readonly z: number;
99
+ }[];
100
+ export declare const IR_DIP_POCKET = 2;
101
+ export declare const IR_DIP_RING = 4;
102
+ export declare const IR_CAMP_NAME = "Grumm's Camp";
103
+ export declare const IR_CAMP_CENTRE: {
104
+ readonly x: 570;
105
+ readonly z: 414;
106
+ };
107
+ /** The camp's ground (cleared of wild props; the scavengers lock on only to a player inside it). */
108
+ export declare const IR_CAMP_BOX: Box;
109
+ export declare function inIronjawRoundCamp(x: number, z: number): boolean;
110
+ export type IrPiece = {
111
+ readonly id: string;
112
+ readonly kind: 'dreadmodel' | 'dreadprop' | 'campfire' | 'barrel' | 'signpost' | 'tree' | 'rock';
113
+ readonly style: string;
114
+ readonly x: number;
115
+ readonly z: number;
116
+ readonly scale?: number;
117
+ };
118
+ /** Stand-ins from the Dreadwoods kit (logged on the upgrades list as `ironjaw-round-*`): the pot, spits, sacks, bone piles, the wrecked wagon and the ogre banners. */
119
+ export declare const IR_CAMP_PIECES: readonly IrPiece[];
120
+ export type IrFolk = {
121
+ readonly id: string;
122
+ readonly name: string;
123
+ readonly place: string;
124
+ readonly x: number;
125
+ readonly z: number;
126
+ readonly faceX: number;
127
+ readonly faceZ: number;
128
+ readonly leash: number;
129
+ readonly speak: string;
130
+ readonly extras: ReadonlyArray<{
131
+ readonly id: string;
132
+ readonly label: string;
133
+ readonly say: string;
134
+ }>;
135
+ };
136
+ export declare const IR_JOSS_NAME = "Tally-Keeper Joss Harrow";
137
+ export declare const IR_EDDA_NAME = "Wagon-Wright Edda Kirk";
138
+ export declare const IR_PERRIN_NAME = "Lookout Perrin Staves";
139
+ export declare const IR_TILDA_NAME = "Camp Cook Tilda Brant";
140
+ /** Scout-Captain Maren Voss already lives at the Watch (ironjawWatch.ts IRONJAW_CAPTAIN_NAME): her Round-day coat is art, on the upgrades list. */
141
+ export declare const IR_MAREN_NAME = "Scout-Captain Maren Voss";
142
+ /** The Round's rules in words (Joss reads them, the board repeats them, the guide quotes them). */
143
+ export declare const IR_RULES_TEXT = "A Round is one card and three stamps: the west lookout mound, the east lookout mound and the south-east knoll. Take a card from me (Combat 30 and over), walk the loop and touch each stake; the clapper rings and the Ironjaw hunters in that quarter hear it. Walk back to me within 12 minutes with all three stamps and no food eaten since you took the card. Nobody can eat in a fight out there, so eat before you take the card, not after. Eating, being beaten, leaving the Dreadwoods or logging out spoils the card. A clean Round pays coins, a Lean Rules credit and a pennant, and the week's five fastest go on the board.";
144
+ export declare const IR_FOLK: ReadonlyArray<IrFolk>;
145
+ export declare function irFolkByName(name: string | undefined): IrFolk | null;
146
+ export declare function irFolkById(id: string | undefined): IrFolk | null;
147
+ /** npc_action ids Joss answers (the client sends them on untouched). */
148
+ export declare const IR_ACTION_PREFIX = "iround:";
149
+ export declare const IR_ACTIONS: {
150
+ readonly begin: "iround:begin";
151
+ readonly handin: "iround:handin";
152
+ readonly status: "iround:status";
153
+ readonly board: "iround:board";
154
+ readonly stop: "iround:stop";
155
+ };
156
+ export declare const IR_OPTION_LABELS: Readonly<Record<string, string>>;
157
+ /** What the Round says (the customer's words, not the code's). */
158
+ export declare const IR_LINES: {
159
+ readonly tooEarly: "The Round is for hunters of Combat 30 and over. The ground out there has ogres and other players on it. Come back when you are ready.";
160
+ readonly inFight: "Finish your fight first.";
161
+ readonly taken: "Card taken. Three stakes to stamp and 12 minutes to hand it back, with no food eaten since this moment. Eat first next time, not now.";
162
+ readonly alreadyRunning: "You already carry a card, and its clock is running. Finish that one, or give it back first.";
163
+ readonly noCard: "You carry no Round card. Take one from Joss Harrow at the board.";
164
+ readonly stopped: "Card given back. Nothing is scored and nothing is paid.";
165
+ readonly spoiled: "That card is spoiled. Give it back and take a fresh one.";
166
+ readonly late: "That card is past its twelve minutes. Give it back and take a fresh one.";
167
+ readonly incomplete: "The card does not have all three stamps yet.";
168
+ readonly tooFast: "Those stamps are fresher than any boots could make them. The card is not counted.";
169
+ readonly tooFar: "Come closer to the stake to stamp it.";
170
+ readonly stampedAlready: "This stake is already stamped on your card.";
171
+ readonly stampNoCard: "The stake takes no stamp: you carry no Round card. Joss Harrow hands them out at the board.";
172
+ readonly stampSpoiled: "The stake takes no stamp: your card is spoiled. Give it back and take a fresh one.";
173
+ readonly stampLate: "The stake takes no stamp: your card is past its twelve minutes.";
174
+ readonly called: "The clapper rings out over the burnt ground. Somewhere an ogre lifts its head.";
175
+ readonly noRound: "You carry no card.";
176
+ };
177
+ export declare const IR_SPOIL_REASONS: {
178
+ readonly ate: "you ate food that healed";
179
+ readonly defeated: "you were beaten";
180
+ readonly left: "you left the Dreadwoods";
181
+ readonly gone: "you logged out";
182
+ };
183
+ export type IrSpoilReason = keyof typeof IR_SPOIL_REASONS;
184
+ export declare function irSpoiledLine(reason: IrSpoilReason): string;
185
+ /** Minutes and seconds of a span, "4m 07s". */
186
+ export declare function irClockText(ms: number): string;
187
+ /** How long a stamp's clapper keeps the quarter's Round hunters called, how far they will chase while called, and their notice when it is quiet. */
188
+ export declare const IR_CALL_MS = 40000;
189
+ export declare const IR_CALLED_AGGRO = 30;
190
+ export declare const IR_CALLED_LEASH = 46;
191
+ export declare const IR_QUIET_AGGRO = 6;
192
+ export declare const IR_QUIET_LEASH = 14;
193
+ export declare const IR_HUNTER_ID_PREFIX = "ijr-h";
194
+ export declare const IR_HUNTER_LEVEL: {
195
+ readonly min: 32;
196
+ readonly max: 35;
197
+ };
198
+ export declare const IR_HUNTER_MAX_HIT = 18;
199
+ export declare const IR_HUNTER_SCALE = 0.92;
200
+ /** Two Round hunters rest in each quarter, a dozen tiles from the stake: they stand still and unaware until the clapper rings. */
201
+ export declare const IR_HUNTERS: readonly {
202
+ readonly stake: 1 | 2 | 3;
203
+ readonly x: number;
204
+ readonly z: number;
205
+ }[];
206
+ export declare function irHunterId(i: number): string;
207
+ export declare function isIrHunterId(id: string | undefined | null): boolean;
208
+ /** The stake (1-3) whose quarter a Round hunter belongs to, from its id; undefined otherwise. */
209
+ export declare function irHunterStake(id: string | undefined | null): 1 | 2 | 3 | undefined;
210
+ /** The scavengers (smaller ogres with a sack and a hooked pole): they lock on only to a player inside the camp. */
211
+ export declare const IR_SCAVENGER_ID_PREFIX = "ijr-s";
212
+ export declare const IR_SCAVENGER_LEVEL: {
213
+ readonly min: 33;
214
+ readonly max: 36;
215
+ };
216
+ export declare const IR_SCAVENGER_MAX_HIT = 17;
217
+ export declare const IR_SCAVENGER_SCALE = 0.8;
218
+ export declare const IR_SCAVENGERS: readonly {
219
+ readonly x: number;
220
+ readonly z: number;
221
+ }[];
222
+ export declare function isIrScavengerId(id: string | undefined | null): boolean;
223
+ export declare function isIronjawRoundNpcId(id: string | undefined | null): boolean;
224
+ export declare const IR_HUNT_NOTICE_CALLED = "The clapper has called the hunters: an Ironjaw hunter comes for you!";
225
+ export declare const IR_HUNT_NOTICE_QUIET = "An Ironjaw hunter hefts its club and comes for you!";
226
+ export declare const IR_SCAVENGER_NOTICE = "An Ironjaw scavenger swings its hooked pole and comes for you!";
227
+ export declare const COOKPOT_GRUMM_KIND = "cookpotgrumm";
228
+ export declare const COOKPOT_GRUMM_NAME = "Cookpot Grumm";
229
+ export declare const COOKPOT_GRUMM: {
230
+ readonly id: "ijr-grumm";
231
+ readonly x: 570;
232
+ readonly z: 412;
233
+ readonly leash: 6;
234
+ readonly level: readonly [number, number];
235
+ readonly maxHit: 30;
236
+ /** A mini-boss's hide: much thicker than the level's ordinary health. */
237
+ readonly healthScale: 2.6;
238
+ /** Drawn bigger than a hunter (the sheet: a huge ogre, about 3.5 tiles). */
239
+ readonly scale: 1.5;
240
+ readonly note: "An ogre camp cook with a great iron ladle and a stained apron, who guards the pot in the middle of the Ironjaw Round. Passive until struck. Every fourth blow he swings the Ladle Sweep, a wide arc announced a turn ahead: step out of the arc and it misses. The cook will not leave his pot. Back eight to ten minutes after he falls.";
241
+ };
242
+ export declare const COOKPOT_GRUMM_RESPAWN_MS: {
243
+ readonly minMs: 480000;
244
+ readonly maxMs: 600000;
245
+ };
246
+ export declare const COOKPOT_GRUMM_PACE: {
247
+ readonly speed: 0.7;
248
+ readonly idleChance: 0.7;
249
+ readonly pause: readonly [number, number];
250
+ };
251
+ /** Placeholders for the balance pass: coins, iron and coal, and a raw larder find (an ingredient a player cooks themselves; never shop stock). Nothing heals. */
252
+ export declare const COOKPOT_GRUMM_DROPS: readonly {
253
+ itemKind: string;
254
+ chance: number;
255
+ minQty: number;
256
+ maxQty: number;
257
+ }[];
258
+ /** The client draws it with the Ironjaw ogre's model until it has a cook of its own. */
259
+ export declare const COOKPOT_GRUMM_STAND_IN = "ironjawogre";
260
+ export declare const COOKPOT_GRUMM_LADLE_NOTICE = "Cookpot Grumm swings his iron ladle round in a wide arc. Brace for the Ladle Sweep, or step clear.";
261
+ export declare const IR_BOARD_SIZE = 5;
262
+ export declare const IR_BOARD_TIMER_KEY = "ironjaw-round";
263
+ export type IrRow = {
264
+ name: string;
265
+ ms: number;
266
+ at: number;
267
+ };
268
+ export type IrSave = {
269
+ week: string;
270
+ rows: IrRow[];
271
+ };
272
+ export declare function emptyIrSave(nowMs: number): IrSave;
273
+ /** The board as the world saved it, or a fresh one: nothing unreadable is trusted, and last week's is dropped. */
274
+ export declare function parseIrSave(raw: unknown, nowMs: number): IrSave;
275
+ /** Fastest first; a tie goes to whoever walked it first. */
276
+ export declare function rankIrRows(rows: readonly IrRow[]): IrRow[];
277
+ /** 1-based place on a board, or 0 when not on it. */
278
+ export declare function irPlaceOf(rows: readonly IrRow[], name: string): number;
279
+ /** A counted Round goes on the board: one place per name (only a faster Round replaces a slower one), a new week starts a fresh board. */
280
+ export declare function recordIrTime(save: IrSave, name: string, ms: number, nowMs: number): {
281
+ save: IrSave;
282
+ changed: boolean;
283
+ place: number;
284
+ };
285
+ export declare function irBoardText(save: IrSave): string;
286
+ export declare const IR_GUIDE_TEXT: string;
287
+ /** Where the Round's pieces are, for the teleports, the smoke and the helper. */
288
+ export declare const IR_STANDS: {
289
+ readonly board: {
290
+ readonly x: 541;
291
+ readonly z: 423;
292
+ };
293
+ readonly stake1: {
294
+ readonly x: number;
295
+ readonly z: number;
296
+ };
297
+ readonly stake2: {
298
+ readonly x: number;
299
+ readonly z: number;
300
+ };
301
+ readonly stake3: {
302
+ readonly x: number;
303
+ readonly z: number;
304
+ };
305
+ readonly camp: {
306
+ readonly x: 570;
307
+ readonly z: 408;
308
+ };
309
+ };
310
+ /** The safe camp's own north row, for tests: the board and Joss must stay outside it. */
311
+ export declare const IR_WATCH_NORTH_ROW: number;
312
+ export {};
313
+ //# sourceMappingURL=ironjawRound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ironjawRound.d.ts","sourceRoot":"","sources":["../src/ironjawRound.ts"],"names":[],"mappings":"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"}