@maka/maka-cli 5.91.0 → 5.93.0

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 (92) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +9 -9
  3. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +54 -3
  5. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +987 -53
  6. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +0 -14
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +22 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +14 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +5 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +7 -55
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +5 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +10 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +8 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +3 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +13 -7
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +12 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +7 -2
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +3 -3
  32. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +69 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +90 -16
  37. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +26 -3
  39. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +95 -3
  41. package/bundle/typescript/src/commands/game/sideQuest/game.js +191 -13
  42. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +5 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +13 -0
  46. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js +45 -2
  47. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +65 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +83 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +126 -4
  52. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +148 -15
  53. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +33 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +12 -2
  56. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -4
  59. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +120 -0
  60. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +135 -0
  61. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +64 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/spells.js +68 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +25 -2
  66. package/bundle/typescript/src/commands/game/sideQuest/ui.js +14 -0
  67. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/alarmed-staff.d.ts +116 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/alarmed-staff.js +127 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/alarmed-staff.js.map +1 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +123 -2
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +131 -2
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +170 -12
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +139 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +307 -5
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +38 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +106 -0
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.js +19 -3
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +1 -1
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +22 -0
  88. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +27 -0
  89. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  90. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +63 -30
  91. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  92. package/package.json +1 -1
@@ -60,7 +60,11 @@ export function savedPlayer(name, overrides = {}) {
60
60
  },
61
61
  baseMagic: 0,
62
62
  baseResonance: 0,
63
- skills: { firearms: 4, perception: 3 },
63
+ // The gun rating migrates as a GROUP (p.88): `firearms` is retired
64
+ // and its three canon skills carry the same rating, exactly as a real
65
+ // save does on load. Typed loosely here, so the compiler could not
66
+ // have told us -- a migration test did.
67
+ skills: { automatics: 4, pistols: 4, longarms: 4, perception: 3 },
64
68
  karma: 0,
65
69
  careerKarma: 0,
66
70
  notorietyReasons: [],
@@ -1 +1 @@
1
- {"version":3,"file":"headless-harness.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/headless-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless-harness.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/headless-harness.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,19 @@ export declare class Inventory extends AbstractInventory {
12
12
  * @param item - The item to be added.
13
13
  */
14
14
  addItem(item: Item): void;
15
+ /**
16
+ * Spend ONE of a stack, removing the entry only at zero.
17
+ *
18
+ * THE ONE PLACE THAT LOGIC LIVES. Before stacking, every consume site
19
+ * called removeItem and deleted the entry -- correct when an entry was
20
+ * always one thing, and a silent theft of the other four once it is
21
+ * five. Each site calling this instead of hand-rolling `if (--q <= 0)`
22
+ * is what keeps them from drifting apart.
23
+ *
24
+ * Returns the item if something was spent, null if there was none.
25
+ * A non-stackable spends by removal, exactly as it always did.
26
+ */
27
+ consumeOne(itemName: string): Item | null;
15
28
  /**
16
29
  * Removes an item from the inventory.
17
30
  *
@@ -17,9 +17,49 @@ export class Inventory extends AbstractInventory {
17
17
  * @param item - The item to be added.
18
18
  */
19
19
  addItem(item) {
20
- this.items.set(item.name.toLowerCase(), item);
20
+ const key = item.name.toLowerCase();
21
+ const held = this.items.get(key);
22
+ // THE KEYSTONE (user ruling: only consumables stack). An inventory is
23
+ // keyed by lowercased name, so a second box of ammo used to REPLACE
24
+ // the first and silently vanish. For a stackable category the two are
25
+ // the same thing twice, so they add up.
26
+ //
27
+ // A NON-STACKABLE STILL REPLACES, deliberately and unchanged. Two
28
+ // same-named cyberdecks colliding is a PRE-EXISTING limitation of the
29
+ // name key, and merging them is exactly what must never happen -- a
30
+ // deck carries its own damage track, programs and load order. This
31
+ // branch does not touch that case, neither fixing nor worsening it.
32
+ if (held && held !== item && held.stackable && item.stackable) {
33
+ held.quantity += item.quantity;
34
+ this.logger.write(`Stacked ${item.quantity} x ${item.name} (now ${held.quantity}).`);
35
+ return;
36
+ }
37
+ this.items.set(key, item);
21
38
  this.logger.write(`Added item: ${item.name} to inventory.`);
22
39
  }
40
+ /**
41
+ * Spend ONE of a stack, removing the entry only at zero.
42
+ *
43
+ * THE ONE PLACE THAT LOGIC LIVES. Before stacking, every consume site
44
+ * called removeItem and deleted the entry -- correct when an entry was
45
+ * always one thing, and a silent theft of the other four once it is
46
+ * five. Each site calling this instead of hand-rolling `if (--q <= 0)`
47
+ * is what keeps them from drifting apart.
48
+ *
49
+ * Returns the item if something was spent, null if there was none.
50
+ * A non-stackable spends by removal, exactly as it always did.
51
+ */
52
+ consumeOne(itemName) {
53
+ const item = this.getItem(itemName);
54
+ if (!item)
55
+ return null;
56
+ if (item.quantity > 1) {
57
+ item.quantity -= 1;
58
+ this.logger.write(`Consumed one ${item.name} (${item.quantity} left).`);
59
+ return item;
60
+ }
61
+ return this.removeItem(item.name);
62
+ }
23
63
  /**
24
64
  * Removes an item from the inventory.
25
65
  *
@@ -140,7 +180,10 @@ export class Inventory extends AbstractInventory {
140
180
  getWeight() {
141
181
  let totalWeight = 0;
142
182
  for (const item of this.items.values()) {
143
- totalWeight += item.weight;
183
+ // TIMES QUANTITY. Five ration bars weigh five bars -- without this,
184
+ // a stack is a carry-cap bypass, and the bigger the stack the more
185
+ // free weight it buys.
186
+ totalWeight += item.weight * item.quantity;
144
187
  }
145
188
  return totalWeight;
146
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/inventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/inventory.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,42 @@ export declare class Item extends AbstractItem {
47
47
  protected _currencyAmount: number;
48
48
  protected _currencyCapacity?: number;
49
49
  constructor(options: IItemConstructorConfig);
50
+ /**
51
+ * WHAT FUNGIBLE MEANS HERE (user ruling): only CONSUMABLES stack.
52
+ * Three ration bars are three of the same thing and one entry reading
53
+ * x3. Three cyberdecks are not: a deck carries its own damage track,
54
+ * its own programs and its own load order, and merging two would lose
55
+ * exactly that. Same for a gun's ammo and a drone's damage.
56
+ *
57
+ * So stacking is OPT-IN BY CATEGORY, never an automatic
58
+ * name-collision behaviour. A category is in this set when carrying
59
+ * several is indistinguishable from carrying one several times.
60
+ *
61
+ * NOT THE SAME AS 'consumed on use', and the medkit is why: Medical
62
+ * is stackable (a stack of 3 means you own 3) and correctly never
63
+ * decrements, because a medkit is reusable -- `use <medkit>` runs the
64
+ * First Aid test and spends nothing.
65
+ *
66
+ * ONE HOME, NOT A TWIN. The plan called for mirroring EQUIP_ON_START's
67
+ * twin-plus-sync-test pattern, and that pattern exists only because
68
+ * EQUIP_ON_START is module-private in two files. This set is exported
69
+ * from the model the rule is about, so there is nothing to keep in
70
+ * step and no sync test to rot. The genuine twin is CROSS-REPO --
71
+ * maka-cli.com derives a `stackable` flag on catalog rows from this
72
+ * same list -- and no test in this repo can span that, which is why
73
+ * the contents are asserted explicitly in item-stacks.test.ts: a
74
+ * change to the vocabulary shows up in that diff, where the other
75
+ * repo's owner can see it.
76
+ */
77
+ static readonly STACKABLE_CATEGORIES: ReadonlySet<Category>;
78
+ /**
79
+ * How many of this thing you are holding. 1 unless something stacked
80
+ * it, and sparse in the save (absent means 1), the same shape `ammo`
81
+ * and `currencyAmount` already use.
82
+ */
83
+ quantity: number;
84
+ /** Whether a name-collision should ADD to this rather than replace it. */
85
+ get stackable(): boolean;
50
86
  static readonly MAGAZINE_CAPACITY = 10;
51
87
  /** Rounds left in the magazine. Only meaningful for firearms. */
52
88
  ammo: number;
@@ -192,7 +228,35 @@ export declare class Item extends AbstractItem {
192
228
  deckSummary(): string;
193
229
  private _droneDamage;
194
230
  isDrone(): boolean;
195
- /** Sturdier builds carry more airframe: 6 + 2 per quality step. */
231
+ /**
232
+ * THE HULL TRACK, FROM BODY (SR5 p.199: a drone's Physical condition
233
+ * monitor is 6 + half its Body; Rigger 5.0 p.145 gives an anthroform
234
+ * 8 + half its Body, because it is built like a person and breaks like
235
+ * one). Halves round UP -- SR5 p.48 states the general rule and p.52
236
+ * and p.379 apply it explicitly to condition monitors.
237
+ *
238
+ * THIS USED TO READ `6 + 2 * qualityBonus`, and qualityBonus comes
239
+ * from the Rating enum, which the catalog assigns BY PRICE. So
240
+ * durability tracked COST: the Lockheed Optic-X2 -- a Body 2
241
+ * surveillance drone that happens to cost 21,000 nuyen -- carried
242
+ * twelve boxes, exactly as many as a Steel Lynx with Body 6 and
243
+ * Armor 12. Sixty of the seventy catalog drones were wrong; the four
244
+ * anthroforms were wrong in the other direction, being under-tough
245
+ * because the engine had no notion of their rule.
246
+ *
247
+ * THE LOOKUP IS THE SUBSTANCE HERE, not the arithmetic. An Item knows
248
+ * its category, size and rating -- never its stat block -- so Body has
249
+ * to come back out of the catalog by name. catalogHullFor does that
250
+ * with STRICT matching for the reason recorded there: a fuzzy hit
251
+ * would hand generated gear an unrelated row's Body.
252
+ *
253
+ * THE FALLBACK IS DELIBERATE AND DOCUMENTED, not a default. Generated
254
+ * street gear has no catalog row and therefore no Body, and the
255
+ * failure mode to avoid is a generated drone silently collapsing to
256
+ * six boxes because Body parsed as undefined. Such an item keeps the
257
+ * old price-based curve, which is at least the behaviour it has always
258
+ * had.
259
+ */
196
260
  get maxDroneBoxes(): number;
197
261
  get droneDamage(): number;
198
262
  /** Returns boxes actually taken. Full track = wrecked. */
@@ -1,5 +1,6 @@
1
1
  import { Size, Category, Rating } from '../types/shared/item-enum.js';
2
2
  import { PROGRAM_ATTR_MODS } from '../utilities/programs.js';
3
+ import { catalogHullFor } from '../utilities/catalog.js';
3
4
  import { v4 as uuidv4 } from 'uuid';
4
5
  import { AbstractItem } from '../types/shared/abstracts.js';
5
6
  export class Item extends AbstractItem {
@@ -83,6 +84,56 @@ export class Item extends AbstractItem {
83
84
  this.ammo = Item.MAGAZINE_CAPACITY;
84
85
  }
85
86
  }
87
+ // ======================== Stacking ========================
88
+ /**
89
+ * WHAT FUNGIBLE MEANS HERE (user ruling): only CONSUMABLES stack.
90
+ * Three ration bars are three of the same thing and one entry reading
91
+ * x3. Three cyberdecks are not: a deck carries its own damage track,
92
+ * its own programs and its own load order, and merging two would lose
93
+ * exactly that. Same for a gun's ammo and a drone's damage.
94
+ *
95
+ * So stacking is OPT-IN BY CATEGORY, never an automatic
96
+ * name-collision behaviour. A category is in this set when carrying
97
+ * several is indistinguishable from carrying one several times.
98
+ *
99
+ * NOT THE SAME AS 'consumed on use', and the medkit is why: Medical
100
+ * is stackable (a stack of 3 means you own 3) and correctly never
101
+ * decrements, because a medkit is reusable -- `use <medkit>` runs the
102
+ * First Aid test and spends nothing.
103
+ *
104
+ * ONE HOME, NOT A TWIN. The plan called for mirroring EQUIP_ON_START's
105
+ * twin-plus-sync-test pattern, and that pattern exists only because
106
+ * EQUIP_ON_START is module-private in two files. This set is exported
107
+ * from the model the rule is about, so there is nothing to keep in
108
+ * step and no sync test to rot. The genuine twin is CROSS-REPO --
109
+ * maka-cli.com derives a `stackable` flag on catalog rows from this
110
+ * same list -- and no test in this repo can span that, which is why
111
+ * the contents are asserted explicitly in item-stacks.test.ts: a
112
+ * change to the vocabulary shows up in that diff, where the other
113
+ * repo's owner can see it.
114
+ */
115
+ static STACKABLE_CATEGORIES = new Set([
116
+ Category.Ammunition,
117
+ Category.Consumable,
118
+ Category.Food,
119
+ Category.Drink,
120
+ Category.Vice,
121
+ Category.StimPatch,
122
+ Category.SlapPatch,
123
+ Category.Medical,
124
+ Category.Explosive,
125
+ Category.MagicalReagent,
126
+ ]);
127
+ /**
128
+ * How many of this thing you are holding. 1 unless something stacked
129
+ * it, and sparse in the save (absent means 1), the same shape `ammo`
130
+ * and `currencyAmount` already use.
131
+ */
132
+ quantity = 1;
133
+ /** Whether a name-collision should ADD to this rather than replace it. */
134
+ get stackable() {
135
+ return Item.STACKABLE_CATEGORIES.has(this.category);
136
+ }
86
137
  // ======================== Ammunition ========================
87
138
  static MAGAZINE_CAPACITY = 10;
88
139
  /** Rounds left in the magazine. Only meaningful for firearms. */
@@ -455,8 +506,39 @@ export class Item extends AbstractItem {
455
506
  isDrone() {
456
507
  return this.category === Category.Drone;
457
508
  }
458
- /** Sturdier builds carry more airframe: 6 + 2 per quality step. */
509
+ /**
510
+ * THE HULL TRACK, FROM BODY (SR5 p.199: a drone's Physical condition
511
+ * monitor is 6 + half its Body; Rigger 5.0 p.145 gives an anthroform
512
+ * 8 + half its Body, because it is built like a person and breaks like
513
+ * one). Halves round UP -- SR5 p.48 states the general rule and p.52
514
+ * and p.379 apply it explicitly to condition monitors.
515
+ *
516
+ * THIS USED TO READ `6 + 2 * qualityBonus`, and qualityBonus comes
517
+ * from the Rating enum, which the catalog assigns BY PRICE. So
518
+ * durability tracked COST: the Lockheed Optic-X2 -- a Body 2
519
+ * surveillance drone that happens to cost 21,000 nuyen -- carried
520
+ * twelve boxes, exactly as many as a Steel Lynx with Body 6 and
521
+ * Armor 12. Sixty of the seventy catalog drones were wrong; the four
522
+ * anthroforms were wrong in the other direction, being under-tough
523
+ * because the engine had no notion of their rule.
524
+ *
525
+ * THE LOOKUP IS THE SUBSTANCE HERE, not the arithmetic. An Item knows
526
+ * its category, size and rating -- never its stat block -- so Body has
527
+ * to come back out of the catalog by name. catalogHullFor does that
528
+ * with STRICT matching for the reason recorded there: a fuzzy hit
529
+ * would hand generated gear an unrelated row's Body.
530
+ *
531
+ * THE FALLBACK IS DELIBERATE AND DOCUMENTED, not a default. Generated
532
+ * street gear has no catalog row and therefore no Body, and the
533
+ * failure mode to avoid is a generated drone silently collapsing to
534
+ * six boxes because Body parsed as undefined. Such an item keeps the
535
+ * old price-based curve, which is at least the behaviour it has always
536
+ * had.
537
+ */
459
538
  get maxDroneBoxes() {
539
+ const hull = catalogHullFor(this.name);
540
+ if (hull)
541
+ return (hull.anthro ? 8 : 6) + Math.ceil(hull.body / 2);
460
542
  return 6 + 2 * this.qualityBonus;
461
543
  }
462
544
  get droneDamage() {
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export type SimMode = 'cold' | 'hot';
77
77
  * this not-yet-carried list; all three are now real and hooked, one per
78
78
  * command file beside them.)
79
79
  */
80
- export type SkillName = 'firearms' | 'blades' | 'clubs' | 'unarmed' | 'gunnery' | 'astral-combat' | 'cybercombat' | 'sneaking' | 'perception' | 'athletics' | 'palming' | 'escape-artist' | 'disguise' | 'hacking' | 'locksmith' | 'computer' | 'electronic-warfare' | 'hardware' | 'negotiation' | 'con' | 'intimidation' | 'etiquette' | 'leadership' | 'performance' | 'instruction' | 'first-aid' | 'medicine' | 'assensing' | 'spellcasting' | 'counterspelling' | 'piloting' | 'conjuring' | 'compiling' | 'decompiling' | 'registering' | 'software';
80
+ export type SkillName = 'blades' | 'clubs' | 'unarmed' | 'gunnery' | 'astral-combat' | 'cybercombat' | 'sneaking' | 'perception' | 'palming' | 'escape-artist' | 'disguise' | 'hacking' | 'locksmith' | 'computer' | 'electronic-warfare' | 'hardware' | 'negotiation' | 'con' | 'intimidation' | 'etiquette' | 'leadership' | 'performance' | 'instruction' | 'first-aid' | 'medicine' | 'assensing' | 'spellcasting' | 'counterspelling' | 'piloting' | 'conjuring' | 'compiling' | 'decompiling' | 'registering' | 'software' | 'impersonation' | 'ritual-spellcasting' | 'gymnastics' | 'running' | 'swimming' | 'automatics' | 'pistols' | 'longarms' | 'banishing' | 'summoning' | 'binding' | 'cybertechnology' | 'alchemy' | 'disenchanting' | 'artificing' | 'aeronautics-mechanic' | 'industrial-mechanic' | 'automotive-mechanic' | 'nautical-mechanic' | 'navigation' | 'tracking' | 'survival' | 'archery' | 'free-fall';
81
81
  export declare const SKILL_NAMES: SkillName[];
82
82
  /**
83
83
  * Skills that fall back to the legacy `combatSkill` attribute when no
@@ -86,6 +86,49 @@ export declare const SKILL_NAMES: SkillName[];
86
86
  * has, ice included (its Matrix strikes ride `hacking`).
87
87
  */
88
88
  export declare const COMBAT_SKILL_FALLBACK: ReadonlySet<SkillName>;
89
+ /**
90
+ * WHICH GUN ROLLS WHICH SKILL (SR5 p.130, p.132).
91
+ *
92
+ * Canon splits firearms three ways by the weapon in your hands, and the
93
+ * split is by CLASS, not by calibre:
94
+ * Pistols -- handheld pistols: hold-out, light, heavy, tasers,
95
+ * revolvers, semi-automatics (p.132)
96
+ * Automatics -- larger than a handheld pistol, smaller than a rifle:
97
+ * machine pistols, SMGs, assault rifles and automatic
98
+ * carbines (p.130; machine pistols are Automatics
99
+ * specifically, p.427)
100
+ * Longarms -- extended barrels braced against the shoulder:
101
+ * sporting and sniper rifles, and shotguns (p.132)
102
+ * Archery -- bows and crossbows (p.130 specializations, p.424)
103
+ *
104
+ * READ OFF THE SAME HAYSTACK Item.accuracy already classifies by, and
105
+ * deliberately so: two independent weapon classifiers would eventually
106
+ * disagree about what an Ares Alpha is, and the one that disagreed
107
+ * silently would be this one. The patterns are kept in the same order
108
+ * and the same words.
109
+ *
110
+ * ORDER MATTERS. 'machine pistol' must be tested for Automatics BEFORE
111
+ * the Pistols branch, or the word 'pistol' claims it -- and canon puts
112
+ * it in Automatics. Likewise a 'sniper rifle' must reach Longarms
113
+ * before 'rifle' reaches Automatics.
114
+ *
115
+ * UNRECOGNISED IRON FALLS TO PISTOLS, which is the commonest class and
116
+ * the one Item.accuracy also defaults to (heavy pistols). A gun the
117
+ * patterns have never seen rolls something rather than nothing.
118
+ */
119
+ /**
120
+ * The three skills a FIREARM can exercise. Archery is not among them:
121
+ * it is a Combat Active skill for string-loaded weapons (p.130), and
122
+ * the things that key off "is this a gun" -- the smartlink bonus
123
+ * (p.433 firearm accessory), a drone's armed mount -- do not apply to a
124
+ * crossbow.
125
+ */
126
+ export declare const FIREARM_SKILLS: SkillName[];
127
+ export declare function firearmSkillFor(weapon: {
128
+ name: string;
129
+ shape?: string;
130
+ category?: string;
131
+ }): SkillName;
89
132
  export interface ICombatAttributes {
90
133
  body?: number;
91
134
  agility?: number;
@@ -133,6 +176,39 @@ export interface ICombatAttributes {
133
176
  * attack and defense pools: improved reflexes, killing hands.
134
177
  */
135
178
  adept?: boolean;
179
+ /**
180
+ * ADEPT POWER POINTS BOUGHT WITH CREATION KARMA -- the mystic adept
181
+ * (SR5 p.69-70), and the field's presence is what makes one.
182
+ *
183
+ * A mystic adept is NOT "a Magic rating split between spells and
184
+ * powers", which is the common description and is wrong: their Magic
185
+ * comes off the priority column exactly as a magician's does and is
186
+ * never divided. It sets the spell count AND caps Power Points, which
187
+ * are then bought SEPARATELY at 5 karma each.
188
+ *
189
+ * WHY 5 AND NOT 2, recorded because the book contradicts itself and
190
+ * the next reader will find it. Core p.69-70 states 5; the worked
191
+ * example on p.71 spends 10 karma for 2 points; and Run Faster's Point
192
+ * Buy (p.64-65) independently restates "5 Karma per power point". The
193
+ * Final Calculations checklist at core p.102 says 2. Three statements
194
+ * across two separately typeset books against one summary line, and no
195
+ * errata resolving it in the indexed sources -- so 5, and the outlier
196
+ * is noted rather than hidden.
197
+ *
198
+ * A FULL ADEPT LEAVES THIS UNSET. Their points are free and equal to
199
+ * their Magic, which is why effectivePowerPoints below reads `magic`
200
+ * for them -- see the note there for why that is not a special case.
201
+ */
202
+ powerPoints?: number;
203
+ /**
204
+ * The spells a magician/mystic adept CHOSE at creation (SR5 p.300, up to
205
+ * Magic x 2). Keys into spells.ts's SPELL_CATALOG. ABSENT means "knows
206
+ * every spell", the pre-selection behaviour -- so an existing save with
207
+ * no spellbook keeps casting anything, and only a chargen that sends a
208
+ * list is narrowed to it. An empty list would mean a magician who chose
209
+ * nothing; absent is the grandfather case, and the two are kept distinct.
210
+ */
211
+ knownSpells?: string[];
136
212
  }
137
213
  export interface IPlayerConstructorConfig {
138
214
  playerName: string;
@@ -607,6 +683,11 @@ export declare class Player extends AbstractPlayer {
607
683
  edge: number;
608
684
  resonance: number;
609
685
  adept: boolean;
686
+ /** Bought adept powers (mystic adept). See ICombatAttributes.powerPoints. */
687
+ powerPoints: number;
688
+ /** Chosen spellbook (magician/mystic adept). See ICombatAttributes.knownSpells.
689
+ * UNDEFINED = knows every spell (grandfathered); a list = knows only those. */
690
+ knownSpells?: string[];
610
691
  edgeRemaining: number;
611
692
  edgeBoostArmed: boolean;
612
693
  private _damageTaken;
@@ -1061,6 +1142,42 @@ export declare class Player extends AbstractPlayer {
1061
1142
  /** Awakened: innate talent, no gear required. Adepts count -- their
1062
1143
  * aura burns like any mage's, and assensing works -- but they channel
1063
1144
  * magic into the body, not spells (see knowsSpell/isCaster). */
1145
+ /**
1146
+ * HOW MANY POWER POINTS THIS CHARACTER ACTUALLY HAS.
1147
+ *
1148
+ * A full adept gets points equal to their Magic, free (SR5 p.69), so
1149
+ * for them this IS `magic` -- which is why the engine's long-standing
1150
+ * `floor(magic / 2)` adept bonus was already, unknowingly, a Power
1151
+ * Point formula. A mystic adept BUYS theirs, so for them it is what
1152
+ * they bought.
1153
+ *
1154
+ * Reading the bonus off this one number rather than off the boolean is
1155
+ * what let the mystic adept exist without moving a single existing
1156
+ * character: for every adept in play, `magic` and `effectivePowerPoints`
1157
+ * are the same value, so `floor(pp / 2)` returns exactly what
1158
+ * `floor(magic / 2)` returned.
1159
+ */
1160
+ get effectivePowerPoints(): number;
1161
+ /**
1162
+ * A MYSTIC ADEPT: full magic, bought powers, and no astral projection.
1163
+ *
1164
+ * Not a flag of its own, because it does not need one -- buying power
1165
+ * points while not being a full adept IS the condition, and a mystic
1166
+ * adept who bought none is mechanically a magician, which is also what
1167
+ * canon says they would be.
1168
+ */
1169
+ get isMysticAdept(): boolean;
1170
+ /**
1171
+ * Magic-as-muscle: half the character's Power Points ride every
1172
+ * meat-plane pool (SR5's adept powers, compressed to one number the
1173
+ * way this engine compresses every other gear/aug bonus).
1174
+ *
1175
+ * `withMetamagic` is false for the defence-sense site, which never
1176
+ * counted the Power Point metamagic and still should not -- that
1177
+ * initiation buys a point of magic-as-muscle for striking, and
1178
+ * widening it here would be a silent buff riding in on a refactor.
1179
+ */
1180
+ adeptPoolBonus(withMetamagic?: boolean): number;
1064
1181
  isAwakened(): boolean;
1065
1182
  /** Technomancer: living persona -- the Matrix without a deck (see ICombatAttributes.resonance). */
1066
1183
  isTechnomancer(): boolean;
@@ -1136,9 +1253,14 @@ export declare class Player extends AbstractPlayer {
1136
1253
  getBestFocus(): Item | undefined;
1137
1254
  getMagicPool(): number;
1138
1255
  /**
1139
- * Awakened actors know every spell innately. A mundane knows a spell if
1140
- * they carry its formula (item name must contain the spell's name) or
1141
- * any grimoire (a spellbook teaches everything).
1256
+ * A magician/mystic adept knows the spells in their CHOSEN spellbook
1257
+ * (SR5 p.300, up to Magic x 2, picked at creation). A carried grimoire or
1258
+ * the spell's formula teaches beyond it, as it does a mundane.
1259
+ *
1260
+ * GRANDFATHERED: `knownSpells === undefined` means "knows every spell" --
1261
+ * the pre-selection behaviour, so any save from before spell selection,
1262
+ * and any character the web never sent a spellbook for, keeps casting
1263
+ * anything. Only a chosen list narrows them to it.
1142
1264
  */
1143
1265
  knowsSpell(spellName: string): boolean;
1144
1266
  /**