@dreadwood-types/types 0.1.306 → 0.1.307
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/blacksmithing.d.ts.map +1 -1
- package/dist/blacksmithing.js +4 -0
- package/dist/blacksmithing.js.map +1 -1
- package/dist/explorerLedger.d.ts.map +1 -1
- package/dist/explorerLedger.js +6 -3
- package/dist/explorerLedger.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/northWilds.d.ts.map +1 -1
- package/dist/northWilds.js +4 -0
- package/dist/northWilds.js.map +1 -1
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +5 -0
- package/dist/quests.js.map +1 -1
- package/dist/sparringYard.d.ts +5 -3
- package/dist/sparringYard.d.ts.map +1 -1
- package/dist/sparringYard.js +7 -2
- package/dist/sparringYard.js.map +1 -1
- package/dist/storyQuests.d.ts +2 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +4 -0
- package/dist/storyQuests.js.map +1 -1
- package/dist/warCampDrill.d.ts +146 -0
- package/dist/warCampDrill.d.ts.map +1 -0
- package/dist/warCampDrill.js +255 -0
- package/dist/warCampDrill.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE WAR CAMP DRILL GROUND (coverage slice 12, track T108, 2026-10-14; dreadwoods-backend/COVERAGE_1_40.md section 6). Strength, Archery
|
|
3
|
+
* and Weapon Mastery 10-40 had only fights, the Capital's yard (to 40 through its four sergeants), Calverton's (to 30) and Millbrook's
|
|
4
|
+
* oak dummies. Fenwick's garrison camp north of the Northern Gate (the "War Camp", levels 30-40) had nothing to drill on, so this adds:
|
|
5
|
+
*
|
|
6
|
+
* - A FENCED YARD on the camp's east side (x 134-147, z 478-503; the camp's clearing ends at x 131 and a gap in the yard's west fence
|
|
7
|
+
* opens on its hearth lane). Nothing outside the yard moves: the camp's clearing, the Ogre palisade and its 41+ boss gate are untouched.
|
|
8
|
+
* - SIX DUMMIES on the per-dummy band pattern (Millbrook's): three straw-and-post dummies pay Strength 20-30, three iron-bound ones
|
|
9
|
+
* Strength 30-40. TRAINING_DUMMY_MAX_LEVEL does not change (the Garrison's dummies still stop at 10).
|
|
10
|
+
* - THREE LONG BUTTS (Archery 30-40, lanes of 16, 19 and 22 tiles, shot from the yard's north line) on the Beacon Ledge pattern: a band
|
|
11
|
+
* per target (30-34, 30-38, 30-40), a firing tile of its own, no chained bow lent (an archer at 30 owns a bow).
|
|
12
|
+
* - TWO SPARRING SERGEANTS, Harl (Combat 34) and Rourke (Combat 38), on the sparring yard's rules (bouts, tells, yield at one meter point):
|
|
13
|
+
* Strength and Weapon Mastery each paid only while below the sergeant's cap (38, then 40); a won bout writes a Ledger line under "yard".
|
|
14
|
+
* - THREE QUESTS from Fenwick the Quartermaster: The Long Lane, Fall In, The Iron Drill.
|
|
15
|
+
*
|
|
16
|
+
* Every number is a WORLD tile (x east, z south). Every XP, level and count here is a PLACEHOLDER for the balance pass (James, 2026-10-12:
|
|
17
|
+
* balance last). Nothing here is 41+: the top of every band is 40.
|
|
18
|
+
*/
|
|
19
|
+
import type { StoryQuestDef } from './storyQuests.js';
|
|
20
|
+
export declare const WAR_CAMP_DRILL_NAME = "War Camp Drill Ground";
|
|
21
|
+
/** The yard's inside (the fence stands one tile out of it on every side). */
|
|
22
|
+
export declare const WAR_CAMP_DRILL_BOX: {
|
|
23
|
+
readonly minX: 135;
|
|
24
|
+
readonly maxX: 146;
|
|
25
|
+
readonly minZ: 479;
|
|
26
|
+
readonly maxZ: 502;
|
|
27
|
+
};
|
|
28
|
+
/** The fence line: the box plus one tile. The whole of it is cleared and levelled with the camp (landmarks NORTHERN_CAMP_CENTER). */
|
|
29
|
+
export declare const WAR_CAMP_DRILL_FENCE_BOX: {
|
|
30
|
+
readonly minX: 134;
|
|
31
|
+
readonly maxX: 147;
|
|
32
|
+
readonly minZ: 478;
|
|
33
|
+
readonly maxZ: 503;
|
|
34
|
+
};
|
|
35
|
+
/** The gap in the west fence, on the camp hearth's row (NORTHERN_CAMP_CENTER.z = 490), and the cleared lane from the camp's east edge to it. */
|
|
36
|
+
export declare const WAR_CAMP_DRILL_GATE: {
|
|
37
|
+
readonly x: 134;
|
|
38
|
+
readonly minZ: 489;
|
|
39
|
+
readonly maxZ: 491;
|
|
40
|
+
};
|
|
41
|
+
export declare const WAR_CAMP_DRILL_LANE: {
|
|
42
|
+
readonly minX: 126;
|
|
43
|
+
readonly maxX: 133;
|
|
44
|
+
readonly minZ: 489;
|
|
45
|
+
readonly maxZ: 491;
|
|
46
|
+
};
|
|
47
|
+
/** Where a player is told to stand to start (just inside the gate). */
|
|
48
|
+
export declare const WAR_CAMP_DRILL_STAND: {
|
|
49
|
+
readonly x: 136;
|
|
50
|
+
readonly z: 490;
|
|
51
|
+
};
|
|
52
|
+
export declare function inWarCampDrill(x: number, z: number, pad?: number): boolean;
|
|
53
|
+
/** Is this tile in the cleared lane from the camp to the yard's gate? */
|
|
54
|
+
export declare function inWarCampDrillLane(x: number, z: number, pad?: number): boolean;
|
|
55
|
+
/** Distance in tiles from the fence box (0 inside it); the backend levels the ground within a few tiles of it. */
|
|
56
|
+
export declare function warCampDrillEdgeDistance(x: number, z: number): number;
|
|
57
|
+
export declare const WAR_CAMP_DUMMY_ID_PREFIX = "wcd-dummy-";
|
|
58
|
+
export type WarCampBand = {
|
|
59
|
+
min: number;
|
|
60
|
+
max: number;
|
|
61
|
+
xp: number;
|
|
62
|
+
};
|
|
63
|
+
/** Straw-and-post dummies pay Strength 20-30; iron-bound ones 30-40 (never past 40). XP a blow is a PLACEHOLDER. */
|
|
64
|
+
export declare const WAR_CAMP_DUMMIES: readonly {
|
|
65
|
+
id: string;
|
|
66
|
+
x: number;
|
|
67
|
+
z: number;
|
|
68
|
+
ring: 'post' | 'iron';
|
|
69
|
+
band: WarCampBand;
|
|
70
|
+
}[];
|
|
71
|
+
export declare function isWarCampDummyId(id: string | undefined | null): boolean;
|
|
72
|
+
/** The strength band of a War Camp dummy, or null when the id is not one (strengthDummyBand reads this). */
|
|
73
|
+
export declare function warCampDummyBand(id: string | undefined | null): WarCampBand | null;
|
|
74
|
+
export declare const WAR_CAMP_BUTT_ID_PREFIX = "wcd-butt-";
|
|
75
|
+
/** The firing line: every lane is shot from this row, the targets stand 16, 19 and 22 tiles south of it. */
|
|
76
|
+
export declare const WAR_CAMP_FIRING_Z = 480;
|
|
77
|
+
export type WarCampButt = {
|
|
78
|
+
id: string;
|
|
79
|
+
x: number;
|
|
80
|
+
z: number;
|
|
81
|
+
fx: number;
|
|
82
|
+
fz: number;
|
|
83
|
+
band: WarCampBand;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* One band per target (the Beacon Ledge's pattern), all open from Archery 30 so a quest's three-butt shoot step can be done at its gate:
|
|
87
|
+
* the near lane stops paying at 34, the middle at 38, the far one at 40, and the farther the lane the more a beat pays. A PLACEHOLDER.
|
|
88
|
+
*/
|
|
89
|
+
export declare const WAR_CAMP_BUTTS: readonly WarCampButt[];
|
|
90
|
+
export declare function warCampButtAt(x: number, z: number): WarCampButt | undefined;
|
|
91
|
+
export declare function isWarCampButtId(id: string | undefined | null): boolean;
|
|
92
|
+
/** The archery band of a War Camp butt, or null when the id is not one (the backend's archeryTargetBand reads this). */
|
|
93
|
+
export declare function warCampButtBand(id: string | undefined | null): WarCampBand | null;
|
|
94
|
+
/** What the drill says here (the customer's words, not the code's). */
|
|
95
|
+
export declare const WAR_CAMP_LINES: {
|
|
96
|
+
readonly dummyTooEarly: "These camp dummies are built for a harder swing than yours. Spar the oak dummies at Millbrook or the Capital sergeants until your Strength reaches the figure on the sign.";
|
|
97
|
+
readonly postCapped: "The straw-and-post dummies have nothing more to teach you. The iron-bound ones beside them do.";
|
|
98
|
+
readonly ironCapped: "The iron-bound dummies have nothing more to teach you. Take your strength to a real fight.";
|
|
99
|
+
readonly buttTooEarly: "The long lanes want a steadier draw than yours. Practise on the Beacon Ledge at Lantern Wake until your Archery reaches the figure on the sign.";
|
|
100
|
+
readonly buttCapped: "This lane has nothing more to teach you. Try the next one down the line, or a real target.";
|
|
101
|
+
readonly allButtsCapped: "The long lanes have nothing more to teach you. Find a real target.";
|
|
102
|
+
readonly buttStart: "You nock a practice arrow and draw on the far butt, a long way down the yard.";
|
|
103
|
+
};
|
|
104
|
+
/** Where the two sergeants stand (types sparringYard.ts YARD_SERGEANTS has their rules): between the dummies and the lanes. */
|
|
105
|
+
export declare const WAR_CAMP_SERGEANT_SPOTS: readonly {
|
|
106
|
+
name: string;
|
|
107
|
+
id: string;
|
|
108
|
+
x: number;
|
|
109
|
+
z: number;
|
|
110
|
+
faceX: number;
|
|
111
|
+
faceZ: number;
|
|
112
|
+
leash: number;
|
|
113
|
+
}[];
|
|
114
|
+
export type WarCampPiece = {
|
|
115
|
+
id: string;
|
|
116
|
+
kind: string;
|
|
117
|
+
style: string;
|
|
118
|
+
x: number;
|
|
119
|
+
z: number;
|
|
120
|
+
};
|
|
121
|
+
/** The fence: a palisade of the camp's own spears on every tile of the box's edge, but the gate gap in the west run. */
|
|
122
|
+
export declare function warCampDrillFence(): WarCampPiece[];
|
|
123
|
+
/**
|
|
124
|
+
* The yard's working pieces: the dummies and butts (real `yardprop` entities: the sparring and archery drill read them), a firing mark
|
|
125
|
+
* on every firing tile, a rack and a water barrel, the fire, and the yard's sign (read by the dummies and butts it stands for).
|
|
126
|
+
*/
|
|
127
|
+
export declare const WAR_CAMP_DRILL_STATIONS: readonly WarCampPiece[];
|
|
128
|
+
export declare const WAR_CAMP_QUEST_IDS: readonly ["warCampLongLane", "warCampFallIn", "warCampIronDrill"];
|
|
129
|
+
export type WarCampQuestId = (typeof WAR_CAMP_QUEST_IDS)[number];
|
|
130
|
+
export declare const WAR_CAMP_QUEST_COMBAT: Readonly<Record<WarCampQuestId, number>>;
|
|
131
|
+
export declare const WAR_CAMP_LANE_ARCHERY = 30;
|
|
132
|
+
export declare const WAR_CAMP_QUESTS: Readonly<Record<WarCampQuestId, StoryQuestDef>>;
|
|
133
|
+
/** The journal card text for each (quests.ts storyMeta). */
|
|
134
|
+
export declare const WAR_CAMP_META: Readonly<Record<WarCampQuestId, {
|
|
135
|
+
title: string;
|
|
136
|
+
description: string;
|
|
137
|
+
category: 'combat' | 'side' | 'skilling';
|
|
138
|
+
art: {
|
|
139
|
+
item: string;
|
|
140
|
+
} | {
|
|
141
|
+
npc: string;
|
|
142
|
+
};
|
|
143
|
+
}>>;
|
|
144
|
+
/** Where the giver is, for the quest guide's giver places (backend questGuide.ts GIVER_PLACES). */
|
|
145
|
+
export declare const WAR_CAMP_GIVER_PLACES: Readonly<Record<WarCampQuestId, string>>;
|
|
146
|
+
//# sourceMappingURL=warCampDrill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warCampDrill.d.ts","sourceRoot":"","sources":["../src/warCampDrill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAInE,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB;;;;;CAA0D,CAAC;AAC1F,qIAAqI;AACrI,eAAO,MAAM,wBAAwB;;;;;CAA0D,CAAC;AAChG,gJAAgJ;AAChJ,eAAO,MAAM,mBAAmB;;;;CAA4C,CAAC;AAC7E,eAAO,MAAM,mBAAmB;;;;;CAA0D,CAAC;AAC3F,uEAAuE;AACvE,eAAO,MAAM,oBAAoB;;;CAA8B,CAAC;AAEhE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,OAAO,CAGrE;AACD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,OAAO,CAGzE;AACD,kHAAkH;AAClH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrE;AAID,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,oHAAoH;AACpH,eAAO,MAAM,gBAAgB,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,EAOrH,CAAC;AACF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEvE;AACD,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAGlF;AAID,eAAO,MAAM,uBAAuB,cAAc,CAAC;AACnD,4GAA4G;AAC5G,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAC1G;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAIhD,CAAC;AACF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE3E;AACD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEtE;AACD,wHAAwH;AACxH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAGjF;AAED,uEAAuE;AACvE,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AAIX,+HAA+H;AAC/H,eAAO,MAAM,uBAAuB,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAG7I,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,wHAAwH;AACxH,wBAAgB,iBAAiB,IAAI,YAAY,EAAE,CAclD;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,YAAY,EAU1D,CAAC;AAIF,eAAO,MAAM,kBAAkB,mEAAoE,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAOjE,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAoE,CAAC;AAChJ,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAyG3E,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAmBrL,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAI1E,CAAC"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// ---- Where ---------------------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
export const WAR_CAMP_DRILL_NAME = 'War Camp Drill Ground';
|
|
3
|
+
/** The yard's inside (the fence stands one tile out of it on every side). */
|
|
4
|
+
export const WAR_CAMP_DRILL_BOX = { minX: 135, maxX: 146, minZ: 479, maxZ: 502 };
|
|
5
|
+
/** The fence line: the box plus one tile. The whole of it is cleared and levelled with the camp (landmarks NORTHERN_CAMP_CENTER). */
|
|
6
|
+
export const WAR_CAMP_DRILL_FENCE_BOX = { minX: 134, maxX: 147, minZ: 478, maxZ: 503 };
|
|
7
|
+
/** The gap in the west fence, on the camp hearth's row (NORTHERN_CAMP_CENTER.z = 490), and the cleared lane from the camp's east edge to it. */
|
|
8
|
+
export const WAR_CAMP_DRILL_GATE = { x: 134, minZ: 489, maxZ: 491 };
|
|
9
|
+
export const WAR_CAMP_DRILL_LANE = { minX: 126, maxX: 133, minZ: 489, maxZ: 491 };
|
|
10
|
+
/** Where a player is told to stand to start (just inside the gate). */
|
|
11
|
+
export const WAR_CAMP_DRILL_STAND = { x: 136, z: 490 };
|
|
12
|
+
export function inWarCampDrill(x, z, pad = 0) {
|
|
13
|
+
const b = WAR_CAMP_DRILL_FENCE_BOX;
|
|
14
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
15
|
+
}
|
|
16
|
+
/** Is this tile in the cleared lane from the camp to the yard's gate? */
|
|
17
|
+
export function inWarCampDrillLane(x, z, pad = 0) {
|
|
18
|
+
const b = WAR_CAMP_DRILL_LANE;
|
|
19
|
+
return x >= b.minX - pad && x <= b.maxX + pad && z >= b.minZ - pad && z <= b.maxZ + pad;
|
|
20
|
+
}
|
|
21
|
+
/** Distance in tiles from the fence box (0 inside it); the backend levels the ground within a few tiles of it. */
|
|
22
|
+
export function warCampDrillEdgeDistance(x, z) {
|
|
23
|
+
const b = WAR_CAMP_DRILL_FENCE_BOX;
|
|
24
|
+
return Math.hypot(Math.max(b.minX - x, 0, x - b.maxX), Math.max(b.minZ - z, 0, z - b.maxZ));
|
|
25
|
+
}
|
|
26
|
+
// ---- The dummies (Strength 20-40) -------------------------------------------------------------------------------------------------------
|
|
27
|
+
export const WAR_CAMP_DUMMY_ID_PREFIX = 'wcd-dummy-';
|
|
28
|
+
/** Straw-and-post dummies pay Strength 20-30; iron-bound ones 30-40 (never past 40). XP a blow is a PLACEHOLDER. */
|
|
29
|
+
export const WAR_CAMP_DUMMIES = [
|
|
30
|
+
{ id: 'wcd-dummy-post-1', x: 136, z: 481, ring: 'post', band: { min: 20, max: 30, xp: 11 } },
|
|
31
|
+
{ id: 'wcd-dummy-post-2', x: 138, z: 481, ring: 'post', band: { min: 20, max: 30, xp: 11 } },
|
|
32
|
+
{ id: 'wcd-dummy-post-3', x: 140, z: 481, ring: 'post', band: { min: 20, max: 30, xp: 11 } },
|
|
33
|
+
{ id: 'wcd-dummy-iron-1', x: 136, z: 484, ring: 'iron', band: { min: 30, max: 40, xp: 14 } },
|
|
34
|
+
{ id: 'wcd-dummy-iron-2', x: 138, z: 484, ring: 'iron', band: { min: 30, max: 40, xp: 14 } },
|
|
35
|
+
{ id: 'wcd-dummy-iron-3', x: 140, z: 484, ring: 'iron', band: { min: 30, max: 40, xp: 14 } },
|
|
36
|
+
];
|
|
37
|
+
export function isWarCampDummyId(id) {
|
|
38
|
+
return typeof id === 'string' && WAR_CAMP_DUMMIES.some((d) => d.id === id);
|
|
39
|
+
}
|
|
40
|
+
/** The strength band of a War Camp dummy, or null when the id is not one (strengthDummyBand reads this). */
|
|
41
|
+
export function warCampDummyBand(id) {
|
|
42
|
+
const d = WAR_CAMP_DUMMIES.find((x) => x.id === id);
|
|
43
|
+
return d ? { ...d.band } : null;
|
|
44
|
+
}
|
|
45
|
+
// ---- The long butts (Archery 30-40) -----------------------------------------------------------------------------------------------------
|
|
46
|
+
export const WAR_CAMP_BUTT_ID_PREFIX = 'wcd-butt-';
|
|
47
|
+
/** The firing line: every lane is shot from this row, the targets stand 16, 19 and 22 tiles south of it. */
|
|
48
|
+
export const WAR_CAMP_FIRING_Z = 480;
|
|
49
|
+
/**
|
|
50
|
+
* One band per target (the Beacon Ledge's pattern), all open from Archery 30 so a quest's three-butt shoot step can be done at its gate:
|
|
51
|
+
* the near lane stops paying at 34, the middle at 38, the far one at 40, and the farther the lane the more a beat pays. A PLACEHOLDER.
|
|
52
|
+
*/
|
|
53
|
+
export const WAR_CAMP_BUTTS = [
|
|
54
|
+
{ id: 'wcd-butt-1', x: 141, z: 496, fx: 141, fz: WAR_CAMP_FIRING_Z, band: { min: 30, max: 34, xp: 10 } },
|
|
55
|
+
{ id: 'wcd-butt-2', x: 143, z: 499, fx: 143, fz: WAR_CAMP_FIRING_Z, band: { min: 30, max: 38, xp: 12 } },
|
|
56
|
+
{ id: 'wcd-butt-3', x: 145, z: 502, fx: 145, fz: WAR_CAMP_FIRING_Z, band: { min: 30, max: 40, xp: 14 } },
|
|
57
|
+
];
|
|
58
|
+
export function warCampButtAt(x, z) {
|
|
59
|
+
return WAR_CAMP_BUTTS.find((b) => b.x === x && b.z === z);
|
|
60
|
+
}
|
|
61
|
+
export function isWarCampButtId(id) {
|
|
62
|
+
return typeof id === 'string' && WAR_CAMP_BUTTS.some((b) => b.id === id);
|
|
63
|
+
}
|
|
64
|
+
/** The archery band of a War Camp butt, or null when the id is not one (the backend's archeryTargetBand reads this). */
|
|
65
|
+
export function warCampButtBand(id) {
|
|
66
|
+
const b = WAR_CAMP_BUTTS.find((x) => x.id === id);
|
|
67
|
+
return b ? { ...b.band } : null;
|
|
68
|
+
}
|
|
69
|
+
/** What the drill says here (the customer's words, not the code's). */
|
|
70
|
+
export const WAR_CAMP_LINES = {
|
|
71
|
+
dummyTooEarly: 'These camp dummies are built for a harder swing than yours. Spar the oak dummies at Millbrook or the Capital sergeants until your Strength reaches the figure on the sign.',
|
|
72
|
+
postCapped: 'The straw-and-post dummies have nothing more to teach you. The iron-bound ones beside them do.',
|
|
73
|
+
ironCapped: 'The iron-bound dummies have nothing more to teach you. Take your strength to a real fight.',
|
|
74
|
+
buttTooEarly: 'The long lanes want a steadier draw than yours. Practise on the Beacon Ledge at Lantern Wake until your Archery reaches the figure on the sign.',
|
|
75
|
+
buttCapped: 'This lane has nothing more to teach you. Try the next one down the line, or a real target.',
|
|
76
|
+
allButtsCapped: 'The long lanes have nothing more to teach you. Find a real target.',
|
|
77
|
+
buttStart: 'You nock a practice arrow and draw on the far butt, a long way down the yard.',
|
|
78
|
+
};
|
|
79
|
+
// ---- The sergeants ----------------------------------------------------------------------------------------------------------------------
|
|
80
|
+
/** Where the two sergeants stand (types sparringYard.ts YARD_SERGEANTS has their rules): between the dummies and the lanes. */
|
|
81
|
+
export const WAR_CAMP_SERGEANT_SPOTS = [
|
|
82
|
+
{ name: 'Sergeant Harl', id: 'wcd-sergeant-harl', x: 137, z: 488, faceX: 137, faceZ: 484, leash: 1 },
|
|
83
|
+
{ name: 'Sergeant Rourke', id: 'wcd-sergeant-rourke', x: 140, z: 488, faceX: 140, faceZ: 484, leash: 1 },
|
|
84
|
+
];
|
|
85
|
+
/** The fence: a palisade of the camp's own spears on every tile of the box's edge, but the gate gap in the west run. */
|
|
86
|
+
export function warCampDrillFence() {
|
|
87
|
+
const b = WAR_CAMP_DRILL_FENCE_BOX;
|
|
88
|
+
const out = [];
|
|
89
|
+
for (let x = b.minX; x <= b.maxX; x++) {
|
|
90
|
+
out.push({ id: `wcd-fence-n-${x}`, kind: 'barricade', style: 'winter-spears', x, z: b.minZ });
|
|
91
|
+
out.push({ id: `wcd-fence-s-${x}`, kind: 'barricade', style: 'winter-spears', x, z: b.maxZ });
|
|
92
|
+
}
|
|
93
|
+
for (let z = b.minZ + 1; z <= b.maxZ - 1; z++) {
|
|
94
|
+
if (z < WAR_CAMP_DRILL_GATE.minZ || z > WAR_CAMP_DRILL_GATE.maxZ) {
|
|
95
|
+
out.push({ id: `wcd-fence-w-${z}`, kind: 'barricade', style: 'winter-spears', x: b.minX, z });
|
|
96
|
+
}
|
|
97
|
+
out.push({ id: `wcd-fence-e-${z}`, kind: 'barricade', style: 'winter-spears', x: b.maxX, z });
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The yard's working pieces: the dummies and butts (real `yardprop` entities: the sparring and archery drill read them), a firing mark
|
|
103
|
+
* on every firing tile, a rack and a water barrel, the fire, and the yard's sign (read by the dummies and butts it stands for).
|
|
104
|
+
*/
|
|
105
|
+
export const WAR_CAMP_DRILL_STATIONS = [
|
|
106
|
+
...WAR_CAMP_DUMMIES.map((d) => ({ id: d.id, kind: 'yardprop', style: 'dummy', x: d.x, z: d.z })),
|
|
107
|
+
...WAR_CAMP_BUTTS.map((b) => ({ id: b.id, kind: 'yardprop', style: 'butt', x: b.x, z: b.z })),
|
|
108
|
+
...WAR_CAMP_BUTTS.map((b, i) => ({ id: `wcd-line-${i + 1}`, kind: 'flowers', style: 'trainingline', x: b.fx, z: b.fz })),
|
|
109
|
+
{ id: 'wcd-rack', kind: 'yardprop', style: 'trainingrack', x: 136, z: 486 },
|
|
110
|
+
{ id: 'wcd-water', kind: 'yardprop', style: 'trainingwater', x: 136, z: 493 },
|
|
111
|
+
{ id: 'wcd-fire', kind: 'campfire', style: 'winter-cooking-fire', x: 139, z: 495 },
|
|
112
|
+
{ id: 'wcd-lantern-1', kind: 'lantern', style: 'winter-brazier', x: 138, z: 479 },
|
|
113
|
+
{ id: 'wcd-lantern-2', kind: 'lantern', style: 'winter-brazier', x: 145, z: 479 },
|
|
114
|
+
{ id: 'wcd-sign', kind: 'signpost', style: 'placard-ew-War Camp Drill: Strength 20-40, Archery 30-40, sergeants Combat 34+', x: 136, z: 487 },
|
|
115
|
+
];
|
|
116
|
+
// ---- Fenwick's drill quests ---------------------------------------------------------------------------------------------------------------
|
|
117
|
+
export const WAR_CAMP_QUEST_IDS = ['warCampLongLane', 'warCampFallIn', 'warCampIronDrill'];
|
|
118
|
+
const FENWICK = { kind: 'quartermaster', name: 'Fenwick' };
|
|
119
|
+
const YARD_AT = { x: WAR_CAMP_DRILL_STAND.x, z: WAR_CAMP_DRILL_STAND.z, label: WAR_CAMP_DRILL_NAME };
|
|
120
|
+
const COMBAT_CHOICE = ['strength', 'archery', 'precision'];
|
|
121
|
+
const GIVER_TEXT = 'Fenwick the Quartermaster keeps the trading post in the garrison camp north of the Northern Gate; the drill ground is the fenced yard east of the camp.';
|
|
122
|
+
export const WAR_CAMP_QUEST_COMBAT = { warCampLongLane: 30, warCampFallIn: 34, warCampIronDrill: 38 };
|
|
123
|
+
export const WAR_CAMP_LANE_ARCHERY = 30;
|
|
124
|
+
export const WAR_CAMP_QUESTS = {
|
|
125
|
+
warCampLongLane: {
|
|
126
|
+
giver: FENWICK,
|
|
127
|
+
requires: {
|
|
128
|
+
combat: WAR_CAMP_QUEST_COMBAT.warCampLongLane,
|
|
129
|
+
skill: { skill: 'archery', level: WAR_CAMP_LANE_ARCHERY },
|
|
130
|
+
silent: true,
|
|
131
|
+
refuse: `The long lanes want a steady draw. Come back with Combat ${WAR_CAMP_QUEST_COMBAT.warCampLongLane} and Archery ${WAR_CAMP_LANE_ARCHERY}.`,
|
|
132
|
+
},
|
|
133
|
+
offer: "I had the east side of the camp fenced for drilling: dummies for the arm, long butts for the eye. The lads shoot like they're feeding chickens. Put an arrow in all three of the long butts, nearest to farthest, and show them what a bow is for.",
|
|
134
|
+
accept: 'The drill ground is the fenced yard east of the camp. Stand on the firing marks along its north wall (the camp gate is on its west side) and click each long butt: sixteen, nineteen and twenty-two tiles down the yard.',
|
|
135
|
+
decline: 'Then the butts stay clean and the lads stay bad.',
|
|
136
|
+
steps: [
|
|
137
|
+
{
|
|
138
|
+
kind: 'shoot',
|
|
139
|
+
targets: WAR_CAMP_BUTTS.map((b) => b.id),
|
|
140
|
+
qty: WAR_CAMP_BUTTS.length,
|
|
141
|
+
targetLabel: 'Butt',
|
|
142
|
+
label: 'Shoot all three long butts',
|
|
143
|
+
hint: "In the War Camp's drill ground, stand on a firing mark on the north wall and click a long butt. The farther the lane the longer it keeps teaching.",
|
|
144
|
+
notices: [
|
|
145
|
+
'The arrow thuds into the near butt. Sixteen tiles of cold air and it flew true. One.',
|
|
146
|
+
'The second butt takes it low. Nineteen tiles, and the wind pushes. Two.',
|
|
147
|
+
'The far butt shudders. Twenty-two tiles: that is a long way to be right. Three.',
|
|
148
|
+
],
|
|
149
|
+
at: YARD_AT,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
kind: 'talk',
|
|
153
|
+
npc: FENWICK,
|
|
154
|
+
label: 'Tell Fenwick the butts are holed',
|
|
155
|
+
hint: 'Fenwick keeps the trading post in the garrison camp, west of the drill ground.',
|
|
156
|
+
say: "All three? Ha. The lads will want to know who did that. Tell them nothing, and let them wonder.",
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
done: 'Three holes in three butts. The lanes are yours whenever you like, and the lads can watch and learn.',
|
|
160
|
+
after: 'The long lanes are quiet. I like them quiet.',
|
|
161
|
+
rewards: { coins: 700, xp: { explorer: 2400, archery: 1500 } },
|
|
162
|
+
},
|
|
163
|
+
warCampFallIn: {
|
|
164
|
+
giver: FENWICK,
|
|
165
|
+
requires: {
|
|
166
|
+
quest: 'warCampLongLane',
|
|
167
|
+
combat: WAR_CAMP_QUEST_COMBAT.warCampFallIn,
|
|
168
|
+
silent: true,
|
|
169
|
+
refuse: `Sergeant Harl does not take a recruit under Combat ${WAR_CAMP_QUEST_COMBAT.warCampFallIn}, and he wants to see the long lanes done first.`,
|
|
170
|
+
},
|
|
171
|
+
offer: "Now the sergeants. Harl drills the east side and he's the better of the two for a first bout: he shows his stance, mostly. Win a bout off him, make him yield, and I'll know you can read a man and not only a butt.",
|
|
172
|
+
accept: 'Sergeant Harl stands in the drill ground, between the dummies and the long lanes (Combat 34). Open his menu, begin a bout, and pick Strike, Guard or Feint against his tell.',
|
|
173
|
+
decline: "Then Harl stays unbeaten, and he's unbearable about it.",
|
|
174
|
+
steps: [
|
|
175
|
+
{
|
|
176
|
+
kind: 'bout',
|
|
177
|
+
marks: ['yard:sergeant-harl'],
|
|
178
|
+
boutLabel: 'Bout',
|
|
179
|
+
label: 'Win a bout against Sergeant Harl',
|
|
180
|
+
hint: 'Spar Sergeant Harl in the War Camp drill ground (Combat 34) and make him yield.',
|
|
181
|
+
at: YARD_AT,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
kind: 'talk',
|
|
185
|
+
npc: FENWICK,
|
|
186
|
+
label: 'Tell Fenwick Harl yielded',
|
|
187
|
+
hint: 'Fenwick keeps the trading post in the garrison camp, west of the drill ground.',
|
|
188
|
+
say: "Harl yielded? To you? I'll pour him a drink and take it from his pay.",
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
done: "Harl yielded. Good. Rourke is next, and Rourke does not play fair.",
|
|
192
|
+
after: 'Harl will not look at you, and I take that for respect.',
|
|
193
|
+
rewards: { coins: 900, xp: { explorer: 2800 }, choiceXp: { qty: 1800, skills: COMBAT_CHOICE } },
|
|
194
|
+
},
|
|
195
|
+
warCampIronDrill: {
|
|
196
|
+
giver: FENWICK,
|
|
197
|
+
requires: {
|
|
198
|
+
quest: 'warCampFallIn',
|
|
199
|
+
combat: WAR_CAMP_QUEST_COMBAT.warCampIronDrill,
|
|
200
|
+
silent: true,
|
|
201
|
+
refuse: `Rourke asks Combat ${WAR_CAMP_QUEST_COMBAT.warCampIronDrill}, and Harl has to yield to you first.`,
|
|
202
|
+
},
|
|
203
|
+
offer: "Rourke is the last of my sergeants and the worst. He lies about his stance as often as he tells the truth, and he's never yielded to a recruit. Do it, and the camp has nothing left to teach you.",
|
|
204
|
+
accept: 'Sergeant Rourke stands beside Harl in the drill ground (Combat 38). He lies about his tell about half the time: expect the opposite more than you like.',
|
|
205
|
+
decline: 'Then Rourke goes on being insufferable.',
|
|
206
|
+
steps: [
|
|
207
|
+
{
|
|
208
|
+
kind: 'bout',
|
|
209
|
+
marks: ['yard:sergeant-rourke'],
|
|
210
|
+
boutLabel: 'Bout',
|
|
211
|
+
label: 'Win a bout against Sergeant Rourke',
|
|
212
|
+
hint: 'Spar Sergeant Rourke in the War Camp drill ground (Combat 38) and make him yield.',
|
|
213
|
+
at: YARD_AT,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
kind: 'talk',
|
|
217
|
+
npc: FENWICK,
|
|
218
|
+
label: 'Tell Fenwick Rourke yielded',
|
|
219
|
+
hint: 'Fenwick keeps the trading post in the garrison camp, west of the drill ground.',
|
|
220
|
+
say: 'Rourke yielded. I did not think I would see it. That is the camp drilled out.',
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
done: 'The iron drill is done. Pick where you want the lesson to count.',
|
|
224
|
+
after: 'Rourke has taken up chess. He says it is less tiring.',
|
|
225
|
+
rewards: { coins: 1200, xp: { explorer: 3400 }, choiceXp: { qty: 2600, skills: COMBAT_CHOICE } },
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
/** The journal card text for each (quests.ts storyMeta). */
|
|
229
|
+
export const WAR_CAMP_META = {
|
|
230
|
+
warCampLongLane: {
|
|
231
|
+
title: 'The Long Lane',
|
|
232
|
+
description: `Fenwick's drill ground: shoot all three long butts, sixteen to twenty-two tiles down the yard. Needs Combat ${WAR_CAMP_QUEST_COMBAT.warCampLongLane} and Archery ${WAR_CAMP_LANE_ARCHERY}.`,
|
|
233
|
+
category: 'skilling',
|
|
234
|
+
art: { npc: 'quartermaster' },
|
|
235
|
+
},
|
|
236
|
+
warCampFallIn: {
|
|
237
|
+
title: 'Fall In',
|
|
238
|
+
description: `Win a bout against Sergeant Harl in the War Camp drill ground. Needs The Long Lane and Combat ${WAR_CAMP_QUEST_COMBAT.warCampFallIn}.`,
|
|
239
|
+
category: 'combat',
|
|
240
|
+
art: { npc: 'quartermaster' },
|
|
241
|
+
},
|
|
242
|
+
warCampIronDrill: {
|
|
243
|
+
title: 'The Iron Drill',
|
|
244
|
+
description: `Win a bout against Sergeant Rourke in the War Camp drill ground. Needs Fall In and Combat ${WAR_CAMP_QUEST_COMBAT.warCampIronDrill}.`,
|
|
245
|
+
category: 'combat',
|
|
246
|
+
art: { npc: 'quartermaster' },
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
/** Where the giver is, for the quest guide's giver places (backend questGuide.ts GIVER_PLACES). */
|
|
250
|
+
export const WAR_CAMP_GIVER_PLACES = {
|
|
251
|
+
warCampLongLane: GIVER_TEXT,
|
|
252
|
+
warCampFallIn: GIVER_TEXT,
|
|
253
|
+
warCampIronDrill: GIVER_TEXT,
|
|
254
|
+
};
|
|
255
|
+
//# sourceMappingURL=warCampDrill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warCampDrill.js","sourceRoot":"","sources":["../src/warCampDrill.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreadwood-types/types",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.307",
|
|
4
4
|
"description": "Public wire protocol and client-safe constants for Dreadwoods",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "tsc -p tsconfig.json",
|
|
25
|
-
"test": "node --test scripts/animation-test.mjs scripts/starter-jobs-test.mjs scripts/cooking-nudge-test.mjs scripts/surface-chart-test.mjs scripts/south-expansion-test.mjs scripts/rudd-test.mjs scripts/cave-map-test.mjs scripts/birch-combat-test.mjs scripts/fort-rook-bosses-test.mjs scripts/bounty-first-test.mjs scripts/bounty-high-tiers-test.mjs scripts/running-test.mjs scripts/energy-test.mjs scripts/starter-town-test.mjs scripts/starter-expansion-test.mjs scripts/five-arches-test.mjs scripts/landing-test.mjs scripts/cove-ship-test.mjs scripts/south-fields-quests-test.mjs scripts/south-fields-errands-test.mjs scripts/arcane-lands-test.mjs scripts/fair-folk-test.mjs scripts/fair-contests-test.mjs scripts/missing-shipment-test.mjs scripts/world-boss-ring-test.mjs scripts/ringstone-fight-test.mjs scripts/highstone-test.mjs scripts/fenstone-test.mjs scripts/brackenstone-test.mjs scripts/lair-awakening-test.mjs scripts/hopewood-wildlife-test.mjs scripts/hollin-wildlife-test.mjs scripts/hopewood-quests-test.mjs scripts/western-train-test.mjs scripts/moving-train-test.mjs scripts/train-circuit-test.mjs scripts/forge-halt-test.mjs scripts/forge-polish-test.mjs scripts/western-station-test.mjs scripts/hollin-quests-test.mjs scripts/western-lost-supplies-test.mjs scripts/western-herbal-remedies-test.mjs scripts/western-field-shrine-test.mjs scripts/western-kingdoms-test.mjs scripts/lantern-wake-test.mjs scripts/brindlecross-test.mjs scripts/brindlecross-quest-test.mjs scripts/greenwood-wilds-test.mjs scripts/greenwood-wildlife-test.mjs scripts/greenwood-quest-test.mjs scripts/dwarf-road-wildlife-test.mjs scripts/dwarf-road-test.mjs scripts/riversend-test.mjs scripts/riversend-content-test.mjs scripts/gatewarden-rounds-test.mjs scripts/boss-e8-test.mjs scripts/lantern-wake-town-test.mjs scripts/world-regions-test.mjs scripts/copse-wildlife-test.mjs scripts/copse-quests-test.mjs scripts/marches-wildlife-test.mjs scripts/marches-quests-test.mjs scripts/train-seats-test.mjs scripts/lantern-wake-gallery-test.mjs scripts/lantern-wake-wildlife-test.mjs scripts/lantern-wake-quest-test.mjs scripts/dwarf-hold-test.mjs scripts/western-line-texts-test.mjs scripts/xp-test.mjs scripts/bank-test.mjs scripts/timed-access-test.mjs scripts/ground-items-test.mjs scripts/name-filter-test.mjs scripts/woodwork-logs-test.mjs scripts/area-gates-test.mjs scripts/arcane-realms-test.mjs scripts/frozen-dungeons-test.mjs scripts/deep-seam-test.mjs scripts/mining-quests-test.mjs scripts/long-winter-test.mjs scripts/roster-delta-test.mjs scripts/bow-ladder-test.mjs scripts/lantern-wake-ledge-test.mjs scripts/explorer-ledger-test.mjs scripts/ore-smithing-test.mjs scripts/red-waste-test.mjs scripts/red-waste-folk-test.mjs scripts/daily-hooks-test.mjs scripts/sparring-yard-test.mjs scripts/t16-siege-floe-beach-test.mjs scripts/mammoth-road-test.mjs scripts/mammoth-road-test.mjs scripts/gulls-map-test.mjs scripts/gulls-rook-test.mjs scripts/ride-the-line-test.mjs scripts/gallowmere-test.mjs scripts/gallowmere-content-test.mjs scripts/fishing-derby-test.mjs scripts/sled-run-test.mjs scripts/eastern-marches-a-test.mjs scripts/windward-chalkshell-test.mjs scripts/gullhook-head-test.mjs scripts/webfen-test.mjs scripts/safe-pockets-test.mjs scripts/gallowmere-extras-test.mjs scripts/t53-high-ledge-skill-quests-test.mjs scripts/camp-traders-recommended-test.mjs scripts/west-coast-test.mjs scripts/heartwood-hunt-test.mjs scripts/ironjaw-watch-test.mjs scripts/calverton-extension-test.mjs scripts/gravewatch-test.mjs scripts/tide-of-blood-test.mjs scripts/north-wilds-test.mjs scripts/toll-road-test.mjs scripts/capital-quests-test.mjs scripts/capital-shops-test.mjs scripts/lean-wanted-test.mjs scripts/delvers-ladder-test.mjs scripts/last-signal-test.mjs scripts/sea-salt-test.mjs scripts/dwarf-hold-hub-test.mjs scripts/field-guide-test.mjs scripts/titles-test.mjs scripts/dwarf-hold-hub-test.mjs scripts/voyages-test.mjs scripts/weekly-hunt-test.mjs scripts/west-branches-test.mjs scripts/skill-fill-test.mjs scripts/battlefield-test.mjs",
|
|
25
|
+
"test": "node --test scripts/animation-test.mjs scripts/starter-jobs-test.mjs scripts/cooking-nudge-test.mjs scripts/surface-chart-test.mjs scripts/south-expansion-test.mjs scripts/rudd-test.mjs scripts/cave-map-test.mjs scripts/birch-combat-test.mjs scripts/fort-rook-bosses-test.mjs scripts/bounty-first-test.mjs scripts/bounty-high-tiers-test.mjs scripts/running-test.mjs scripts/energy-test.mjs scripts/starter-town-test.mjs scripts/starter-expansion-test.mjs scripts/five-arches-test.mjs scripts/landing-test.mjs scripts/cove-ship-test.mjs scripts/south-fields-quests-test.mjs scripts/south-fields-errands-test.mjs scripts/arcane-lands-test.mjs scripts/fair-folk-test.mjs scripts/fair-contests-test.mjs scripts/missing-shipment-test.mjs scripts/world-boss-ring-test.mjs scripts/ringstone-fight-test.mjs scripts/highstone-test.mjs scripts/fenstone-test.mjs scripts/brackenstone-test.mjs scripts/lair-awakening-test.mjs scripts/hopewood-wildlife-test.mjs scripts/hollin-wildlife-test.mjs scripts/hopewood-quests-test.mjs scripts/western-train-test.mjs scripts/moving-train-test.mjs scripts/train-circuit-test.mjs scripts/forge-halt-test.mjs scripts/forge-polish-test.mjs scripts/western-station-test.mjs scripts/hollin-quests-test.mjs scripts/western-lost-supplies-test.mjs scripts/western-herbal-remedies-test.mjs scripts/western-field-shrine-test.mjs scripts/western-kingdoms-test.mjs scripts/lantern-wake-test.mjs scripts/brindlecross-test.mjs scripts/brindlecross-quest-test.mjs scripts/greenwood-wilds-test.mjs scripts/greenwood-wildlife-test.mjs scripts/greenwood-quest-test.mjs scripts/dwarf-road-wildlife-test.mjs scripts/dwarf-road-test.mjs scripts/riversend-test.mjs scripts/riversend-content-test.mjs scripts/gatewarden-rounds-test.mjs scripts/boss-e8-test.mjs scripts/lantern-wake-town-test.mjs scripts/world-regions-test.mjs scripts/copse-wildlife-test.mjs scripts/copse-quests-test.mjs scripts/marches-wildlife-test.mjs scripts/marches-quests-test.mjs scripts/train-seats-test.mjs scripts/lantern-wake-gallery-test.mjs scripts/lantern-wake-wildlife-test.mjs scripts/lantern-wake-quest-test.mjs scripts/dwarf-hold-test.mjs scripts/western-line-texts-test.mjs scripts/xp-test.mjs scripts/bank-test.mjs scripts/timed-access-test.mjs scripts/ground-items-test.mjs scripts/name-filter-test.mjs scripts/woodwork-logs-test.mjs scripts/area-gates-test.mjs scripts/arcane-realms-test.mjs scripts/frozen-dungeons-test.mjs scripts/deep-seam-test.mjs scripts/mining-quests-test.mjs scripts/long-winter-test.mjs scripts/roster-delta-test.mjs scripts/bow-ladder-test.mjs scripts/lantern-wake-ledge-test.mjs scripts/explorer-ledger-test.mjs scripts/ore-smithing-test.mjs scripts/red-waste-test.mjs scripts/red-waste-folk-test.mjs scripts/daily-hooks-test.mjs scripts/sparring-yard-test.mjs scripts/t16-siege-floe-beach-test.mjs scripts/mammoth-road-test.mjs scripts/mammoth-road-test.mjs scripts/gulls-map-test.mjs scripts/gulls-rook-test.mjs scripts/ride-the-line-test.mjs scripts/gallowmere-test.mjs scripts/gallowmere-content-test.mjs scripts/fishing-derby-test.mjs scripts/sled-run-test.mjs scripts/eastern-marches-a-test.mjs scripts/windward-chalkshell-test.mjs scripts/gullhook-head-test.mjs scripts/webfen-test.mjs scripts/safe-pockets-test.mjs scripts/gallowmere-extras-test.mjs scripts/t53-high-ledge-skill-quests-test.mjs scripts/camp-traders-recommended-test.mjs scripts/west-coast-test.mjs scripts/heartwood-hunt-test.mjs scripts/ironjaw-watch-test.mjs scripts/calverton-extension-test.mjs scripts/gravewatch-test.mjs scripts/tide-of-blood-test.mjs scripts/north-wilds-test.mjs scripts/toll-road-test.mjs scripts/capital-quests-test.mjs scripts/capital-shops-test.mjs scripts/lean-wanted-test.mjs scripts/delvers-ladder-test.mjs scripts/last-signal-test.mjs scripts/sea-salt-test.mjs scripts/dwarf-hold-hub-test.mjs scripts/field-guide-test.mjs scripts/titles-test.mjs scripts/dwarf-hold-hub-test.mjs scripts/voyages-test.mjs scripts/weekly-hunt-test.mjs scripts/west-branches-test.mjs scripts/skill-fill-test.mjs scripts/battlefield-test.mjs scripts/war-camp-drill-test.mjs",
|
|
26
26
|
"dev": "tsc -p tsconfig.json --watch",
|
|
27
27
|
"prepare": "npm run build",
|
|
28
28
|
"prepublishOnly": "npm run build"
|