@dreadwood-types/types 0.1.331 → 0.1.332
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/areaGates.d.ts.map +1 -1
- package/dist/areaGates.js +13 -0
- package/dist/areaGates.js.map +1 -1
- package/dist/areaTransitions.d.ts +1 -1
- package/dist/areaTransitions.d.ts.map +1 -1
- package/dist/areaTransitions.js +21 -0
- package/dist/areaTransitions.js.map +1 -1
- package/dist/attackableNpcs.d.ts.map +1 -1
- package/dist/attackableNpcs.js +2 -0
- package/dist/attackableNpcs.js.map +1 -1
- package/dist/bayReaches.d.ts +288 -0
- package/dist/bayReaches.d.ts.map +1 -0
- package/dist/bayReaches.js +491 -0
- package/dist/bayReaches.js.map +1 -0
- package/dist/bayReachesQuests.d.ts +26 -0
- package/dist/bayReachesQuests.d.ts.map +1 -0
- package/dist/bayReachesQuests.js +343 -0
- package/dist/bayReachesQuests.js.map +1 -0
- package/dist/bossSignatures.d.ts +1 -1
- package/dist/bossSignatures.d.ts.map +1 -1
- package/dist/bossSignatures.js +6 -0
- 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 +27 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pirateTreasure.d.ts.map +1 -1
- package/dist/pirateTreasure.js +17 -1
- package/dist/pirateTreasure.js.map +1 -1
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +31 -0
- package/dist/quests.js.map +1 -1
- package/dist/smugglersStrand.d.ts.map +1 -1
- package/dist/smugglersStrand.js +6 -0
- package/dist/smugglersStrand.js.map +1 -1
- package/dist/storyQuests.d.ts +1 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +13 -0
- package/dist/storyQuests.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PIRATE BAY PHASE 7: THE BAY'S REACHES (James's round-2 sheets, 2026-10-15: pirate-bay-a07 "The Long Beach", a08 "Dunes and Meadow
|
|
3
|
+
* Band", a09 "The Hidden Coves", a10 "The Islets", a11-v2 "Fort Rook and Saltmark Light", b08 "The Sea Cave Dungeon", c10 "The Cove
|
|
4
|
+
* Quests"; plan dreadwoods/.cursor/task-plans/2026-10-15-pirate-bay-phase7.md).
|
|
5
|
+
*
|
|
6
|
+
* Everything east of the Landing that phases 1-6 left empty:
|
|
7
|
+
* - THE LONG BEACH (A7): the north beach between the Landing and Saltmark: a hostile pirate beach camp (Wrackline Camp), a careened
|
|
8
|
+
* hull, a broken mast and a skeleton wreck, beached boats, seals and gulls; the castaways' rowing boat to the islets.
|
|
9
|
+
* - THE DUNES AND MEADOW BAND (A8): the meadow north of the ridge: the smugglers' farm (shed, rum still, crop beds, goat pen), the
|
|
10
|
+
* ropewalk, the crossroads gibbet (the first cove's clue), a lookout tree, the ruined chapel, and Blackwake patrols.
|
|
11
|
+
* - THE ISLETS (A10): five islets in the open sea south of the bay, reached by the castaways' boat from the Landing's beach:
|
|
12
|
+
* Driftwood Isle (the castaway's hut), Treasure Isle, Seal Rock, Wreck Reef (over the reef at low water only) and Blackgull Skerry
|
|
13
|
+
* (a pirate camp). Sandbars join them; only the reef needs the tide.
|
|
14
|
+
* - THE HIDDEN COVES (A9, C10): four coves in the cliffs, each opened by its quest from the Castaway Camp or Keeper Ada: the
|
|
15
|
+
* Smugglers' Cove behind the waterfall on the ridge, the Skeleton-Wreck Grotto behind an iron grille on the south shore, the
|
|
16
|
+
* Gull-Cliff Cove at the foot of the east cliff (a rope ladder) and the Low-Tide Cove in the south-east cliffs (low water only).
|
|
17
|
+
* Inside: their crews and the bay's rare and cursed chests.
|
|
18
|
+
* - THE SEA CAVE (B8): the Saltmark Sea Cave under the headland north of Saltmark Light, levels 18-26, entered at low water: the Wet
|
|
19
|
+
* Mouth, the Tidal Channel (turn both sluice wheels to drain it), the Smugglers' Ledge and the Store Caves (waves of smugglers),
|
|
20
|
+
* and the Grotto, where the Tide Broker keeps the stolen ship's boat and his strongbox. Resets twenty minutes after it is cleared.
|
|
21
|
+
* - FORT ROOK AND SALTMARK LIGHT (A11-v2): the keeper's cottage beside the light, lanterns on the road between them, and the fort's
|
|
22
|
+
* dock under its south wall with its crew.
|
|
23
|
+
*
|
|
24
|
+
* James's rules hold everywhere: every pirate attacks on sight and nobody trades with them; the friendly people are the Castaway Camp
|
|
25
|
+
* and Keeper Ada; the only weapon is the basic cutlass; no shop sells food; the flag is a white crescent on black. Levels 5-35, free.
|
|
26
|
+
*
|
|
27
|
+
* Every overworld number is a WORLD tile in the final frame (public); the sea cave and the cove rooms are raw underground-strip tiles
|
|
28
|
+
* (x 944-1096, z 600-644). Levels, waves, timings and rewards are PLACEHOLDERS for the balance pass.
|
|
29
|
+
*/
|
|
30
|
+
import { isSeaGrottoLowWater, seaGrottoTide, waitText } from './gullsLowWater.js';
|
|
31
|
+
export const inTileBox = (b, x, z) => x >= b.minX && x <= b.maxX && z >= b.minZ && z <= b.maxZ;
|
|
32
|
+
export const BAY_LONG_BEACH = { minX: 712, maxX: 880, minZ: 1045, maxZ: 1068 };
|
|
33
|
+
export const BAY_MEADOW = { minX: 720, maxX: 862, minZ: 1066, maxZ: 1100 };
|
|
34
|
+
export const BAY_ISLETS_BOX = { minX: 724, maxX: 874, minZ: 1188, maxZ: 1222 };
|
|
35
|
+
/** A model's footprint before its facing turn (types constants CAPITAL_BUILDING_MODELS): what the placement clears. */
|
|
36
|
+
export const BAY_MODEL_SIZE = {
|
|
37
|
+
brribs: [7, 3], brmast: [3, 3], brrumstill: [3, 3], brshed: [5, 3], brcrops: [5, 3], brgibbet: [1, 1], brlookouttree: [3, 3],
|
|
38
|
+
brchapelwall: [5, 1], brchapelarch: [5, 1], brsluice: [3, 1], brwheel: [1, 1], brtideboard: [1, 1], brlever: [1, 1],
|
|
39
|
+
brpalm: [1, 1], brgrille: [5, 3], bropeladder: [1, 1], brnest: [1, 1], brcottage: [5, 5], brreefstones: [3, 3], brhut: [5, 3],
|
|
40
|
+
pbhull: [7, 3], pbtent: [5, 5], pbflag: [1, 1], pblantern: [1, 1], pbrowboat: [3, 1], pbropewalk: [5, 1], pbsailrack: [3, 1],
|
|
41
|
+
pbbarricade: [3, 1], blackwakecargo: [3, 3], blackwakejettyshort: [3, 5],
|
|
42
|
+
};
|
|
43
|
+
/** Every tile a part covers, turned by its facing (odd sizes: the anchor is the middle tile). */
|
|
44
|
+
export function bayPartTiles(part) {
|
|
45
|
+
const [w, d] = BAY_MODEL_SIZE[part.model] ?? [1, 1];
|
|
46
|
+
const [across, deep] = part.facing === 'e' || part.facing === 'w' ? [d, w] : [w, d];
|
|
47
|
+
const out = [];
|
|
48
|
+
for (let dz = -Math.floor(deep / 2); dz <= Math.floor(deep / 2); dz++) {
|
|
49
|
+
for (let dx = -Math.floor(across / 2); dx <= Math.floor(across / 2); dx++)
|
|
50
|
+
out.push({ x: part.x + dx, z: part.z + dz });
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
export const BAY_PARTS = [
|
|
55
|
+
// The Long Beach (A7): wrecks on the sand and the beach camp behind it.
|
|
56
|
+
{ id: 'reach-hull', model: 'pbhull', x: 752, z: 1048, facing: 'n' },
|
|
57
|
+
{ id: 'reach-mast', model: 'brmast', x: 738, z: 1052, facing: 's' },
|
|
58
|
+
{ id: 'reach-ribs', model: 'brribs', x: 866, z: 1053, facing: 'n' },
|
|
59
|
+
{ id: 'reach-rowboat-1', model: 'pbrowboat', x: 802, z: 1051, facing: 's' },
|
|
60
|
+
{ id: 'reach-rowboat-2', model: 'pbrowboat', x: 846, z: 1052, facing: 'n' },
|
|
61
|
+
{ id: 'reach-camp-tent-1', model: 'pbtent', x: 776, z: 1066, facing: 's' },
|
|
62
|
+
{ id: 'reach-camp-tent-2', model: 'pbtent', x: 790, z: 1067, facing: 's' },
|
|
63
|
+
{ id: 'reach-camp-flag', model: 'pbflag', x: 770, z: 1061, facing: 's' },
|
|
64
|
+
{ id: 'reach-camp-cargo', model: 'blackwakecargo', x: 797, z: 1062, facing: 's' },
|
|
65
|
+
{ id: 'reach-camp-rack', model: 'pbsailrack', x: 767, z: 1065, facing: 'e' },
|
|
66
|
+
// The Dunes and Meadow Band (A8): the smugglers' farm, the ropewalk, the lookout tree, the chapel ruin.
|
|
67
|
+
{ id: 'reach-shed', model: 'brshed', x: 736, z: 1073, facing: 's' },
|
|
68
|
+
{ id: 'reach-still', model: 'brrumstill', x: 744, z: 1074, facing: 's' },
|
|
69
|
+
{ id: 'reach-crops-1', model: 'brcrops', x: 731, z: 1079, facing: 's' },
|
|
70
|
+
{ id: 'reach-crops-2', model: 'brcrops', x: 738, z: 1079, facing: 's' },
|
|
71
|
+
{ id: 'reach-farm-flag', model: 'pbflag', x: 748, z: 1070, facing: 's' },
|
|
72
|
+
{ id: 'reach-ropewalk', model: 'pbropewalk', x: 768, z: 1080, facing: 's' },
|
|
73
|
+
{ id: 'reach-sailrack', model: 'pbsailrack', x: 768, z: 1084, facing: 's' },
|
|
74
|
+
{ id: 'reach-lookout-tree', model: 'brlookouttree', x: 801, z: 1070, facing: 's' },
|
|
75
|
+
{ id: 'reach-chapel-n', model: 'brchapelwall', x: 846, z: 1066, facing: 's' },
|
|
76
|
+
{ id: 'reach-chapel-w', model: 'brchapelwall', x: 843, z: 1070, facing: 'e' },
|
|
77
|
+
{ id: 'reach-chapel-e', model: 'brchapelwall', x: 849, z: 1070, facing: 'w' },
|
|
78
|
+
{ id: 'reach-chapel-arch', model: 'brchapelarch', x: 846, z: 1074, facing: 's' },
|
|
79
|
+
// Fort Rook and Saltmark Light (A11-v2): the keeper's cottage, lanterns on the road between them, the fort's dock.
|
|
80
|
+
{ id: 'reach-cottage', model: 'brcottage', x: 898, z: 1089, facing: 'w' },
|
|
81
|
+
{ id: 'reach-road-lantern-1', model: 'pblantern', x: 836, z: 1080, facing: 's' },
|
|
82
|
+
{ id: 'reach-road-lantern-2', model: 'pblantern', x: 858, z: 1080, facing: 's' },
|
|
83
|
+
{ id: 'reach-road-lantern-3', model: 'pblantern', x: 876, z: 1081, facing: 's' },
|
|
84
|
+
{ id: 'reach-road-lantern-4', model: 'pblantern', x: 824, z: 1112, facing: 's' },
|
|
85
|
+
{ id: 'reach-fortdock-boat', model: 'pbrowboat', x: 822, z: 1186, facing: 's' },
|
|
86
|
+
{ id: 'reach-fortdock-flag', model: 'pbflag', x: 834, z: 1178, facing: 's' },
|
|
87
|
+
{ id: 'reach-fortdock-cargo', model: 'blackwakecargo', x: 840, z: 1177, facing: 's' },
|
|
88
|
+
// The islets (A10): the castaway's hut, palms, a beached boat, the skerry's camp, the reef's wreck.
|
|
89
|
+
{ id: 'reach-isle-hut', model: 'brhut', x: 740, z: 1197, facing: 's' },
|
|
90
|
+
{ id: 'reach-isle-palm-1', model: 'brpalm', x: 768, z: 1207, facing: 's' },
|
|
91
|
+
{ id: 'reach-isle-palm-2', model: 'brpalm', x: 773, z: 1211, facing: 's' },
|
|
92
|
+
{ id: 'reach-isle-palm-3', model: 'brpalm', x: 735, z: 1203, facing: 's' },
|
|
93
|
+
{ id: 'reach-reef-ribs', model: 'brribs', x: 826, z: 1214, facing: 'n' },
|
|
94
|
+
{ id: 'reach-reef-mast', model: 'brmast', x: 828, z: 1206, facing: 'w' },
|
|
95
|
+
{ id: 'reach-skerry-tent', model: 'pbtent', x: 858, z: 1198, facing: 's' },
|
|
96
|
+
{ id: 'reach-skerry-flag', model: 'pbflag', x: 864, z: 1203, facing: 's' },
|
|
97
|
+
{ id: 'reach-skerry-cargo', model: 'blackwakecargo', x: 852, z: 1203, facing: 's' },
|
|
98
|
+
];
|
|
99
|
+
/** Campfires (campfire entities, lit): the beach camp, the farm, the skerry, the castaway's hut, the fort dock. */
|
|
100
|
+
export const BAY_FIRES = [
|
|
101
|
+
{ x: 783, z: 1061 },
|
|
102
|
+
{ x: 751, z: 1078 },
|
|
103
|
+
{ x: 857, z: 1204 },
|
|
104
|
+
{ x: 745, z: 1201 },
|
|
105
|
+
];
|
|
106
|
+
/** The gull nests on the east cliff top (the Gull-Cliff Cove's clue) and in the cove: decoration, never blocking. */
|
|
107
|
+
export const BAY_NESTS = [
|
|
108
|
+
{ x: 913, z: 1103 }, { x: 916, z: 1099 },
|
|
109
|
+
];
|
|
110
|
+
export const BAY_CREW = [
|
|
111
|
+
// Wrackline Camp on the Long Beach.
|
|
112
|
+
{ kind: 'blackwakedeckhand', x: 780, z: 1060 },
|
|
113
|
+
{ kind: 'blackwakedeckhand', x: 788, z: 1061 },
|
|
114
|
+
{ kind: 'cutthroat', x: 784, z: 1063, name: 'Wrackline Bully', radius: 2 },
|
|
115
|
+
{ kind: 'lookout', x: 772, z: 1058 },
|
|
116
|
+
{ kind: 'lookout', x: 752, z: 1052, radius: 2 },
|
|
117
|
+
// The meadow band: the farm hands, the ropewalk, the lookout tree, the chapel, a patrol on the road.
|
|
118
|
+
{ kind: 'lookout', x: 740, z: 1076, radius: 2 },
|
|
119
|
+
{ kind: 'blackwakedeckhand', x: 746, z: 1080, radius: 2 },
|
|
120
|
+
{ kind: 'blackwakedeckhand', x: 770, z: 1082 },
|
|
121
|
+
{ kind: 'lookout', x: 801, z: 1073, radius: 1 },
|
|
122
|
+
{ kind: 'cutthroat', x: 846, z: 1069, radius: 2 },
|
|
123
|
+
{ kind: 'cutthroat', x: 846, z: 1071, radius: 2 },
|
|
124
|
+
{ kind: 'blackwakedeckhand', x: 820, z: 1078 },
|
|
125
|
+
{ kind: 'blackwakedeckhand', x: 790, z: 1088 },
|
|
126
|
+
// Fort Rook's dock under the south wall.
|
|
127
|
+
{ kind: 'cutthroat', x: 828, z: 1175, radius: 2 },
|
|
128
|
+
{ kind: 'cutthroat', x: 818, z: 1176, radius: 2 },
|
|
129
|
+
{ kind: 'lookout', x: 836, z: 1176, radius: 1 },
|
|
130
|
+
// Blackgull Skerry, the pirates' islet.
|
|
131
|
+
{ kind: 'blackwakedeckhand', x: 856, z: 1202 },
|
|
132
|
+
{ kind: 'blackwakedeckhand', x: 862, z: 1199 },
|
|
133
|
+
{ kind: 'cutthroat', x: 862, z: 1204, name: 'Skerry Boss Dutch Varrow', radius: 2 },
|
|
134
|
+
{ kind: 'lookout', x: 864, z: 1199, radius: 1 },
|
|
135
|
+
// The hidden coves (inside, behind their doors): the Smugglers' Cove behind the falls, the gull ledge, the grotto, the low-tide cove.
|
|
136
|
+
{ kind: 'lookout', x: 1053, z: 620, radius: 2 },
|
|
137
|
+
{ kind: 'blackwakedeckhand', x: 1059, z: 620, radius: 2 },
|
|
138
|
+
{ kind: 'blackwakedeckhand', x: 1055, z: 616, radius: 2 },
|
|
139
|
+
{ kind: 'cutthroat', x: 1058, z: 617, name: 'Smuggler Boss Hask Marrow', radius: 1 },
|
|
140
|
+
{ kind: 'blackwakedeckhand', x: 914, z: 1099, radius: 1 },
|
|
141
|
+
{ kind: 'lookout', x: 915, z: 1101, radius: 1 },
|
|
142
|
+
{ kind: 'cutthroat', x: 913, z: 1104, name: 'Egg Thief Corran', radius: 1 },
|
|
143
|
+
{ kind: 'blackwakedeckhand', x: 1070, z: 621, name: 'Wreck Raider', radius: 2 },
|
|
144
|
+
{ kind: 'blackwakedeckhand', x: 1076, z: 621, name: 'Wreck Raider', radius: 2 },
|
|
145
|
+
{ kind: 'blackwakedeckhand', x: 1088, z: 625, radius: 2 },
|
|
146
|
+
{ kind: 'cutthroat', x: 1092, z: 618, radius: 2 },
|
|
147
|
+
];
|
|
148
|
+
export const BAY_WILDLIFE = [
|
|
149
|
+
{ kind: 'greyseal', x: 892, z: 1062, radius: 2 },
|
|
150
|
+
{ kind: 'greyseal', x: 897, z: 1065, radius: 2 },
|
|
151
|
+
{ kind: 'covegull', x: 760, z: 1049, radius: 4 },
|
|
152
|
+
{ kind: 'covegull', x: 832, z: 1051, radius: 4 },
|
|
153
|
+
{ kind: 'goat', x: 755, z: 1076, radius: 1 },
|
|
154
|
+
{ kind: 'goat', x: 757, z: 1078, radius: 1 },
|
|
155
|
+
{ kind: 'goat', x: 754, z: 1079, radius: 1 },
|
|
156
|
+
{ kind: 'greyseal', x: 795, z: 1197, radius: 2 },
|
|
157
|
+
{ kind: 'greyseal', x: 799, z: 1199, radius: 2 },
|
|
158
|
+
{ kind: 'covegull', x: 799, z: 1196, radius: 2 },
|
|
159
|
+
{ kind: 'tidecrab', x: 770, z: 1214, radius: 3 },
|
|
160
|
+
// In the coves: wreck rats among the grotto's ribs, tide crabs in the low-tide cove's pools.
|
|
161
|
+
{ kind: 'wreckrat', x: 1069, z: 614, radius: 2 },
|
|
162
|
+
{ kind: 'wreckrat', x: 1077, z: 617, radius: 2 },
|
|
163
|
+
{ kind: 'wreckrat', x: 1072, z: 623, radius: 2 },
|
|
164
|
+
{ kind: 'tidecrab', x: 1086, z: 618, radius: 2 },
|
|
165
|
+
{ kind: 'tidecrab', x: 1093, z: 624, radius: 2 },
|
|
166
|
+
{ kind: 'tidecrab', x: 1090, z: 620, radius: 2 },
|
|
167
|
+
];
|
|
168
|
+
/** The goat pen's fence ring (fence entities, `rail`): the pen is x 752-760, z 1074-1081, its gate shut. */
|
|
169
|
+
export const BAY_GOAT_PEN = { minX: 752, maxX: 760, minZ: 1074, maxZ: 1081 };
|
|
170
|
+
export const BAY_ISLETS = [
|
|
171
|
+
{ id: 'driftwood', name: 'Driftwood Isle', cx: 741, cz: 1200, rx: 8, rz: 6 },
|
|
172
|
+
{ id: 'treasure', name: 'Treasure Isle', cx: 771, cz: 1210, rx: 6, rz: 5 },
|
|
173
|
+
{ id: 'sealrock', name: 'Seal Rock', cx: 797, cz: 1198, rx: 5, rz: 4 },
|
|
174
|
+
{ id: 'wreckreef', name: 'Wreck Reef', cx: 826, cz: 1210, rx: 6, rz: 6 },
|
|
175
|
+
{ id: 'skerry', name: 'Blackgull Skerry', cx: 859, cz: 1201, rx: 8, rz: 6 },
|
|
176
|
+
];
|
|
177
|
+
/** Sandbars, always dry: Driftwood to Treasure, Treasure to Seal Rock, Wreck Reef to the Skerry (two tiles wide, from one tile to another). */
|
|
178
|
+
export const BAY_SANDBARS = [
|
|
179
|
+
[[748, 1203], [766, 1208]],
|
|
180
|
+
[[775, 1206], [793, 1199]],
|
|
181
|
+
[[831, 1207], [852, 1203]],
|
|
182
|
+
];
|
|
183
|
+
/** Is this tile islet ground (an ellipse, sand at its rim)? Returns 'grass' inside, 'sand' at the rim, null for the sea. */
|
|
184
|
+
export function bayIsletGround(x, z) {
|
|
185
|
+
for (const i of BAY_ISLETS) {
|
|
186
|
+
const d = ((x - i.cx) / i.rx) ** 2 + ((z - i.cz) / i.rz) ** 2;
|
|
187
|
+
if (d <= 0.45)
|
|
188
|
+
return i.id === 'wreckreef' || i.id === 'sealrock' ? 'sand' : 'grass';
|
|
189
|
+
if (d <= 1)
|
|
190
|
+
return 'sand';
|
|
191
|
+
}
|
|
192
|
+
for (const [[ax, az], [bx, bz]] of BAY_SANDBARS) {
|
|
193
|
+
const len = Math.hypot(bx - ax, bz - az);
|
|
194
|
+
const t = Math.max(0, Math.min(1, ((x - ax) * (bx - ax) + (z - az) * (bz - az)) / (len * len)));
|
|
195
|
+
if (Math.hypot(x - (ax + t * (bx - ax)), z - (az + t * (bz - az))) <= 1.6)
|
|
196
|
+
return 'sand';
|
|
197
|
+
}
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
export function bayIsletAt(x, z) {
|
|
201
|
+
return BAY_ISLETS.find((i) => ((x - i.cx) / i.rx) ** 2 + ((z - i.cz) / i.rz) ** 2 <= 1) ?? null;
|
|
202
|
+
}
|
|
203
|
+
// ---- The tide: one tide for the whole bay (the Sea Grotto's, gullsLowWater.ts) --------------------------------------------------
|
|
204
|
+
export const isBayLowWater = isSeaGrottoLowWater;
|
|
205
|
+
export function bayTideLine(nowMs) {
|
|
206
|
+
const t = seaGrottoTide(nowMs);
|
|
207
|
+
if (t.phase === 'low')
|
|
208
|
+
return `Low water: the low mark is dry, with ${waitText(t.msLeftLow)} left before the flood.`;
|
|
209
|
+
if (t.phase === 'ebb')
|
|
210
|
+
return `The sea is falling. Low water in ${waitText(t.msUntilLow)}.`;
|
|
211
|
+
if (t.phase === 'flood')
|
|
212
|
+
return `The sea is climbing back. Low water in ${waitText(t.msUntilLow)}.`;
|
|
213
|
+
return `High water. Low water in ${waitText(t.msUntilLow)}.`;
|
|
214
|
+
}
|
|
215
|
+
export const SC_MOUTH_ROOM = { id: 'sc-mouth', name: 'The Wet Mouth', box: { minX: 948, maxX: 958, minZ: 614, maxZ: 630 }, floor: 'sea-cave' };
|
|
216
|
+
export const SC_PASSAGE_A = { id: 'sc-pass-a', name: 'The Drip Passage', box: { minX: 959, maxX: 961, minZ: 620, maxZ: 624 }, floor: 'raw-warren' };
|
|
217
|
+
export const SC_CHANNEL_ROOM = { id: 'sc-channel', name: 'The Tidal Channel', box: { minX: 962, maxX: 980, minZ: 612, maxZ: 632 }, floor: 'sea-cave' };
|
|
218
|
+
/** The channel's water: a cut along the room's north side (never walked), the sluice gate where it meets the east wall. */
|
|
219
|
+
export const SC_CHANNEL_WATER = { minX: 963, maxX: 979, minZ: 613, maxZ: 617 };
|
|
220
|
+
export const SC_PASSAGE_B = { id: 'sc-pass-b', name: 'The Sluice Cut', box: { minX: 982, maxX: 984, minZ: 621, maxZ: 625 }, floor: 'worked-flagstone' };
|
|
221
|
+
export const SC_LEDGE_ROOM = { id: 'sc-ledge', name: "The Smugglers' Ledge", box: { minX: 985, maxX: 1003, minZ: 612, maxZ: 634 }, floor: 'guard-post', props: 'guard-supplies' };
|
|
222
|
+
export const SC_STORE_ROOM = { id: 'sc-store', name: 'The Store Caves', box: { minX: 1005, maxX: 1021, minZ: 614, maxZ: 632 }, floor: 'raw-warren', props: 'guard-supplies' };
|
|
223
|
+
export const SC_GROTTO_ROOM = { id: 'sc-grotto', name: 'The Grotto', box: { minX: 1023, maxX: 1043, minZ: 610, maxZ: 636 }, floor: 'sea-cave' };
|
|
224
|
+
/** The Grotto's pool, where the stolen ship's boat lies. */
|
|
225
|
+
export const SC_GROTTO_POOL = { minX: 1036, maxX: 1043, minZ: 628, maxZ: 636 };
|
|
226
|
+
export const SALTMARK_CAVE_ROOMS = [SC_MOUTH_ROOM, SC_PASSAGE_A, SC_CHANNEL_ROOM, SC_PASSAGE_B, SC_LEDGE_ROOM, SC_STORE_ROOM, SC_GROTTO_ROOM];
|
|
227
|
+
/** The whole sea cave (the aggro rule, the reset and the guide). */
|
|
228
|
+
export const SALTMARK_CAVE_BOX = { minX: 946, maxX: 1045, minZ: 608, maxZ: 640 };
|
|
229
|
+
export const inSaltmarkCave = (x, z) => inTileBox(SALTMARK_CAVE_BOX, x, z);
|
|
230
|
+
export const COVE_WATERFALL_ROOM = { id: 'cove-waterfall', name: "The Smugglers' Cove", box: { minX: 1050, maxX: 1062, minZ: 612, maxZ: 626 }, floor: 'raw-warren', props: 'guard-supplies' };
|
|
231
|
+
export const COVE_GROTTO_ROOM = { id: 'cove-grotto', name: 'The Skeleton-Wreck Grotto', box: { minX: 1066, maxX: 1080, minZ: 610, maxZ: 626 }, floor: 'sea-cave' };
|
|
232
|
+
export const COVE_TIDE_ROOM = { id: 'cove-tide', name: 'The Low-Tide Cove', box: { minX: 1084, maxX: 1096, minZ: 612, maxZ: 628 }, floor: 'sea-cave' };
|
|
233
|
+
export const BAY_UNDERGROUND_ROOMS = [...SALTMARK_CAVE_ROOMS, COVE_WATERFALL_ROOM, COVE_GROTTO_ROOM, COVE_TIDE_ROOM];
|
|
234
|
+
/** The plot of the underground strip this phase claims (rooms and the rock round them). */
|
|
235
|
+
export const BAY_UNDERGROUND_PLOT = { minX: 944, maxX: 1098, minZ: 602, maxZ: 644 };
|
|
236
|
+
/** Where the cove doors stand and where they land a player (named, so the quests, the smoke and the verify links share them). */
|
|
237
|
+
export const COVE_WATERFALL_OUTSIDE = { x: 731, z: 1099 };
|
|
238
|
+
export const COVE_GROTTO_OUTSIDE = { x: 746, z: 1172 };
|
|
239
|
+
export const COVE_GULL_TOP = { x: 907, z: 1100 };
|
|
240
|
+
/** The Gull-Cliff Cove: a ledge of sand at the foot of the east cliff, carved out of the sea (overworld, open sky). */
|
|
241
|
+
export const COVE_GULL_LEDGE = { minX: 912, maxX: 917, minZ: 1095, maxZ: 1106 };
|
|
242
|
+
export const COVE_GULL_FOOT = { x: 913, z: 1100 };
|
|
243
|
+
export const COVE_TIDE_OUTSIDE = { x: 885, z: 1175 };
|
|
244
|
+
export const SALTMARK_CAVE_OUTSIDE = { x: 891, z: 1062 };
|
|
245
|
+
export const SALTMARK_CAVE_ENTRY = { x: 953, z: 627 };
|
|
246
|
+
export const BAY_FERRY_BEACH = { x: 714, z: 1053 };
|
|
247
|
+
export const BAY_FERRY_ISLE = { x: 742, z: 1203 };
|
|
248
|
+
export const REEF_SEAL_SIDE = { x: 798, z: 1197 };
|
|
249
|
+
export const REEF_WRECK_SIDE = { x: 823, z: 1209 };
|
|
250
|
+
export const BAY_DOORS = [
|
|
251
|
+
// The castaways' rowing boat on the Landing's beach, and the boat drawn up on Driftwood Isle.
|
|
252
|
+
{ id: 'ferry-out', x: 714, z: 1050, style: 'hbrowboat-n', to: BAY_FERRY_ISLE, label: "Row out to the islets (the castaways' boat)",
|
|
253
|
+
text: 'You push the castaways\' boat off the sand and row east round the point, then south past the cliffs, out to the islets. Driftwood Isle\'s little beach takes the keel.' },
|
|
254
|
+
{ id: 'ferry-back', x: 742, z: 1205, style: 'hbrowboat-s', to: BAY_FERRY_BEACH, label: "Row back to the Landing's beach",
|
|
255
|
+
text: 'You row back round the point to the Landing\'s beach and drag the boat up the sand for the next castaway.' },
|
|
256
|
+
// The reef between Seal Rock and Wreck Reef: dry only at low water.
|
|
257
|
+
{ id: 'reef-out', x: 802, z: 1199, style: 'brreefstones-e', to: REEF_WRECK_SIDE, label: 'Cross the reef to Wreck Reef (low water only)',
|
|
258
|
+
text: 'You pick your way over the reef stones, weed slick underfoot, to the wreck on the far rocks.' },
|
|
259
|
+
{ id: 'reef-back', x: 819, z: 1209, style: 'brreefstones-w', to: REEF_SEAL_SIDE, label: 'Cross the reef back to Seal Rock',
|
|
260
|
+
text: 'You splash back over the reef to Seal Rock.' },
|
|
261
|
+
// The Saltmark Sea Cave (B8).
|
|
262
|
+
{ id: 'cave-in', x: 887, z: 1062, style: 'seacave-reach-e', to: SALTMARK_CAVE_ENTRY, label: 'The Saltmark Sea Cave (low water only)',
|
|
263
|
+
text: 'You duck under the dripping arch at low water. The sea has only just left the floor; lantern light glints far in.' },
|
|
264
|
+
{ id: 'cave-out', x: 953, z: 632, style: 'seacave-reach-n', to: SALTMARK_CAVE_OUTSIDE, label: 'Way out to the beach',
|
|
265
|
+
text: 'You wade out under the arch onto the little beach below Saltmark Light.' },
|
|
266
|
+
{ id: 'cave-boat', x: 1035, z: 632, style: 'pbrowboat-e', to: SALTMARK_CAVE_OUTSIDE, label: "Row the smugglers' stolen boat out",
|
|
267
|
+
text: 'You shove the stolen ship\'s boat off and row it out through a sea passage the smugglers kept, into daylight below Saltmark Light.' },
|
|
268
|
+
{ id: 'sluice', x: 981, z: 623, style: 'brsluice-e', to: { x: 983, z: 623 }, label: 'The sluice gate',
|
|
269
|
+
text: 'With both wheels turned the channel has drained to a trickle. You duck under the raised gate into the cut beyond.' },
|
|
270
|
+
{ id: 'ledge-door', x: 1004, z: 623, style: 'pbbarricade-e', to: { x: 1006, z: 623 }, label: "The smugglers' barricade",
|
|
271
|
+
text: 'You climb over the broken crate barricade into the Store Caves.' },
|
|
272
|
+
{ id: 'store-door', x: 1022, z: 623, style: 'pbbarricade-e', to: { x: 1024, z: 623 }, label: 'The store barricade',
|
|
273
|
+
text: 'You squeeze past the last barricade. The cave opens into a lantern-lit grotto, and someone is waiting in it.' },
|
|
274
|
+
// The coves (A9).
|
|
275
|
+
{ id: 'waterfall-in', x: 731, z: 1102, style: 'seacave-reach-n', to: { x: 1056, z: 622 }, label: 'Behind the waterfall',
|
|
276
|
+
text: 'You step through the curtain of falling water, soaked to the skin, into a smugglers\' cave behind it.' },
|
|
277
|
+
{ id: 'waterfall-out', x: 1056, z: 628, style: 'seacave-reach-n', to: COVE_WATERFALL_OUTSIDE, label: 'Back out through the falls',
|
|
278
|
+
text: 'You duck back through the falls into the daylight of the meadow.' },
|
|
279
|
+
{ id: 'grotto-in', x: 746, z: 1175, style: 'brgrille-n', to: { x: 1073, z: 622 }, label: 'The iron grille',
|
|
280
|
+
text: 'The grille stands raised on its winch. You climb down into a sea hollow where pale ribs of an old wreck rise from the sand.' },
|
|
281
|
+
{ id: 'grotto-out', x: 1073, z: 628, style: 'seacave-reach-n', to: COVE_GROTTO_OUTSIDE, label: 'Climb back up to the shore',
|
|
282
|
+
text: 'You climb back up through the grille onto the south shore.' },
|
|
283
|
+
{ id: 'gull-in', x: 909, z: 1100, style: 'bropeladder-e', to: COVE_GULL_FOOT, label: 'Climb down the rope ladder',
|
|
284
|
+
text: 'You swing out over the cliff edge and climb down the rope ladder, gulls screaming round your head, to a ledge of sand at the foot of the cliff.' },
|
|
285
|
+
{ id: 'gull-out', x: 911, z: 1100, style: 'bropeladder-w', to: COVE_GULL_TOP, label: 'Climb the rope ladder',
|
|
286
|
+
text: 'You climb the rope ladder back to the cliff top.' },
|
|
287
|
+
{ id: 'tide-in', x: 885, z: 1178, style: 'seacave-reach-n', to: { x: 1090, z: 624 }, label: 'The low-tide cave (low water only)',
|
|
288
|
+
text: 'At low water the cave mouth is clear of the sea. You wade in over the wet rocks.' },
|
|
289
|
+
{ id: 'tide-out', x: 1090, z: 630, style: 'seacave-reach-n', to: COVE_TIDE_OUTSIDE, label: 'Wade back out to the cliffs',
|
|
290
|
+
text: 'You wade out of the cave and climb back up onto the cliff top.' },
|
|
291
|
+
];
|
|
292
|
+
/** The Blender model a bay door's caveentrance style draws with (smugglersStrand.ts caveEntranceModel asks), or null. */
|
|
293
|
+
export function bayDoorModel(style) {
|
|
294
|
+
if (typeof style !== 'string')
|
|
295
|
+
return null;
|
|
296
|
+
for (const model of ['brgrille', 'bropeladder', 'brsluice', 'brreefstones', 'pbbarricade', 'pbrowboat'])
|
|
297
|
+
if (style.startsWith(`${model}-`))
|
|
298
|
+
return model;
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
/** The entity id a bay door is laid with (the client names a door by it). */
|
|
302
|
+
export const bayDoorEntityId = (id) => `reach-door-${id}`;
|
|
303
|
+
export function bayDoorAt(style, x, z) {
|
|
304
|
+
return BAY_DOORS.find((d) => d.style === style && d.x === x && d.z === z) ?? null;
|
|
305
|
+
}
|
|
306
|
+
export const BAY_TIDE_SHUT_TEXT = 'The sea fills the way in. Only at low water can you get through: the bay\'s tide comes round every ten minutes.';
|
|
307
|
+
export const SC_SLUICE_SHUT_TEXT = 'The sluice gate is down and the channel behind it runs deep and fast. Two wheels work the sluices: turn them both.';
|
|
308
|
+
export const SC_WAVES_HOLD_TEXT = 'Smugglers hold the barricade. Beat every wave in this cave first.';
|
|
309
|
+
/** The Saltmark Sea Cave's entry level (a standard walk-free door gate on the arch, areaGates.ts). */
|
|
310
|
+
export const SALTMARK_CAVE_COMBAT_LEVEL = 18;
|
|
311
|
+
export const SALTMARK_CAVE_NAME = 'The Saltmark Sea Cave';
|
|
312
|
+
export const SC_WAVE_ROOMS = [
|
|
313
|
+
{
|
|
314
|
+
room: SC_LEDGE_ROOM,
|
|
315
|
+
waves: [
|
|
316
|
+
['blackwakedeckhand', 'blackwakedeckhand', 'lookout'],
|
|
317
|
+
['cutthroat', 'blackwakedeckhand', 'lookout'],
|
|
318
|
+
['cutthroat', 'cutthroat', 'blackwakedeckhand'],
|
|
319
|
+
],
|
|
320
|
+
entries: [[988, 614], [1000, 614], [1001, 632], [988, 632], [994, 613]],
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
room: SC_STORE_ROOM,
|
|
324
|
+
waves: [
|
|
325
|
+
['blackwakedeckhand', 'blackwakedeckhand', 'cutthroat'],
|
|
326
|
+
['cutthroat', 'cutthroat', 'lookout', 'blackwakedeckhand'],
|
|
327
|
+
],
|
|
328
|
+
entries: [[1008, 616], [1018, 616], [1018, 630], [1009, 630]],
|
|
329
|
+
},
|
|
330
|
+
];
|
|
331
|
+
/** Seconds between a wave beaten and the next; how long a cleared cave stays cleared; how long an empty room waits before it resets. */
|
|
332
|
+
export const SC_BREATHER_MS = 5_000;
|
|
333
|
+
export const SC_RESET_MS = 20 * 60_000;
|
|
334
|
+
export const SC_EMPTY_RESET_MS = 60_000;
|
|
335
|
+
export const SC_WAVE_ID_PREFIX = 'sc-wave-';
|
|
336
|
+
export const TIDE_BROKER_KIND = 'tidebroker';
|
|
337
|
+
export const TIDE_BROKER_NAME = 'The Tide Broker';
|
|
338
|
+
export const TIDE_BROKER = {
|
|
339
|
+
name: TIDE_BROKER_NAME,
|
|
340
|
+
level: [26, 26],
|
|
341
|
+
maxHit: 13,
|
|
342
|
+
healthFactor: 1.6,
|
|
343
|
+
respawnMs: SC_RESET_MS,
|
|
344
|
+
aggro: 7,
|
|
345
|
+
leash: 12,
|
|
346
|
+
x: 1033,
|
|
347
|
+
z: 620,
|
|
348
|
+
spawnLeash: 2,
|
|
349
|
+
/** Once a fight, under half health, he whistles up this crew from the side tunnels. */
|
|
350
|
+
callCrew: ['blackwakedeckhand', 'blackwakedeckhand', 'cutthroat'],
|
|
351
|
+
callAt: 0.5,
|
|
352
|
+
callEntries: [[1025, 612], [1041, 612], [1025, 634]],
|
|
353
|
+
callText: 'The Tide Broker puts two fingers to his mouth and whistles. Smugglers come running out of the side tunnels!',
|
|
354
|
+
text: 'The Tide Broker turns from his strongbox, cutlass already out. "The tide brings everything to me in the end. Even you."',
|
|
355
|
+
note: "A bald, bearded smuggler with a green sash who runs the Saltmark Sea Cave and buys whatever the tide and the Blackwakes bring in. Every fourth blow is a wide slash, twice an ordinary hit, told a full turn ahead: step out of his reach. Under half health he whistles three smugglers out of the side tunnels, once a fight.",
|
|
356
|
+
};
|
|
357
|
+
export const SC_BOX_PREFIX = 'sc-';
|
|
358
|
+
export function isSaltmarkCaveHostileKind(kind) {
|
|
359
|
+
return kind === TIDE_BROKER_KIND;
|
|
360
|
+
}
|
|
361
|
+
// ---- The quest props (questprop entities, style `<prop>:<which>`) -------------------------------------------------------------
|
|
362
|
+
export const BAY_PROP = {
|
|
363
|
+
/** The damp note on the crossroads gibbet (The Damp Note). */
|
|
364
|
+
note: 'reachnote',
|
|
365
|
+
/** The rusty lever beside the waterfall (The Damp Note). */
|
|
366
|
+
lever: 'reachlever',
|
|
367
|
+
/** The smugglers' hidden cargo in the Smugglers' Cove (The Damp Note). */
|
|
368
|
+
cargo: 'reachcargo',
|
|
369
|
+
/** The castaway's journal in the hut on Driftwood Isle (The Pale Ribs). */
|
|
370
|
+
journal: 'reachjournal',
|
|
371
|
+
/** The grille's winch beside the iron grille (The Pale Ribs). */
|
|
372
|
+
winch: 'reachwinch',
|
|
373
|
+
/** The wreck's ribs in the grotto, where the old captain's log lies (The Pale Ribs). */
|
|
374
|
+
log: 'reachlog',
|
|
375
|
+
/** Gull feathers on the east cliff top (Feathers on the Cliff). */
|
|
376
|
+
feather: 'reachfeather',
|
|
377
|
+
/** The rope-ladder brake at the cliff edge (Feathers on the Cliff). */
|
|
378
|
+
brake: 'reachbrake',
|
|
379
|
+
/** The big nest on the ledge, where the stolen eggs are kept (Feathers on the Cliff). */
|
|
380
|
+
eggs: 'reacheggs',
|
|
381
|
+
/** The tide board by the low-tide cave (The Tide Board). */
|
|
382
|
+
tideboard: 'reachtideboard',
|
|
383
|
+
/** The smugglers' cache in the Low-Tide Cove (The Tide Board). */
|
|
384
|
+
tidecache: 'reachtidecache',
|
|
385
|
+
/** The two sluice wheels in the sea cave's Tidal Channel (the puzzle; The Tide Broker). */
|
|
386
|
+
wheel: 'reachwheel',
|
|
387
|
+
/** The Tide Broker's strongbox in the Grotto (the sea cave's prize). */
|
|
388
|
+
strongbox: 'reachstrongbox',
|
|
389
|
+
};
|
|
390
|
+
export const BAY_NOTE = { id: 'reach-note', x: 812, z: 1092, style: `${BAY_PROP.note}:gibbet` };
|
|
391
|
+
export const BAY_LEVER = { id: 'reach-lever', x: 734, z: 1100, style: `${BAY_PROP.lever}:falls` };
|
|
392
|
+
export const BAY_CARGO = { id: 'reach-cargo', x: 1056, z: 614, style: `${BAY_PROP.cargo}:crates` };
|
|
393
|
+
export const BAY_JOURNAL = { id: 'reach-journal', x: 744, z: 1197, style: `${BAY_PROP.journal}:hut` };
|
|
394
|
+
export const BAY_WINCH = { id: 'reach-winch', x: 750, z: 1172, style: `${BAY_PROP.winch}:grille` };
|
|
395
|
+
export const BAY_LOG = { id: 'reach-log', x: 1073, z: 613, style: `${BAY_PROP.log}:ribs` };
|
|
396
|
+
export const BAY_FEATHERS = [
|
|
397
|
+
{ id: 'reach-feather-1', x: 906, z: 1090, style: `${BAY_PROP.feather}:1` },
|
|
398
|
+
{ id: 'reach-feather-2', x: 907, z: 1095, style: `${BAY_PROP.feather}:2` },
|
|
399
|
+
{ id: 'reach-feather-3', x: 903, z: 1106, style: `${BAY_PROP.feather}:3` },
|
|
400
|
+
];
|
|
401
|
+
export const BAY_BRAKE = { id: 'reach-brake', x: 907, z: 1102, style: `${BAY_PROP.brake}:ladder` };
|
|
402
|
+
export const BAY_EGGS = { id: 'reach-eggs', x: 914, z: 1097, style: `${BAY_PROP.eggs}:nest` };
|
|
403
|
+
export const BAY_TIDEBOARD = { id: 'reach-tideboard', x: 881, z: 1175, style: `${BAY_PROP.tideboard}:cove` };
|
|
404
|
+
export const BAY_TIDECACHE = { id: 'reach-tidecache', x: 1090, z: 614, style: `${BAY_PROP.tidecache}:cache` };
|
|
405
|
+
export const SC_WHEELS = [
|
|
406
|
+
{ id: 'reach-wheel-1', x: 966, z: 619, style: `${BAY_PROP.wheel}:west` },
|
|
407
|
+
{ id: 'reach-wheel-2', x: 978, z: 619, style: `${BAY_PROP.wheel}:east` },
|
|
408
|
+
];
|
|
409
|
+
export const SC_STRONGBOX = { id: 'reach-strongbox', x: 1029, z: 612, style: `${BAY_PROP.strongbox}:broker` };
|
|
410
|
+
export const BAY_QUEST_PROPS = [
|
|
411
|
+
BAY_NOTE, BAY_LEVER, BAY_CARGO, BAY_JOURNAL, BAY_WINCH, BAY_LOG, ...BAY_FEATHERS, BAY_BRAKE, BAY_EGGS, BAY_TIDEBOARD, BAY_TIDECACHE,
|
|
412
|
+
...SC_WHEELS, SC_STRONGBOX,
|
|
413
|
+
];
|
|
414
|
+
/** The model each prop draws with (quest-workshop bayreaches, or an earlier kit's). */
|
|
415
|
+
export function bayPropModel(prop) {
|
|
416
|
+
switch (prop) {
|
|
417
|
+
case BAY_PROP.note: return 'brgibbet';
|
|
418
|
+
case BAY_PROP.lever:
|
|
419
|
+
case BAY_PROP.winch:
|
|
420
|
+
case BAY_PROP.brake: return 'brlever';
|
|
421
|
+
case BAY_PROP.cargo:
|
|
422
|
+
case BAY_PROP.tidecache: return 'blackwakecargo';
|
|
423
|
+
case BAY_PROP.journal: return 'castawaycampmaptable';
|
|
424
|
+
case BAY_PROP.log: return 'pchestsea';
|
|
425
|
+
case BAY_PROP.feather:
|
|
426
|
+
case BAY_PROP.eggs: return 'brnest';
|
|
427
|
+
case BAY_PROP.tideboard: return 'brtideboard';
|
|
428
|
+
case BAY_PROP.wheel: return 'brwheel';
|
|
429
|
+
case BAY_PROP.strongbox: return 'pchestcaptain';
|
|
430
|
+
default: return null;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
export const BAY_PROP_NAMES = {
|
|
434
|
+
[BAY_NOTE.style]: 'Crossroads Gibbet',
|
|
435
|
+
[BAY_LEVER.style]: 'Rusty Lever',
|
|
436
|
+
[BAY_CARGO.style]: "Smugglers' Hidden Cargo",
|
|
437
|
+
[BAY_JOURNAL.style]: "Castaway's Journal",
|
|
438
|
+
[BAY_WINCH.style]: 'Grille Winch',
|
|
439
|
+
[BAY_LOG.style]: "Old Captain's Sea Chest",
|
|
440
|
+
...Object.fromEntries(BAY_FEATHERS.map((f) => [f.style, 'Gull Nest'])),
|
|
441
|
+
[BAY_BRAKE.style]: 'Rope Ladder Brake',
|
|
442
|
+
[BAY_EGGS.style]: 'The Big Nest',
|
|
443
|
+
[BAY_TIDEBOARD.style]: 'Tide Board',
|
|
444
|
+
[BAY_TIDECACHE.style]: "Smugglers' Cache",
|
|
445
|
+
[SC_WHEELS[0].style]: 'Sluice Wheel',
|
|
446
|
+
[SC_WHEELS[1].style]: 'Sluice Wheel',
|
|
447
|
+
[SC_STRONGBOX.style]: "The Tide Broker's Strongbox",
|
|
448
|
+
};
|
|
449
|
+
/** What the Tide Broker's strongbox pays (once per player per reset, and only to someone who has beaten him since it last paid them). */
|
|
450
|
+
export const SC_STRONGBOX_COINS = [180, 320];
|
|
451
|
+
export const SC_STRONGBOX_TEXT = 'You lever the Tide Broker\'s strongbox open: his takings, and the smugglers\' best pickings.';
|
|
452
|
+
export const SC_STRONGBOX_LOCKED_TEXT = 'The strongbox is chained shut. The Tide Broker wears the key round his neck: beat him first.';
|
|
453
|
+
// ---- The cove quests (C10) and the sea cave's (B8): ids, items, the step each door opens on --------------------------------------
|
|
454
|
+
export const COVE_QUEST_IDS = ['theDampNote', 'thePaleRibs', 'feathersOnTheCliff', 'theTideBoard', 'theTideBroker'];
|
|
455
|
+
export const GROTTO_KEY_KIND = 'grottokey';
|
|
456
|
+
export const BAY_ITEM_NAMES = { [GROTTO_KEY_KIND]: 'Grotto Winch Key' };
|
|
457
|
+
export const BAY_ITEM_KINDS = [GROTTO_KEY_KIND];
|
|
458
|
+
/**
|
|
459
|
+
* A cove door lets a player in once their quest has passed the step that opens it (the lever pulled, the winch turned, the brake
|
|
460
|
+
* set, the tide read), or the quest is done. `afterStep` is that step's index: the door opens when the saved step is past it.
|
|
461
|
+
*/
|
|
462
|
+
export const COVE_DOOR_QUESTS = {
|
|
463
|
+
'waterfall-in': { quest: 'theDampNote', afterStep: 1, shut: 'Water thunders down the rock. Behind it you glimpse a dark gap, but the falls drive you back. There must be a way to stop them.' },
|
|
464
|
+
'grotto-in': { quest: 'thePaleRibs', afterStep: 1, shut: 'The iron grille is down and its winch is locked. Somebody once had the key.' },
|
|
465
|
+
'gull-in': { quest: 'feathersOnTheCliff', afterStep: 1, shut: 'The rope ladder hangs loose over the cliff; its brake is off and it would drop you. Set the brake first.' },
|
|
466
|
+
'tide-in': { quest: 'theTideBoard', afterStep: 0, shut: 'A dark mouth opens in the cliff foot, but you do not know the way down or when the sea leaves it. The tide board beside it would tell you.' },
|
|
467
|
+
};
|
|
468
|
+
export const BAY_PLACE_TEXT = 'East of the Landing the bay opens out: the Long Beach with its wrecks and the Blackwakes\' Wrackline Camp, the meadow band behind it ' +
|
|
469
|
+
'(the smugglers\' farm, the ropewalk, the crossroads gibbet and the ruined chapel), the islets out in the open sea south of the bay ' +
|
|
470
|
+
'(the castaways\' boat rows you out from the Landing\'s beach), four hidden coves in the cliffs that open through quests, the Saltmark ' +
|
|
471
|
+
'Sea Cave under the headland (levels 18-26, low water only), and Fort Rook\'s dock under its south wall. Every pirate attacks on sight.';
|
|
472
|
+
/** What a bay prop says when no quest step wants it (the tide board always tells the tide). */
|
|
473
|
+
export function bayPropIdleLine(prop, nowMs) {
|
|
474
|
+
switch (prop) {
|
|
475
|
+
case BAY_PROP.tideboard: return `The tide board. ${bayTideLine(nowMs)}`;
|
|
476
|
+
case BAY_PROP.note: return 'An old gibbet at the crossroads, its cage empty. Damp notes in Blackwake chalk come and go on the post.';
|
|
477
|
+
case BAY_PROP.lever: return 'A rusty lever beside the falls, worn bright where hands have pulled it.';
|
|
478
|
+
case BAY_PROP.winch: return 'The winch that lifts the iron grille, its square lock rusted.';
|
|
479
|
+
case BAY_PROP.brake: return 'The rope ladder\'s brake, set hard. The ladder hangs taut down the cliff.';
|
|
480
|
+
case BAY_PROP.journal: return 'A castaway\'s journal, its pages swollen with sea air. The last page is about a key.';
|
|
481
|
+
case BAY_PROP.feather: return 'A gull\'s nest on the cliff top.';
|
|
482
|
+
case BAY_PROP.eggs: return 'The big nest on the ledge, full of gull eggs again.';
|
|
483
|
+
case BAY_PROP.cargo:
|
|
484
|
+
case BAY_PROP.tidecache: return 'Smugglers\' crates and kegs, picked over.';
|
|
485
|
+
case BAY_PROP.log: return 'An old captain\'s sea chest under the wreck\'s pale ribs, its log long gone.';
|
|
486
|
+
case BAY_PROP.wheel: return null;
|
|
487
|
+
case BAY_PROP.strongbox: return null;
|
|
488
|
+
default: return null;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
//# sourceMappingURL=bayReaches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bayReaches.js","sourceRoot":"","sources":["../src/bayReaches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE COVE QUESTS (James's sheet pirate-bay-c10, 2026-10-15) and the Saltmark Sea Cave's quest (b08): five short quests from the bay's
|
|
3
|
+
* friendly people (the Castaway Camp and Keeper Ada). Each cove quest opens its cove for good: find the clue, open the way in (a lever,
|
|
4
|
+
* a winch and its key, a ladder brake, the tide), beat the crew inside, take what they guard, report back. The places are in
|
|
5
|
+
* bayReaches.ts; the doors open on the step after `COVE_DOOR_QUESTS[door].afterStep`.
|
|
6
|
+
*
|
|
7
|
+
* 1. The Damp Note Digger Bram Combat 10 the Smugglers' Cove behind the waterfall on the ridge
|
|
8
|
+
* 2. The Pale Ribs Map-reader Iona Combat 12 the Skeleton-Wreck Grotto behind the iron grille on the south shore
|
|
9
|
+
* 3. Feathers on the Cliff Bird Keeper Nell Combat 14 the Gull-Cliff Cove down the rope ladder on the east cliff
|
|
10
|
+
* 4. The Tide Board Keeper Ada Combat 16 the Low-Tide Cove in the south-east cliffs, at low water
|
|
11
|
+
* 5. The Tide Broker Keeper Ada Combat 18 the Saltmark Sea Cave under the headland (after The Tide Board)
|
|
12
|
+
*
|
|
13
|
+
* Every pirate here attacks on sight; nobody in the coves trades. EVERY NUMBER HERE (levels, counts, rewards) IS A PLACEHOLDER for the
|
|
14
|
+
* balance pass.
|
|
15
|
+
*/
|
|
16
|
+
import type { StoryQuestDef } from './storyQuests.js';
|
|
17
|
+
import { type CoveQuestId } from './bayReaches.js';
|
|
18
|
+
export declare const COVE_QUEST_COMBAT_LEVELS: Readonly<Record<CoveQuestId, number>>;
|
|
19
|
+
export declare const COVE_QUEST_NAMES: Readonly<Record<CoveQuestId, string>>;
|
|
20
|
+
export declare const THE_DAMP_NOTE_QUEST: StoryQuestDef;
|
|
21
|
+
export declare const THE_PALE_RIBS_QUEST: StoryQuestDef;
|
|
22
|
+
export declare const FEATHERS_ON_THE_CLIFF_QUEST: StoryQuestDef;
|
|
23
|
+
export declare const THE_TIDE_BOARD_QUEST: StoryQuestDef;
|
|
24
|
+
export declare const THE_TIDE_BROKER_QUEST: StoryQuestDef;
|
|
25
|
+
export declare const BAY_REACHES_QUESTS: Readonly<Record<CoveQuestId, StoryQuestDef>>;
|
|
26
|
+
//# sourceMappingURL=bayReachesQuests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bayReachesQuests.d.ts","sourceRoot":"","sources":["../src/bayReachesQuests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EA4BL,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAYzB,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAM1E,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAMlE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAkEjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAqEjC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,aAiEzC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAyDlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAgEnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAM3E,CAAC"}
|