@dreadwood-types/types 0.1.8 → 0.1.12

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.
Files changed (54) hide show
  1. package/dist/bounty.d.ts +66 -0
  2. package/dist/bounty.d.ts.map +1 -0
  3. package/dist/bounty.js +136 -0
  4. package/dist/bounty.js.map +1 -0
  5. package/dist/constants.d.ts +42 -4
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +121 -10
  8. package/dist/constants.js.map +1 -1
  9. package/dist/cooking.d.ts.map +1 -1
  10. package/dist/cooking.js +4 -0
  11. package/dist/cooking.js.map +1 -1
  12. package/dist/equipment.d.ts.map +1 -1
  13. package/dist/equipment.js +6 -0
  14. package/dist/equipment.js.map +1 -1
  15. package/dist/groundItems.d.ts.map +1 -1
  16. package/dist/groundItems.js +7 -0
  17. package/dist/groundItems.js.map +1 -1
  18. package/dist/index.d.ts +5 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +5 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/landmarks.d.ts +225 -3
  23. package/dist/landmarks.d.ts.map +1 -1
  24. package/dist/landmarks.js +379 -1
  25. package/dist/landmarks.js.map +1 -1
  26. package/dist/messages.d.ts +96 -7
  27. package/dist/messages.d.ts.map +1 -1
  28. package/dist/messages.js +4 -0
  29. package/dist/messages.js.map +1 -1
  30. package/dist/mining.d.ts +69 -0
  31. package/dist/mining.d.ts.map +1 -0
  32. package/dist/mining.js +91 -0
  33. package/dist/mining.js.map +1 -0
  34. package/dist/snow.d.ts +56 -0
  35. package/dist/snow.d.ts.map +1 -0
  36. package/dist/snow.js +95 -0
  37. package/dist/snow.js.map +1 -0
  38. package/dist/spiderCave.d.ts +53 -0
  39. package/dist/spiderCave.d.ts.map +1 -0
  40. package/dist/spiderCave.js +68 -0
  41. package/dist/spiderCave.js.map +1 -0
  42. package/dist/timedAccess.d.ts +62 -0
  43. package/dist/timedAccess.d.ts.map +1 -0
  44. package/dist/timedAccess.js +77 -0
  45. package/dist/timedAccess.js.map +1 -0
  46. package/dist/woodwork.d.ts +30 -0
  47. package/dist/woodwork.d.ts.map +1 -1
  48. package/dist/woodwork.js +48 -0
  49. package/dist/woodwork.js.map +1 -1
  50. package/dist/zones.d.ts +27 -0
  51. package/dist/zones.d.ts.map +1 -1
  52. package/dist/zones.js +74 -10
  53. package/dist/zones.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow.js","sourceRoot":"","sources":["../src/snow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /** Hidden underground rooms. Never add these coordinates to the paper map. */
2
+ export declare const SPIDER_CAVE_CENTER_X: number;
3
+ /** First chamber - level 20 spiders and cobwebs. */
4
+ export declare const SPIDER_CAVE_ROOM: {
5
+ readonly cx: number;
6
+ readonly minZ: 200;
7
+ readonly maxZ: 224;
8
+ readonly halfW: 7;
9
+ };
10
+ /** Arana's pit, reached by squeezing the webbed path. */
11
+ export declare const SPIDER_PIT_ROOM: {
12
+ readonly cx: number;
13
+ readonly minZ: 168;
14
+ readonly maxZ: 188;
15
+ readonly halfW: 8;
16
+ };
17
+ export declare const SPIDER_CAVE_ENTRY: {
18
+ readonly x: number;
19
+ readonly z: number;
20
+ };
21
+ export declare const SPIDER_CAVE_EXIT_STYLE = "spider-return-south";
22
+ export declare const SPIDER_CAVE_MOUTH_STYLE = "spider-burrow";
23
+ /** Blocking web curtain at the north end of the first room. */
24
+ export declare const SPIDER_WEB_VEIL: {
25
+ readonly x: number;
26
+ readonly z: 200;
27
+ };
28
+ export declare const SPIDER_PIT_LANDING: {
29
+ readonly x: number;
30
+ readonly z: number;
31
+ };
32
+ /** Blocking web curtain at the south end of the pit, to squeeze back. */
33
+ export declare const SPIDER_PIT_VEIL: {
34
+ readonly x: number;
35
+ readonly z: 188;
36
+ };
37
+ export declare function spiderSqueezeDestination(fromX: number, fromZ: number): {
38
+ x: number;
39
+ z: number;
40
+ };
41
+ export declare const ARANA_SPAWN: {
42
+ readonly x: number;
43
+ readonly z: number;
44
+ };
45
+ export declare const ARANA_WORLD_SCALE = 2.7;
46
+ export declare const SQUEEZE_DURATION_MS = 5000;
47
+ export declare const SQUEEZE_LABEL = "Squeeze through";
48
+ export declare const SPIDER_CAVE_SPAWNS: {
49
+ x: number;
50
+ z: number;
51
+ }[];
52
+ export declare function inSpiderCave(x: number, z: number): boolean;
53
+ //# sourceMappingURL=spiderCave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spiderCave.d.ts","sourceRoot":"","sources":["../src/spiderCave.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,QAA4B,CAAC;AAE9D,oDAAoD;AACpD,eAAO,MAAM,gBAAgB;aAC3B,EAAE;aACF,IAAI,EAAE,GAAG;aACT,IAAI,EAAE,GAAG;aACT,KAAK,EAAE,CAAC;CACA,CAAC;AAEX,yDAAyD;AACzD,eAAO,MAAM,eAAe;aAC1B,EAAE;aACF,IAAI,EAAE,GAAG;aACT,IAAI,EAAE,GAAG;aACT,KAAK,EAAE,CAAC;CACA,CAAC;AAEX,eAAO,MAAM,iBAAiB;aAC5B,CAAC;aACD,CAAC;CACO,CAAC;AAEX,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,+DAA+D;AAC/D,eAAO,MAAM,eAAe;aAC1B,CAAC;aACD,CAAC;CACO,CAAC;AAEX,eAAO,MAAM,kBAAkB;aAC7B,CAAC;aACD,CAAC;CACO,CAAC;AAEX,yEAAyE;AACzE,eAAO,MAAM,eAAe;aAC1B,CAAC;aACD,CAAC;CACO,CAAC;AAEX,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK/F;AAED,eAAO,MAAM,WAAW;aACtB,CAAC;aACD,CAAC;CACO,CAAC;AAEX,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAE/C,eAAO,MAAM,kBAAkB;;;GAU+B,CAAC;AAE/D,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAO1D"}
@@ -0,0 +1,68 @@
1
+ import { UNDERGROUND_ORIGIN_X } from './constants.js';
2
+ /** Hidden underground rooms. Never add these coordinates to the paper map. */
3
+ export const SPIDER_CAVE_CENTER_X = UNDERGROUND_ORIGIN_X + 36;
4
+ /** First chamber - level 20 spiders and cobwebs. */
5
+ export const SPIDER_CAVE_ROOM = {
6
+ cx: SPIDER_CAVE_CENTER_X,
7
+ minZ: 200,
8
+ maxZ: 224,
9
+ halfW: 7,
10
+ };
11
+ /** Arana's pit, reached by squeezing the webbed path. */
12
+ export const SPIDER_PIT_ROOM = {
13
+ cx: SPIDER_CAVE_CENTER_X,
14
+ minZ: 168,
15
+ maxZ: 188,
16
+ halfW: 8,
17
+ };
18
+ export const SPIDER_CAVE_ENTRY = {
19
+ x: SPIDER_CAVE_CENTER_X,
20
+ z: SPIDER_CAVE_ROOM.maxZ - 2,
21
+ };
22
+ export const SPIDER_CAVE_EXIT_STYLE = 'spider-return-south';
23
+ export const SPIDER_CAVE_MOUTH_STYLE = 'spider-burrow';
24
+ /** Blocking web curtain at the north end of the first room. */
25
+ export const SPIDER_WEB_VEIL = {
26
+ x: SPIDER_CAVE_CENTER_X,
27
+ z: SPIDER_CAVE_ROOM.minZ,
28
+ };
29
+ export const SPIDER_PIT_LANDING = {
30
+ x: SPIDER_CAVE_CENTER_X,
31
+ z: SPIDER_PIT_ROOM.maxZ - 2,
32
+ };
33
+ /** Blocking web curtain at the south end of the pit, to squeeze back. */
34
+ export const SPIDER_PIT_VEIL = {
35
+ x: SPIDER_CAVE_CENTER_X,
36
+ z: SPIDER_PIT_ROOM.maxZ,
37
+ };
38
+ export function spiderSqueezeDestination(fromX, fromZ) {
39
+ if (fromZ <= SPIDER_PIT_ROOM.maxZ + 1) {
40
+ return { x: SPIDER_CAVE_CENTER_X, z: SPIDER_CAVE_ROOM.minZ + 2 };
41
+ }
42
+ return { x: SPIDER_PIT_LANDING.x, z: SPIDER_PIT_LANDING.z };
43
+ }
44
+ export const ARANA_SPAWN = {
45
+ x: SPIDER_CAVE_CENTER_X,
46
+ z: SPIDER_PIT_ROOM.minZ + 9,
47
+ };
48
+ export const ARANA_WORLD_SCALE = 2.7;
49
+ export const SQUEEZE_DURATION_MS = 5000;
50
+ export const SQUEEZE_LABEL = 'Squeeze through';
51
+ export const SPIDER_CAVE_SPAWNS = [
52
+ [-5, 206],
53
+ [-2, 208],
54
+ [2, 207],
55
+ [5, 209],
56
+ [-4, 213],
57
+ [0, 214],
58
+ [4, 216],
59
+ [-3, 219],
60
+ [3, 220],
61
+ ].map(([dx, z]) => ({ x: SPIDER_CAVE_CENTER_X + dx, z: z }));
62
+ export function inSpiderCave(x, z) {
63
+ return (x >= SPIDER_CAVE_CENTER_X - 12 &&
64
+ x <= SPIDER_CAVE_CENTER_X + 12 &&
65
+ z >= SPIDER_PIT_ROOM.minZ - 2 &&
66
+ z <= SPIDER_CAVE_ROOM.maxZ + 2);
67
+ }
68
+ //# sourceMappingURL=spiderCave.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spiderCave.js","sourceRoot":"","sources":["../src/spiderCave.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Timed access to a place you pay to be inside.
3
+ *
4
+ * Deliberately generic rather than a Trout Fishery special case: the fishery is
5
+ * the first user, but the shape here (buy blocks of minutes, a balance that
6
+ * only burns down while you are actually online, and a forced exit at zero) is
7
+ * meant to carry the next paid area without being rewritten.
8
+ *
9
+ * The balance is stored as MILLISECONDS REMAINING, not as an expiry timestamp.
10
+ * That is the whole reason it can be online-only: a wall-clock deadline keeps
11
+ * running while a character is logged off, so an hour bought at bedtime would
12
+ * be gone by morning. Remaining time is decremented by the server tick, and the
13
+ * tick only runs for connected players.
14
+ */
15
+ export type TimedAreaId = 'trout-fishery';
16
+ export type TimedAreaDef = {
17
+ id: TimedAreaId;
18
+ label: string;
19
+ /** Gold charged per block of time. */
20
+ pricePerBlock: number;
21
+ /** Minutes granted per block. */
22
+ minutesPerBlock: number;
23
+ /** Most blocks buyable in one purchase. */
24
+ maxBlocks: number;
25
+ };
26
+ export declare const TIMED_AREAS: Record<TimedAreaId, TimedAreaDef>;
27
+ export declare function timedAreaDef(area: TimedAreaId): TimedAreaDef;
28
+ export declare function isTimedAreaId(value: unknown): value is TimedAreaId;
29
+ /** One purchasable option, e.g. 45 minutes for 6000 gold. */
30
+ export type TimedAccessOption = {
31
+ blocks: number;
32
+ minutes: number;
33
+ price: number;
34
+ };
35
+ export declare function timedAccessOptions(area: TimedAreaId): TimedAccessOption[];
36
+ /**
37
+ * A character's remaining time inside a paid area.
38
+ *
39
+ * One record per character, not one per area: you can only be inside one paid
40
+ * place at a time, and keeping it single makes "what is my timer showing"
41
+ * unambiguous for the HUD.
42
+ */
43
+ export type TimedAccess = {
44
+ area: TimedAreaId;
45
+ msRemaining: number;
46
+ };
47
+ /** Hard ceiling so a corrupt or hostile value cannot mint unlimited time. */
48
+ export declare function timedAccessMaxMs(area: TimedAreaId): number;
49
+ export declare function normalizeTimedAccess(raw: unknown): TimedAccess | null;
50
+ /** Below this the HUD counts in red and the client warns once. */
51
+ export declare const TIMED_ACCESS_WARN_MS = 60000;
52
+ /**
53
+ * How often the server corrects the client's clock. The HUD counts down locally
54
+ * in between, so this is a correction rather than a tick - a per-second message
55
+ * per player standing in the fishery would be pure waste.
56
+ */
57
+ export declare const TIMED_ACCESS_PUSH_MS = 15000;
58
+ /** How long the fade-to-black on expiry runs, both ends. Shared so the server
59
+ * can hold the player still for exactly as long as the client is blacked out. */
60
+ export declare const TIMED_ACCESS_FADE_MS = 900;
61
+ export declare function formatTimeRemaining(ms: number): string;
62
+ //# sourceMappingURL=timedAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timedAccess.d.ts","sourceRoot":"","sources":["../src/timedAccess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,CAQzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAE5D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAWzE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAG1D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAUrE;AAED,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C;kFACkF;AAClF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Timed access to a place you pay to be inside.
3
+ *
4
+ * Deliberately generic rather than a Trout Fishery special case: the fishery is
5
+ * the first user, but the shape here (buy blocks of minutes, a balance that
6
+ * only burns down while you are actually online, and a forced exit at zero) is
7
+ * meant to carry the next paid area without being rewritten.
8
+ *
9
+ * The balance is stored as MILLISECONDS REMAINING, not as an expiry timestamp.
10
+ * That is the whole reason it can be online-only: a wall-clock deadline keeps
11
+ * running while a character is logged off, so an hour bought at bedtime would
12
+ * be gone by morning. Remaining time is decremented by the server tick, and the
13
+ * tick only runs for connected players.
14
+ */
15
+ export const TIMED_AREAS = {
16
+ 'trout-fishery': {
17
+ id: 'trout-fishery',
18
+ label: 'Trout Fishery',
19
+ pricePerBlock: 2000,
20
+ minutesPerBlock: 15,
21
+ maxBlocks: 4,
22
+ },
23
+ };
24
+ export function timedAreaDef(area) {
25
+ return TIMED_AREAS[area];
26
+ }
27
+ export function isTimedAreaId(value) {
28
+ return typeof value === 'string' && value in TIMED_AREAS;
29
+ }
30
+ export function timedAccessOptions(area) {
31
+ const def = timedAreaDef(area);
32
+ const out = [];
33
+ for (let blocks = 1; blocks <= def.maxBlocks; blocks++) {
34
+ out.push({
35
+ blocks,
36
+ minutes: blocks * def.minutesPerBlock,
37
+ price: blocks * def.pricePerBlock,
38
+ });
39
+ }
40
+ return out;
41
+ }
42
+ /** Hard ceiling so a corrupt or hostile value cannot mint unlimited time. */
43
+ export function timedAccessMaxMs(area) {
44
+ const def = timedAreaDef(area);
45
+ return def.maxBlocks * def.minutesPerBlock * 60_000;
46
+ }
47
+ export function normalizeTimedAccess(raw) {
48
+ if (!raw || typeof raw !== 'object')
49
+ return null;
50
+ const r = raw;
51
+ if (!isTimedAreaId(r.area))
52
+ return null;
53
+ const ms = typeof r.msRemaining === 'number' && Number.isFinite(r.msRemaining)
54
+ ? Math.floor(r.msRemaining)
55
+ : 0;
56
+ if (ms <= 0)
57
+ return null;
58
+ return { area: r.area, msRemaining: Math.min(ms, timedAccessMaxMs(r.area)) };
59
+ }
60
+ /** Below this the HUD counts in red and the client warns once. */
61
+ export const TIMED_ACCESS_WARN_MS = 60_000;
62
+ /**
63
+ * How often the server corrects the client's clock. The HUD counts down locally
64
+ * in between, so this is a correction rather than a tick - a per-second message
65
+ * per player standing in the fishery would be pure waste.
66
+ */
67
+ export const TIMED_ACCESS_PUSH_MS = 15_000;
68
+ /** How long the fade-to-black on expiry runs, both ends. Shared so the server
69
+ * can hold the player still for exactly as long as the client is blacked out. */
70
+ export const TIMED_ACCESS_FADE_MS = 900;
71
+ export function formatTimeRemaining(ms) {
72
+ const total = Math.max(0, Math.ceil(ms / 1000));
73
+ const mins = Math.floor(total / 60);
74
+ const secs = total % 60;
75
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
76
+ }
77
+ //# sourceMappingURL=timedAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timedAccess.js","sourceRoot":"","sources":["../src/timedAccess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,MAAM,CAAC,MAAM,WAAW,GAAsC;IAC5D,eAAe,EAAE;QACf,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,eAAe;QACtB,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,CAAC;KACb;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,WAAW,CAAC;AAC3D,CAAC;AASD,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC;YACP,MAAM;YACN,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,eAAe;YACrC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAcD,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,EAAE,GACN,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC;IACR,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE3C;kFACkF;AAClF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;IACxB,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACvD,CAAC"}
@@ -14,6 +14,27 @@ export declare const BIRCH_WOOD_KIND = "birchwood";
14
14
  export declare const POPLAR_WOOD_KIND = "poplarwood";
15
15
  export declare const PINE_WOOD_KIND = "pinewood";
16
16
  export declare const SPRUCE_WOOD_KIND = "sprucewood";
17
+ /**
18
+ * Ash. The level-30 rung of WOODWORK_TREE_LEVELS existed with nothing behind
19
+ * it; this is what fills it. Ash grows only in the East, only a handful of
20
+ * trees at a time (see ASH_TREE_MAX_ALIVE), so ash logs are the scarce
21
+ * ingredient the fly rod is gated on.
22
+ */
23
+ export declare const ASH_WOOD_KIND = "ashwood";
24
+ /** How many ash trees stand in the whole East at once - felling one reseeds it elsewhere. */
25
+ export declare const ASH_TREE_MAX_ALIVE = 5;
26
+ export declare const FLY_FISHING_ROD_KIND = "flyfishingrod";
27
+ export declare const FLY_HOOK_KIND = "flyhook";
28
+ export declare const RAW_TROUT_KIND = "rawtrout";
29
+ export declare const COOKED_TROUT_KIND = "cookedtrout";
30
+ /** Buy the rod outright, or make one if you can find the ash. */
31
+ export declare const FLY_FISHING_ROD_PRICE = 10000;
32
+ export declare const FLY_FISHING_ROD_WOODWORK_LEVEL: 30;
33
+ export declare const FLY_FISHING_ROD_COST: Array<{
34
+ kind: string;
35
+ qty: number;
36
+ }>;
37
+ export declare const FLY_FISHING_ROD_WOODWORK_XP = 900;
17
38
  export declare const HATCHET_KIND = "hatchet";
18
39
  export declare const FOLDING_SAW_KIND = "foldingsaw";
19
40
  export declare const BROKEN_SAW_KIND = "brokensaw";
@@ -124,6 +145,11 @@ export declare const TENCH_FISHING_LEVEL = 20;
124
145
  /** Perch need a rod, tackle, bait and a little lake-fishing experience. */
125
146
  export declare const PERCH_FISHING_LEVEL = 7;
126
147
  export declare const POND_FISHING_LEVEL = 1;
148
+ /**
149
+ * Trout, in the stocked reservoir at the Trout Fishery. The top of the ladder,
150
+ * and the only fish behind a paid door and a rod you have to buy or craft.
151
+ */
152
+ export declare const TROUT_FISHING_LEVEL = 30;
127
153
  /**
128
154
  * Odds a cast lands its fish. Used to be a flat 0.5 regardless of skill, so
129
155
  * Fishing level bought you nothing at the rod - the only thing it gated was
@@ -159,6 +185,10 @@ export declare const FOX_BAIT_SPAWN_MIN = 3;
159
185
  export declare const FOX_BAIT_SPAWN_MAX = 4;
160
186
  /** Base Camp Suspicious hole (and other caveentrance tunnels that use the same gate). */
161
187
  export declare const CAVE_ENTRANCE_EXPLORER_LEVEL = 5;
188
+ /** Spider Cave mouth east of Calverton. */
189
+ export declare const SPIDER_CAVE_EXPLORER_LEVEL = 15;
190
+ /** Wolf dens scattered through the woods around Calverton. */
191
+ export declare const WOLF_DEN_FORAGING_LEVEL = 15;
162
192
  /** Bait-end tile of a fox-track trail (`end` or `end-n` / `end-e` / …). */
163
193
  export declare function isFoxTrackEndStyle(style: string | undefined): boolean;
164
194
  export declare const CHICKEN_FEATHER_YIELD_MIN = 1;
@@ -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":"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"}
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,
@@ -15,6 +16,27 @@ export const BIRCH_WOOD_KIND = 'birchwood';
15
16
  export const POPLAR_WOOD_KIND = 'poplarwood';
16
17
  export const PINE_WOOD_KIND = 'pinewood';
17
18
  export const SPRUCE_WOOD_KIND = 'sprucewood';
19
+ /**
20
+ * Ash. The level-30 rung of WOODWORK_TREE_LEVELS existed with nothing behind
21
+ * it; this is what fills it. Ash grows only in the East, only a handful of
22
+ * trees at a time (see ASH_TREE_MAX_ALIVE), so ash logs are the scarce
23
+ * ingredient the fly rod is gated on.
24
+ */
25
+ export const ASH_WOOD_KIND = 'ashwood';
26
+ /** How many ash trees stand in the whole East at once - felling one reseeds it elsewhere. */
27
+ export const ASH_TREE_MAX_ALIVE = 5;
28
+ /* --- Fly tackle, for the Trout Fishery ------------------------------------ */
29
+ export const FLY_FISHING_ROD_KIND = 'flyfishingrod';
30
+ export const FLY_HOOK_KIND = 'flyhook';
31
+ export const RAW_TROUT_KIND = 'rawtrout';
32
+ export const COOKED_TROUT_KIND = 'cookedtrout';
33
+ /** Buy the rod outright, or make one if you can find the ash. */
34
+ export const FLY_FISHING_ROD_PRICE = 10_000;
35
+ export const FLY_FISHING_ROD_WOODWORK_LEVEL = WOODWORK_TREE_LEVELS.ash;
36
+ export const FLY_FISHING_ROD_COST = [
37
+ { kind: ASH_WOOD_KIND, qty: 20 },
38
+ ];
39
+ export const FLY_FISHING_ROD_WOODWORK_XP = 900;
18
40
  export const HATCHET_KIND = 'hatchet';
19
41
  export const FOLDING_SAW_KIND = 'foldingsaw';
20
42
  export const BROKEN_SAW_KIND = 'brokensaw';
@@ -78,6 +100,7 @@ const WOOD_BY_STYLE = {
78
100
  poplar: { kind: POPLAR_WOOD_KIND },
79
101
  pine: { kind: PINE_WOOD_KIND },
80
102
  spruce: { kind: SPRUCE_WOOD_KIND },
103
+ ash: { kind: ASH_WOOD_KIND },
81
104
  };
82
105
  export function woodKindForStyle(style) {
83
106
  return (style && WOOD_BY_STYLE[style]?.kind) || BIRCH_WOOD_KIND;
@@ -206,6 +229,17 @@ export const WOODWORK_RECIPES = [
206
229
  { kind: STONE_KIND, qty: 1 },
207
230
  ],
208
231
  },
232
+ {
233
+ // The top of the bench. Twenty ash against five trees in the whole East is
234
+ // the point: the 10,000 gold rod at the fishery gate is the shortcut, and
235
+ // this is the long way round for anyone who would rather spend time.
236
+ id: FLY_FISHING_ROD_KIND,
237
+ output: FLY_FISHING_ROD_KIND,
238
+ outputQty: 1,
239
+ level: FLY_FISHING_ROD_WOODWORK_LEVEL,
240
+ xp: FLY_FISHING_ROD_WOODWORK_XP,
241
+ materials: FLY_FISHING_ROD_COST,
242
+ },
209
243
  ];
210
244
  export function woodworkRecipe(id) {
211
245
  return WOODWORK_RECIPES.find((r) => r.id === id) ?? null;
@@ -223,6 +257,11 @@ export const TENCH_FISHING_LEVEL = 20;
223
257
  /** Perch need a rod, tackle, bait and a little lake-fishing experience. */
224
258
  export const PERCH_FISHING_LEVEL = 7;
225
259
  export const POND_FISHING_LEVEL = 1;
260
+ /**
261
+ * Trout, in the stocked reservoir at the Trout Fishery. The top of the ladder,
262
+ * and the only fish behind a paid door and a rod you have to buy or craft.
263
+ */
264
+ export const TROUT_FISHING_LEVEL = 30;
226
265
  /**
227
266
  * Odds a cast lands its fish. Used to be a flat 0.5 regardless of skill, so
228
267
  * Fishing level bought you nothing at the rod - the only thing it gated was
@@ -283,6 +322,10 @@ export const FOX_BAIT_SPAWN_MIN = 3;
283
322
  export const FOX_BAIT_SPAWN_MAX = 4;
284
323
  /** Base Camp Suspicious hole (and other caveentrance tunnels that use the same gate). */
285
324
  export const CAVE_ENTRANCE_EXPLORER_LEVEL = 5;
325
+ /** Spider Cave mouth east of Calverton. */
326
+ export const SPIDER_CAVE_EXPLORER_LEVEL = 15;
327
+ /** Wolf dens scattered through the woods around Calverton. */
328
+ export const WOLF_DEN_FORAGING_LEVEL = 15;
286
329
  /** Bait-end tile of a fox-track trail (`end` or `end-n` / `end-e` / …). */
287
330
  export function isFoxTrackEndStyle(style) {
288
331
  return typeof style === 'string' && (style === 'end' || style.startsWith('end-'));
@@ -339,6 +382,11 @@ export function isWorkingSaw(kind) {
339
382
  export function isWoodworkTool(kind) {
340
383
  if (isBrokenSaw(kind))
341
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;
342
390
  const id = kind.toLowerCase();
343
391
  return (id === FOLDING_SAW_KIND ||
344
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":"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"}