@dreadwood-types/types 0.1.308 → 0.1.310
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/attackableNpcs.d.ts.map +1 -1
- package/dist/attackableNpcs.js +5 -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 +7 -1
- package/dist/bossSignatures.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/expandedContracts.d.ts.map +1 -1
- package/dist/expandedContracts.js +2 -1
- package/dist/expandedContracts.js.map +1 -1
- package/dist/fairFolk.d.ts +5 -1
- package/dist/fairFolk.d.ts.map +1 -1
- package/dist/fairFolk.js +19 -0
- package/dist/fairFolk.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/knuckleboneIsles.d.ts +206 -0
- package/dist/knuckleboneIsles.d.ts.map +1 -0
- package/dist/knuckleboneIsles.js +177 -0
- package/dist/knuckleboneIsles.js.map +1 -0
- package/dist/knuckleboneIslesQuest.d.ts +37 -0
- package/dist/knuckleboneIslesQuest.d.ts.map +1 -0
- package/dist/knuckleboneIslesQuest.js +257 -0
- package/dist/knuckleboneIslesQuest.js.map +1 -0
- package/dist/knuckleboneIslesWildlife.d.ts +14 -0
- package/dist/knuckleboneIslesWildlife.d.ts.map +1 -0
- package/dist/knuckleboneIslesWildlife.js +101 -0
- package/dist/knuckleboneIslesWildlife.js.map +1 -0
- package/dist/legacy.d.ts +3 -0
- package/dist/legacy.d.ts.map +1 -1
- package/dist/legacy.js +3 -0
- package/dist/legacy.js.map +1 -1
- 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 +15 -0
- package/dist/storyQuests.js.map +1 -1
- package/dist/westBranchQuests.d.ts.map +1 -1
- package/dist/westBranchQuests.js +3 -2
- package/dist/westBranchQuests.js.map +1 -1
- package/dist/westBranches.d.ts.map +1 -1
- package/dist/westBranches.js +7 -5
- package/dist/westBranches.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { branchFrame } from './westBranch.js';
|
|
2
|
+
import { REDCLAY_X0, REDCLAY_Z0 } from './redclayHook.js';
|
|
3
|
+
export const KNUCKLEBONE_NAME = 'The Knucklebone Isles';
|
|
4
|
+
export const KNUCKLEBONE_ID = 'knucklebone';
|
|
5
|
+
export const KNUCKLEBONE_X0 = 2668;
|
|
6
|
+
export const KNUCKLEBONE_Z0 = 60;
|
|
7
|
+
const F = branchFrame(KNUCKLEBONE_X0, KNUCKLEBONE_Z0);
|
|
8
|
+
export const kb = F.at;
|
|
9
|
+
const piece = (id, model, facing, lx, lz, extra = {}) => ({
|
|
10
|
+
id: `kb-${id}`, model, facing, ...kb(lx, lz), ...extra,
|
|
11
|
+
});
|
|
12
|
+
export const KNUCKLEBONE_PIECES = [
|
|
13
|
+
// The Landing Isle: Nessa's hut, nets, crates, barrels, lanterns, the little jetty.
|
|
14
|
+
piece('landing-hut', 'shorehut', 'e', 40, 392),
|
|
15
|
+
piece('landing-nets', 'hbnetrack', 's', 46, 402),
|
|
16
|
+
piece('landing-crates', 'hbcrates', 's', 50, 384),
|
|
17
|
+
piece('landing-barrels', 'evstorebarrels', 's', 50, 410),
|
|
18
|
+
piece('landing-lantern-1', 'townlantern1x1', 's', 24, 384),
|
|
19
|
+
piece('landing-lantern-2', 'townlantern1x1', 's', 24, 402),
|
|
20
|
+
piece('landing-jetty', 'blackwakejettyshort', 'w', 6, 396),
|
|
21
|
+
// Wreckers' Rest: the wreck on the rocks, Tess's camp and crates, bones and stakes.
|
|
22
|
+
piece('rest-wreck', 'wreckedboat', 'e', 12, 270),
|
|
23
|
+
piece('rest-camp', 'evforestercamp', 's', 22, 296),
|
|
24
|
+
piece('rest-camp-crates', 'hbsupplycrates', 's', 28, 304),
|
|
25
|
+
piece('rest-stake', 'skullstake', 's', 46, 250),
|
|
26
|
+
piece('rest-lantern', 'townlantern1x1', 's', 30, 286),
|
|
27
|
+
// The Five Bells: the beacon tower, the keeper's hut, a rope coil and lanterns.
|
|
28
|
+
piece('bells-tower', 'lwbeacontower', 's', 40, 160),
|
|
29
|
+
piece('bells-hut', 'shorehut', 'w', 22, 172),
|
|
30
|
+
piece('bells-rope', 'ropecoil', 's', 30, 178),
|
|
31
|
+
piece('bells-lantern-1', 'townlantern1x1', 's', 44, 192),
|
|
32
|
+
piece('bells-lantern-2', 'townlantern1x1', 's', 20, 150),
|
|
33
|
+
// Skull Isle: skull stakes, the raiders' camp, a wreck, tusks and a watch tower.
|
|
34
|
+
piece('skull-stake-1', 'skullstake', 's', 24, 42),
|
|
35
|
+
piece('skull-stake-2', 'skullstake', 's', 48, 42),
|
|
36
|
+
piece('skull-stake-3', 'skullstake', 's', 28, 76),
|
|
37
|
+
piece('skull-tusks', 'bonetusks', 's', 30, 58),
|
|
38
|
+
piece('skull-camp', 'evforestercamp', 's', 46, 62),
|
|
39
|
+
piece('skull-crates', 'hbsupplycrates', 's', 40, 68),
|
|
40
|
+
piece('skull-tower', 'hcwatchtower', 's', 46, 26),
|
|
41
|
+
// Rope posts at each bridge.
|
|
42
|
+
piece('bridge-rope-1', 'ropecoil', 's', 32, 336),
|
|
43
|
+
piece('bridge-rope-2', 'ropecoil', 's', 32, 214),
|
|
44
|
+
piece('bridge-rope-3', 'ropecoil', 's', 32, 104),
|
|
45
|
+
];
|
|
46
|
+
/** The quest props (knuckleboneIslesQuest.ts): the wreck's three crates, the three dig marks and the chest, the five bells. */
|
|
47
|
+
export const KB_PROP = { crate: 'kbcrate', dig: 'kbdig', chest: 'kbchest', bell: 'kbbell' };
|
|
48
|
+
const qp = (id, prop, variant, lx, lz) => ({ id: `kb-quest-${id}`, ...kb(lx, lz), style: `${prop}:${variant}` });
|
|
49
|
+
export const KB_CRATE_A = qp('crate-a', KB_PROP.crate, 'a', 22, 280);
|
|
50
|
+
export const KB_CRATE_B = qp('crate-b', KB_PROP.crate, 'b', 24, 262);
|
|
51
|
+
export const KB_CRATE_C = qp('crate-c', KB_PROP.crate, 'c', 52, 296);
|
|
52
|
+
export const KB_DIG_1 = qp('dig-1', KB_PROP.dig, '1', 18, 312);
|
|
53
|
+
export const KB_DIG_2 = qp('dig-2', KB_PROP.dig, '2', 50, 240);
|
|
54
|
+
export const KB_DIG_3 = qp('dig-3', KB_PROP.dig, '3', 34, 258);
|
|
55
|
+
export const KB_CHEST = qp('chest', KB_PROP.chest, 'hoard', 54, 274);
|
|
56
|
+
export const KB_BELL_1 = qp('bell-1', KB_PROP.bell, '1', 24, 140);
|
|
57
|
+
export const KB_BELL_2 = qp('bell-2', KB_PROP.bell, '2', 40, 134);
|
|
58
|
+
export const KB_BELL_3 = qp('bell-3', KB_PROP.bell, '3', 52, 150);
|
|
59
|
+
export const KB_BELL_4 = qp('bell-4', KB_PROP.bell, '4', 46, 178);
|
|
60
|
+
export const KB_BELL_5 = qp('bell-5', KB_PROP.bell, '5', 24, 188);
|
|
61
|
+
export const KNUCKLEBONE_QUEST_PROPS = [KB_CRATE_A, KB_CRATE_B, KB_CRATE_C, KB_DIG_1, KB_DIG_2, KB_DIG_3, KB_CHEST, KB_BELL_1, KB_BELL_2, KB_BELL_3, KB_BELL_4, KB_BELL_5];
|
|
62
|
+
export const KNUCKLEBONE_STANDS = {
|
|
63
|
+
landing: { ...kb(16, 392) },
|
|
64
|
+
rest: { ...kb(36, 296) },
|
|
65
|
+
bells: { ...kb(36, 150) },
|
|
66
|
+
skull: { ...kb(36, 50) },
|
|
67
|
+
};
|
|
68
|
+
export const KNUCKLEBONE_STAND = KNUCKLEBONE_STANDS.landing;
|
|
69
|
+
/** The short boat ride: a skiff on the Redclay Hook's inner bay (its east shore, by the jetties) and the Landing Isle's skiff back. Same region: no cover. */
|
|
70
|
+
export const KNUCKLEBONE_FERRY_BAY = { id: 'wb-ferry-kb-bay', kind: 'caveentrance', x: REDCLAY_X0 + 99, z: REDCLAY_Z0 + 176, style: 'hbrowboat-w' };
|
|
71
|
+
export const KNUCKLEBONE_FERRY_BAY_LANDING = { x: REDCLAY_X0 + 102, z: REDCLAY_Z0 + 176 };
|
|
72
|
+
export const KNUCKLEBONE_FERRY_ISLE = { id: 'wb-ferry-kb-isle', ...kb(10, 392), kind: 'caveentrance', style: 'hbrowboat-w' };
|
|
73
|
+
export const KNUCKLEBONE_FERRIES = [
|
|
74
|
+
{
|
|
75
|
+
id: KNUCKLEBONE_FERRY_BAY.id, x: KNUCKLEBONE_FERRY_BAY.x, z: KNUCKLEBONE_FERRY_BAY.z, style: KNUCKLEBONE_FERRY_BAY.style, destX: KNUCKLEBONE_STANDS.landing.x, destZ: KNUCKLEBONE_STANDS.landing.z,
|
|
76
|
+
name: 'Skiff to the Knucklebone Isles', label: 'Row out to the Knucklebone Isles',
|
|
77
|
+
text: 'You push the skiff off the bay beach and row east, out past the headland, with the gulls wheeling over the water. The Knucklebone Isles: levels 16 to 28.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: KNUCKLEBONE_FERRY_ISLE.id, x: KNUCKLEBONE_FERRY_ISLE.x, z: KNUCKLEBONE_FERRY_ISLE.z, style: KNUCKLEBONE_FERRY_ISLE.style, destX: KNUCKLEBONE_FERRY_BAY_LANDING.x, destZ: KNUCKLEBONE_FERRY_BAY_LANDING.z,
|
|
81
|
+
name: 'Skiff back to the Redclay Hook', label: 'Row back to the Redclay Hook',
|
|
82
|
+
text: 'You row back west with the tide behind you. The Redclay Hook rises out of the haze, kiln smoke and all.',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
export const KNUCKLEBONE_LAYOUT = {
|
|
86
|
+
id: 'knucklebone',
|
|
87
|
+
name: KNUCKLEBONE_NAME,
|
|
88
|
+
x0: KNUCKLEBONE_X0,
|
|
89
|
+
z0: KNUCKLEBONE_Z0,
|
|
90
|
+
box: F.box(0, 66, 0, 440),
|
|
91
|
+
groundHeight: 3,
|
|
92
|
+
beachHeights: [1, 2],
|
|
93
|
+
land: [
|
|
94
|
+
// The four islands, south to north: the Landing Isle, Wreckers' Rest, the Five Bells, Skull Isle.
|
|
95
|
+
[[14, 360], [40, 352], [58, 364], [62, 396], [56, 424], [34, 436], [14, 424], [8, 392]],
|
|
96
|
+
[[12, 236], [44, 228], [62, 244], [64, 290], [56, 320], [30, 326], [10, 306], [6, 266]],
|
|
97
|
+
[[16, 120], [44, 112], [60, 128], [62, 170], [52, 198], [28, 204], [12, 184], [8, 146]],
|
|
98
|
+
[[14, 20], [40, 12], [58, 26], [62, 60], [50, 90], [26, 92], [10, 70], [8, 40]],
|
|
99
|
+
// The rope bridges between them.
|
|
100
|
+
[[30, 318], [42, 318], [42, 358], [30, 358]],
|
|
101
|
+
[[30, 196], [42, 196], [42, 234], [30, 234]],
|
|
102
|
+
[[28, 86], [40, 86], [40, 120], [28, 120]],
|
|
103
|
+
],
|
|
104
|
+
holes: [],
|
|
105
|
+
attach: [],
|
|
106
|
+
paths: [
|
|
107
|
+
{ id: 'landing-road', w: 2, pts: F.pts([[16, 392], [34, 392], [36, 360]]) },
|
|
108
|
+
{ id: 'bridge-1', w: 2, pts: F.pts([[36, 360], [36, 340], [36, 318]]) },
|
|
109
|
+
{ id: 'rest-road', w: 2, pts: F.pts([[36, 318], [36, 296], [36, 270], [36, 236]]) },
|
|
110
|
+
{ id: 'bridge-2', w: 2, pts: F.pts([[36, 236], [36, 216], [36, 198]]) },
|
|
111
|
+
{ id: 'bells-road', w: 2, pts: F.pts([[36, 198], [36, 170], [36, 146], [34, 122]]) },
|
|
112
|
+
{ id: 'bridge-3', w: 2, pts: F.pts([[34, 122], [34, 104], [34, 88]]) },
|
|
113
|
+
{ id: 'skull-road', w: 2, pts: F.pts([[34, 88], [36, 66], [36, 40], [36, 20]]) },
|
|
114
|
+
],
|
|
115
|
+
dirt: [F.box(24, 54, 380, 408), F.box(24, 50, 286, 308), F.box(28, 46, 54, 72)],
|
|
116
|
+
pools: [],
|
|
117
|
+
poolDepth: 0.3,
|
|
118
|
+
scarps: [],
|
|
119
|
+
pieces: KNUCKLEBONE_PIECES,
|
|
120
|
+
signs: [
|
|
121
|
+
{ id: 'kb-sign-landing', ...kb(20, 396), text: 'The Knucklebone Isles. Four islands bound by rope bridges: Wreckers\' Rest north of here, then the Five Bells, then Skull Isle. Levels 16 to 28. The skiff by the jetty rows back to the Redclay Hook.' },
|
|
122
|
+
{ id: 'kb-sign-bridge-1', ...kb(32, 344), text: 'Rope bridge to Wreckers\' Rest. Wreckers work the wreck: go armed.' },
|
|
123
|
+
{ id: 'kb-sign-rest', ...kb(32, 306), text: 'Wreckers\' Rest. A ship on the rocks, salvage for the taking and a treasure someone buried. Tess Drift keeps the camp.' },
|
|
124
|
+
{ id: 'kb-sign-bells', ...kb(32, 180), text: 'The Five Bells. Five beacon bells ring the chain. Bram Hillock keeps the light.' },
|
|
125
|
+
{ id: 'kb-sign-skull', ...kb(32, 82), text: 'Skull Isle. The wreckers\' own camp. Nobody sensible goes beyond this sign.' },
|
|
126
|
+
],
|
|
127
|
+
seams: [],
|
|
128
|
+
stations: [{ id: 'kb-campfire', kind: 'campfire', ...kb(46, 392) }],
|
|
129
|
+
questProps: KNUCKLEBONE_QUEST_PROPS,
|
|
130
|
+
forage: [
|
|
131
|
+
...[[12, 380], [12, 412], [58, 388], [56, 372], [12, 280], [58, 300], [12, 160], [58, 150]].map(([x, z], i) => ({ id: `kb-shore-${i + 1}`, ...kb(x, z), forage: (i % 2 ? 'driftheap' : 'shellbank') })),
|
|
132
|
+
],
|
|
133
|
+
detached: [{ id: 'knucklebone-isles', box: F.box(0, 66, 0, 440), landing: KNUCKLEBONE_STANDS.landing }],
|
|
134
|
+
ferries: KNUCKLEBONE_FERRIES,
|
|
135
|
+
entities: [KNUCKLEBONE_FERRY_BAY, KNUCKLEBONE_FERRY_ISLE],
|
|
136
|
+
fishHints: [kb(5, 380), kb(5, 408)],
|
|
137
|
+
stands: KNUCKLEBONE_STANDS,
|
|
138
|
+
scatter: { tree: 0.012, rock: 0.04, tuft: 0.02, reed: 0.05, treeStyle: 'pine' },
|
|
139
|
+
standNotes: {
|
|
140
|
+
landing: 'The Landing Isle (reached by the skiff on the Redclay Hook\'s inner bay: click it, a short boat ride, no cover): Nessa Cleat\'s hut, nets, a cook fire, two tide snapper spots, the skiff back. Island raiders on the shore.',
|
|
141
|
+
rest: 'Wreckers\' Rest (over the first rope bridge): the wreck, Tess Drift\'s camp, three salvage crates and the Dead Men\'s Dig marks (touch them in the order the rhyme gives), the hoard chest. Island raiders and reef crabs.',
|
|
142
|
+
bells: 'The Five Bells (over the second bridge): the beacon tower and Bram Hillock\'s hut; five beacon bells to ring in order (The Five Bells). Reef crabs on the rocks.',
|
|
143
|
+
skull: 'Skull Isle (over the third bridge): the wreckers\' camp, skull raiders and their captain, Captain Marrow (level 28, Gaff Haul told a full turn ahead: step clear).',
|
|
144
|
+
},
|
|
145
|
+
guide: {
|
|
146
|
+
levels: '16 to 28',
|
|
147
|
+
how: "Row out from the Redclay Hook's inner bay: a skiff lies on the bay's east shore by the jetties (free, a short boat ride, no loading cover). The Landing Isle's own skiff rows you back.",
|
|
148
|
+
places: 'Four islands in a line, bound by rope bridges: the Landing Isle (a hut, nets, a cook fire and two tide snapper spots, Fishing 14), Wreckers\' Rest (a wreck on the rocks, salvage crates and the Dead Men\'s Dig: three marks to dig in the order of the rhyme, then the hoard chest), the Five Bells (a beacon tower and five bells to ring in order) and Skull Isle (the wreckers\' camp and Captain Marrow, a mini-boss).',
|
|
149
|
+
peopleAt: {
|
|
150
|
+
ferryman: "the jetty on the Landing Isle, by the skiff",
|
|
151
|
+
isleangler: "her hut on the Landing Isle, by the cook fire",
|
|
152
|
+
islekeeper: "the keeper's hut at the Five Bells",
|
|
153
|
+
islesalvager: "the camp by the wreck on Wreckers' Rest",
|
|
154
|
+
},
|
|
155
|
+
questLine: ['wreckSalvage', 'deadMensDig', 'theFiveBells', 'skullIsleHunt'],
|
|
156
|
+
creatureAt: {
|
|
157
|
+
isleraider: "the Landing Isle's shore and Wreckers' Rest",
|
|
158
|
+
reefcrab: "the rocks of Wreckers' Rest and the Five Bells",
|
|
159
|
+
skullraider: "Skull Isle's camp and shore",
|
|
160
|
+
wreckcaptain: "Skull Isle, in the wreckers' camp",
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
zones: [
|
|
164
|
+
{ id: 'knucklebone-skull', label: 'Skull Isle', box: F.box(0, 66, 0, 98) },
|
|
165
|
+
{ id: 'knucklebone-bells', label: 'The Five Bells', box: F.box(0, 66, 100, 210) },
|
|
166
|
+
{ id: 'knucklebone-rest', label: "Wreckers' Rest", box: F.box(0, 66, 212, 340) },
|
|
167
|
+
{ id: 'knucklebone-landing', label: 'The Landing Isle', box: F.box(0, 66, 342, 440) },
|
|
168
|
+
],
|
|
169
|
+
};
|
|
170
|
+
export const KNUCKLEBONE_BOX = KNUCKLEBONE_LAYOUT.box;
|
|
171
|
+
export const KNUCKLEBONE_DISCOVERY_ZONES = [
|
|
172
|
+
...KNUCKLEBONE_LAYOUT.zones.map((z) => ({ id: z.id, label: z.label, coordinateFrame: 'world', ...z.box })),
|
|
173
|
+
{ id: KNUCKLEBONE_ID, label: KNUCKLEBONE_NAME, coordinateFrame: 'world', ...KNUCKLEBONE_BOX },
|
|
174
|
+
];
|
|
175
|
+
export const KNUCKLEBONE_SKULL_BOX = F.box(0, 66, 0, 98);
|
|
176
|
+
export const KNUCKLEBONE_DIG_RHYME = 'Where the mast lies broken, count to the first; under the old anchor, the second is hid; at the shell cairn by the sand, the third. Then the chest lies where all three point.';
|
|
177
|
+
//# sourceMappingURL=knuckleboneIsles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knuckleboneIsles.js","sourceRoot":"","sources":["../src/knuckleboneIsles.ts"],"names":[],"mappings":"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GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,iCAAiC;QACjC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EA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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE KNUCKLEBONE ISLES' FOUR QUESTS (T88, 2026-10-14; levels 16-28; types knuckleboneIsles.ts), a chain through the story engine, each given by one of the isles' people
|
|
3
|
+
* (fairFolk.ts, `resident` kind, known by exact name):
|
|
4
|
+
*
|
|
5
|
+
* 1. WRECK SALVAGE (Salvager Tess Drift, Combat 16): the wreckers have the wreck. Put down six island raiders, open the wreck's three salvage crates and bring Tess
|
|
6
|
+
* eight seashells (Foraging) and four pine wood (Woodwork) for the caulking and the shoring.
|
|
7
|
+
* 2. DEAD MEN'S DIG (Tess Drift, Combat 19, after Wreck Salvage): the treasure-dig set piece. A rhyme names three marks: dig them in the order it gives (a mark out of order
|
|
8
|
+
* starts the dig again), then open the hoard chest. The chest pays a pearl.
|
|
9
|
+
* 3. THE FIVE BELLS (Keeper Bram Hillock, Combat 22, after Dead Men's Dig): ring the five beacon bells in order, one to five (out of order starts the chain again), and drive
|
|
10
|
+
* off six reef crabs that have undermined the posts.
|
|
11
|
+
* 4. THE SKULL ISLE HUNT (Ferryman Joryn Tide, Combat 26, after The Five Bells): cross the three rope bridges to Skull Isle, put down eight skull raiders and Captain Marrow (his
|
|
12
|
+
* Gaff Haul is told a full turn ahead: step clear) and tell Joryn.
|
|
13
|
+
*
|
|
14
|
+
* Rewards are placeholders for the balance pass. Every number is a WORLD tile.
|
|
15
|
+
*/
|
|
16
|
+
import type { StoryQuestDef, StoryNpcRef } from './storyQuests.js';
|
|
17
|
+
export declare const ISLE_SALVAGER_TESS: StoryNpcRef;
|
|
18
|
+
export declare const ISLE_KEEPER_BRAM: StoryNpcRef;
|
|
19
|
+
export declare const FERRYMAN_JORYN: StoryNpcRef;
|
|
20
|
+
export declare const SALVAGE_COMBAT_LEVEL = 16;
|
|
21
|
+
export declare const DIG_COMBAT_LEVEL = 19;
|
|
22
|
+
export declare const BELLS_COMBAT_LEVEL = 22;
|
|
23
|
+
export declare const SKULL_COMBAT_LEVEL = 26;
|
|
24
|
+
export declare const SALVAGE_RAIDERS = 6;
|
|
25
|
+
export declare const SALVAGE_SHELLS = 8;
|
|
26
|
+
export declare const SALVAGE_PINE = 4;
|
|
27
|
+
export declare const BELLS_CRABS = 6;
|
|
28
|
+
export declare const SKULL_RAIDERS = 8;
|
|
29
|
+
export declare function knucklebonePropModel(prop: string): string | null;
|
|
30
|
+
export declare const KNUCKLEBONE_QUEST_PROP_NAMES: Readonly<Record<string, string>>;
|
|
31
|
+
export declare const KNUCKLEBONE_PROP_DESCRIPTIONS: Readonly<Record<string, string>>;
|
|
32
|
+
export declare const WRECK_SALVAGE_QUEST: StoryQuestDef;
|
|
33
|
+
export declare const DEAD_MENS_DIG_QUEST: StoryQuestDef;
|
|
34
|
+
export declare const THE_FIVE_BELLS_QUEST: StoryQuestDef;
|
|
35
|
+
export declare const SKULL_ISLE_HUNT_QUEST: StoryQuestDef;
|
|
36
|
+
export declare const KNUCKLEBONE_QUEST_LINE: readonly ["wreckSalvage", "deadMensDig", "theFiveBells", "skullIsleHunt"];
|
|
37
|
+
//# sourceMappingURL=knuckleboneIslesQuest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knuckleboneIslesQuest.d.ts","sourceRoot":"","sources":["../src/knuckleboneIslesQuest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAOnE,eAAO,MAAM,kBAAkB,EAAE,WAAsE,CAAC;AACxG,eAAO,MAAM,gBAAgB,EAAE,WAAoE,CAAC;AACpG,eAAO,MAAM,cAAc,EAAE,WAAkE,CAAC;AAEhG,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAED,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAazE,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1E,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,aAqDjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAsDjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAqDlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAoDnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,2EAA4E,CAAC"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { FAIR_FOLK_NAMES } from './fairFolk.js';
|
|
2
|
+
import { KB_BELL_1, KB_BELL_2, KB_BELL_3, KB_BELL_4, KB_BELL_5, KB_CHEST, KB_CRATE_A, KB_CRATE_B, KB_CRATE_C, KB_DIG_1, KB_DIG_2, KB_DIG_3, KB_PROP, KNUCKLEBONE_DIG_RHYME, KNUCKLEBONE_SKULL_BOX, kb, } from './knuckleboneIsles.js';
|
|
3
|
+
import { ISLE_RAIDER_KIND, REEF_CRAB_KIND, SKULL_RAIDER_KIND, WRECK_CAPTAIN_KIND } from './knuckleboneIslesWildlife.js';
|
|
4
|
+
export const ISLE_SALVAGER_TESS = { kind: 'resident', name: FAIR_FOLK_NAMES.islesalvager };
|
|
5
|
+
export const ISLE_KEEPER_BRAM = { kind: 'resident', name: FAIR_FOLK_NAMES.islekeeper };
|
|
6
|
+
export const FERRYMAN_JORYN = { kind: 'resident', name: FAIR_FOLK_NAMES.ferryman };
|
|
7
|
+
export const SALVAGE_COMBAT_LEVEL = 16;
|
|
8
|
+
export const DIG_COMBAT_LEVEL = 19;
|
|
9
|
+
export const BELLS_COMBAT_LEVEL = 22;
|
|
10
|
+
export const SKULL_COMBAT_LEVEL = 26;
|
|
11
|
+
export const SALVAGE_RAIDERS = 6;
|
|
12
|
+
export const SALVAGE_SHELLS = 8;
|
|
13
|
+
export const SALVAGE_PINE = 4;
|
|
14
|
+
export const BELLS_CRABS = 6;
|
|
15
|
+
export const SKULL_RAIDERS = 8;
|
|
16
|
+
export function knucklebonePropModel(prop) {
|
|
17
|
+
if (prop === KB_PROP.crate)
|
|
18
|
+
return 'evstorecrates';
|
|
19
|
+
if (prop === KB_PROP.dig)
|
|
20
|
+
return 'questeatenpatch';
|
|
21
|
+
if (prop === KB_PROP.chest)
|
|
22
|
+
return 'gullsransomchest';
|
|
23
|
+
if (prop === KB_PROP.bell)
|
|
24
|
+
return 'questbeacon';
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
export const KNUCKLEBONE_QUEST_PROP_NAMES = {
|
|
28
|
+
[KB_CRATE_A.style]: 'Salvage Crate',
|
|
29
|
+
[KB_CRATE_B.style]: 'Salvage Crate',
|
|
30
|
+
[KB_CRATE_C.style]: 'Salvage Crate',
|
|
31
|
+
[KB_DIG_1.style]: 'Dig Mark',
|
|
32
|
+
[KB_DIG_2.style]: 'Dig Mark',
|
|
33
|
+
[KB_DIG_3.style]: 'Dig Mark',
|
|
34
|
+
[KB_CHEST.style]: 'Hoard Chest',
|
|
35
|
+
[KB_BELL_1.style]: 'Beacon Bell',
|
|
36
|
+
[KB_BELL_2.style]: 'Beacon Bell',
|
|
37
|
+
[KB_BELL_3.style]: 'Beacon Bell',
|
|
38
|
+
[KB_BELL_4.style]: 'Beacon Bell',
|
|
39
|
+
[KB_BELL_5.style]: 'Beacon Bell',
|
|
40
|
+
};
|
|
41
|
+
export const KNUCKLEBONE_PROP_DESCRIPTIONS = {
|
|
42
|
+
[KB_PROP.crate]: "A salvage crate off the wreck on Wreckers' Rest, swollen with salt water and sealed with the wreckers' knots.",
|
|
43
|
+
[KB_PROP.dig]: 'A patch of turned sand with a cross scratched into a flat stone: one of the three marks of the old rhyme. They must be dug in the order the rhyme gives.',
|
|
44
|
+
[KB_PROP.chest]: "A sea-chest half-buried at the point where the three marks aim, locked and green with age. The wreckers' hoard.",
|
|
45
|
+
[KB_PROP.bell]: "One of the five beacon bells of the Five Bells, hung from a post of driftwood with a rope pull. They are rung in order, from the first to the fifth, so the chain of light carries.",
|
|
46
|
+
};
|
|
47
|
+
const COMBAT_CHOICE = ['strength', 'archery', 'precision'];
|
|
48
|
+
export const WRECK_SALVAGE_QUEST = {
|
|
49
|
+
giver: ISLE_SALVAGER_TESS,
|
|
50
|
+
requires: {
|
|
51
|
+
combat: SALVAGE_COMBAT_LEVEL,
|
|
52
|
+
refuse: `The wreckers eat salvagers alive. Come back with a bit more under your belt (Combat ${SALVAGE_COMBAT_LEVEL}).`,
|
|
53
|
+
},
|
|
54
|
+
offer: 'That wreck on the rocks is mine by every law of the sea, and the wreckers have been picking it clean. I need the raiders thinned, the crates opened and the camp shored up against the next blow. Will you stand with me?',
|
|
55
|
+
accept: `Put down ${SALVAGE_RAIDERS} island raiders on the shore, open the wreck's three salvage crates, and bring me ${SALVAGE_SHELLS} seashells for the caulking and ${SALVAGE_PINE} pine wood for the shoring.`,
|
|
56
|
+
decline: 'Then the wreck goes to the wreckers and I go home empty-handed. Mind the tide.',
|
|
57
|
+
steps: [
|
|
58
|
+
{
|
|
59
|
+
kind: 'kill',
|
|
60
|
+
npcKinds: [ISLE_RAIDER_KIND],
|
|
61
|
+
qty: SALVAGE_RAIDERS,
|
|
62
|
+
npcLabel: 'Island raiders',
|
|
63
|
+
label: `Put down ${SALVAGE_RAIDERS} island raiders`,
|
|
64
|
+
hint: 'The island raiders work the Landing Isle\'s shore and Wreckers\' Rest (level 16-21). They fight when struck, and hard.',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
kind: 'touch',
|
|
68
|
+
prop: KB_PROP.crate,
|
|
69
|
+
qty: 3,
|
|
70
|
+
label: 'Open the wreck\'s three salvage crates',
|
|
71
|
+
hint: 'The crates lie on the beach by the wreck at Wreckers\' Rest, north of the first rope bridge. Click each.',
|
|
72
|
+
notices: {
|
|
73
|
+
[KB_CRATE_A.style]: 'The lid gives with a crack of old rope. Inside: wet sailcloth, a tin of tar and a broken compass.',
|
|
74
|
+
[KB_CRATE_B.style]: 'The second crate is full of rotten rope and, under it, a good iron hook. You pocket the hook.',
|
|
75
|
+
[KB_CRATE_C.style]: 'The last crate is the wreckers\' own stash: stale biscuit and a note that says only "dig where the rhyme says".',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
kind: 'deliver',
|
|
80
|
+
npc: ISLE_SALVAGER_TESS,
|
|
81
|
+
items: [
|
|
82
|
+
{ kinds: ['seashell'], qty: SALVAGE_SHELLS, label: 'Seashells' },
|
|
83
|
+
{ kinds: ['pinewood'], qty: SALVAGE_PINE, label: 'Pine Wood' },
|
|
84
|
+
],
|
|
85
|
+
label: `Bring Tess ${SALVAGE_SHELLS} seashells and ${SALVAGE_PINE} pine wood`,
|
|
86
|
+
hint: 'Seashells wash up on the isles\' beaches (Foraging) or drop from reef crabs; pine wood from the pines on the isles (Woodwork). Salvager Tess Drift keeps the camp by the wreck.',
|
|
87
|
+
say: 'Shells to grind for the caulk and pine for the shoring. The wreck is mine again, and the camp will stand. The note says dig, and I know a rhyme that does too.',
|
|
88
|
+
short: 'Eight seashells and four pine wood, if you please. I cannot caulk a hull with wishes.',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
done: 'The wreckers are thinned and the wreck is shored. Here is coin for the trouble. The rhyme in the note is another job, if you have the stomach for it.',
|
|
92
|
+
after: 'The wreck is mine and the camp stands. The isles are not what they were.',
|
|
93
|
+
rewards: {
|
|
94
|
+
coins: 450,
|
|
95
|
+
items: [{ kind: 'bread', qty: 4 }],
|
|
96
|
+
xp: { explorer: 600, foraging: 150, woodwork: 150 },
|
|
97
|
+
choiceXp: { qty: 480, skills: COMBAT_CHOICE },
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
export const DEAD_MENS_DIG_QUEST = {
|
|
101
|
+
giver: ISLE_SALVAGER_TESS,
|
|
102
|
+
requires: {
|
|
103
|
+
quest: 'wreckSalvage',
|
|
104
|
+
combat: DIG_COMBAT_LEVEL,
|
|
105
|
+
refuse: `Salvage first, treasure after (Combat ${DIG_COMBAT_LEVEL}).`,
|
|
106
|
+
},
|
|
107
|
+
offer: `There is a hoard on Wreckers' Rest, buried by the last captain who held the isles, and the only map is a rhyme: "${KNUCKLEBONE_DIG_RHYME}" Three marks to dig in order, and then the chest. Will you dig it with me?`,
|
|
108
|
+
accept: 'Dig the three marks in the order the rhyme gives (the mast, the anchor, the shell cairn: a mark out of order and the line goes cold and you must start again), then open the hoard chest where they point. Tell me what is in it.',
|
|
109
|
+
decline: 'Then the hoard stays where it lies, and a better digger will have it.',
|
|
110
|
+
steps: [
|
|
111
|
+
{
|
|
112
|
+
kind: 'touch',
|
|
113
|
+
prop: KB_PROP.dig,
|
|
114
|
+
qty: 3,
|
|
115
|
+
order: [KB_DIG_1.style, KB_DIG_2.style, KB_DIG_3.style],
|
|
116
|
+
wrong: { notice: 'You dig the wrong mark and the line goes cold: the rhyme reads from the mast, then the anchor, then the shell cairn. Start again at the mast.' },
|
|
117
|
+
label: 'Dig the three marks in the rhyme\'s order',
|
|
118
|
+
hint: 'The first mark lies by the broken mast near the wreck, the second under the old anchor on the north rocks, the third at the shell cairn near the camp. Click each in order.',
|
|
119
|
+
notices: {
|
|
120
|
+
[KB_DIG_1.style]: 'By the broken mast the sand is soft: a scratched cross on a flat stone, the first mark.',
|
|
121
|
+
[KB_DIG_2.style]: 'Under the rusted anchor, a second cross, and the sand gives under the spade: the second mark.',
|
|
122
|
+
[KB_DIG_3.style]: 'At the shell cairn the third cross, and the three lines of the rhyme point south-east across the sand.',
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
kind: 'touch',
|
|
127
|
+
prop: KB_PROP.chest,
|
|
128
|
+
qty: 1,
|
|
129
|
+
label: 'Open the hoard chest',
|
|
130
|
+
hint: 'The chest lies where the three marks point, on the east side of Wreckers\' Rest. Click it.',
|
|
131
|
+
give: { kind: 'pearl', qty: 1 },
|
|
132
|
+
notices: {
|
|
133
|
+
[KB_CHEST.style]: 'The lock breaks with one blow of the spade. Under a wad of oilcloth: a fat pearl, and a scrap of paper that says "the rest is in the hands of the sea".',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
kind: 'talk',
|
|
138
|
+
npc: ISLE_SALVAGER_TESS,
|
|
139
|
+
label: 'Tell Salvager Tess the chest is open',
|
|
140
|
+
hint: 'Salvager Tess Drift keeps the camp by the wreck.',
|
|
141
|
+
say: 'A pearl! And the old captain\'s joke on the paper. That is a better hoard than I hoped. Keep it: you dug it. Bram at the Five Bells wants a hand with his chain of lights.',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
done: 'The hoard is dug and the rhyme is solved. Here is coin as well as the pearl. Bram Hillock at the Five Bells has been asking after someone.',
|
|
145
|
+
after: 'The chest sits empty in the sand and the wreckers have given up looking. You have the pearl.',
|
|
146
|
+
rewards: {
|
|
147
|
+
coins: 650,
|
|
148
|
+
items: [{ kind: 'cookedcrab', qty: 4 }],
|
|
149
|
+
xp: { explorer: 900, foraging: 200 },
|
|
150
|
+
choiceXp: { qty: 650, skills: COMBAT_CHOICE },
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
export const THE_FIVE_BELLS_QUEST = {
|
|
154
|
+
giver: ISLE_KEEPER_BRAM,
|
|
155
|
+
requires: {
|
|
156
|
+
quest: 'deadMensDig',
|
|
157
|
+
combat: BELLS_COMBAT_LEVEL,
|
|
158
|
+
refuse: `The Five Bells are no place for the unprepared. Finish Tess's dig first (Combat ${BELLS_COMBAT_LEVEL}).`,
|
|
159
|
+
},
|
|
160
|
+
offer: 'The chain of lights runs from the Five Bells to the mainland, and a chain only carries if the bells ring in order, one to five. The reef crabs have undermined the posts and the wreckers have been ringing them wrong to lure ships onto the rocks. Will you ring them true and drive off the crabs?',
|
|
161
|
+
accept: `Ring the five beacon bells in order, from the first to the fifth (a bell out of order and the chain starts again), and drive off ${BELLS_CRABS} reef crabs. Then tell me.`,
|
|
162
|
+
decline: 'Then the bells ring wrong and the ships keep wrecking. I will keep the light.',
|
|
163
|
+
steps: [
|
|
164
|
+
{
|
|
165
|
+
kind: 'touch',
|
|
166
|
+
prop: KB_PROP.bell,
|
|
167
|
+
qty: 5,
|
|
168
|
+
order: [KB_BELL_1.style, KB_BELL_2.style, KB_BELL_3.style, KB_BELL_4.style, KB_BELL_5.style],
|
|
169
|
+
wrong: { notice: 'The wrong bell tolls and the chain of light falters. Start again at the first bell, by the south rocks.' },
|
|
170
|
+
label: 'Ring the five beacon bells in order',
|
|
171
|
+
hint: 'The bells hang round the Five Bells island in a ring, the first at the north-west rocks, the fifth at the south-west. Follow the ring clockwise.',
|
|
172
|
+
notices: {
|
|
173
|
+
[KB_BELL_1.style]: 'The first bell tolls low and long. Far to the west, a spark answers.',
|
|
174
|
+
[KB_BELL_2.style]: 'The second bell rings clear, and the spark on the mainland doubles.',
|
|
175
|
+
[KB_BELL_3.style]: 'The third bell takes the rope with a jerk and sings out across the water.',
|
|
176
|
+
[KB_BELL_4.style]: 'The fourth bell is cracked but loud, and the chain of lights runs on.',
|
|
177
|
+
[KB_BELL_5.style]: 'The fifth bell tolls and the whole chain lights, bell to bell, all the way back to the Hook.',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
kind: 'kill',
|
|
182
|
+
npcKinds: [REEF_CRAB_KIND],
|
|
183
|
+
qty: BELLS_CRABS,
|
|
184
|
+
npcLabel: 'Reef crabs',
|
|
185
|
+
label: `Drive off ${BELLS_CRABS} reef crabs`,
|
|
186
|
+
hint: 'The reef crabs live on the rocks of Wreckers\' Rest and the Five Bells (level 18-23). They snap at anything wading.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
kind: 'talk',
|
|
190
|
+
npc: ISLE_KEEPER_BRAM,
|
|
191
|
+
label: 'Tell Keeper Bram the chain burns true',
|
|
192
|
+
hint: 'Keeper Bram Hillock keeps the hut at the foot of the beacon tower on the Five Bells.',
|
|
193
|
+
say: 'Five bells, true and in order, and the crabs gone from the posts. I can see the chain from the tower: every light lit. Joryn at the landing has been asking about Skull Isle, and I would not go alone.',
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
done: 'The chain burns true from the Bells to the Hook. Here is your reward. Ferryman Joryn at the landing wants a word about Skull Isle.',
|
|
197
|
+
after: 'The bells ring true and the ships steer clear of the rocks. The Isles have a light.',
|
|
198
|
+
rewards: {
|
|
199
|
+
coins: 850,
|
|
200
|
+
items: [{ kind: 'cookedtidesnapper', qty: 4 }],
|
|
201
|
+
xp: { explorer: 1100, precision: 200 },
|
|
202
|
+
choiceXp: { qty: 820, skills: COMBAT_CHOICE },
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
export const SKULL_ISLE_HUNT_QUEST = {
|
|
206
|
+
giver: FERRYMAN_JORYN,
|
|
207
|
+
requires: {
|
|
208
|
+
quest: 'theFiveBells',
|
|
209
|
+
combat: SKULL_COMBAT_LEVEL,
|
|
210
|
+
refuse: `Skull Isle is the end of the line, and it eats the unprepared. Finish at the Five Bells first (Combat ${SKULL_COMBAT_LEVEL}).`,
|
|
211
|
+
},
|
|
212
|
+
offer: 'The wreckers\' captain holds Skull Isle with a hard crew, and every ship that misses my skiff ends up in his camp. He hangs a skull on a stake for each. I want the crew thinned and the captain put down. He hauls his gaff round in a wide arc: watch him closely, and be somewhere else when it lands. Will you go?',
|
|
213
|
+
accept: `Cross the three rope bridges to Skull Isle, put down ${SKULL_RAIDERS} skull raiders and Captain Marrow (level 28, much tougher than his level: every fourth blow is the Gaff Haul, told a full turn ahead, so step out of his reach when you see it) and tell me.`,
|
|
214
|
+
decline: 'Then Skull Isle keeps its skulls and my skiff keeps its distance.',
|
|
215
|
+
steps: [
|
|
216
|
+
{
|
|
217
|
+
kind: 'reach',
|
|
218
|
+
area: KNUCKLEBONE_SKULL_BOX,
|
|
219
|
+
at: { ...kb(36, 50), label: 'Skull Isle' },
|
|
220
|
+
label: 'Cross the rope bridges to Skull Isle',
|
|
221
|
+
hint: 'Skull Isle is the northernmost island: cross the three rope bridges north from the Landing Isle past Wreckers\' Rest and the Five Bells.',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
kind: 'kill',
|
|
225
|
+
npcKinds: [SKULL_RAIDER_KIND],
|
|
226
|
+
qty: SKULL_RAIDERS,
|
|
227
|
+
npcLabel: 'Skull raiders',
|
|
228
|
+
label: `Put down ${SKULL_RAIDERS} skull raiders`,
|
|
229
|
+
hint: 'The skull raiders hold the camp and the shore of Skull Isle (level 24-28). They fight when struck, and hard.',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
kind: 'kill',
|
|
233
|
+
npcKinds: [WRECK_CAPTAIN_KIND],
|
|
234
|
+
qty: 1,
|
|
235
|
+
npcLabel: 'Captain Marrow',
|
|
236
|
+
label: 'Put down Captain Marrow',
|
|
237
|
+
hint: 'Captain Marrow stands in the wreckers\' camp on Skull Isle. His Gaff Haul is announced a full turn ahead: step out of his reach and it misses.',
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
kind: 'talk',
|
|
241
|
+
npc: FERRYMAN_JORYN,
|
|
242
|
+
label: 'Tell Ferryman Joryn Skull Isle is clear',
|
|
243
|
+
hint: 'Ferryman Joryn Tide stands at the jetty on the Landing Isle, by the skiff.',
|
|
244
|
+
say: 'Marrow down and the crew with him! You have done what the whole coast could not. The skiff is yours whenever you want it, and the isles are open from end to end.',
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
done: 'Skull Isle is quiet and the isles are open. Here is your reward, and the thanks of every ship that ever missed my skiff.',
|
|
248
|
+
after: 'The wreckers are gone and the skulls are coming down. The Isles are yours.',
|
|
249
|
+
rewards: {
|
|
250
|
+
coins: 1200,
|
|
251
|
+
items: [{ kind: 'cookedtidesnapper', qty: 6 }],
|
|
252
|
+
xp: { explorer: 1500, mining: 300 },
|
|
253
|
+
choiceXp: { qty: 1100, skills: COMBAT_CHOICE },
|
|
254
|
+
},
|
|
255
|
+
};
|
|
256
|
+
export const KNUCKLEBONE_QUEST_LINE = ['wreckSalvage', 'deadMensDig', 'theFiveBells', 'skullIsleHunt'];
|
|
257
|
+
//# sourceMappingURL=knuckleboneIslesQuest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knuckleboneIslesQuest.js","sourceRoot":"","sources":["../src/knuckleboneIslesQuest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BranchCreature, BranchDrop, BranchPace, BranchWildlifeSpot } from './westBranch.js';
|
|
2
|
+
export declare const ISLE_RAIDER_KIND = "isleraider";
|
|
3
|
+
export declare const REEF_CRAB_KIND = "reefcrab";
|
|
4
|
+
export declare const SKULL_RAIDER_KIND = "skullraider";
|
|
5
|
+
export declare const WRECK_CAPTAIN_KIND = "wreckcaptain";
|
|
6
|
+
export declare const WRECK_CAPTAIN_NAME = "Captain Marrow";
|
|
7
|
+
export declare const WRECK_CAPTAIN_LEVEL = 28;
|
|
8
|
+
export declare const WRECK_CAPTAIN_RESPAWN_MS: number;
|
|
9
|
+
export declare const KNUCKLEBONE_WILDLIFE_KINDS: readonly ["isleraider", "reefcrab", "skullraider", "wreckcaptain"];
|
|
10
|
+
export declare const KNUCKLEBONE_CREATURES: Readonly<Record<string, BranchCreature>>;
|
|
11
|
+
export declare const KNUCKLEBONE_WILDLIFE_SPOTS: readonly BranchWildlifeSpot[];
|
|
12
|
+
export declare const KNUCKLEBONE_PACE: Readonly<Record<string, BranchPace>>;
|
|
13
|
+
export declare const KNUCKLEBONE_DROPS: Readonly<Record<string, readonly BranchDrop[]>>;
|
|
14
|
+
//# sourceMappingURL=knuckleboneIslesWildlife.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knuckleboneIslesWildlife.d.ts","sourceRoot":"","sources":["../src/knuckleboneIslesWildlife.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAElG,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,0BAA0B,oEAAqF,CAAC;AAE7H,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAiC1E,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,SAAS,kBAAkB,EAYnE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAKjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAwB7E,CAAC"}
|