@dreadwood-types/types 0.1.44 → 0.1.46

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 (85) hide show
  1. package/dist/areaTransitions.d.ts +1 -1
  2. package/dist/areaTransitions.d.ts.map +1 -1
  3. package/dist/areaTransitions.js +28 -0
  4. package/dist/areaTransitions.js.map +1 -1
  5. package/dist/bank.d.ts +2 -1
  6. package/dist/bank.d.ts.map +1 -1
  7. package/dist/bank.js +2 -1
  8. package/dist/bank.js.map +1 -1
  9. package/dist/blacksmithing.d.ts +16 -1
  10. package/dist/blacksmithing.d.ts.map +1 -1
  11. package/dist/blacksmithing.js +221 -0
  12. package/dist/blacksmithing.js.map +1 -1
  13. package/dist/bloodRiver.d.ts +115 -0
  14. package/dist/bloodRiver.d.ts.map +1 -0
  15. package/dist/bloodRiver.js +252 -0
  16. package/dist/bloodRiver.js.map +1 -0
  17. package/dist/brokenRoad.d.ts +103 -0
  18. package/dist/brokenRoad.d.ts.map +1 -0
  19. package/dist/brokenRoad.js +167 -0
  20. package/dist/brokenRoad.js.map +1 -0
  21. package/dist/capital.d.ts +270 -0
  22. package/dist/capital.d.ts.map +1 -0
  23. package/dist/capital.js +306 -0
  24. package/dist/capital.js.map +1 -0
  25. package/dist/clientConfig.d.ts +34 -2
  26. package/dist/clientConfig.d.ts.map +1 -1
  27. package/dist/clientConfig.js +26 -2
  28. package/dist/clientConfig.js.map +1 -1
  29. package/dist/constants.d.ts +145 -9
  30. package/dist/constants.d.ts.map +1 -1
  31. package/dist/constants.js +302 -8
  32. package/dist/constants.js.map +1 -1
  33. package/dist/cooking.d.ts +21 -0
  34. package/dist/cooking.d.ts.map +1 -1
  35. package/dist/cooking.js +52 -26
  36. package/dist/cooking.js.map +1 -1
  37. package/dist/dreadwoodsZones.d.ts +15 -1
  38. package/dist/dreadwoodsZones.d.ts.map +1 -1
  39. package/dist/dreadwoodsZones.js +63 -0
  40. package/dist/dreadwoodsZones.js.map +1 -1
  41. package/dist/equipment.d.ts +16 -1
  42. package/dist/equipment.d.ts.map +1 -1
  43. package/dist/equipment.js +61 -0
  44. package/dist/equipment.js.map +1 -1
  45. package/dist/groundItems.d.ts +5 -0
  46. package/dist/groundItems.d.ts.map +1 -1
  47. package/dist/groundItems.js +12 -1
  48. package/dist/groundItems.js.map +1 -1
  49. package/dist/index.d.ts +5 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/landmarks.d.ts +600 -104
  54. package/dist/landmarks.d.ts.map +1 -1
  55. package/dist/landmarks.js +803 -105
  56. package/dist/landmarks.js.map +1 -1
  57. package/dist/messages.d.ts +146 -11
  58. package/dist/messages.d.ts.map +1 -1
  59. package/dist/messages.js +4 -0
  60. package/dist/messages.js.map +1 -1
  61. package/dist/mineCave.d.ts +71 -0
  62. package/dist/mineCave.d.ts.map +1 -0
  63. package/dist/mineCave.js +39 -0
  64. package/dist/mineCave.js.map +1 -0
  65. package/dist/mining.d.ts +16 -5
  66. package/dist/mining.d.ts.map +1 -1
  67. package/dist/mining.js +24 -5
  68. package/dist/mining.js.map +1 -1
  69. package/dist/quests.d.ts +3 -1
  70. package/dist/quests.d.ts.map +1 -1
  71. package/dist/quests.js +18 -1
  72. package/dist/quests.js.map +1 -1
  73. package/dist/travel.d.ts +66 -0
  74. package/dist/travel.d.ts.map +1 -0
  75. package/dist/travel.js +91 -0
  76. package/dist/travel.js.map +1 -0
  77. package/dist/woodwork.d.ts +128 -13
  78. package/dist/woodwork.d.ts.map +1 -1
  79. package/dist/woodwork.js +253 -19
  80. package/dist/woodwork.js.map +1 -1
  81. package/dist/xp.d.ts +7 -0
  82. package/dist/xp.d.ts.map +1 -1
  83. package/dist/xp.js +7 -0
  84. package/dist/xp.js.map +1 -1
  85. package/package.json +1 -1
package/dist/cooking.d.ts CHANGED
@@ -1,8 +1,15 @@
1
+ /**
2
+ * Recipe buckets for the cooking panel's filter tabs. Fish are the lake and
3
+ * sea catches, meat is what the traps and pens give, and other is the odd
4
+ * pond frog.
5
+ */
6
+ export type CookingCategory = 'fish' | 'meat' | 'other';
1
7
  export type CookingRecipe = {
2
8
  input: string;
3
9
  output: string;
4
10
  level: number;
5
11
  xp: number;
12
+ category: CookingCategory;
6
13
  };
7
14
  /**
8
15
  * Cooking XP is derived from the recipe's level, not hand-set. The old flat
@@ -14,10 +21,21 @@ export declare const COOKING_XP_PER_LEVEL = 5;
14
21
  export declare function cookingXpForLevel(level: number): number;
15
22
  export declare const COOKING_RECIPES: readonly CookingRecipe[];
16
23
  export declare function cookingRecipeForInput(input: string): CookingRecipe | null;
24
+ /** Filter tabs for the cooking panel, in display order. */
25
+ export declare const COOKING_CATEGORIES: readonly {
26
+ id: 'all' | CookingCategory;
27
+ label: string;
28
+ }[];
29
+ /** Recipes in one category (or every recipe), sorted by level then name. */
30
+ export declare function cookingRecipesFor(category: 'all' | CookingCategory): CookingRecipe[];
31
+ /** The recipes still locked at `level`, lowest first; `count` caps the list. */
32
+ export declare function nextCookingUnlocks(level: number, count?: number): CookingRecipe[];
17
33
  export declare const COOK_INTERVAL_MS = 1000;
18
34
  export declare const CAMPFIRE_COOK_RANGE = 3;
19
35
  export type FoodInfo = {
20
36
  heal: number;
37
+ /** One customer-facing line for item cards and the cooking panel. Keep the heal number out of it. */
38
+ description: string;
21
39
  };
22
40
  /**
23
41
  * Heals roughly tripled alongside maxHealthForLevel.
@@ -28,6 +46,9 @@ export type FoodInfo = {
28
46
  * food would have stopped being a meaningful resource at the exact point the
29
47
  * fights got hard. Raw fish still hurt - the penalty is unchanged in spirit,
30
48
  * just scaled to match.
49
+ *
50
+ * Descriptions never quote the heal: the HUDs print `heal` beside them, so the
51
+ * prose cannot drift from the number.
31
52
  */
32
53
  export declare const FOOD_INFO: Record<string, FoodInfo>;
33
54
  export declare function foodInfoFor(kind: string): FoodInfo | null;
@@ -1 +1 @@
1
- {"version":3,"file":"cooking.d.ts","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAMD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAYnD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEzE;AAED,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAiB9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD"}
1
+ {"version":3,"file":"cooking.d.ts","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAWD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAYnD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEzE;AAED,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,EAAE,SAAS;IAAE,EAAE,EAAE,KAAK,GAAG,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAKvF,CAAC;AAMF,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,aAAa,EAAE,CAIpF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,aAAa,EAAE,CAInF;AAED,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,qGAAqG;IACrG,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAoB9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD"}
package/dist/cooking.js CHANGED
@@ -8,25 +8,45 @@ export const COOKING_XP_PER_LEVEL = 5;
8
8
  export function cookingXpForLevel(level) {
9
9
  return Math.max(COOKING_XP_PER_LEVEL, Math.round(level * COOKING_XP_PER_LEVEL));
10
10
  }
11
- function cookingRecipe(input, output, level) {
12
- return { input, output, level, xp: cookingXpForLevel(level) };
11
+ function cookingRecipe(input, output, level, category) {
12
+ return { input, output, level, xp: cookingXpForLevel(level), category };
13
13
  }
14
14
  export const COOKING_RECIPES = [
15
- cookingRecipe('crabmeat', 'cookedcrab', 1),
16
- cookingRecipe('frog', 'cookedfroglegs', 1),
17
- cookingRecipe('rawrabbit', 'cookedrabbit', 5),
18
- cookingRecipe('rawperch', 'cookedperch', 7),
19
- cookingRecipe('rawtench', 'cookedtench', 20),
20
- cookingRecipe('rawtrout', 'cookedtrout', 30),
15
+ cookingRecipe('crabmeat', 'cookedcrab', 1, 'meat'),
16
+ cookingRecipe('frog', 'cookedfroglegs', 1, 'other'),
17
+ cookingRecipe('rawrabbit', 'cookedrabbit', 5, 'meat'),
18
+ cookingRecipe('rawperch', 'cookedperch', 7, 'fish'),
19
+ cookingRecipe('rawtench', 'cookedtench', 20, 'fish'),
20
+ cookingRecipe('rawtrout', 'cookedtrout', 30, 'fish'),
21
21
  // Sea Bass is the apex level-40 catch and roast.
22
- cookingRecipe('rawbass', 'cookedbass', 40),
22
+ cookingRecipe('rawbass', 'cookedbass', 40, 'fish'),
23
23
  // Frost Pike, the frozen lake's common catch, sits level with the bass: the
24
24
  // walk north is the price, not the skill.
25
- cookingRecipe('rawfrostpike', 'cookedfrostpike', 40),
25
+ cookingRecipe('rawfrostpike', 'cookedfrostpike', 40, 'fish'),
26
26
  ];
27
27
  export function cookingRecipeForInput(input) {
28
28
  return COOKING_RECIPES.find((r) => r.input === input) ?? null;
29
29
  }
30
+ /** Filter tabs for the cooking panel, in display order. */
31
+ export const COOKING_CATEGORIES = [
32
+ { id: 'all', label: 'All' },
33
+ { id: 'fish', label: 'Fish' },
34
+ { id: 'meat', label: 'Meat' },
35
+ { id: 'other', label: 'Other' },
36
+ ];
37
+ function byLevelThenName(a, b) {
38
+ return a.level - b.level || a.output.localeCompare(b.output);
39
+ }
40
+ /** Recipes in one category (or every recipe), sorted by level then name. */
41
+ export function cookingRecipesFor(category) {
42
+ return COOKING_RECIPES.filter((r) => category === 'all' || r.category === category).sort(byLevelThenName);
43
+ }
44
+ /** The recipes still locked at `level`, lowest first; `count` caps the list. */
45
+ export function nextCookingUnlocks(level, count = Infinity) {
46
+ return COOKING_RECIPES.filter((r) => r.level > level)
47
+ .sort(byLevelThenName)
48
+ .slice(0, Math.max(0, count));
49
+ }
30
50
  export const COOK_INTERVAL_MS = 1000;
31
51
  export const CAMPFIRE_COOK_RANGE = 3;
32
52
  /**
@@ -38,24 +58,30 @@ export const CAMPFIRE_COOK_RANGE = 3;
38
58
  * food would have stopped being a meaningful resource at the exact point the
39
59
  * fights got hard. Raw fish still hurt - the penalty is unchanged in spirit,
40
60
  * just scaled to match.
61
+ *
62
+ * Descriptions never quote the heal: the HUDs print `heal` beside them, so the
63
+ * prose cannot drift from the number.
41
64
  */
42
65
  export const FOOD_INFO = {
43
- crabmeat: { heal: 3 },
44
- cookedcrab: { heal: 9 },
45
- rawrabbit: { heal: -3 },
46
- cookedrabbit: { heal: 15 },
47
- cookedchicken: { heal: 1 },
48
- rawbass: { heal: -3 },
49
- cookedbass: { heal: 38 },
50
- cookedfroglegs: { heal: 9 },
51
- rawtench: { heal: -3 },
52
- cookedtench: { heal: 18 },
53
- rawperch: { heal: -3 },
54
- cookedperch: { heal: 24 },
55
- rawtrout: { heal: -3 },
56
- cookedtrout: { heal: 30 },
57
- rawfrostpike: { heal: -3 },
58
- cookedfrostpike: { heal: 40 },
66
+ crabmeat: { heal: 3, description: 'A fresh cut of crab meat. Edible as it is, far better cooked.' },
67
+ cookedcrab: { heal: 9, description: 'A succulent brown crab, roasted in the shell.' },
68
+ rawrabbit: { heal: -3, description: 'A fresh cut of rabbit. Eating it raw will make you ill.' },
69
+ cookedrabbit: { heal: 15, description: 'A tender rabbit haunch roasted over the fire.' },
70
+ cookedchicken: { heal: 1, description: 'A juicy roast chicken leg. Dogs adore it.' },
71
+ rawbass: { heal: -3, description: 'A silvery sea bass. Cook it before you eat it.' },
72
+ cookedbass: { heal: 38, description: 'A flaky grilled sea bass, hot off the fire.' },
73
+ cookedfroglegs: { heal: 9, description: 'Browned frog legs, crispy from the campfire.' },
74
+ rawtench: { heal: -3, description: 'A dark olive tench. Best cooked.' },
75
+ cookedtench: { heal: 18, description: 'Rich lake tench, best eaten while still warm.' },
76
+ rawperch: { heal: -3, description: 'A golden-green perch from the lake. Cook it first.' },
77
+ cookedperch: { heal: 24, description: 'The finest lake catch, hot off the fire.' },
78
+ rawtrout: { heal: -3, description: 'A speckled trout, still bright. Worth cooking.' },
79
+ cookedtrout: { heal: 30, description: 'Trout cooked through, pink and flaking off the bone.' },
80
+ rawfrostpike: {
81
+ heal: -3,
82
+ description: 'A long pale pike hauled up through the ice, its jaw full of needle teeth.',
83
+ },
84
+ cookedfrostpike: { heal: 40, description: 'Pike roasted over the fire, white and firm.' },
59
85
  };
60
86
  export function foodInfoFor(kind) {
61
87
  return FOOD_INFO[kind] ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"cooking.js","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;IACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7C,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5C,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC;IAC5C,iDAAiD;IACjD,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,0CAA0C;IAC1C,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAMrC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6B;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACrB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACvB,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACvB,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACrB,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACxB,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzB,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IAC1B,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;CAC9B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"cooking.js","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,MAAc,EACd,KAAa,EACb,QAAyB;IAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC;IAClD,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,CAAC;IACnD,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,CAAC;IACrD,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,CAAC;IACnD,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC;IACpD,iDAAiD;IACjD,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC;IAClD,4EAA4E;IAC5E,0CAA0C;IAC1C,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;CAC7D,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;AAChE,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAA8D;IAC3F,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3B,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC7B,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAC7B,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CAChC,CAAC;AAEF,SAAS,eAAe,CAAC,CAAgB,EAAE,CAAgB;IACzD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IACjE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,IAAI,CACtF,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAK,GAAG,QAAQ;IAChE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;SAClD,IAAI,CAAC,eAAe,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAQrC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6B;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,+DAA+D,EAAE;IACnG,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACrF,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,yDAAyD,EAAE;IAC/F,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACxF,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE;IACpF,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE;IACpF,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;IACpF,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE;IACxF,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE;IACvE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACvF,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,oDAAoD,EAAE;IACzF,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE;IAClF,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE;IACrF,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,sDAAsD,EAAE;IAC9F,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC;QACR,WAAW,EAAE,2EAA2E;KACzF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;CAC1F,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
@@ -14,7 +14,7 @@ import type { NpcKind } from './constants.js';
14
14
  * aggro pass read the bounds. Adding a zone is an entry here, a theme in the
15
15
  * dresser, and a den style if it has one.
16
16
  */
17
- export type DreadwoodsNpcZoneId = 'spider-hollow';
17
+ export type DreadwoodsNpcZoneId = 'spider-hollow' | 'broken-road' | 'blood-lake';
18
18
  export type DreadwoodsNpcZone = {
19
19
  id: DreadwoodsNpcZoneId;
20
20
  /** Discovery card and guide label. */
@@ -28,6 +28,19 @@ export type DreadwoodsNpcZone = {
28
28
  kind: NpcKind;
29
29
  count: number;
30
30
  };
31
+ /**
32
+ * Authored stand-tiles instead of the default ring. A zone with a road and
33
+ * a camp in it has places its people would actually be posted (the arch,
34
+ * the fork, inside the stockade), and a ring drawn through all of that
35
+ * lands them on the road as often as not. When set, `count` is its length.
36
+ * `scale` is a per-spawn visual size sent to clients (the old dragon on the
37
+ * lake shore is half again its kin); omitted means the kind's default.
38
+ */
39
+ spawns?: readonly {
40
+ x: number;
41
+ z: number;
42
+ scale?: number;
43
+ }[];
31
44
  /**
32
45
  * The way down. Sits on one edge of the zone with its mouth facing back
33
46
  * across it, so the approach is over the infested ground rather than round
@@ -70,5 +83,6 @@ export declare function dreadwoodsNpcZoneAt(x: number, z: number): DreadwoodsNpc
70
83
  export declare function dreadwoodsNpcZoneSpawns(zone: DreadwoodsNpcZone): Array<{
71
84
  x: number;
72
85
  z: number;
86
+ scale?: number;
73
87
  }>;
74
88
  //# sourceMappingURL=dreadwoodsZones.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dreadwoodsZones.d.ts","sourceRoot":"","sources":["../src/dreadwoodsZones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,mBAAmB,CAAC;IACxB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAK3E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK9G;AAoBD,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAY5D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,GAAG,iBAAiB,CAI5E;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1F;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAKlF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBhG"}
1
+ {"version":3,"file":"dreadwoodsZones.d.ts","sourceRoot":"","sources":["../src/dreadwoodsZones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,mBAAmB,CAAC;IACxB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAK3E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK9G;AAsDD,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAuC5D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,GAAG,iBAAiB,CAI5E;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1F;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAKlF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,GACtB,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBjD"}
@@ -1,4 +1,5 @@
1
1
  import { DEADLANDS_MAX_X, DEADLANDS_MAX_Z } from './zones.js';
2
+ import { DRAGON_RING_CX, DRAGON_RING_CZ, DRAGON_RING_RX, DRAGON_RING_RZ, DRAGON_SPAWNS, } from './bloodRiver.js';
2
3
  /** Unit step out of a den mouth in the direction it faces. */
3
4
  export function denFacingStep(facing) {
4
5
  if (facing === 'north')
@@ -37,6 +38,39 @@ const SPIDER_HOLLOW_CZ = DEADLANDS_MAX_Z - 7;
37
38
  // the north. The gate constant itself lives in landmarks.ts, which imports
38
39
  // this file, so it is not referenced here.
39
40
  const SPIDER_HOLLOW_RZ = 6;
41
+ /**
42
+ * The Broken Road: the first thing on the left inside the south gate. A
43
+ * rutted track spurs west off the gate axis, through a broken stone arch,
44
+ * and forks round a crook camp behind a palisade of sharpened logs, with a
45
+ * ruined tower on a mound to the north-east. Level 9, the outer ring.
46
+ *
47
+ * Sized so every tile is Zone 1: the ring runs to inset 44, so the north
48
+ * edge stops at DEADLANDS_MAX_Z - 43, and the south edge stays five rows off
49
+ * the wall, clear of the towers and their wire. The east edge is sixteen
50
+ * columns short of the gate road; only the track itself reaches it. The
51
+ * geometry hung off this descriptor (the road, the camp, the arch, the tower)
52
+ * lives in brokenRoad.ts.
53
+ */
54
+ const BROKEN_ROAD_CX = DEADLANDS_MAX_X - 272;
55
+ const BROKEN_ROAD_CZ = DEADLANDS_MAX_Z - 24;
56
+ const BROKEN_ROAD_RX = 30;
57
+ const BROKEN_ROAD_RZ = 19;
58
+ /**
59
+ * Posted, not ringed: two inside the stockade, one at the arch, one at the
60
+ * fork, one by the tower, one outside the gap, one on the north track and one
61
+ * by the wreck. Each is off the road and the palisade (broken-road-smoke.ts
62
+ * pins that) and inside the ellipse, so the hunt never leaves it.
63
+ */
64
+ const BROKEN_ROAD_SPAWNS = [
65
+ { x: BROKEN_ROAD_CX + 29, z: BROKEN_ROAD_CZ + 5 },
66
+ { x: BROKEN_ROAD_CX + 23, z: BROKEN_ROAD_CZ + 5 },
67
+ { x: BROKEN_ROAD_CX + 25, z: BROKEN_ROAD_CZ - 8 },
68
+ { x: BROKEN_ROAD_CX - 1, z: BROKEN_ROAD_CZ + 3 },
69
+ { x: BROKEN_ROAD_CX + 2, z: BROKEN_ROAD_CZ - 2 },
70
+ { x: BROKEN_ROAD_CX + 11, z: BROKEN_ROAD_CZ + 5 },
71
+ { x: BROKEN_ROAD_CX + 5, z: BROKEN_ROAD_CZ - 13 },
72
+ { x: BROKEN_ROAD_CX - 18, z: BROKEN_ROAD_CZ - 2 },
73
+ ];
40
74
  export const DREADWOODS_NPC_ZONES = [
41
75
  {
42
76
  id: 'spider-hollow',
@@ -49,6 +83,33 @@ export const DREADWOODS_NPC_ZONES = [
49
83
  // Against the wall: the last walkable row before the perimeter.
50
84
  den: { style: 'spider-den-north', x: SPIDER_HOLLOW_CX, z: DEADLANDS_MAX_Z - 2, facing: 'north' },
51
85
  },
86
+ {
87
+ id: 'broken-road',
88
+ label: 'The Broken Road',
89
+ cx: BROKEN_ROAD_CX,
90
+ cz: BROKEN_ROAD_CZ,
91
+ rx: BROKEN_ROAD_RX,
92
+ rz: BROKEN_ROAD_RZ,
93
+ npc: { kind: 'crook', count: BROKEN_ROAD_SPAWNS.length },
94
+ spawns: BROKEN_ROAD_SPAWNS,
95
+ },
96
+ /**
97
+ * The Blood Lake: the enclosed dragon ground at the very centre of the
98
+ * woods, ringed in crag with one walk-in gap on the south arc. The blood
99
+ * river's north branch runs out of the lake through the ring beside the
100
+ * gate. Geometry lives in bloodRiver.ts; the backend's bloodRiver.ts
101
+ * dresses the ring, the nests and the quarry from the same constants.
102
+ */
103
+ {
104
+ id: 'blood-lake',
105
+ label: 'The Blood Lake',
106
+ cx: DRAGON_RING_CX,
107
+ cz: DRAGON_RING_CZ,
108
+ rx: DRAGON_RING_RX,
109
+ rz: DRAGON_RING_RZ,
110
+ npc: { kind: 'dragon', count: DRAGON_SPAWNS.length },
111
+ spawns: DRAGON_SPAWNS,
112
+ },
52
113
  ];
53
114
  export function dreadwoodsNpcZone(id) {
54
115
  const zone = DREADWOODS_NPC_ZONES.find((z) => z.id === id);
@@ -75,6 +136,8 @@ export function dreadwoodsNpcZoneAt(x, z) {
75
136
  * and nothing spawns in the den mouth or on the rim.
76
137
  */
77
138
  export function dreadwoodsNpcZoneSpawns(zone) {
139
+ if (zone.spawns)
140
+ return zone.spawns.map((p) => ({ x: p.x, z: p.z, scale: p.scale }));
78
141
  const spots = [];
79
142
  const ring = Math.max(0, zone.npc.count - 2);
80
143
  const den = zone.den;
@@ -1 +1 @@
1
- {"version":3,"file":"dreadwoodsZones.js","sourceRoot":"","sources":["../src/dreadwoodsZones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dreadwoodsZones.js","sourceRoot":"","sources":["../src/dreadwoodsZones.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  import type { CombatStance } from './messages.js';
2
- export type EquipSlot = 'helmet' | 'cape' | 'amulet' | 'top' | 'bottom' | 'boots' | 'weapon' | 'offhand' | 'hands' | 'ring' | 'ammo';
2
+ export type EquipSlot = 'helmet' | 'cape' | 'amulet' | 'top' | 'bottom' | 'boots' | 'weapon' | 'offhand' | 'hands' | 'ring' | 'ammo'
3
+ /** The quiver on the back: sets how many arrows the ammo slot holds. */
4
+ | 'quiver';
3
5
  export declare const EQUIP_SLOTS: EquipSlot[];
6
+ /**
7
+ * Arrows the ammo slot holds with no quiver: a fistful in the belt. A quiver
8
+ * raises it (QUIVER_CAPACITY); equipping a bigger stack leaves the rest in
9
+ * the bag. Stacks equipped before quivers existed are not trimmed.
10
+ */
11
+ export declare const AMMO_CAPACITY_BARE = 30;
12
+ /** Arrows each quiver holds. Wood and metal bindings: bigger metal, bigger quiver. */
13
+ export declare const QUIVER_CAPACITY: Record<string, number>;
14
+ export declare function ammoCapacityFor(quiverKind: string | null | undefined): number;
15
+ export declare function isQuiverKind(kind: string | null | undefined): boolean;
4
16
  export type EquipmentSlots = Record<EquipSlot, string | null>;
5
17
  export type EquipInfo = {
6
18
  slot: EquipSlot;
@@ -15,6 +27,8 @@ export type EquipInfo = {
15
27
  twoHanded?: boolean;
16
28
  };
17
29
  export declare const MELEE_ATTACK_INITIATION_RANGE = 1;
30
+ /** A thrown dagger starts a fight from four tiles. */
31
+ export declare const THROWN_ATTACK_INITIATION_RANGE = 4;
18
32
  /** Bow tiers initiate combat at 5 then 8 tiles, respectively. */
19
33
  export declare const BOW_ATTACK_INITIATION_RANGES: readonly [5, 8];
20
34
  export declare const EQUIP_INFO: Record<string, EquipInfo>;
@@ -25,6 +39,7 @@ export declare function isCombatWeaponKind(kind: string): boolean;
25
39
  export declare function weaponMasteryRequirement(kind: string | null | undefined): number;
26
40
  /** Combat begins from this many tiles away; melee weapons remain adjacent-only. */
27
41
  export declare function attackInitiationRangeForWeapon(kind: string | null | undefined): number;
42
+ export declare function isThrownWeaponKind(kind: string | null | undefined): boolean;
28
43
  export declare function isRangedWeaponKind(kind: string | null | undefined): boolean;
29
44
  export declare function isTwoHandedWeaponKind(kind: string | null | undefined): boolean;
30
45
  export declare function isAmmoKind(kind: string | null | undefined): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"equipment.d.ts","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"equipment.d.ts","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"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"}
package/dist/equipment.js CHANGED
@@ -11,8 +11,29 @@ export const EQUIP_SLOTS = [
11
11
  'hands',
12
12
  'ring',
13
13
  'ammo',
14
+ 'quiver',
14
15
  ];
16
+ /**
17
+ * Arrows the ammo slot holds with no quiver: a fistful in the belt. A quiver
18
+ * raises it (QUIVER_CAPACITY); equipping a bigger stack leaves the rest in
19
+ * the bag. Stacks equipped before quivers existed are not trimmed.
20
+ */
21
+ export const AMMO_CAPACITY_BARE = 30;
22
+ /** Arrows each quiver holds. Wood and metal bindings: bigger metal, bigger quiver. */
23
+ export const QUIVER_CAPACITY = {
24
+ bronzequiver: 60,
25
+ ironquiver: 120,
26
+ steelquiver: 250,
27
+ };
28
+ export function ammoCapacityFor(quiverKind) {
29
+ return (quiverKind && QUIVER_CAPACITY[quiverKind]) || AMMO_CAPACITY_BARE;
30
+ }
31
+ export function isQuiverKind(kind) {
32
+ return !!kind && kind in QUIVER_CAPACITY;
33
+ }
15
34
  export const MELEE_ATTACK_INITIATION_RANGE = 1;
35
+ /** A thrown dagger starts a fight from four tiles. */
36
+ export const THROWN_ATTACK_INITIATION_RANGE = 4;
16
37
  /** Bow tiers initiate combat at 5 then 8 tiles, respectively. */
17
38
  export const BOW_ATTACK_INITIATION_RANGES = [5, 8];
18
39
  export const EQUIP_INFO = {
@@ -26,7 +47,11 @@ export const EQUIP_INFO = {
26
47
  heavybeachcastingrod: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 0 },
27
48
  icefishingrod: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 0 },
28
49
  foldingsaw: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 1 },
50
+ // The three hatchets are woodwork tools first: no mastery gate, and their
51
+ // real difference is the felling bonus in woodwork.ts, not the damage.
29
52
  hatchet: { slot: 'weapon', armour: 0, damageMin: 1, damageMax: 2 },
53
+ ironhatchet: { slot: 'weapon', armour: 0, damageMin: 2, damageMax: 3 },
54
+ steelhatchet: { slot: 'weapon', armour: 0, damageMin: 3, damageMax: 4 },
30
55
  // A mining tool, not a weapon: heavy enough to hurt, but it is held for the
31
56
  // seam, not the fight, so it sits at the hatchet's damage with no mastery gate.
32
57
  copperpickaxe: { slot: 'weapon', armour: 0, damageMin: 1, damageMax: 2 },
@@ -57,6 +82,14 @@ export const EQUIP_INFO = {
57
82
  },
58
83
  bircharrow: { slot: 'ammo', armour: 0, damageMin: 0, damageMax: 0 },
59
84
  sprucearrow: { slot: 'ammo', armour: 0, damageMin: 2, damageMax: 3 },
85
+ // Metal-tipped arrows: arrowheads off the anvil, fletched at the bench.
86
+ bronzearrow: { slot: 'ammo', armour: 0, damageMin: 3, damageMax: 4 },
87
+ ironarrow: { slot: 'ammo', armour: 0, damageMin: 4, damageMax: 6 },
88
+ steelarrow: { slot: 'ammo', armour: 0, damageMin: 6, damageMax: 8 },
89
+ // Quivers hold arrows, nothing more; the capacity table is QUIVER_CAPACITY.
90
+ bronzequiver: { slot: 'quiver', armour: 0, damageMin: 0, damageMax: 0 },
91
+ ironquiver: { slot: 'quiver', armour: 0, damageMin: 0, damageMax: 0 },
92
+ steelquiver: { slot: 'quiver', armour: 0, damageMin: 0, damageMax: 0 },
60
93
  // Bronze Gear
61
94
  bronzedagger: { slot: 'weapon', armour: 0, damageMin: 1, damageMax: 3, masteryRequirement: 1 },
62
95
  bronzesword: { slot: 'weapon', armour: 0, damageMin: 2, damageMax: 5, masteryRequirement: 6 },
@@ -72,6 +105,24 @@ export const EQUIP_INFO = {
72
105
  ironhelmet: { slot: 'helmet', armour: 4, damageMin: 0, damageMax: 0 },
73
106
  ironbody: { slot: 'top', armour: 8, damageMin: 0, damageMax: 0 },
74
107
  ironlegs: { slot: 'bottom', armour: 5, damageMin: 0, damageMax: 0 },
108
+ // Iron opens two new kinds of weapon: the longsword, and daggers made to
109
+ // be thrown (Strength, four tiles, no ammo: the blade comes back to hand).
110
+ ironlongsword: { slot: 'weapon', armour: 0, damageMin: 5, damageMax: 8, masteryRequirement: 20 },
111
+ ironthrowingdagger: { slot: 'weapon', armour: 0, damageMin: 2, damageMax: 4, masteryRequirement: 12, attackInitiationRange: THROWN_ATTACK_INITIATION_RANGE },
112
+ // Steel Gear
113
+ steeldagger: { slot: 'weapon', armour: 0, damageMin: 4, damageMax: 7, masteryRequirement: 24 },
114
+ steelsword: { slot: 'weapon', armour: 0, damageMin: 6, damageMax: 9, masteryRequirement: 26 },
115
+ steellongsword: { slot: 'weapon', armour: 0, damageMin: 7, damageMax: 10, masteryRequirement: 30 },
116
+ steelthrowingdagger: { slot: 'weapon', armour: 0, damageMin: 4, damageMax: 6, masteryRequirement: 22, attackInitiationRange: THROWN_ATTACK_INITIATION_RANGE },
117
+ // Steel alone has the crushing and cleaving kinds: the mace, and the
118
+ // two-handed battleaxe that leaves no hand for a shield.
119
+ steelmace: { slot: 'weapon', armour: 0, damageMin: 7, damageMax: 9, masteryRequirement: 28 },
120
+ steelbattleaxe: { slot: 'weapon', armour: 0, damageMin: 8, damageMax: 12, masteryRequirement: 32, twoHanded: true },
121
+ steelshield: { slot: 'offhand', armour: 7, damageMin: 0, damageMax: 0 },
122
+ steeltowershield: { slot: 'offhand', armour: 10, damageMin: 0, damageMax: 0 },
123
+ steelhelmet: { slot: 'helmet', armour: 6, damageMin: 0, damageMax: 0 },
124
+ steelbody: { slot: 'top', armour: 11, damageMin: 0, damageMax: 0 },
125
+ steellegs: { slot: 'bottom', armour: 7, damageMin: 0, damageMax: 0 },
75
126
  };
76
127
  export const EQUIP_SLOT_LABELS = {
77
128
  helmet: 'Helmet',
@@ -85,6 +136,7 @@ export const EQUIP_SLOT_LABELS = {
85
136
  hands: 'Hands',
86
137
  ring: 'Ring',
87
138
  ammo: 'Ammo',
139
+ quiver: 'Quiver',
88
140
  };
89
141
  const LEGACY_SLOT_KEYS = {
90
142
  head: 'helmet',
@@ -113,6 +165,14 @@ export function attackInitiationRangeForWeapon(kind) {
113
165
  }
114
166
  /** Ranged weapons train Archery; everything else trains Strength. */
115
167
  const RANGED_WEAPON_KINDS = new Set(['pinebow']);
168
+ /**
169
+ * Thrown weapons: Strength, at a distance, no ammo. The client draws the
170
+ * blade flying instead of an arrow (combat_hit projectile 'dagger').
171
+ */
172
+ const THROWN_WEAPON_KINDS = new Set(['ironthrowingdagger', 'steelthrowingdagger']);
173
+ export function isThrownWeaponKind(kind) {
174
+ return !!kind && THROWN_WEAPON_KINDS.has(kind);
175
+ }
116
176
  const AMMO_KINDS = new Set(Object.entries(EQUIP_INFO)
117
177
  .filter(([, info]) => info.slot === 'ammo')
118
178
  .map(([kind]) => kind));
@@ -165,6 +225,7 @@ export function emptyEquipment() {
165
225
  hands: null,
166
226
  ring: null,
167
227
  ammo: null,
228
+ quiver: null,
168
229
  };
169
230
  }
170
231
  export function normalizeEquipment(raw) {
@@ -1 +1 @@
1
- {"version":3,"file":"equipment.js","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"equipment.js","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ export declare const GROUND_ITEM_KINDS: readonly string[];
7
7
  export declare const UNDROPPABLE_ITEM_KINDS: readonly string[];
8
8
  export declare function isGroundItemKind(kind: string): boolean;
9
9
  export declare function isUndroppableItemKind(kind: string): boolean;
10
+ /**
11
+ * Since 2026-09-19 every item can be dropped: kinds outside GROUND_ITEM_KINDS
12
+ * lie on the floor as a generic 'loot' entity styled by the item, so this is
13
+ * only the undroppable veto. Callers still guard on the item being known.
14
+ */
10
15
  export declare function isDroppableItemKind(kind: string): boolean;
11
16
  export declare const DROPPED_ITEM_LIFETIME_MS = 30000;
12
17
  /** Death loot stays on the tile this long; any player may pick it up. */
@@ -1 +1 @@
1
- {"version":3,"file":"groundItems.d.ts","sourceRoot":"","sources":["../src/groundItems.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EA+F9C,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAO,CAAC;AAI5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,SAAsB,GAC3B,MAAM,CAKR"}
1
+ {"version":3,"file":"groundItems.d.ts","sourceRoot":"","sources":["../src/groundItems.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAqG9C,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAO,CAAC;AAI5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,SAAsB,GAC3B,MAAM,CAKR"}
@@ -60,6 +60,9 @@ export const GROUND_ITEM_KINDS = [
60
60
  'flyhook',
61
61
  'sealine',
62
62
  'searig',
63
+ 'iceline',
64
+ 'icerig',
65
+ 'frozenkey',
63
66
  'seaspinner',
64
67
  'rawtrout',
65
68
  'cookedtrout',
@@ -71,6 +74,8 @@ export const GROUND_ITEM_KINDS = [
71
74
  'iceauger',
72
75
  'foldingsaw',
73
76
  'hatchet',
77
+ 'ironhatchet',
78
+ 'steelhatchet',
74
79
  'woolygloves',
75
80
  'woolyboots',
76
81
  'peasantclothes',
@@ -88,6 +93,7 @@ export const GROUND_ITEM_KINDS = [
88
93
  'grapes',
89
94
  'orange',
90
95
  'smallsatchel',
96
+ 'coinpurse',
91
97
  'spideregg',
92
98
  'spidersilk',
93
99
  'wolffang',
@@ -108,8 +114,13 @@ export function isGroundItemKind(kind) {
108
114
  export function isUndroppableItemKind(kind) {
109
115
  return UNDROPPABLE_ITEM_KIND_SET.has(kind);
110
116
  }
117
+ /**
118
+ * Since 2026-09-19 every item can be dropped: kinds outside GROUND_ITEM_KINDS
119
+ * lie on the floor as a generic 'loot' entity styled by the item, so this is
120
+ * only the undroppable veto. Callers still guard on the item being known.
121
+ */
111
122
  export function isDroppableItemKind(kind) {
112
- return isGroundItemKind(kind) && !isUndroppableItemKind(kind);
123
+ return !isUndroppableItemKind(kind);
113
124
  }
114
125
  export const DROPPED_ITEM_LIFETIME_MS = 30000;
115
126
  /** Death loot stays on the tile this long; any player may pick it up. */
@@ -1 +1 @@
1
- {"version":3,"file":"groundItems.js","sourceRoot":"","sources":["../src/groundItems.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,8EAA8E;IAC9E,yEAAyE;IACzE,SAAS;IACT,WAAW;IACX,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;IACT,YAAY;IACZ,cAAc;IACd,eAAe;IACf,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,WAAW;IACX,aAAa;IACb,aAAa;IACb,cAAc;IACd,OAAO;IACP,MAAM;IACN,gBAAgB;IAChB,QAAQ;IACR,YAAY;IACZ,KAAK;IACL,KAAK;IACL,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,UAAU;IACV,aAAa;IACb,UAAU;IACV,aAAa;IACb,SAAS;IACT,UAAU;IACV,SAAS;IACT,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,SAAS;IACT,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,eAAe;IACf,UAAU;IACV,YAAY;IACZ,SAAS;IACT,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,SAAS;IACT,OAAO;IACP,OAAO;IACP,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,WAAW;IACX,YAAY;IACZ,UAAU;IACV,UAAU;IACV,eAAe;CAChB,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB,EAAE,CAAC;AAE5D,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAElE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,MAAM,GAAG,mBAAmB;IAE5B,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,WAAW,IAAI,MAAM;QAAE,OAAO,CAAC,CAAC;IACpC,OAAO,WAAW,GAAG,MAAM,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"groundItems.js","sourceRoot":"","sources":["../src/groundItems.ts"],"names":[],"mappings":"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"}