@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,66 @@
1
+ /**
2
+ * Bounty Hunter - repeatable kill contracts handed out at the Bounty Board on the
3
+ * Crossroads by Bruce. Completing one trains the Bounty Hunter skill (XP is granted
4
+ * per counted kill, equal to that NPC's normal kill XP) and pays a Small Satchel.
5
+ *
6
+ * Tiers are gated by the player's Combat level. Bruce only ever offers the single
7
+ * highest tier the player has unlocked, so lower-tier targets stop being offered as
8
+ * the hunter grows (seagull / crab contracts vanish once Combat reaches 8).
9
+ */
10
+ /** Bounty targets - all reuse an existing NpcKind. */
11
+ export type BountyTargetKind = 'seagull' | 'crab' | 'rabbit' | 'fox' | 'bandit' | 'soldier' | 'goblin' | 'amazon';
12
+ export type BountyOffer = {
13
+ target: BountyTargetKind;
14
+ count: number;
15
+ /**
16
+ * Representative creature level used only for the Small Satchel gold roll. Fixed
17
+ * per offer rather than read from the NPC's rolled level so a bounty always pays
18
+ * the same band.
19
+ */
20
+ rewardLevel: number;
21
+ };
22
+ export type BountyTier = {
23
+ /** Minimum Combat level to be offered this tier. */
24
+ minCombat: number;
25
+ offers: BountyOffer[];
26
+ };
27
+ /** Ordered low to high; the last entry whose `minCombat` a player meets is theirs. */
28
+ export declare const BOUNTY_TIERS: readonly BountyTier[];
29
+ /** The offers Bruce shows a player at this Combat level (empty below tier 1). */
30
+ export declare function bountyTierForCombat(combatLevel: number): BountyOffer[];
31
+ export declare function isBountyTargetKind(value: unknown): value is BountyTargetKind;
32
+ /** Find the offer for a target at the player's tier, or null if not currently offered. */
33
+ export declare function bountyOfferFor(combatLevel: number, target: BountyTargetKind): BountyOffer | null;
34
+ export type ActiveBounty = {
35
+ target: BountyTargetKind;
36
+ count: number;
37
+ killed: number;
38
+ /** Creature level for the Small Satchel gold roll when the reward is claimed. */
39
+ rewardLevel: number;
40
+ };
41
+ export declare function normalizeActiveBounty(raw: unknown): ActiveBounty | null;
42
+ export declare function isBountyComplete(bounty: ActiveBounty | null | undefined): boolean;
43
+ /** Plural creature name for chat and panel copy ("30 seagulls"). */
44
+ export declare const BOUNTY_TARGET_NAME: Record<BountyTargetKind, string>;
45
+ export declare function bountyTargetDisplayName(target: BountyTargetKind): string;
46
+ export declare const SATCHEL_GOLD_MIN_MULT = 20;
47
+ export declare const SATCHEL_GOLD_MAX_MULT = 60;
48
+ /** 0.1% chance the satchel also holds one poplar / spruce item. */
49
+ export declare const SATCHEL_RARE_CHANCE = 0.001;
50
+ /** 5% chance the satchel also holds a bundle of Birch Arrows. */
51
+ export declare const SATCHEL_ARROW_CHANCE = 0.05;
52
+ export declare const SATCHEL_ARROW_MIN = 10;
53
+ export declare const SATCHEL_ARROW_MAX = 100;
54
+ export type SatchelPoolEntry = {
55
+ kind: string;
56
+ minQty: number;
57
+ maxQty: number;
58
+ };
59
+ /** One of these is picked when the rare roll hits. */
60
+ export declare const SATCHEL_RARE_POOL: readonly SatchelPoolEntry[];
61
+ /** Gold band a satchel for this creature level can pay. */
62
+ export declare function satchelGoldRange(rewardLevel: number): {
63
+ min: number;
64
+ max: number;
65
+ };
66
+ //# sourceMappingURL=bounty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounty.d.ts","sourceRoot":"","sources":["../src/bounty.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EA2CpC,CAAC;AAEX,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAOtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAW5E;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,gBAAgB,GACvB,WAAW,GAAG,IAAI,CAEpB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAavE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEjF;AAED,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAS/D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAExE;AAMD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,SAAS,gBAAgB,EAO/C,CAAC;AAEX,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAGlF"}
package/dist/bounty.js ADDED
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Bounty Hunter - repeatable kill contracts handed out at the Bounty Board on the
3
+ * Crossroads by Bruce. Completing one trains the Bounty Hunter skill (XP is granted
4
+ * per counted kill, equal to that NPC's normal kill XP) and pays a Small Satchel.
5
+ *
6
+ * Tiers are gated by the player's Combat level. Bruce only ever offers the single
7
+ * highest tier the player has unlocked, so lower-tier targets stop being offered as
8
+ * the hunter grows (seagull / crab contracts vanish once Combat reaches 8).
9
+ */
10
+ /** Ordered low to high; the last entry whose `minCombat` a player meets is theirs. */
11
+ export const BOUNTY_TIERS = [
12
+ {
13
+ minCombat: 1,
14
+ offers: [
15
+ { target: 'seagull', count: 30, rewardLevel: 1 },
16
+ { target: 'crab', count: 30, rewardLevel: 2 },
17
+ ],
18
+ },
19
+ {
20
+ minCombat: 3,
21
+ offers: [
22
+ { target: 'rabbit', count: 35, rewardLevel: 3 },
23
+ { target: 'seagull', count: 30, rewardLevel: 1 },
24
+ { target: 'crab', count: 30, rewardLevel: 2 },
25
+ ],
26
+ },
27
+ {
28
+ minCombat: 8,
29
+ offers: [{ target: 'fox', count: 10, rewardLevel: 5 }],
30
+ },
31
+ {
32
+ minCombat: 12,
33
+ offers: [
34
+ { target: 'soldier', count: 20, rewardLevel: 8 },
35
+ { target: 'fox', count: 10, rewardLevel: 5 },
36
+ { target: 'bandit', count: 5, rewardLevel: 5 },
37
+ ],
38
+ },
39
+ {
40
+ minCombat: 15,
41
+ offers: [
42
+ { target: 'goblin', count: 20, rewardLevel: 12 },
43
+ { target: 'soldier', count: 30, rewardLevel: 8 },
44
+ ],
45
+ },
46
+ {
47
+ minCombat: 18,
48
+ offers: [
49
+ { target: 'soldier', count: 40, rewardLevel: 8 },
50
+ { target: 'goblin', count: 40, rewardLevel: 12 },
51
+ { target: 'amazon', count: 25, rewardLevel: 15 },
52
+ ],
53
+ },
54
+ ];
55
+ /** The offers Bruce shows a player at this Combat level (empty below tier 1). */
56
+ export function bountyTierForCombat(combatLevel) {
57
+ const level = Math.floor(combatLevel);
58
+ let chosen = [];
59
+ for (const tier of BOUNTY_TIERS) {
60
+ if (level >= tier.minCombat)
61
+ chosen = tier.offers.slice();
62
+ }
63
+ return chosen;
64
+ }
65
+ export function isBountyTargetKind(value) {
66
+ return (value === 'seagull' ||
67
+ value === 'crab' ||
68
+ value === 'rabbit' ||
69
+ value === 'fox' ||
70
+ value === 'bandit' ||
71
+ value === 'soldier' ||
72
+ value === 'goblin' ||
73
+ value === 'amazon');
74
+ }
75
+ /** Find the offer for a target at the player's tier, or null if not currently offered. */
76
+ export function bountyOfferFor(combatLevel, target) {
77
+ return bountyTierForCombat(combatLevel).find((o) => o.target === target) ?? null;
78
+ }
79
+ export function normalizeActiveBounty(raw) {
80
+ if (!raw || typeof raw !== 'object')
81
+ return null;
82
+ const r = raw;
83
+ if (!isBountyTargetKind(r.target))
84
+ return null;
85
+ const count = typeof r.count === 'number' && Number.isFinite(r.count) ? Math.max(1, Math.floor(r.count)) : 0;
86
+ if (count <= 0)
87
+ return null;
88
+ const killed = typeof r.killed === 'number' && Number.isFinite(r.killed) ? Math.max(0, Math.floor(r.killed)) : 0;
89
+ const rewardLevel = typeof r.rewardLevel === 'number' && Number.isFinite(r.rewardLevel)
90
+ ? Math.max(1, Math.floor(r.rewardLevel))
91
+ : 1;
92
+ return { target: r.target, count, killed: Math.min(killed, count), rewardLevel };
93
+ }
94
+ export function isBountyComplete(bounty) {
95
+ return Boolean(bounty && bounty.killed >= bounty.count);
96
+ }
97
+ /** Plural creature name for chat and panel copy ("30 seagulls"). */
98
+ export const BOUNTY_TARGET_NAME = {
99
+ seagull: 'seagulls',
100
+ crab: 'crabs',
101
+ rabbit: 'rabbits',
102
+ fox: 'foxes',
103
+ bandit: 'bandits',
104
+ soldier: 'soldiers',
105
+ goblin: 'goblins',
106
+ amazon: 'Amazonian warriors',
107
+ };
108
+ export function bountyTargetDisplayName(target) {
109
+ return BOUNTY_TARGET_NAME[target] ?? target;
110
+ }
111
+ /* ------------------------------------------------------------------ *
112
+ * Small Satchel - the reward for any completed bounty.
113
+ * ------------------------------------------------------------------ */
114
+ export const SATCHEL_GOLD_MIN_MULT = 20;
115
+ export const SATCHEL_GOLD_MAX_MULT = 60;
116
+ /** 0.1% chance the satchel also holds one poplar / spruce item. */
117
+ export const SATCHEL_RARE_CHANCE = 0.001;
118
+ /** 5% chance the satchel also holds a bundle of Birch Arrows. */
119
+ export const SATCHEL_ARROW_CHANCE = 0.05;
120
+ export const SATCHEL_ARROW_MIN = 10;
121
+ export const SATCHEL_ARROW_MAX = 100;
122
+ /** One of these is picked when the rare roll hits. */
123
+ export const SATCHEL_RARE_POOL = [
124
+ { kind: 'poplarhelmet', minQty: 1, maxQty: 1 },
125
+ { kind: 'poplarbody', minQty: 1, maxQty: 1 },
126
+ { kind: 'poplarlegs', minQty: 1, maxQty: 1 },
127
+ { kind: 'poplarspear', minQty: 1, maxQty: 1 },
128
+ { kind: 'sprucearrow', minQty: 10, maxQty: 30 },
129
+ { kind: 'sprucewood', minQty: 10, maxQty: 20 },
130
+ ];
131
+ /** Gold band a satchel for this creature level can pay. */
132
+ export function satchelGoldRange(rewardLevel) {
133
+ const level = Math.max(1, Math.floor(rewardLevel));
134
+ return { min: level * SATCHEL_GOLD_MIN_MULT, max: level * SATCHEL_GOLD_MAX_MULT };
135
+ }
136
+ //# sourceMappingURL=bounty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounty.js","sourceRoot":"","sources":["../src/bounty.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8BH,sFAAsF;AACtF,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD;QACE,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE;YACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAChD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;SAC9C;KACF;IACD;QACE,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE;YACN,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAC/C,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAChD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;SAC9C;KACF;IACD;QACE,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;KACvD;IACD;QACE,SAAS,EAAE,EAAE;QACb,MAAM,EAAE;YACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAChD,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5C,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC/C;KACF;IACD;QACE,SAAS,EAAE,EAAE;QACb,MAAM,EAAE;YACN,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAChD,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;SACjD;KACF;IACD;QACE,SAAS,EAAE,EAAE;QACb,MAAM,EAAE;YACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAChD,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAChD,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;SACjD;KACF;CACO,CAAC;AAEX,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,KAAK;QACf,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ,CACnB,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,MAAwB;IAExB,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAUD,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,WAAW,GACf,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC,CAAC;IACR,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAuC;IACtE,OAAO,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,oBAAoB;CAC7B,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC9D,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAC9C,CAAC;AAED;;wEAEwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AACzC,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAIrC,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC5C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;CACtC,CAAC;AAEX,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,qBAAqB,EAAE,GAAG,EAAE,KAAK,GAAG,qBAAqB,EAAE,CAAC;AACpF,CAAC"}
@@ -17,7 +17,7 @@ export declare function playerNameError(name: string): string | null;
17
17
  export declare const CHUNK_SIZE = 32;
18
18
  export declare const FARMLAND_CHUNKS_X = 8;
19
19
  export declare const VILLAGE_CHUNKS_X = 2;
20
- export declare const EASTLAND_CHUNKS_X = 14;
20
+ export declare const EASTLAND_CHUNKS_X = 17;
21
21
  export declare const PLAYABLE_CHUNKS_X: number;
22
22
  export declare const PLAYABLE_CHUNKS_Z = 3;
23
23
  export declare const FARMLAND_WIDTH: number;
@@ -67,7 +67,9 @@ export declare enum SurfaceType {
67
67
  Dirt = 5,
68
68
  Soil = 6,
69
69
  Stone = 7,
70
- Mud = 8
70
+ Mud = 8,
71
+ /** Northern snow. Walkable exactly like grass; snow.ts decides where it lies. */
72
+ Snow = 9
71
73
  }
72
74
  export declare enum TileType {
73
75
  Grass = 0,
@@ -77,8 +79,10 @@ export declare enum TileType {
77
79
  Sand = 4,
78
80
  Ash = 5
79
81
  }
80
- export type EntityKind = 'tree' | 'rock' | 'shell' | 'seaweed' | 'wormcast' | 'beachhut' | 'farmhut' | 'table' | 'gardenfork' | 'woodennet' | 'bucket' | 'egg' | 'milkbucket' | 'fence' | 'tradingcart' | 'signpost' | 'feather' | 'crabmeat' | 'burrow' | 'rawrabbit' | 'brokenpier' | 'abandonedboat' | 'ship' | 'campfire' | 'cookedcrab' | 'cookedrabbit' | 'cookedchicken' | 'lugworm' | 'maggot' | 'earthworm' | 'earthwormcast' | 'rottenmeat' | 'fishingline' | 'fishinghook' | 'fishingfloat' | 'coins' | 'lilypad' | 'reeds' | 'jetty' | 'rawbass' | 'cookedbass' | 'rawperch' | 'cookedperch' | 'rawtench' | 'cookedtench' | 'frog' | 'cookedfroglegs' | 'crops' | 'smallfishingrod' | 'mudhut' | 'fortwall' | 'archertower' | 'barbedwire' | 'barricade' | 'haybale' | 'horse' | 'trough' | 'barrel' | 'well' | 'farmcart' | 'scarecrow' | 'logpile' | 'flowers' | 'lantern' | 'bench' | 'compost' | 'farmtool' | 'ranchgate' | 'milestone' | 'tent' | 'cargo' | 'bush' | 'workbench' | 'workshop' | 'nettles' | 'sharprock' | 'storagehut' | 'bankchest' | 'birchwood' | 'woodenclub' | 'livoniapineclub' | 'leatherboots' | 'poplarhelmet' | 'poplarbody' | 'poplarlegs' | 'poplarspear' | 'pineshield' | 'hay' | 'caveentrance' | 'rattail' | 'ratteeth' | 'brokensaw' | 'bronzechest' | 'bronzechestkey' | 'goblincavekey' | 'goblinprisonkey' | 'blacksmithinghammer' | 'blacksmithingtongs' | 'copper' | 'tin' | 'iron' | 'bridge' | 'hatchet' | 'foldingsaw' | 'woolygloves' | 'woolyboots' | 'carvingknife' | 'pinebow' | 'apple' | 'wheat' | 'poplarwood' | 'pinewood' | 'sprucewood' | 'bircharrow' | 'sprucearrow' | 'stone' | 'grapes' | 'orange' | 'dungeondoor' | 'bones' | 'unlitbirchtorch' | 'litbirchtorch' | 'ratnest' | 'glowfungus' | 'silo' | 'grainmill' | 'pumpwindmill' | 'watertower' | 'packbarn' | 'packcoop' | 'packstable' | 'foxtracks' | 'foxtail' | 'rabbithutch';
81
- export type NpcKind = 'seagull' | 'crab' | 'seabass' | 'beagle' | 'trader' | 'woody' | 'rabbit' | 'petrabbit' | 'forbes' | 'jobless' | 'driver' | 'duck' | 'angler' | 'wilson' | 'pig' | 'cow' | 'chicken' | 'sheep' | 'clark' | 'clarksson' | 'stablemaster' | 'ranger' | 'debbie' | 'anne' | 'wallarcher' | 'hijacker' | 'pony' | 'rat' | 'soldier' | 'captain' | 'goblin' | 'grem' | 'spineless' | 'john' | 'nicholas' | 'robin' | 'kyle' | 'banker' | 'bandit' | 'amazon' | 'liv' | 'fox' | 'rimdel';
82
+ export type EntityKind = 'tree' | 'rock' | 'shell' | 'seaweed' | 'wormcast' | 'beachhut' | 'farmhut' | 'table' | 'gardenfork' | 'woodennet' | 'bucket' | 'egg' | 'milkbucket' | 'fence' | 'tradingcart' | 'signpost' | 'feather' | 'crabmeat' | 'burrow' | 'rawrabbit' | 'brokenpier' | 'abandonedboat' | 'ship' | 'campfire' | 'cookedcrab' | 'cookedrabbit' | 'cookedchicken' | 'lugworm' | 'maggot' | 'earthworm' | 'earthwormcast' | 'rottenmeat' | 'fishingline' | 'fishinghook' | 'fishingfloat' | 'coins' | 'lilypad' | 'reeds' | 'jetty' | 'rawbass' | 'cookedbass' | 'rawperch' | 'cookedperch' | 'rawtench' | 'cookedtench' | 'frog' | 'cookedfroglegs' | 'crops' | 'smallfishingrod' | 'mudhut' | 'fortwall' | 'archertower' | 'barbedwire' | 'barricade' | 'haybale' | 'horse' | 'trough' | 'barrel' | 'well' | 'farmcart' | 'scarecrow' | 'logpile' | 'flowers' | 'lantern' | 'bench' | 'compost' | 'farmtool' | 'ranchgate' | 'milestone' | 'tent' | 'cargo' | 'bush' | 'workbench' | 'workshop' | 'nettles' | 'sharprock' | 'storagehut' | 'bankchest' | 'birchwood' | 'woodenclub' | 'livoniapineclub' | 'leatherboots' | 'poplarhelmet' | 'poplarbody' | 'poplarlegs' | 'poplarspear' | 'pineshield' | 'hay' | 'caveentrance' | 'rattail' | 'ratteeth' | 'brokensaw' | 'bronzechest' | 'bronzechestkey' | 'goblincavekey' | 'goblinprisonkey' | 'blacksmithinghammer' | 'blacksmithingtongs' | 'copper' | 'tin' | 'iron' | 'bridge' | 'hatchet' | 'foldingsaw' | 'woolygloves' | 'woolyboots' | 'peasantclothes' | 'rangerclothes' | 'carvingknife' | 'pinebow' | 'apple' | 'wheat' | 'poplarwood' | 'pinewood' | 'sprucewood' | 'bircharrow' | 'sprucearrow' | 'stone' | 'grapes' | 'orange' | 'dungeondoor' | 'bones' | 'unlitbirchtorch' | 'litbirchtorch' | 'ratnest' | 'glowfungus' | 'silo' | 'grainmill' | 'pumpwindmill' | 'watertower' | 'packbarn' | 'packcoop' | 'packstable' | 'foxtracks' | 'foxtail' | 'rabbithutch' | 'bountyboard' | 'smallsatchel' | 'stonehouse' | 'townwall' | 'towngate' | 'marketstall' | 'fishingpeg' | 'ashwood' | 'flyfishingrod' | 'flyhook' | 'rawtrout' | 'cookedtrout' | 'cobweb' | 'webveil' | 'spideregg' | 'spidersilk' | 'wolffang' | 'orerock' | 'copperpickaxe';
83
+ export type NpcKind = 'seagull' | 'crab' | 'seabass' | 'beagle' | 'trader' | 'woody' | 'rabbit' | 'petrabbit' | 'forbes' | 'jobless' | 'driver' | 'duck' | 'angler' | 'wilson' | 'pig' | 'cow' | 'chicken' | 'sheep' | 'clark' | 'clarksson' | 'stablemaster' | 'ranger' | 'debbie' | 'anne' | 'wallarcher' | 'hijacker' | 'pony' | 'rat' | 'soldier' | 'captain' | 'goblin' | 'grem' | 'spineless' | 'john' | 'nicholas' | 'robin' | 'kyle' | 'banker' | 'victoria' | 'bob' | 'spider' | 'arana' | 'bandit' | 'amazon' | 'liv' | 'fox' | 'rimdel' | 'bruce' | 'wolf'
84
+ /** Takes the entry fee at the Trout Fishery gate and sells fly tackle. */
85
+ | 'fisheryguard';
82
86
  export type ChunkCoord = {
83
87
  cx: number;
84
88
  cz: number;
@@ -94,6 +98,14 @@ export type WorldEntity = {
94
98
  ttlMs?: number;
95
99
  /** Visual fade window in ms. When equal to `ttlMs`, the item fades over its whole life. */
96
100
  fadeMs?: number;
101
+ /**
102
+ * Milliseconds until a worked-out ore seam refills, as of the moment this
103
+ * entity was sent. A REMAINING duration, never an absolute timestamp - the
104
+ * same trick `ttlMs` uses, and for the same reason: the client has no clock
105
+ * agreed with the server, so it counts down from whatever it was handed.
106
+ * Absent on a seam with ore still in it, and on every other kind.
107
+ */
108
+ respawnMs?: number;
97
109
  };
98
110
  export type ChunkData = {
99
111
  cx: number;
@@ -179,6 +191,27 @@ export type BuildingFootprint = {
179
191
  * radiusX follows the mesh half-width (walls align with the visual ends).
180
192
  * Z stays on the bracket so the south wall stays north of horse-pen gates.
181
193
  */
194
+ export type StoneHouseVariant = 'cottage' | 'house' | 'shop' | 'inn' | 'pub' | 'potion' | 'kitchen' | 'clothes' | 'bank' | 'hall';
195
+ /**
196
+ * Tile ring radius per variant, so a building covers (2r + 1) squared tiles.
197
+ *
198
+ * Every one of these went up a step: the town read as a model village at the
199
+ * old sizes next to a 4.2-high wall. The pub and the hall are 11x11, which is
200
+ * as large as the plan takes without the streets losing their shape.
201
+ */
202
+ export declare const STONE_HOUSE_RADIUS: Record<StoneHouseVariant, number>;
203
+ /** Style is `<variant>-<facing>`, e.g. `pub-n`. */
204
+ export declare function stoneHouseVariant(style: string | undefined): StoneHouseVariant;
205
+ /**
206
+ * Which way the door looks, as a world-space facing.
207
+ *
208
+ * Local +Z is the door before the model is turned, and a yaw of t maps local
209
+ * +Z to (sin t, cos t): 0 -> +Z, +90 -> +X, 180 -> -Z, -90 -> -X. The letters
210
+ * are compass directions with +X east and +Z south, so this table and the
211
+ * asset's yaw table have to agree or a building faces the wrong way and its
212
+ * doorway is cut in the wrong wall.
213
+ */
214
+ export declare function stoneHouseDoorFacing(style: string | undefined): BuildingDoorFacing;
182
215
  export declare function buildingFootprintExtents(kind: EntityKind, scale: number | undefined, style?: string): BuildingFootprint;
183
216
  /** West tack-room lean-to tiles beyond the stable's main wall ring. */
184
217
  export declare function visitStableLeanToBlockedOffsets(scale: number | undefined, visit: (dx: number, dz: number) => void): void;
@@ -191,6 +224,11 @@ export declare function boulderFootprintRadius(style: string | undefined, scale:
191
224
  export declare function blockingFootprintRadius(kind: EntityKind, style: string | undefined, scale: number | undefined): number;
192
225
  export declare function isCaveTunnelExitStyle(style: string | undefined): boolean;
193
226
  export declare function isGoblinCaveStyle(style: string | undefined): boolean;
227
+ export declare function isSpiderCaveStyle(style: string | undefined): boolean;
228
+ /** Wolf den mouth in the woods around Calverton. */
229
+ export declare function isWolfDenStyle(style: string | undefined): boolean;
230
+ /** Crawl-out hole inside a wolf den cavern. */
231
+ export declare function isWolfDenExitStyle(style: string | undefined): boolean;
194
232
  /** Tiny animal-dug hole in the woods - not the Base Camp Suspicious hole. */
195
233
  export declare function isAnimalDenStyle(style: string | undefined): boolean;
196
234
  /** Crawl-out hole inside a forest den cavern. */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -44,7 +44,7 @@ export function playerNameError(name) {
44
44
  export const CHUNK_SIZE = 32;
45
45
  export const FARMLAND_CHUNKS_X = 8;
46
46
  export const VILLAGE_CHUNKS_X = 2;
47
- export const EASTLAND_CHUNKS_X = 14;
47
+ export const EASTLAND_CHUNKS_X = 17;
48
48
  export const PLAYABLE_CHUNKS_X = FARMLAND_CHUNKS_X + VILLAGE_CHUNKS_X + EASTLAND_CHUNKS_X;
49
49
  export const PLAYABLE_CHUNKS_Z = 3;
50
50
  export const FARMLAND_WIDTH = CHUNK_SIZE * FARMLAND_CHUNKS_X;
@@ -98,6 +98,8 @@ export var SurfaceType;
98
98
  SurfaceType[SurfaceType["Soil"] = 6] = "Soil";
99
99
  SurfaceType[SurfaceType["Stone"] = 7] = "Stone";
100
100
  SurfaceType[SurfaceType["Mud"] = 8] = "Mud";
101
+ /** Northern snow. Walkable exactly like grass; snow.ts decides where it lies. */
102
+ SurfaceType[SurfaceType["Snow"] = 9] = "Snow";
101
103
  })(SurfaceType || (SurfaceType = {}));
102
104
  export var TileType;
103
105
  (function (TileType) {
@@ -118,6 +120,7 @@ export const SURFACE_COLORS = {
118
120
  [SurfaceType.Soil]: '#6b4a2c',
119
121
  [SurfaceType.Stone]: '#8a887f',
120
122
  [SurfaceType.Mud]: '#4a3824',
123
+ [SurfaceType.Snow]: '#e6edf3',
121
124
  };
122
125
  export const TILE_COLORS = {
123
126
  [TileType.Grass]: '#4a7c3f',
@@ -170,6 +173,10 @@ export function isWalkableSurface(surface) {
170
173
  export function entityBlocksWalk(kind) {
171
174
  return (kind === 'tree' ||
172
175
  kind === 'rock' ||
176
+ // A seam is a rock face. It keeps blocking once worked out - the stone is
177
+ // still there, it just has no ore left in it - so unlike a forage node it
178
+ // never needs its walk-blocking put back on respawn.
179
+ kind === 'orerock' ||
173
180
  kind === 'beachhut' ||
174
181
  kind === 'farmhut' ||
175
182
  kind === 'storagehut' ||
@@ -179,6 +186,15 @@ export function entityBlocksWalk(kind) {
179
186
  kind === 'fence' ||
180
187
  kind === 'tradingcart' ||
181
188
  kind === 'signpost' ||
189
+ kind === 'bountyboard' ||
190
+ // Calverton: the wall is solid, the market stalls are solid, and the
191
+ // houses are solid only around their wall ring (see the hollow-building
192
+ // branch of visitBlockedWalkOffsets - they are walk-in). `towngate` is
193
+ // deliberately absent: it is an arch you walk under, and the client
194
+ // predicts movement from this function, so listing it would desync.
195
+ kind === 'stonehouse' ||
196
+ kind === 'townwall' ||
197
+ kind === 'marketstall' ||
182
198
  kind === 'brokenpier' ||
183
199
  kind === 'abandonedboat' ||
184
200
  kind === 'ship' ||
@@ -213,7 +229,8 @@ export function entityBlocksWalk(kind) {
213
229
  kind === 'packbarn' ||
214
230
  kind === 'packcoop' ||
215
231
  kind === 'packstable' ||
216
- kind === 'rabbithutch');
232
+ kind === 'rabbithutch' ||
233
+ kind === 'webveil');
217
234
  }
218
235
  /** Dungeon room-gate visual states - mirrors ranch gate open/closed styling. */
219
236
  export function isDungeonDoorOpen(style) {
@@ -415,13 +432,69 @@ function buildingScaleBracketRadius(scale) {
415
432
  return 1;
416
433
  }
417
434
  /**
418
- * Tile wall-ring size for beach/farm/storage huts.
419
- * Most styles use a square from scale brackets. The farm `stable` is a long
420
- * barn whose mesh (×1.15 render scale) is wider than the scale bracket, so
421
- * radiusX follows the mesh half-width (walls align with the visual ends).
422
- * Z stays on the bracket so the south wall stays north of horse-pen gates.
435
+ * Tile ring radius per variant, so a building covers (2r + 1) squared tiles.
436
+ *
437
+ * Every one of these went up a step: the town read as a model village at the
438
+ * old sizes next to a 4.2-high wall. The pub and the hall are 11x11, which is
439
+ * as large as the plan takes without the streets losing their shape.
440
+ */
441
+ export const STONE_HOUSE_RADIUS = {
442
+ cottage: 3,
443
+ house: 4,
444
+ shop: 4,
445
+ inn: 5,
446
+ pub: 5,
447
+ potion: 4,
448
+ kitchen: 4,
449
+ clothes: 4,
450
+ bank: 4,
451
+ hall: 5,
452
+ };
453
+ const STONE_HOUSE_VARIANT_NAMES = new Set([
454
+ 'cottage',
455
+ 'house',
456
+ 'shop',
457
+ 'inn',
458
+ 'pub',
459
+ 'potion',
460
+ 'kitchen',
461
+ 'clothes',
462
+ 'bank',
463
+ 'hall',
464
+ ]);
465
+ /** Style is `<variant>-<facing>`, e.g. `pub-n`. */
466
+ export function stoneHouseVariant(style) {
467
+ const raw = style ?? '';
468
+ const dash = raw.lastIndexOf('-');
469
+ const name = dash > 0 ? raw.slice(0, dash) : raw;
470
+ return STONE_HOUSE_VARIANT_NAMES.has(name) ? name : 'house';
471
+ }
472
+ /**
473
+ * Which way the door looks, as a world-space facing.
474
+ *
475
+ * Local +Z is the door before the model is turned, and a yaw of t maps local
476
+ * +Z to (sin t, cos t): 0 -> +Z, +90 -> +X, 180 -> -Z, -90 -> -X. The letters
477
+ * are compass directions with +X east and +Z south, so this table and the
478
+ * asset's yaw table have to agree or a building faces the wrong way and its
479
+ * doorway is cut in the wrong wall.
423
480
  */
481
+ export function stoneHouseDoorFacing(style) {
482
+ const raw = style ?? '';
483
+ const dash = raw.lastIndexOf('-');
484
+ const facing = dash > 0 ? raw.slice(dash + 1) : 's';
485
+ if (facing === 'n')
486
+ return 'negZ';
487
+ if (facing === 'e')
488
+ return 'posX';
489
+ if (facing === 'w')
490
+ return 'negX';
491
+ return 'posZ';
492
+ }
424
493
  export function buildingFootprintExtents(kind, scale, style) {
494
+ if (kind === 'stonehouse') {
495
+ const r = STONE_HOUSE_RADIUS[stoneHouseVariant(style)];
496
+ return { radiusX: r, radiusZ: r };
497
+ }
425
498
  if (kind !== 'beachhut' && kind !== 'farmhut' && kind !== 'storagehut' && kind !== 'workshop') {
426
499
  return { radiusX: 0, radiusZ: 0 };
427
500
  }
@@ -568,6 +641,10 @@ const CAVE_ENTRANCE_HALF_WIDTH = 4;
568
641
  function caveEntranceFacing(style) {
569
642
  if (style === 'goblin-return-north')
570
643
  return { fx: 0, fz: -1, sx: 1, sz: 0 };
644
+ if (style === 'spider-return-south')
645
+ return { fx: 0, fz: 1, sx: 1, sz: 0 };
646
+ if (style === 'spider-burrow')
647
+ return { fx: -1, fz: 0, sx: 0, sz: 1 };
571
648
  if (isGoblinCaveStyle(style))
572
649
  return { fx: 1, fz: 0, sx: 0, sz: 1 };
573
650
  const dir = style?.includes('west')
@@ -591,6 +668,17 @@ export function isCaveTunnelExitStyle(style) {
591
668
  export function isGoblinCaveStyle(style) {
592
669
  return style === 'goblin-burrow' || style?.startsWith('goblin-return') === true;
593
670
  }
671
+ export function isSpiderCaveStyle(style) {
672
+ return style === 'spider-burrow' || style?.startsWith('spider-return') === true;
673
+ }
674
+ /** Wolf den mouth in the woods around Calverton. */
675
+ export function isWolfDenStyle(style) {
676
+ return typeof style === 'string' && style.startsWith('wolfden-') && !style.startsWith('wolfdenexit');
677
+ }
678
+ /** Crawl-out hole inside a wolf den cavern. */
679
+ export function isWolfDenExitStyle(style) {
680
+ return typeof style === 'string' && style.startsWith('wolfdenexit');
681
+ }
594
682
  /** Tiny animal-dug hole in the woods - not the Base Camp Suspicious hole. */
595
683
  export function isAnimalDenStyle(style) {
596
684
  return typeof style === 'string' && style.startsWith('den-');
@@ -601,7 +689,13 @@ export function isDenExitStyle(style) {
601
689
  }
602
690
  export function caveEntranceApproachOffset(style) {
603
691
  const { fx, fz } = caveEntranceFacing(style);
604
- const compact = isCaveTunnelExitStyle(style) || isAnimalDenStyle(style) || isDenExitStyle(style) || isGoblinCaveStyle(style);
692
+ const compact = isCaveTunnelExitStyle(style) ||
693
+ isAnimalDenStyle(style) ||
694
+ isDenExitStyle(style) ||
695
+ isGoblinCaveStyle(style) ||
696
+ isSpiderCaveStyle(style) ||
697
+ isWolfDenStyle(style) ||
698
+ isWolfDenExitStyle(style);
605
699
  const dist = compact ? 2 : CAVE_ENTRANCE_FORWARD + 1;
606
700
  return { dx: dist * fx, dz: dist * fz };
607
701
  }
@@ -625,9 +719,26 @@ export function visitCaveEntranceBlockedOffsets(style, visit) {
625
719
  }
626
720
  return;
627
721
  }
722
+ if (style === 'spider-burrow') {
723
+ // West-facing hillside: throat toward town, rock behind the door to the east.
724
+ for (let dx = -2; dx <= 4; dx++) {
725
+ for (let dz = -5; dz <= 5; dz++) {
726
+ if (dx >= 0 || Math.abs(dz) >= 2)
727
+ visit(dx, dz);
728
+ }
729
+ }
730
+ return;
731
+ }
732
+ if (style === 'spider-return-south') {
733
+ visit(0, 0);
734
+ return;
735
+ }
628
736
  const { fx, fz, sx, sz } = caveEntranceFacing(style);
629
- const den = isAnimalDenStyle(style);
630
- const compact = isCaveTunnelExitStyle(style) || den || isDenExitStyle(style);
737
+ const den = isAnimalDenStyle(style) || isWolfDenStyle(style);
738
+ const compact = isCaveTunnelExitStyle(style) ||
739
+ den ||
740
+ isDenExitStyle(style) ||
741
+ isWolfDenExitStyle(style);
631
742
  const forwardMax = compact ? 1 : CAVE_ENTRANCE_FORWARD;
632
743
  const backMax = compact ? 0 : CAVE_ENTRANCE_BACK;
633
744
  const halfW = den ? 2 : compact ? 1 : CAVE_ENTRANCE_HALF_WIDTH;