@dreadwood-types/types 0.1.11 → 0.1.13

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.
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Mining - the copper and tin seams in the Dreadwoods.
3
+ *
4
+ * Ore is worked with a pickaxe against an `orerock`, which is a single entity
5
+ * kind carrying the metal in its style (`copper`, `tin`) exactly the way `tree`
6
+ * carries its species. Mining one does NOT remove it: the style flips to the
7
+ * `-mined` variant and the rock stands there empty until it refills, so the
8
+ * seam keeps its place in the world and the client has something to hang the
9
+ * respawn countdown on. A forage node splices itself out of the chunk instead,
10
+ * which is why nettles can never show a timer.
11
+ *
12
+ * Mining is gated on Foraging rather than being given a skill of its own: the
13
+ * ore is a foraged resource, and one more half-used skill bar buys nothing.
14
+ */
15
+ /** Node entity kind. The metal is the style, so one kind covers every seam. */
16
+ export declare const ORE_ROCK_KIND = "orerock";
17
+ /** The pickaxe, and the ore items a seam yields. */
18
+ export declare const COPPER_PICKAXE_KIND = "copperpickaxe";
19
+ export declare const COPPER_ORE_ITEM_KIND = "copper";
20
+ export declare const TIN_ORE_ITEM_KIND = "tin";
21
+ export type OreStyleId = 'copper' | 'tin';
22
+ export declare const ORE_STYLES: readonly OreStyleId[];
23
+ /** Suffix marking a worked-out seam. Same trick as the tree's `stump` style. */
24
+ export declare const ORE_MINED_SUFFIX = "-mined";
25
+ /**
26
+ * Foraging level needed to work any seam. One level for both metals: copper and
27
+ * tin are the same job, and the tin is made scarce by there being one of it and
28
+ * by its slower refill, not by a second gate.
29
+ */
30
+ export declare const MINING_FORAGING_LEVEL = 20;
31
+ /** How long one swing-and-prise takes. A shade slower than felling a birch. */
32
+ export declare const MINING_DURATION_MS = 4200;
33
+ /** Tiles. Matches WOODCUT_RANGE - you stand against the rock face to work it. */
34
+ export declare const MINING_RANGE = 1;
35
+ /**
36
+ * Refill timers. Copper is the common metal and there are three of it; tin is
37
+ * the one seam in the mine, so it keeps people coming back rather than standing
38
+ * still. Both are far longer than a forage node because a mine is a destination.
39
+ */
40
+ export declare const COPPER_ORE_RESPAWN_MS: number;
41
+ export declare const TIN_ORE_RESPAWN_MS: number;
42
+ /** The spare pickaxe lying at the mine head, for anyone who arrives without one. */
43
+ export declare const COPPER_PICKAXE_RESPAWN_MS: number;
44
+ /** Foraging XP per seam. Sits above sharp rock (60 at level 5), as level 20 should. */
45
+ export declare const COPPER_ORE_XP = 85;
46
+ export declare const TIN_ORE_XP = 110;
47
+ /**
48
+ * True for a pickaxe of any metal.
49
+ *
50
+ * Deliberately NOT `endsWith('axe')`: that is how `isWoodworkTool` spells its
51
+ * own test, and a pickaxe answers it, which would quietly make a pick a legal
52
+ * tree-felling tool. `isWoodworkTool` excludes picks by calling this first.
53
+ */
54
+ export declare function isPickaxe(kind: string | null | undefined): boolean;
55
+ /** The metal in a seam's style, worked out or not. Null for anything else. */
56
+ export declare function oreStyleId(style: string | undefined): OreStyleId | null;
57
+ /** True once the seam has been worked and is waiting to refill. */
58
+ export declare function isMinedOutOreStyle(style: string | undefined): boolean;
59
+ /** True for a seam with ore still in it - the only thing a pick may be swung at. */
60
+ export declare function isMineableOreStyle(style: string | undefined): boolean;
61
+ /** The style a seam takes while it is empty. */
62
+ export declare function minedOutOreStyle(style: string | undefined): string;
63
+ /** The style a seam returns to when it refills. */
64
+ export declare function freshOreStyle(style: string | undefined): string;
65
+ export declare function oreItemKind(style: string | undefined): string;
66
+ export declare function oreRespawnMs(style: string | undefined): number;
67
+ export declare function oreForagingXp(style: string | undefined): number;
68
+ export declare function oreDisplayName(style: string | undefined): string;
69
+ //# sourceMappingURL=mining.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mining.d.ts","sourceRoot":"","sources":["../src/mining.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE1C,eAAO,MAAM,UAAU,EAAE,SAAS,UAAU,EAAsB,CAAC;AAEnE,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAgB,CAAC;AACnD,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,QAAgB,CAAC;AAEvD,uFAAuF;AACvF,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGlE;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAGvE;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGlE;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE7D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE9D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEhE"}
package/dist/mining.js ADDED
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Mining - the copper and tin seams in the Dreadwoods.
3
+ *
4
+ * Ore is worked with a pickaxe against an `orerock`, which is a single entity
5
+ * kind carrying the metal in its style (`copper`, `tin`) exactly the way `tree`
6
+ * carries its species. Mining one does NOT remove it: the style flips to the
7
+ * `-mined` variant and the rock stands there empty until it refills, so the
8
+ * seam keeps its place in the world and the client has something to hang the
9
+ * respawn countdown on. A forage node splices itself out of the chunk instead,
10
+ * which is why nettles can never show a timer.
11
+ *
12
+ * Mining is gated on Foraging rather than being given a skill of its own: the
13
+ * ore is a foraged resource, and one more half-used skill bar buys nothing.
14
+ */
15
+ /** Node entity kind. The metal is the style, so one kind covers every seam. */
16
+ export const ORE_ROCK_KIND = 'orerock';
17
+ /** The pickaxe, and the ore items a seam yields. */
18
+ export const COPPER_PICKAXE_KIND = 'copperpickaxe';
19
+ export const COPPER_ORE_ITEM_KIND = 'copper';
20
+ export const TIN_ORE_ITEM_KIND = 'tin';
21
+ export const ORE_STYLES = ['copper', 'tin'];
22
+ /** Suffix marking a worked-out seam. Same trick as the tree's `stump` style. */
23
+ export const ORE_MINED_SUFFIX = '-mined';
24
+ /**
25
+ * Foraging level needed to work any seam. One level for both metals: copper and
26
+ * tin are the same job, and the tin is made scarce by there being one of it and
27
+ * by its slower refill, not by a second gate.
28
+ */
29
+ export const MINING_FORAGING_LEVEL = 20;
30
+ /** How long one swing-and-prise takes. A shade slower than felling a birch. */
31
+ export const MINING_DURATION_MS = 4200;
32
+ /** Tiles. Matches WOODCUT_RANGE - you stand against the rock face to work it. */
33
+ export const MINING_RANGE = 1;
34
+ /**
35
+ * Refill timers. Copper is the common metal and there are three of it; tin is
36
+ * the one seam in the mine, so it keeps people coming back rather than standing
37
+ * still. Both are far longer than a forage node because a mine is a destination.
38
+ */
39
+ export const COPPER_ORE_RESPAWN_MS = 3 * 60 * 1000;
40
+ export const TIN_ORE_RESPAWN_MS = 5 * 60 * 1000;
41
+ /** The spare pickaxe lying at the mine head, for anyone who arrives without one. */
42
+ export const COPPER_PICKAXE_RESPAWN_MS = 5 * 60 * 1000;
43
+ /** Foraging XP per seam. Sits above sharp rock (60 at level 5), as level 20 should. */
44
+ export const COPPER_ORE_XP = 85;
45
+ export const TIN_ORE_XP = 110;
46
+ /**
47
+ * True for a pickaxe of any metal.
48
+ *
49
+ * Deliberately NOT `endsWith('axe')`: that is how `isWoodworkTool` spells its
50
+ * own test, and a pickaxe answers it, which would quietly make a pick a legal
51
+ * tree-felling tool. `isWoodworkTool` excludes picks by calling this first.
52
+ */
53
+ export function isPickaxe(kind) {
54
+ const id = (kind ?? '').toLowerCase();
55
+ return id.endsWith('pickaxe') || id.endsWith('pick');
56
+ }
57
+ /** The metal in a seam's style, worked out or not. Null for anything else. */
58
+ export function oreStyleId(style) {
59
+ const base = (style ?? '').replace(ORE_MINED_SUFFIX, '');
60
+ return ORE_STYLES.includes(base) ? base : null;
61
+ }
62
+ /** True once the seam has been worked and is waiting to refill. */
63
+ export function isMinedOutOreStyle(style) {
64
+ return (style ?? '').endsWith(ORE_MINED_SUFFIX);
65
+ }
66
+ /** True for a seam with ore still in it - the only thing a pick may be swung at. */
67
+ export function isMineableOreStyle(style) {
68
+ return oreStyleId(style) !== null && !isMinedOutOreStyle(style);
69
+ }
70
+ /** The style a seam takes while it is empty. */
71
+ export function minedOutOreStyle(style) {
72
+ const ore = oreStyleId(style);
73
+ return `${ore ?? 'copper'}${ORE_MINED_SUFFIX}`;
74
+ }
75
+ /** The style a seam returns to when it refills. */
76
+ export function freshOreStyle(style) {
77
+ return oreStyleId(style) ?? 'copper';
78
+ }
79
+ export function oreItemKind(style) {
80
+ return oreStyleId(style) === 'tin' ? TIN_ORE_ITEM_KIND : COPPER_ORE_ITEM_KIND;
81
+ }
82
+ export function oreRespawnMs(style) {
83
+ return oreStyleId(style) === 'tin' ? TIN_ORE_RESPAWN_MS : COPPER_ORE_RESPAWN_MS;
84
+ }
85
+ export function oreForagingXp(style) {
86
+ return oreStyleId(style) === 'tin' ? TIN_ORE_XP : COPPER_ORE_XP;
87
+ }
88
+ export function oreDisplayName(style) {
89
+ return oreStyleId(style) === 'tin' ? 'Tin Seam' : 'Copper Seam';
90
+ }
91
+ //# sourceMappingURL=mining.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mining.js","sourceRoot":"","sources":["../src/mining.ts"],"names":[],"mappings":"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"}
package/dist/snow.d.ts ADDED
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The northern snow line.
3
+ *
4
+ * North of the goblin camps the ground gives way to snow. The change is a band
5
+ * rather than a line: flecks of white in the grass at the southern edge,
6
+ * thickening to full cover as you walk north, so a player crossing it sees the
7
+ * country change under their feet instead of stepping over a seam.
8
+ *
9
+ * Where it applies is deliberately narrow. Only the open flank WEST of the
10
+ * Dreadwoods gets snow (x < DEADLANDS_MIN_X): the woods themselves are an ash
11
+ * forest with their own floor and their own walls, and everything east of them
12
+ * is Calverton, the Trout Fishery and the Amazon Trail - none of which are
13
+ * meant to be arctic. The Dreadwoods' west wall is what the snow meets, so the
14
+ * boundary is a built edge rather than a hard change in open ground.
15
+ */
16
+ /**
17
+ * Where the snow line sits before the wander below moves it.
18
+ *
19
+ * Goblin camps run z 648-658. SNOW_EDGE_Z + SNOW_WANDER_TILES = 648, so the
20
+ * furthest south the line can ever wander is the camps' own northern row, where
21
+ * the ramp is still zero - the first flecks land just north of the village and
22
+ * never in it.
23
+ */
24
+ export declare const SNOW_EDGE_Z = 626;
25
+ /** North of this the cover is solid. 68 tiles of transition, ~17s of walking. */
26
+ export declare const SNOW_DEEP_Z = 558;
27
+ /** Half-range of the wander applied to the line, in tiles. */
28
+ export declare const SNOW_WANDER_TILES = 22;
29
+ /**
30
+ * True on the flank the snow is allowed to cover at all.
31
+ *
32
+ * The southern bound has to clear SNOW_EDGE_Z by the full wander. Cutting it at
33
+ * SNOW_EDGE_Z instead put a dead straight line across the map wherever the
34
+ * wander had pushed the ramp south of its nominal row: the patches simply
35
+ * stopped mid-fade, in a ruler line, which is precisely what the wander exists
36
+ * to prevent.
37
+ */
38
+ export declare function inSnowRegion(x: number, z: number): boolean;
39
+ /**
40
+ * How thoroughly this tile is covered, 0 (bare) to 1 (solid snow).
41
+ *
42
+ * The latitude ramp is pushed around by a long-wavelength noise so the snow
43
+ * line wanders by a good twenty tiles instead of running dead straight across
44
+ * the map - a ruler-straight climate boundary is the thing that would give the
45
+ * whole band away as generated.
46
+ */
47
+ export declare function snowDepthAt(x: number, z: number): number;
48
+ /**
49
+ * True when this tile should be laid as snow rather than whatever it was.
50
+ *
51
+ * Compared against a second, finer noise rather than a per-tile random roll:
52
+ * a random roll gives salt-and-pepper, and what a thawing edge actually looks
53
+ * like is patches - drifts lying in the hollows with bare ground between them.
54
+ */
55
+ export declare function isSnowTile(x: number, z: number): boolean;
56
+ //# sourceMappingURL=snow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow.d.ts","sourceRoot":"","sources":["../src/snow.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,iFAAiF;AACjF,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D;AA2BD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKxD"}
package/dist/snow.js ADDED
@@ -0,0 +1,95 @@
1
+ import { DEADLANDS_MIN_X } from './zones.js';
2
+ /**
3
+ * The northern snow line.
4
+ *
5
+ * North of the goblin camps the ground gives way to snow. The change is a band
6
+ * rather than a line: flecks of white in the grass at the southern edge,
7
+ * thickening to full cover as you walk north, so a player crossing it sees the
8
+ * country change under their feet instead of stepping over a seam.
9
+ *
10
+ * Where it applies is deliberately narrow. Only the open flank WEST of the
11
+ * Dreadwoods gets snow (x < DEADLANDS_MIN_X): the woods themselves are an ash
12
+ * forest with their own floor and their own walls, and everything east of them
13
+ * is Calverton, the Trout Fishery and the Amazon Trail - none of which are
14
+ * meant to be arctic. The Dreadwoods' west wall is what the snow meets, so the
15
+ * boundary is a built edge rather than a hard change in open ground.
16
+ */
17
+ /**
18
+ * Where the snow line sits before the wander below moves it.
19
+ *
20
+ * Goblin camps run z 648-658. SNOW_EDGE_Z + SNOW_WANDER_TILES = 648, so the
21
+ * furthest south the line can ever wander is the camps' own northern row, where
22
+ * the ramp is still zero - the first flecks land just north of the village and
23
+ * never in it.
24
+ */
25
+ export const SNOW_EDGE_Z = 626;
26
+ /** North of this the cover is solid. 68 tiles of transition, ~17s of walking. */
27
+ export const SNOW_DEEP_Z = 558;
28
+ /** Half-range of the wander applied to the line, in tiles. */
29
+ export const SNOW_WANDER_TILES = 22;
30
+ /**
31
+ * True on the flank the snow is allowed to cover at all.
32
+ *
33
+ * The southern bound has to clear SNOW_EDGE_Z by the full wander. Cutting it at
34
+ * SNOW_EDGE_Z instead put a dead straight line across the map wherever the
35
+ * wander had pushed the ramp south of its nominal row: the patches simply
36
+ * stopped mid-fade, in a ruler line, which is precisely what the wander exists
37
+ * to prevent.
38
+ */
39
+ export function inSnowRegion(x, z) {
40
+ return x >= 0 && x < DEADLANDS_MIN_X && z >= 0 && z <= SNOW_EDGE_Z + SNOW_WANDER_TILES;
41
+ }
42
+ /** Deterministic hash in 0..1. Self-contained so both repos agree exactly. */
43
+ function hash01(x, z) {
44
+ let h = Math.imul(x | 0, 0x27d4eb2d) ^ Math.imul(z | 0, 0x165667b1);
45
+ h = Math.imul(h ^ (h >>> 15), 0x85ebca6b);
46
+ h ^= h >>> 13;
47
+ return ((h >>> 0) % 100000) / 100000;
48
+ }
49
+ /** Smoothstep-interpolated value noise, so patches are blobs and not speckle. */
50
+ function valueNoise(x, z) {
51
+ const x0 = Math.floor(x);
52
+ const z0 = Math.floor(z);
53
+ const fx = x - x0;
54
+ const fz = z - z0;
55
+ const sx = fx * fx * (3 - 2 * fx);
56
+ const sz = fz * fz * (3 - 2 * fz);
57
+ const n00 = hash01(x0, z0);
58
+ const n10 = hash01(x0 + 1, z0);
59
+ const n01 = hash01(x0, z0 + 1);
60
+ const n11 = hash01(x0 + 1, z0 + 1);
61
+ const a = n00 + (n10 - n00) * sx;
62
+ const b = n01 + (n11 - n01) * sx;
63
+ return a + (b - a) * sz;
64
+ }
65
+ /**
66
+ * How thoroughly this tile is covered, 0 (bare) to 1 (solid snow).
67
+ *
68
+ * The latitude ramp is pushed around by a long-wavelength noise so the snow
69
+ * line wanders by a good twenty tiles instead of running dead straight across
70
+ * the map - a ruler-straight climate boundary is the thing that would give the
71
+ * whole band away as generated.
72
+ */
73
+ export function snowDepthAt(x, z) {
74
+ if (!inSnowRegion(x, z))
75
+ return 0;
76
+ const wander = (valueNoise(x / 47, z / 47) - 0.5) * 2 * SNOW_WANDER_TILES;
77
+ const t = (SNOW_EDGE_Z - (z + wander)) / (SNOW_EDGE_Z - SNOW_DEEP_Z);
78
+ return Math.max(0, Math.min(1, t));
79
+ }
80
+ /**
81
+ * True when this tile should be laid as snow rather than whatever it was.
82
+ *
83
+ * Compared against a second, finer noise rather than a per-tile random roll:
84
+ * a random roll gives salt-and-pepper, and what a thawing edge actually looks
85
+ * like is patches - drifts lying in the hollows with bare ground between them.
86
+ */
87
+ export function isSnowTile(x, z) {
88
+ const depth = snowDepthAt(x, z);
89
+ if (depth <= 0)
90
+ return false;
91
+ if (depth >= 1)
92
+ return true;
93
+ return valueNoise(x / 6.5, z / 6.5) < depth;
94
+ }
95
+ //# sourceMappingURL=snow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow.js","sourceRoot":"","sources":["../src/snow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"woodwork.d.ts","sourceRoot":"","sources":["../src/woodwork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woodwork.d.ts","sourceRoot":"","sources":["../src/woodwork.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB;aAC/B,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,IAAI,EAAE,EAAE;aACR,MAAM,EAAE,EAAE;aACV,KAAK,EAAE,EAAE;aACT,KAAK,EAAE,EAAE;aACT,GAAG,EAAE,EAAE;aACP,KAAK,EAAE,EAAE;aACT,GAAG,EAAE,EAAE;CACC,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAE/D,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAGpC,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,8BAA8B,IAA2B,CAAC;AACvE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAErE,CAAC;AACF,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAErE,CAAC;AACF,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAG/E,CAAC;AACF,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D,iFAAiF;AACjF,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,wEAAwE;AACxE,eAAO,MAAM,qCAAqC,MAAM,CAAC;AACzD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,+BAA+B,WAAW,CAAC;AACxD,eAAO,MAAM,8BAA8B,aAAa,CAAC;AACzD;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,aAAa,CAAC;AAE5D,wBAAgB,8BAA8B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,gCAAgC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,qFAAqF;AACrF,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAInF;AAaD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEhE;AAED,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,aAAa,QAA6D,CAAC;AACxF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAExE,CAAC;AACF,gFAAgF;AAChF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAErE,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,0FAA0F;AAC1F,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,4FAA4F;AAC5F,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAoG5C,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAEhE;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,uDAAuD;AACvD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;;;;;;;GAUG;AAOH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAQtF;AAWD,eAAO,MAAM,UAAU,KAAK,CAAC;AAG7B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAExE;AACD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,yDAAyD;AACzD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,yFAAyF;AACzF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,8DAA8D;AAC9D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AACD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,eAAO,MAAM,iBAAiB,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAIpF,CAAC;AAEF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAI9C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcpD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAItE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMvE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAGzC"}
package/dist/woodwork.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { MAX_LEVEL } from './xp.js';
2
2
  import { UNLIT_BIRCH_TORCH } from './torches.js';
3
+ import { isPickaxe } from './mining.js';
3
4
  export const WOODWORK_TREE_LEVELS = {
4
5
  birch: 1,
5
6
  poplar: 5,
@@ -381,6 +382,11 @@ export function isWorkingSaw(kind) {
381
382
  export function isWoodworkTool(kind) {
382
383
  if (isBrokenSaw(kind))
383
384
  return false;
385
+ // A pickaxe ends in "axe" and would otherwise pass the suffix test below,
386
+ // which would make a mining tool a legal way to fell a tree. Picks are for
387
+ // rock; the suffix rule is a convenience, not a licence.
388
+ if (isPickaxe(kind))
389
+ return false;
384
390
  const id = kind.toLowerCase();
385
391
  return (id === FOLDING_SAW_KIND ||
386
392
  id === 'hatchet' ||
@@ -1 +1 @@
1
- {"version":3,"file":"woodwork.js","sourceRoot":"","sources":["../src/woodwork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woodwork.js","sourceRoot":"","sources":["../src/woodwork.ts"],"names":[],"mappings":"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"}
package/dist/zones.d.ts CHANGED
@@ -21,8 +21,35 @@ export declare function zoneAt(x: number, z: number): WorldZoneId;
21
21
  export declare function zoneDisplayName(zone: WorldZoneId): string;
22
22
  export declare function isDeadlands(x: number, z: number): boolean;
23
23
  export declare function isPvpZone(x: number, z: number): boolean;
24
+ /** Combat bands inside the Dreadwoods. Zone 1 is the outer/entrance ring; Zone 5 is the core. */
25
+ export type CombatZoneTier = 1 | 2 | 3 | 4 | 5;
26
+ export declare const COMBAT_ZONE_COUNT = 5;
27
+ export declare const COMBAT_ZONE_LEVEL_DELTA: Record<CombatZoneTier, number>;
28
+ export declare function isCombatZoneTier(value: unknown): value is CombatZoneTier;
29
+ /**
30
+ * Chebyshev inset from the Dreadwoods square edge. 0 on the outer forest ring,
31
+ * ~223 at the centre. Null outside the woods (village, beach, wall, mountains).
32
+ */
33
+ export declare function deadlandsInset(x: number, z: number): number | null;
34
+ /**
35
+ * Concentric Chebyshev bands of the Dreadwoods square. Equal-width rings from
36
+ * the outer edge inward so Zone 1 is the entrance frame and Zone 5 the core.
37
+ */
38
+ export declare function combatZoneAt(x: number, z: number): CombatZoneTier | null;
39
+ export declare function combatZoneDisplayName(tier: CombatZoneTier): string;
40
+ export declare function combatZoneLevelDelta(tier: CombatZoneTier): number;
41
+ export declare function combatZoneRangeLabel(tier: CombatZoneTier): string;
42
+ /**
43
+ * Allowed combat-level gap for a wild PvP fight on these two tiles.
44
+ * Uses the stricter of the two bands so a Zone 1 player cannot be pulled
45
+ * into a Zone 2-width fight on the boundary. Null if either tile is safe.
46
+ */
47
+ export declare function pvpLevelDeltaAllowed(attackerX: number, attackerZ: number, defenderX: number, defenderZ: number): number | null;
48
+ export declare function canPvpAttackByLevel(attackerLevel: number, defenderLevel: number, attackerX: number, attackerZ: number, defenderX: number, defenderZ: number): boolean;
49
+ export declare function pvpAttackBlockedMessage(attackerLevel: number, defenderLevel: number, attackerX: number, attackerZ: number, defenderX: number, defenderZ: number): string | null;
24
50
  export declare function isDeadlandsPerimeter(x: number, z: number): boolean;
25
51
  export declare function isDeadlandsDefenseBand(x: number, z: number): boolean;
52
+ /** Palisade towers only. Interior forest towers put sentries among the trees. */
26
53
  export declare function collectDeadlandsTowerSpots(): {
27
54
  x: number;
28
55
  z: number;
@@ -1 +1 @@
1
- {"version":3,"file":"zones.d.ts","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,QAAkD,CAAC;AAC/E,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,eAAe,QAAmD,CAAC;AAChF,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,gBAAgB,QAAsD,CAAC;AACpF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,gBAAgB;aAC3B,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;CACI,CAAC;AAEX,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGzD,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAaxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAQlE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CA6BpE;AAQD,wBAAgB,0BAA0B,IAAI;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CA+CvE"}
1
+ {"version":3,"file":"zones.d.ts","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,QAAkD,CAAC;AAC/E,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,eAAe,QAAmD,CAAC;AAChF,eAAO,MAAM,eAAe,QAAwC,CAAC;AACrE,eAAO,MAAM,gBAAgB,QAAsD,CAAC;AACpF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,gBAAgB;aAC3B,IAAI;aACJ,IAAI;aACJ,IAAI;aACJ,IAAI;CACI,CAAC;AAEX,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGzD,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAaxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,iGAAiG;AACjG,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAMlE,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAMxE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAElE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEjE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAIT;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAQlE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CA6BpE;AAQD,iFAAiF;AACjF,wBAAgB,0BAA0B,IAAI;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAuCvE"}
package/dist/zones.js CHANGED
@@ -47,6 +47,79 @@ export function isDeadlands(x, z) {
47
47
  export function isPvpZone(x, z) {
48
48
  return isDeadlands(x, z);
49
49
  }
50
+ export const COMBAT_ZONE_COUNT = 5;
51
+ export const COMBAT_ZONE_LEVEL_DELTA = {
52
+ 1: 5,
53
+ 2: 10,
54
+ 3: 15,
55
+ 4: 20,
56
+ 5: 30,
57
+ };
58
+ export function isCombatZoneTier(value) {
59
+ return value === 1 || value === 2 || value === 3 || value === 4 || value === 5;
60
+ }
61
+ /**
62
+ * Chebyshev inset from the Dreadwoods square edge. 0 on the outer forest ring,
63
+ * ~223 at the centre. Null outside the woods (village, beach, wall, mountains).
64
+ */
65
+ export function deadlandsInset(x, z) {
66
+ const tx = Math.floor(x);
67
+ const tz = Math.floor(z);
68
+ if (!isDeadlands(tx, tz))
69
+ return null;
70
+ return Math.min(tx - DEADLANDS_MIN_X, DEADLANDS_MAX_X - tx, tz - DEADLANDS_MIN_Z, DEADLANDS_MAX_Z - tz);
71
+ }
72
+ /**
73
+ * Concentric Chebyshev bands of the Dreadwoods square. Equal-width rings from
74
+ * the outer edge inward so Zone 1 is the entrance frame and Zone 5 the core.
75
+ */
76
+ export function combatZoneAt(x, z) {
77
+ const inset = deadlandsInset(x, z);
78
+ if (inset === null)
79
+ return null;
80
+ const span = Math.min(Math.floor(DEADLANDS_WIDTH / 2), Math.floor(DEADLANDS_DEPTH / 2));
81
+ const band = Math.min(COMBAT_ZONE_COUNT - 1, Math.floor((inset * COMBAT_ZONE_COUNT) / span));
82
+ return (band + 1);
83
+ }
84
+ export function combatZoneDisplayName(tier) {
85
+ return `Zone ${tier}`;
86
+ }
87
+ export function combatZoneLevelDelta(tier) {
88
+ return COMBAT_ZONE_LEVEL_DELTA[tier];
89
+ }
90
+ export function combatZoneRangeLabel(tier) {
91
+ return `PvP +/- ${COMBAT_ZONE_LEVEL_DELTA[tier]} levels`;
92
+ }
93
+ /**
94
+ * Allowed combat-level gap for a wild PvP fight on these two tiles.
95
+ * Uses the stricter of the two bands so a Zone 1 player cannot be pulled
96
+ * into a Zone 2-width fight on the boundary. Null if either tile is safe.
97
+ */
98
+ export function pvpLevelDeltaAllowed(attackerX, attackerZ, defenderX, defenderZ) {
99
+ const attackerTier = combatZoneAt(attackerX, attackerZ);
100
+ const defenderTier = combatZoneAt(defenderX, defenderZ);
101
+ if (attackerTier === null || defenderTier === null)
102
+ return null;
103
+ return Math.min(COMBAT_ZONE_LEVEL_DELTA[attackerTier], COMBAT_ZONE_LEVEL_DELTA[defenderTier]);
104
+ }
105
+ export function canPvpAttackByLevel(attackerLevel, defenderLevel, attackerX, attackerZ, defenderX, defenderZ) {
106
+ const delta = pvpLevelDeltaAllowed(attackerX, attackerZ, defenderX, defenderZ);
107
+ if (delta === null)
108
+ return false;
109
+ return Math.abs(attackerLevel - defenderLevel) <= delta;
110
+ }
111
+ export function pvpAttackBlockedMessage(attackerLevel, defenderLevel, attackerX, attackerZ, defenderX, defenderZ) {
112
+ if (!isPvpZone(attackerX, attackerZ) || !isPvpZone(defenderX, defenderZ)) {
113
+ return `You can only fight other players in the ${zoneDisplayName('deadlands')}.`;
114
+ }
115
+ const delta = pvpLevelDeltaAllowed(attackerX, attackerZ, defenderX, defenderZ);
116
+ if (delta === null) {
117
+ return `You can only fight other players in the ${zoneDisplayName('deadlands')}.`;
118
+ }
119
+ if (Math.abs(attackerLevel - defenderLevel) <= delta)
120
+ return null;
121
+ return `You can only attack players within ${delta} levels of you here.`;
122
+ }
50
123
  export function isDeadlandsPerimeter(x, z) {
51
124
  if (!isDeadlands(x, z))
52
125
  return false;
@@ -88,6 +161,7 @@ function towerHash(x, z, salt) {
88
161
  n = (n ^ (n >> 13)) * 1274126177;
89
162
  return (n ^ (n >> 16)) >>> 0;
90
163
  }
164
+ /** Palisade towers only. Interior forest towers put sentries among the trees. */
91
165
  export function collectDeadlandsTowerSpots() {
92
166
  const spots = [];
93
167
  const seen = new Set();
@@ -128,16 +202,6 @@ export function collectDeadlandsTowerSpots() {
128
202
  continue;
129
203
  push(p.x, p.z);
130
204
  }
131
- for (let z = DEADLANDS_MIN_Z + 4; z <= DEADLANDS_MAX_Z - 4; z += 3) {
132
- for (let x = DEADLANDS_MIN_X + 4; x <= DEADLANDS_MAX_X - 4; x += 3) {
133
- const n = towerHash(x, z, 1703);
134
- if (n % 47 !== 0)
135
- continue;
136
- if (tooClose(x, z))
137
- continue;
138
- push(x, z);
139
- }
140
- }
141
205
  return spots;
142
206
  }
143
207
  //# sourceMappingURL=zones.js.map
package/dist/zones.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"zones.js","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zones.js","sourceRoot":"","sources":["../src/zones.ts"],"names":[],"mappings":"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"}