@dreadwood-types/types 0.1.176 → 0.1.178
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/areaTransitions.d.ts +11 -1
- package/dist/areaTransitions.d.ts.map +1 -1
- package/dist/areaTransitions.js +24 -0
- package/dist/areaTransitions.js.map +1 -1
- package/dist/constants.d.ts +40 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +34 -1
- package/dist/constants.js.map +1 -1
- package/dist/dungeonCharts.d.ts.map +1 -1
- package/dist/dungeonCharts.js +12 -0
- package/dist/dungeonCharts.js.map +1 -1
- package/dist/expandedContracts.d.ts +5 -0
- package/dist/expandedContracts.d.ts.map +1 -1
- package/dist/expandedContracts.js +17 -3
- package/dist/expandedContracts.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/messages.d.ts +8 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +6 -0
- package/dist/quests.js.map +1 -1
- package/dist/storyQuests.d.ts +3 -1
- package/dist/storyQuests.d.ts.map +1 -1
- package/dist/storyQuests.js +52 -1
- package/dist/storyQuests.js.map +1 -1
- package/dist/westernKingdoms.d.ts +175 -0
- package/dist/westernKingdoms.d.ts.map +1 -0
- package/dist/westernKingdoms.js +270 -0
- package/dist/westernKingdoms.js.map +1 -0
- package/dist/westernQuests.d.ts +36 -0
- package/dist/westernQuests.d.ts.map +1 -1
- package/dist/westernQuests.js +28 -0
- package/dist/westernQuests.js.map +1 -1
- package/dist/westernTrain.d.ts +104 -1
- package/dist/westernTrain.d.ts.map +1 -1
- package/dist/westernTrain.js +113 -7
- package/dist/westernTrain.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Western Kingdoms (James, 2026-10-10): a landmass as big as today's world, drawn WEST of our coast on his marked
|
|
3
|
+
* map (design id `western-kingdoms-vision`), reached only by the dwarven train. Plan:
|
|
4
|
+
* `.cursor/task-plans/2026-10-10-west-land-build-plan.md`, option C2 (James said yes to every recommendation).
|
|
5
|
+
*
|
|
6
|
+
* Where it lives: its own strip of the grid, the grid's last region, east of the Arcane strip (constants.ts
|
|
7
|
+
* WESTERN_ORIGIN_X, WESTERN_CHUNKS_X, WESTERN_STRIP_WIDTH, WESTERN_END_X; worldRegionAt answers 'western'). Nothing in
|
|
8
|
+
* the overworld, the underground or the Arcane strip moved, so no save migrates and WORLD_REVISION is unchanged. The
|
|
9
|
+
* strip is the full grid height (rows are shared across the grid).
|
|
10
|
+
*
|
|
11
|
+
* Phase 0a: the strip exists and is open sea. Phase 1a (this version): the land's OUTLINE, a blockout traced from the
|
|
12
|
+
* marked map, in ZONE-LOCAL tiles with one origin (WESTERN_LAND_X/Z, westernWorld/westernLocal, the Arcane Realms'
|
|
13
|
+
* pattern), so the land can later be moved (a wider strip, or real columns after an x insert) by changing its origin.
|
|
14
|
+
* Any hash a later pass uses must read LOCAL coordinates for the same reason. Backend placeWesternKingdoms lays it as
|
|
15
|
+
* plain ground: grass, the snow of the north-east ice corner, a beach ring; nothing on it yet.
|
|
16
|
+
*/
|
|
17
|
+
import { WESTERN_END_X, WESTERN_ORIGIN_X } from './constants.js';
|
|
18
|
+
// Not constants.ts GRID_HEIGHT: that is the generator frame's (1248 rows); the public, final grid is layout 2's.
|
|
19
|
+
import { EXPANDED_WORLD_HEIGHT as GRID_HEIGHT } from './starterExpansion.js';
|
|
20
|
+
export const WESTERN_KINGDOMS_NAME = 'The Western Kingdoms';
|
|
21
|
+
/** The strip's open sea round the land: deep water at height 0, walkable as water is (backend placeWesternKingdoms). */
|
|
22
|
+
export const WESTERN_SEA_HEIGHT = 0;
|
|
23
|
+
/** Is a world tile inside the Western strip (every row of its columns)? */
|
|
24
|
+
export function inWesternStrip(x, z) {
|
|
25
|
+
return x >= WESTERN_ORIGIN_X && x < WESTERN_END_X && z >= 0 && z < GRID_HEIGHT;
|
|
26
|
+
}
|
|
27
|
+
/** A world x as a column of the strip (0 at WESTERN_ORIGIN_X), and back. */
|
|
28
|
+
export function westernStripX(x) {
|
|
29
|
+
return x - WESTERN_ORIGIN_X;
|
|
30
|
+
}
|
|
31
|
+
export function westernWorldX(stripX) {
|
|
32
|
+
return WESTERN_ORIGIN_X + stripX;
|
|
33
|
+
}
|
|
34
|
+
/* ------------------------------------------------------------------ *
|
|
35
|
+
* The land's frame (phase 1a)
|
|
36
|
+
* ------------------------------------------------------------------ */
|
|
37
|
+
/**
|
|
38
|
+
* The land's box in the strip: 560 x 1248 tiles (James drew it about as tall as today's world and a little narrower;
|
|
39
|
+
* the plan's "about 576 x 1250"), local (0, 0) at world (WESTERN_LAND_X, WESTERN_LAND_Z).
|
|
40
|
+
*
|
|
41
|
+
* The margins are open sea: 80 columns on the strip's west side, so the land stays more than three chunks (the
|
|
42
|
+
* server streams two rings and has no region filter on NPCs, audit risk 5) from the Arcane Realms' land, whose east
|
|
43
|
+
* coast is at x 1509; 64 on the east side to the grid's edge, and 64 rows north and south.
|
|
44
|
+
*/
|
|
45
|
+
export const WESTERN_LAND_W = 560;
|
|
46
|
+
export const WESTERN_LAND_H = 1248;
|
|
47
|
+
export const WESTERN_LAND_X = WESTERN_ORIGIN_X + 80;
|
|
48
|
+
export const WESTERN_LAND_Z = 64;
|
|
49
|
+
/** The land's ground height (plain, flat for the blockout) and the beach ring's two steps down to the sea. */
|
|
50
|
+
export const WESTERN_GROUND_HEIGHT = 3;
|
|
51
|
+
export const WESTERN_BEACH_HEIGHTS = [1, 2];
|
|
52
|
+
export function westernWorld(lx, lz) {
|
|
53
|
+
return { x: WESTERN_LAND_X + lx, z: WESTERN_LAND_Z + lz };
|
|
54
|
+
}
|
|
55
|
+
export function westernLocal(x, z) {
|
|
56
|
+
return { x: x - WESTERN_LAND_X, z: z - WESTERN_LAND_Z };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The coast, land-local, clockwise from the north-west. A blockout traced from James's marked map
|
|
60
|
+
* (`.cursor/task-plans/2026-10-10-western-kingdoms-island-design/james-vision-marked-map.webp`): one big landmass,
|
|
61
|
+
* roughly the box he drew west of our coast, its long east shore facing our west coast (the impassable join, the red
|
|
62
|
+
* box, is on the paper map, not in the grid). Kept simple and generous; later passes refine it.
|
|
63
|
+
*
|
|
64
|
+
* The one fixed point is the south-east bay (local x 460, z 1040-1076): the train's first stop stands on its west
|
|
65
|
+
* shore (phase 0c's stub, types westernTrain.ts WESTERN_ISLE_*: the platform and rock cap on the land, the causeway
|
|
66
|
+
* running east out into the bay, where the line comes up out of the sea).
|
|
67
|
+
*/
|
|
68
|
+
export const WESTERN_LAND_OUTLINE = [
|
|
69
|
+
// North coast.
|
|
70
|
+
[28, 34], [110, 12], [205, 26], [300, 4], [410, 18], [505, 6], [552, 40],
|
|
71
|
+
// East coast, facing our west coast across the sea.
|
|
72
|
+
[560, 150], [544, 290], [558, 430], [538, 560], [556, 700], [540, 830], [552, 950],
|
|
73
|
+
// The south-east bay and the first stop's shore (x 460 from z 1040 to 1076).
|
|
74
|
+
[520, 1010], [470, 1030], [460, 1040], [460, 1076], [486, 1110], [528, 1150], [536, 1200], [500, 1236],
|
|
75
|
+
// South coast.
|
|
76
|
+
[400, 1246], [300, 1232], [190, 1248], [90, 1236], [20, 1210],
|
|
77
|
+
// West coast.
|
|
78
|
+
[8, 1080], [22, 940], [4, 800], [18, 640], [2, 480], [16, 320], [0, 180],
|
|
79
|
+
];
|
|
80
|
+
/**
|
|
81
|
+
* The ice corner: the land's north-east (beside our Frozen North on the paper map, where James wrote "ice area / huge
|
|
82
|
+
* ice mountain"), a ragged diagonal on its south-west side. Land-local; only the part inside the coast is ice. The
|
|
83
|
+
* mountain itself is a later pass (peak and pass inside this polygon).
|
|
84
|
+
*/
|
|
85
|
+
export const WESTERN_ICE = [
|
|
86
|
+
[250, -16], [576, -16], [576, 760], [470, 720], [400, 640], [330, 560], [270, 430], [240, 250],
|
|
87
|
+
];
|
|
88
|
+
/**
|
|
89
|
+
* The x where each edge of `poly` crosses the line z (the even-odd rule), sorted. Paired up they are the polygon's
|
|
90
|
+
* spans on that line: [x0, x1), [x2, x3), ...
|
|
91
|
+
*/
|
|
92
|
+
export function polygonCrossings(poly, z) {
|
|
93
|
+
const xs = [];
|
|
94
|
+
for (let i = 0, j = poly.length - 1; i < poly.length; j = i++) {
|
|
95
|
+
const [xi, zi] = poly[i];
|
|
96
|
+
const [xj, zj] = poly[j];
|
|
97
|
+
if ((zi > z) !== (zj > z))
|
|
98
|
+
xs.push(xi + ((z - zi) * (xj - xi)) / (zj - zi));
|
|
99
|
+
}
|
|
100
|
+
return xs.sort((a, b) => a - b);
|
|
101
|
+
}
|
|
102
|
+
/** Is the tile (lx, lz) inside `poly`? Tested at the tile's centre, so a vertex on x 460 keeps tile 459 and not 460. */
|
|
103
|
+
export function inWesternPolygon(lx, lz, poly) {
|
|
104
|
+
const cx = lx + 0.5;
|
|
105
|
+
let inside = false;
|
|
106
|
+
for (const x of polygonCrossings(poly, lz + 0.5)) {
|
|
107
|
+
if (x > cx)
|
|
108
|
+
break;
|
|
109
|
+
inside = !inside;
|
|
110
|
+
}
|
|
111
|
+
return inside;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The land's tiles on local row lz, as inclusive [first, last] column runs (tile centres inside the coast). The
|
|
115
|
+
* backend lays the land row by row from these instead of testing 700,000 tiles against the polygon one by one.
|
|
116
|
+
*/
|
|
117
|
+
export function westernLandRowSpans(lz) {
|
|
118
|
+
const xs = polygonCrossings(WESTERN_LAND_OUTLINE, lz + 0.5);
|
|
119
|
+
const spans = [];
|
|
120
|
+
for (let k = 0; k + 1 < xs.length; k += 2) {
|
|
121
|
+
const first = Math.max(0, Math.ceil(xs[k] - 0.5));
|
|
122
|
+
const last = Math.min(WESTERN_LAND_W - 1, Math.ceil(xs[k + 1] - 0.5) - 1);
|
|
123
|
+
if (last >= first)
|
|
124
|
+
spans.push([first, last]);
|
|
125
|
+
}
|
|
126
|
+
return spans;
|
|
127
|
+
}
|
|
128
|
+
/** Is a WORLD tile on the land (inside the coast)? */
|
|
129
|
+
export function inWesternLand(x, z) {
|
|
130
|
+
const l = westernLocal(x, z);
|
|
131
|
+
if (l.x < 0 || l.z < 0 || l.x >= WESTERN_LAND_W || l.z >= WESTERN_LAND_H)
|
|
132
|
+
return false;
|
|
133
|
+
return inWesternPolygon(l.x, l.z, WESTERN_LAND_OUTLINE);
|
|
134
|
+
}
|
|
135
|
+
/** Is a WORLD tile in the north-east ice corner (on the land and inside WESTERN_ICE)? */
|
|
136
|
+
export function inWesternIce(x, z) {
|
|
137
|
+
if (!inWesternLand(x, z))
|
|
138
|
+
return false;
|
|
139
|
+
const l = westernLocal(x, z);
|
|
140
|
+
return inWesternPolygon(l.x, l.z, WESTERN_ICE);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Named tiles for the admin Teleport panel and the smokes (world tiles, each a plain ground tile the blockout lays).
|
|
144
|
+
* The first stop's platform is phase 0c's stub (types westernTrain.ts WESTERN_ISLE_STAND).
|
|
145
|
+
*/
|
|
146
|
+
export const WESTERN_LANDING_BEACH = westernWorld(466, 1092);
|
|
147
|
+
export const WESTERN_ICE_STAND = westernWorld(470, 300);
|
|
148
|
+
export const WESTERN_HEARTLAND_STAND = westernWorld(200, 640);
|
|
149
|
+
export const WESTERN_WEST_COAST_STAND = westernWorld(40, 700);
|
|
150
|
+
/**
|
|
151
|
+
* The land's discovery zone, in the world frame (types expandedContracts.ts INSERTED_DISCOVERY_ZONES, the same shape
|
|
152
|
+
* as Hope Town's and Ringstone's): the whole land's box, so arriving anywhere on it names the Western Kingdoms on the
|
|
153
|
+
* Discovered card and the far-teleport cover. The places a later phase builds get their own smaller zones listed
|
|
154
|
+
* BEFORE this one (discoveryZoneAt takes the first match).
|
|
155
|
+
*/
|
|
156
|
+
export const WESTERN_KINGDOMS_DISCOVERY_ZONE = {
|
|
157
|
+
id: 'western-kingdoms',
|
|
158
|
+
label: WESTERN_KINGDOMS_NAME,
|
|
159
|
+
coordinateFrame: 'world',
|
|
160
|
+
minX: WESTERN_LAND_X,
|
|
161
|
+
maxX: WESTERN_LAND_X + WESTERN_LAND_W - 1,
|
|
162
|
+
minZ: WESTERN_LAND_Z,
|
|
163
|
+
maxZ: WESTERN_LAND_Z + WESTERN_LAND_H - 1,
|
|
164
|
+
};
|
|
165
|
+
/** The land's chart (types dungeonCharts.ts DUNGEON_CHARTS, served by backend /dungeon-maps): the land and a ring of sea. */
|
|
166
|
+
export const WESTERN_CHART_ID = 'western-kingdoms';
|
|
167
|
+
export const WESTERN_CHART_MARGIN = 8;
|
|
168
|
+
/* ------------------------------------------------------------------ *
|
|
169
|
+
* Our side of the join: the broken viaduct (phase 1b, 2026-10-10)
|
|
170
|
+
* ------------------------------------------------------------------ */
|
|
171
|
+
/**
|
|
172
|
+
* James's decision 2 (2026-10-10): the join between our west coast and the Western Kingdoms cannot be crossed on foot,
|
|
173
|
+
* and our own west cliffs SHOW why: the stump of an old dwarven viaduct that once carried the line west, two arches still
|
|
174
|
+
* standing on the Northwest Battlefield's south grass at Calverton's latitude (the red box on his marked map), its last
|
|
175
|
+
* span snapped off over the cliff, and the shattered stones of it on the shore. Beyond the cliff the frontend draws the
|
|
176
|
+
* rest (WesternVista: the broken piers marching out into the sea, the far coast and the ice mountain on the horizon);
|
|
177
|
+
* none of that is tiles.
|
|
178
|
+
*
|
|
179
|
+
* Built from the Sundered Span's Blender kit (quest-workshop spanlib: spanpier, spanbay, spanbrokena and the fallen
|
|
180
|
+
* stones) at WESTERN_BREACH_SCALE, standing east-west (facing 'n', so a piece's `across` runs along x) with its deck at
|
|
181
|
+
* WESTERN_BREACH_DECK_METRES above the sea whatever the ground under it (the client seats it by that, not by the tile).
|
|
182
|
+
* Walkable-safe: the piers and the broken end block their tiles, the deck is never a walk surface (no tile is laid at
|
|
183
|
+
* its height and nothing climbs to it), and the sea cliff's crag rocks (x 2-3, blocked all along our west edge) stay
|
|
184
|
+
* blocked under the broken end, so nothing new can be walked past; the arches' openings stay open ground (walk under
|
|
185
|
+
* them north to south).
|
|
186
|
+
*/
|
|
187
|
+
export const WESTERN_BREACH_Z = 650;
|
|
188
|
+
/** The tiles the breach pass clears and dresses (world tiles, overworld). */
|
|
189
|
+
export const WESTERN_BREACH_BOX = { minX: 0, maxX: 26, minZ: 638, maxZ: 662 };
|
|
190
|
+
/**
|
|
191
|
+
* The shattered pass: the rows where our sea cliff's crag rocks (the tall rock wall along x 2-3, blocked all along the
|
|
192
|
+
* west edge) are gone, broken away where the line ran out onto the viaduct, so from the grass the sea and the far shore
|
|
193
|
+
* show through the gap. The cliff's tiles stay blocked: a gap to look through, never a way down.
|
|
194
|
+
*/
|
|
195
|
+
export const WESTERN_BREACH_GAP = { minZ: 641, maxZ: 659 };
|
|
196
|
+
/** The cliff's columns (the crag rocks stand on x 2 and 3; x 0-1 is the sea). */
|
|
197
|
+
export const WESTERN_CLIFF_MAX_X = 3;
|
|
198
|
+
/** The span kit is built for a road bridge eleven tiles wide; the line's viaduct is drawn at this share of it. */
|
|
199
|
+
export const WESTERN_BREACH_SCALE = 0.7;
|
|
200
|
+
/** The viaduct's deck above the sea (metres): the kit's piers reach 5.4 below their deck at full size, so its feet are in the ground. */
|
|
201
|
+
export const WESTERN_BREACH_DECK_METRES = 3.7;
|
|
202
|
+
/** The span kit's paving above its model origin at full size (quest-workshop spanlib DECK; the client's spanPaving drop). */
|
|
203
|
+
export const SPAN_KIT_DECK_METRES = 5.4;
|
|
204
|
+
const breachPiece = (id, model, x, z, viaduct = true, facing = 'n') => ({
|
|
205
|
+
id: `western-breach-${id}`,
|
|
206
|
+
style: `${model}-${facing}`,
|
|
207
|
+
x,
|
|
208
|
+
z,
|
|
209
|
+
scale: viaduct ? WESTERN_BREACH_SCALE : 1,
|
|
210
|
+
viaduct,
|
|
211
|
+
});
|
|
212
|
+
/**
|
|
213
|
+
* West to east from the cliff: the snapped-off span over the cliff edge and the sea, then pier, arch, pier, arch, pier,
|
|
214
|
+
* eight tiles between pier centres (the kit's ten at full size, near enough at 0.7 that each arch bears on its piers).
|
|
215
|
+
*/
|
|
216
|
+
export const WESTERN_BREACH_PIECES = [
|
|
217
|
+
breachPiece('broken', 'spanbrokena', 2, WESTERN_BREACH_Z),
|
|
218
|
+
breachPiece('pier-1', 'spanpier', 5, WESTERN_BREACH_Z),
|
|
219
|
+
breachPiece('arch-1', 'spanbay', 9, WESTERN_BREACH_Z),
|
|
220
|
+
breachPiece('pier-2', 'spanpier', 13, WESTERN_BREACH_Z),
|
|
221
|
+
breachPiece('arch-2', 'spanbay', 17, WESTERN_BREACH_Z),
|
|
222
|
+
breachPiece('pier-3', 'spanpier', 21, WESTERN_BREACH_Z),
|
|
223
|
+
// The shattered stones: off the broken end and along the shore, clear of the arches' openings.
|
|
224
|
+
breachPiece('stone-large', 'spanstonelarge', 6, 659, false, 'e'),
|
|
225
|
+
breachPiece('keystone', 'spankeystone', 9, 644, false, 'e'),
|
|
226
|
+
breachPiece('stone-medium', 'spanstonemedium', 4, 643, false, 'e'),
|
|
227
|
+
breachPiece('stone-small', 'spanstonesmall', 8, 657, false, 'e'),
|
|
228
|
+
breachPiece('stone-small-2', 'spanstonesmall', 24, 656, false, 'e'),
|
|
229
|
+
// Two of the line's own posts on the landward side: the way west is the train now.
|
|
230
|
+
breachPiece('signpost', 'westsignpost', 17, 661, false, 's'),
|
|
231
|
+
breachPiece('waymarker', 'westwaymarker', 25, 643, false, 's'),
|
|
232
|
+
];
|
|
233
|
+
/** Is an entity id one of the breach's pieces (the client seats and scales them by WESTERN_BREACH_PIECES)? */
|
|
234
|
+
export function westernBreachPiece(id) {
|
|
235
|
+
return id.startsWith('western-breach-') ? WESTERN_BREACH_PIECES.find((p) => p.id === id) : undefined;
|
|
236
|
+
}
|
|
237
|
+
/** The rows a viaduct piece covers at its scale (the kit's piers and the broken span are 14.46 deep at full size). */
|
|
238
|
+
const BREACH_DEEP_TILES = Math.ceil((14.46 * WESTERN_BREACH_SCALE) / 2);
|
|
239
|
+
/** The kit's widths at full size, along the viaduct (x). */
|
|
240
|
+
const BREACH_ACROSS_METRES = { spanpier: 3.5, spanbrokena: 4.71 };
|
|
241
|
+
/**
|
|
242
|
+
* The tiles the viaduct blocks: under each pier and under the broken span, the rows its depth covers. The arches'
|
|
243
|
+
* spans between the piers stay open ground.
|
|
244
|
+
*/
|
|
245
|
+
export const WESTERN_BREACH_BLOCKED = (() => {
|
|
246
|
+
const out = [];
|
|
247
|
+
for (const p of WESTERN_BREACH_PIECES) {
|
|
248
|
+
const model = p.style.split('-')[0];
|
|
249
|
+
const across = BREACH_ACROSS_METRES[model];
|
|
250
|
+
if (!p.viaduct || across === undefined)
|
|
251
|
+
continue;
|
|
252
|
+
const half = (across * p.scale) / 2;
|
|
253
|
+
const cx = p.x + 0.5;
|
|
254
|
+
for (let x = Math.floor(cx - half + 0.25); x <= Math.floor(cx + half - 0.25); x++) {
|
|
255
|
+
for (let z = p.z - BREACH_DEEP_TILES + 1; z <= p.z + BREACH_DEEP_TILES - 1; z++)
|
|
256
|
+
out.push([x, z]);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return out;
|
|
260
|
+
})();
|
|
261
|
+
/** Where to stand to see it: on the grass south-east of the arches, looking west along them to the sea. */
|
|
262
|
+
export const WESTERN_BREACH_STAND = { x: 16, z: 664 };
|
|
263
|
+
/**
|
|
264
|
+
* The far shore as seen from ours (the frontend's WesternVista, no tiles): it is drawn west of x 0 from anywhere on our
|
|
265
|
+
* west coast between these rows, the Battlefield's snow line to the Hope Beach fields, within this many tiles of the
|
|
266
|
+
* edge.
|
|
267
|
+
*/
|
|
268
|
+
export const WESTERN_VISTA_ROWS = { minZ: 470, maxZ: 1120 };
|
|
269
|
+
export const WESTERN_VISTA_REACH_X = 150;
|
|
270
|
+
//# sourceMappingURL=westernKingdoms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"westernKingdoms.js","sourceRoot":"","sources":["../src/westernKingdoms.ts"],"names":[],"mappings":"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"}
|
package/dist/westernQuests.d.ts
CHANGED
|
@@ -75,4 +75,40 @@ export declare const WESTERN_MUSHROOM_PLACE: {
|
|
|
75
75
|
readonly z: 1178;
|
|
76
76
|
readonly label: "the copses south of the station";
|
|
77
77
|
};
|
|
78
|
+
/** The arrival road's thyme verges, where the helper points when no thyme patch is in reach of the map. */
|
|
79
|
+
export declare const WESTERN_THYME_PLACE: {
|
|
80
|
+
readonly x: 55;
|
|
81
|
+
readonly z: 1132;
|
|
82
|
+
readonly label: "the arrival road";
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* HERBAL REMEDIES (2026-10-10): Porter Dunna has the platform cough from a week of hauling crates through the sea fog, and
|
|
86
|
+
* Station Master Hamrik's grandmother had a cure for it: wild thyme, ground and steeped in good water. That is the Mini
|
|
87
|
+
* Cooking Boost Potion of Potion Making (wild thyme and a vial of water, level 1), which Tansy's shop sells as a cook's
|
|
88
|
+
* draught. Pick the headland's thyme, brew it at the porters' cauldron in the goods yard and take it to Dunna on Platform
|
|
89
|
+
* Two; then tell Hamrik.
|
|
90
|
+
*
|
|
91
|
+
* A level 1 player has no pestle and mortar (Tansy's Cauldron gives Corvin's), so the porters' cauldron has a mortar
|
|
92
|
+
* chained to it that it lends for this one draught (backend src/westernRemedy.ts): only while the quest wants a draught
|
|
93
|
+
* and the bag holds none, one brew at a time. Nothing is handed over that could be lost or sold. Hamrik gives the one Vial
|
|
94
|
+
* of Water on accept; a lost, sold or drunk draught or vial is put right by buying a vial from Porter Dunna's station
|
|
95
|
+
* stores at Tansy's price (every trader pays a coin for one, so buying back is never a profit) and picking more thyme.
|
|
96
|
+
*/
|
|
97
|
+
export declare const WESTERN_REMEDY_POTION = "minicookingpotion";
|
|
98
|
+
/**
|
|
99
|
+
* The porters' cauldron (kind `cauldron`, style `cauldron-<facing>`), by the goods yard's service shelter on the stone
|
|
100
|
+
* apron south of the siding: far off the train's rows (z 1146-1160), placed in the final frame after every western piece
|
|
101
|
+
* (src/westernBelt.ts), on the nearest open apron tile to its spot. Solid, like every cauldron.
|
|
102
|
+
*/
|
|
103
|
+
export declare const WESTERN_PORTERS_CAULDRON: {
|
|
104
|
+
readonly id: "western-porters-cauldron";
|
|
105
|
+
readonly x: 125;
|
|
106
|
+
readonly z: 1170;
|
|
107
|
+
readonly facing: "s";
|
|
108
|
+
};
|
|
109
|
+
export declare const WESTERN_PORTERS_CAULDRON_NAME = "Porters' Cauldron";
|
|
110
|
+
/** What the porters' cauldron's panel says while its mortar is lent. */
|
|
111
|
+
export declare const WESTERN_LENT_MORTAR_TEXT = "The porters' mortar is chained to this cauldron. Hamrik lends it for one thyme draught at a time: wild thyme and a Vial of Water.";
|
|
112
|
+
/** The station stores Porter Dunna keeps (backend world.ts): Vials of Water, at Tansy's price. */
|
|
113
|
+
export declare const WESTERN_STORES_TITLE = "Station Stores";
|
|
78
114
|
//# sourceMappingURL=westernQuests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"westernQuests.d.ts","sourceRoot":"","sources":["../src/westernQuests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAIjD,eAAO,MAAM,YAAY;IACvB,mFAAmF;;CAE3E,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,gBAAmH,CAAC;AACnJ,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,EAAE,gBAAyH,CAAC;AAC5J,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,EAAE,gBAAwH,CAAC;AAE1J,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAAgE,CAAC;AAE3H,gIAAgI;AAChI,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE5D;AAID,wGAAwG;AACxG,eAAO,MAAM,aAAa;;;CAAgE,CAAC;AAC3F,eAAO,MAAM,cAAc;;;CAAwE,CAAC;AAIpG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOtF,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAY5F,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;;CAAyD,CAAC;AACzF,eAAO,MAAM,sBAAsB;;;;CAAwE,CAAC"}
|
|
1
|
+
{"version":3,"file":"westernQuests.d.ts","sourceRoot":"","sources":["../src/westernQuests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAIjD,eAAO,MAAM,YAAY;IACvB,mFAAmF;;CAE3E,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,gBAAmH,CAAC;AACnJ,kGAAkG;AAClG,eAAO,MAAM,mBAAmB,EAAE,gBAAyH,CAAC;AAC5J,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,EAAE,gBAAwH,CAAC;AAE1J,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAAgE,CAAC;AAE3H,gIAAgI;AAChI,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE5D;AAID,wGAAwG;AACxG,eAAO,MAAM,aAAa;;;CAAgE,CAAC;AAC3F,eAAO,MAAM,cAAc;;;CAAwE,CAAC;AAIpG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOtF,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAY5F,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;;CAAyD,CAAC;AACzF,eAAO,MAAM,sBAAsB;;;;CAAwE,CAAC;AAC5G,2GAA2G;AAC3G,eAAO,MAAM,mBAAmB;;;;CAAyD,CAAC;AAI1F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;CAA4E,CAAC;AAClH,eAAO,MAAM,6BAA6B,sBAAsB,CAAC;AAEjE,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,sIACgG,CAAC;AAEtI,kGAAkG;AAClG,eAAO,MAAM,oBAAoB,mBAAmB,CAAC"}
|
package/dist/westernQuests.js
CHANGED
|
@@ -55,4 +55,32 @@ export const WESTERN_FORAGE_SPOTS = [
|
|
|
55
55
|
/** Where the quest helper points for the belt's picks. */
|
|
56
56
|
export const WESTERN_BELT_PLACE = { x: 40, z: 1166, label: 'the lookout path' };
|
|
57
57
|
export const WESTERN_MUSHROOM_PLACE = { x: 84, z: 1178, label: 'the copses south of the station' };
|
|
58
|
+
/** The arrival road's thyme verges, where the helper points when no thyme patch is in reach of the map. */
|
|
59
|
+
export const WESTERN_THYME_PLACE = { x: 55, z: 1132, label: 'the arrival road' };
|
|
60
|
+
// ---- Herbal Remedies (Station Master Hamrik, the second of the six hooks) -------------------------------------------
|
|
61
|
+
/**
|
|
62
|
+
* HERBAL REMEDIES (2026-10-10): Porter Dunna has the platform cough from a week of hauling crates through the sea fog, and
|
|
63
|
+
* Station Master Hamrik's grandmother had a cure for it: wild thyme, ground and steeped in good water. That is the Mini
|
|
64
|
+
* Cooking Boost Potion of Potion Making (wild thyme and a vial of water, level 1), which Tansy's shop sells as a cook's
|
|
65
|
+
* draught. Pick the headland's thyme, brew it at the porters' cauldron in the goods yard and take it to Dunna on Platform
|
|
66
|
+
* Two; then tell Hamrik.
|
|
67
|
+
*
|
|
68
|
+
* A level 1 player has no pestle and mortar (Tansy's Cauldron gives Corvin's), so the porters' cauldron has a mortar
|
|
69
|
+
* chained to it that it lends for this one draught (backend src/westernRemedy.ts): only while the quest wants a draught
|
|
70
|
+
* and the bag holds none, one brew at a time. Nothing is handed over that could be lost or sold. Hamrik gives the one Vial
|
|
71
|
+
* of Water on accept; a lost, sold or drunk draught or vial is put right by buying a vial from Porter Dunna's station
|
|
72
|
+
* stores at Tansy's price (every trader pays a coin for one, so buying back is never a profit) and picking more thyme.
|
|
73
|
+
*/
|
|
74
|
+
export const WESTERN_REMEDY_POTION = 'minicookingpotion';
|
|
75
|
+
/**
|
|
76
|
+
* The porters' cauldron (kind `cauldron`, style `cauldron-<facing>`), by the goods yard's service shelter on the stone
|
|
77
|
+
* apron south of the siding: far off the train's rows (z 1146-1160), placed in the final frame after every western piece
|
|
78
|
+
* (src/westernBelt.ts), on the nearest open apron tile to its spot. Solid, like every cauldron.
|
|
79
|
+
*/
|
|
80
|
+
export const WESTERN_PORTERS_CAULDRON = { id: 'western-porters-cauldron', x: 125, z: 1170, facing: 's' };
|
|
81
|
+
export const WESTERN_PORTERS_CAULDRON_NAME = "Porters' Cauldron";
|
|
82
|
+
/** What the porters' cauldron's panel says while its mortar is lent. */
|
|
83
|
+
export const WESTERN_LENT_MORTAR_TEXT = "The porters' mortar is chained to this cauldron. Hamrik lends it for one thyme draught at a time: wild thyme and a Vial of Water.";
|
|
84
|
+
/** The station stores Porter Dunna keeps (backend world.ts): Vials of Water, at Tansy's price. */
|
|
85
|
+
export const WESTERN_STORES_TITLE = 'Station Stores';
|
|
58
86
|
//# sourceMappingURL=westernQuests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"westernQuests.js","sourceRoot":"","sources":["../src/westernQuests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"westernQuests.js","sourceRoot":"","sources":["../src/westernQuests.ts"],"names":[],"mappings":"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"}
|
package/dist/westernTrain.d.ts
CHANGED
|
@@ -56,8 +56,71 @@ export declare const WESTERN_TUNNEL_STAND: {
|
|
|
56
56
|
readonly x: number;
|
|
57
57
|
readonly z: number;
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* PHASE 0c SPIKE (2026-10-10, plan `.cursor/task-plans/2026-10-10-western-phase0c.md`; parent
|
|
61
|
+
* `2026-10-10-west-land-build-plan.md`): a stub of the Western Isle's halt in the Western Kingdoms' strip, to measure
|
|
62
|
+
* the train's jump into a new region. NOT the designed first stop: a copy of the home station's layout translated into
|
|
63
|
+
* the strip's open sea (the platform, the gap row with its step plates, the sea kerb, the line, the portal in a rock
|
|
64
|
+
* cap), with a short causeway straight off its east end into the sea. The train's third leg ('isle') runs from the
|
|
65
|
+
* causeway's sea end west past the platform into the cap, then wraps to the home causeway's sea end.
|
|
66
|
+
*
|
|
67
|
+
* Because the stub is the docked layout moved by (WESTERN_ISLE_SHIFT_X, WESTERN_ISLE_SHIFT_Z), a train standing at
|
|
68
|
+
* the isle stop has every docked tile exactly that far from its world tile: the step plates, doorways and platform
|
|
69
|
+
* edge tiles line up as at home (westernStopSteps maps them through the leg, so a later stop need not be a copy).
|
|
70
|
+
*/
|
|
71
|
+
export declare const WESTERN_ISLE_SHIFT_X = 1970;
|
|
72
|
+
export declare const WESTERN_ISLE_SHIFT_Z = -32;
|
|
73
|
+
export declare const WESTERN_ISLE_TRACK_Z: number;
|
|
74
|
+
/** The stub's causeway, the last 22 tiles of the line, stepping down to the waterline (its sea end the leg's x0). */
|
|
75
|
+
export declare const WESTERN_ISLE_SEA_END_X = 2097;
|
|
76
|
+
export declare const WESTERN_ISLE_CAUSEWAY: {
|
|
77
|
+
readonly minX: number;
|
|
78
|
+
readonly maxX: 2097;
|
|
79
|
+
readonly minZ: number;
|
|
80
|
+
readonly maxZ: number;
|
|
81
|
+
};
|
|
82
|
+
export declare function westernIsleCausewayHeight(x: number): number;
|
|
83
|
+
type Box = {
|
|
84
|
+
minX: number;
|
|
85
|
+
maxX: number;
|
|
86
|
+
minZ: number;
|
|
87
|
+
maxZ: number;
|
|
88
|
+
};
|
|
89
|
+
export declare const WESTERN_ISLE_PLATFORM: Box;
|
|
90
|
+
export declare const WESTERN_ISLE_PLATFORM_PIECES: (readonly [number, number])[];
|
|
91
|
+
export declare const WESTERN_ISLE_GAP_ROW: {
|
|
92
|
+
readonly minX: number;
|
|
93
|
+
readonly maxX: number;
|
|
94
|
+
readonly z: number;
|
|
95
|
+
};
|
|
96
|
+
export declare const WESTERN_ISLE_SEA_KERB: {
|
|
97
|
+
readonly minX: number;
|
|
98
|
+
readonly maxX: number;
|
|
99
|
+
readonly z: number;
|
|
100
|
+
};
|
|
101
|
+
/** The rock cap the line runs into (the home knoll's box, moved), and the portal on its east face. */
|
|
102
|
+
export declare const WESTERN_ISLE_KNOLL: Box;
|
|
103
|
+
export declare const WESTERN_ISLE_MOUTH: {
|
|
104
|
+
readonly x: number;
|
|
105
|
+
readonly z: number;
|
|
106
|
+
readonly style: "westportal-e";
|
|
107
|
+
};
|
|
108
|
+
export declare const WESTERN_ISLE_MOUTH_ID = "western-isle-spike-mouth";
|
|
109
|
+
/** The stub's ground: the knoll's west foot to the causeway's start, a few rows round the station (all laid on the strip's sea). */
|
|
110
|
+
export declare const WESTERN_ISLE_LAND: {
|
|
111
|
+
readonly minX: number;
|
|
112
|
+
readonly maxX: number;
|
|
113
|
+
readonly minZ: number;
|
|
114
|
+
readonly maxZ: number;
|
|
115
|
+
};
|
|
116
|
+
/** Where an admin /tp lands on the stub: the platform's middle. */
|
|
117
|
+
export declare const WESTERN_ISLE_STAND: {
|
|
118
|
+
readonly x: number;
|
|
119
|
+
readonly z: number;
|
|
120
|
+
};
|
|
121
|
+
export declare function inWesternIsleStub(x: number, z: number): boolean;
|
|
59
122
|
export type WesternTrainSegment = {
|
|
60
|
-
id: 'surface' | 'tunnel';
|
|
123
|
+
id: 'surface' | 'tunnel' | 'isle';
|
|
61
124
|
/** The first c on this leg and how many tiles it runs. */
|
|
62
125
|
c0: number;
|
|
63
126
|
length: number;
|
|
@@ -68,6 +131,8 @@ export type WesternTrainSegment = {
|
|
|
68
131
|
dz: number;
|
|
69
132
|
};
|
|
70
133
|
export declare const WESTERN_TRAIN_SEGMENTS: readonly WesternTrainSegment[];
|
|
134
|
+
/** c of the nose when the train stands at the isle stub (the nose on the platform's west end, as at home). */
|
|
135
|
+
export declare const WESTERN_ISLE_STOP_C: number;
|
|
71
136
|
export declare const WESTERN_TRAIN_CIRCUIT_LENGTH: number;
|
|
72
137
|
/** c of the nose when the train stands at the platform (loco's nose at x 30). */
|
|
73
138
|
export declare const WESTERN_TRAIN_PLATFORM_C: number;
|
|
@@ -133,6 +198,11 @@ export declare const WESTERN_TRAIN_ALIGHT_MOVING_TEXT = "The train is moving. Wa
|
|
|
133
198
|
* platform in the strip on this bore, reached from the city by a stair or lift (a cave entrance in the city's south
|
|
134
199
|
* quarter, the way the Rat Tunnel is reached), placed when that stair is built.
|
|
135
200
|
*/
|
|
201
|
+
/**
|
|
202
|
+
* `steps`: the stop has its own step plates on its own platform (westernStopSteps): riders step off there and people
|
|
203
|
+
* on that platform board there, while the train stands with its doors open. The home platform's plates are the docked
|
|
204
|
+
* rake's own (WESTERN_STEPS) and need no flag.
|
|
205
|
+
*/
|
|
136
206
|
export type WesternTrainStop = {
|
|
137
207
|
id: string;
|
|
138
208
|
name: string;
|
|
@@ -140,6 +210,7 @@ export type WesternTrainStop = {
|
|
|
140
210
|
dwellMs: number;
|
|
141
211
|
enabled: boolean;
|
|
142
212
|
note: string;
|
|
213
|
+
steps?: boolean;
|
|
143
214
|
};
|
|
144
215
|
export declare const WESTERN_TRAIN_STOPS: readonly WesternTrainStop[];
|
|
145
216
|
/** Duration (ms) of a run of D tiles from a stop to a stop: up to speed, cruise, slow to a stand. */
|
|
@@ -206,4 +277,36 @@ export declare function westernPlatformTileNear(x: number): {
|
|
|
206
277
|
x: number;
|
|
207
278
|
y: number;
|
|
208
279
|
};
|
|
280
|
+
/**
|
|
281
|
+
* One step plate of a stop with its own platform: the home plate's docked tiles carried by the leg to where the train
|
|
282
|
+
* stands at that stop. `x`/`z` the plate's world tile, `platform` the world tile a rider steps down to, `doorway` the
|
|
283
|
+
* DOCKED tile someone boarding there is put on (their tile is always kept in the docked frame aboard).
|
|
284
|
+
*/
|
|
285
|
+
export type WesternStopStep = {
|
|
286
|
+
stopId: string;
|
|
287
|
+
car: string;
|
|
288
|
+
id: string;
|
|
289
|
+
x: number;
|
|
290
|
+
z: number;
|
|
291
|
+
platform: {
|
|
292
|
+
x: number;
|
|
293
|
+
y: number;
|
|
294
|
+
};
|
|
295
|
+
doorway: {
|
|
296
|
+
x: number;
|
|
297
|
+
y: number;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
export declare function westernStopSteps(stop: WesternTrainStop): WesternStopStep[];
|
|
301
|
+
/** Every running stop's own plates (not the home platform's). */
|
|
302
|
+
export declare const WESTERN_STOP_STEPS: readonly WesternStopStep[];
|
|
303
|
+
export declare function westernStopStepAt(x: number, z: number): WesternStopStep | null;
|
|
304
|
+
export declare function westernStopStepById(id: string | undefined): WesternStopStep | null;
|
|
305
|
+
/** The train standing at a stop (not the home platform) at `nowMs`, or null. */
|
|
306
|
+
export declare function westernTrainAtStop(nowMs: number, stopId: string): WesternTrainState | null;
|
|
307
|
+
/** The train at a stop with its doors open (more than the shut time to go), or null. */
|
|
308
|
+
export declare function westernStopDoorsOpen(nowMs: number, stopId: string): WesternTrainState | null;
|
|
309
|
+
/** Why a stop's plates refuse at `nowMs`. */
|
|
310
|
+
export declare function westernStopNoBoardingText(nowMs: number, stopId: string): string;
|
|
311
|
+
export {};
|
|
209
312
|
//# sourceMappingURL=westernTrain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"westernTrain.d.ts","sourceRoot":"","sources":["../src/westernTrain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"westernTrain.d.ts","sourceRoot":"","sources":["../src/westernTrain.ts"],"names":[],"mappings":"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"}
|