@maka/maka-cli 5.121.0 → 5.122.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 (96) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +72 -0
  3. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +300 -61
  4. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/aspects.js +11 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/aspects.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +85 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +8 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +4 -2
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +16 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +273 -28
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.d.ts +19 -10
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +43 -227
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +31 -3
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +5 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +4 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +4 -6
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.d.ts +10 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +50 -2
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js +27 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +17 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +3 -2
  37. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +34 -41
  38. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +37 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +47 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/game.js +103 -4
  43. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +17 -0
  45. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +30 -2
  46. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +14 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/models/device.js +14 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +6 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +8 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +82 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +118 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +4 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +16 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +9 -9
  60. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +6 -6
  61. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +5 -1
  62. package/bundle/typescript/src/commands/game/sideQuest/ui.js +23 -26
  63. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +24 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +34 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +9 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +8 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +25 -2
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.d.ts +32 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.js +33 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +5 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +35 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-intrusion.d.ts +121 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-intrusion.js +141 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-intrusion.js.map +1 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.d.ts +93 -0
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +201 -0
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -0
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +91 -9
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +16 -0
  89. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +50 -3
  90. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +7 -1
  92. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +7 -2
  93. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  94. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +43 -3
  95. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  96. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { gridActionModifier, gridNote } from '../utilities/grids.js';
3
3
  import { resolveHostInReach, hostsInReach, hostOver, gridVicinity, roomsInReach, noiseNote } from '../utilities/grid-reach.js';
4
4
  import { accrueOverwatch } from '../utilities/overwatch.js';
5
5
  import { hint } from '../utilities/hints.js';
6
+ import { dropActiveCall } from '../utilities/comm-style.js';
6
7
  import { rollPool, formatRoll } from '../utilities/dice.js';
7
8
  import { leaveMatrix } from '../utilities/planes.js';
8
9
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
@@ -11,6 +12,7 @@ import { matchesCameraName, hostLabel } from '../utilities/grid-names.js';
11
12
  import { TapCommand } from './tap.js';
12
13
  import { sameHostSide } from '../models/player.js';
13
14
  import { MAX_MARKS } from '../utilities/marks.js';
15
+ import { declarationPenalty, parseMarkDeclaration, hostDefensePool, freeMatrixPerceptionHits, bruteForceMatrixDv, overwatchFromDefense, GO_BIG_QUALITY, deviceDefensePool } from '../utilities/matrix-intrusion.js';
14
16
  /**
15
17
  * MARKS A PAN INTRUSION MUST ALREADY HOLD before it can command the
16
18
  * device rather than merely key it (Control Device, p.238: 1 mark for a
@@ -26,7 +28,7 @@ const MARKS_TO_COMMAND_A_PAN = 2;
26
28
  * Anchored so it never fires on a name that merely contains one. */
27
29
  export class HackCommand extends BypassCommand {
28
30
  static verb = 'hack';
29
- static description = 'Hack a terminal, host, or PAN. TWO ROUTES: bare "hack" is SLEAZE (Hack on the Fly, p.240 -- Hacking + Logic [Sleaze]; succeed and NOBODY knows; fail and you are MADE: alarm, ice hunting, walls up). "hack loud" is ATTACK (Brute Force, p.238 -- Cybercombat + Logic [Attack]; success is announced to the whole grid, but a MISS goes unnoticed -- the firewall just bites you). The BRACKET IS A LIMIT: it caps how many HITS you can count, and is never a die in the pool -- so the Sleaze or Attack on your deck is a CEILING on what a run of luck can buy you, not a bonus ("deck" shows the array, and the Mechanics line says when the cap bit). "hack <name>" cracks a PAN the same two ways. Terminal-puzzle hacks are their own rail (a failed one locks you out for good).';
31
+ static description = 'Hack a terminal, host, or PAN. TWO ROUTES, and your STANCE picks which (Tab flips it, "stance" shows it): ATTACK is Brute Force (p.238 -- Cybercombat + Logic [Attack]; a MISS goes unnoticed, the firewall just bites you). SLEAZE is Hack on the Fly (p.240 -- Hacking + Logic [Sleaze]; succeed and NOBODY knows; fail and you are MADE: alarm, ice hunting, walls up). "hack loud" / "hack quiet" override the stance for one action. The BRACKET IS A LIMIT: it caps how many HITS you can count, and is never a die in the pool -- so the Sleaze or Attack on your deck is a CEILING on what a run of luck can buy you, not a bonus ("deck" shows the array, and the Mechanics line says when the cap bit). "hack <name>" cracks a PAN the same two ways. Terminal-puzzle hacks are their own rail (a failed one locks you out for good).';
30
32
  deviceKind = 'panel';
31
33
  verbName = 'hack';
32
34
  noDeviceMessage = "There's nothing here to hack.";
@@ -34,24 +36,44 @@ export class HackCommand extends BypassCommand {
34
36
  * The Attack/Sleaze fork (canon p.236 "Noticing Hackers", player
35
37
  * ruling 2026-08-23): "loud"/"force"/"brute"/"attack" anywhere in the
36
38
  * words picks Brute Force; "quiet"/"sleaze"/"sneak" picks Hack on the
37
- * Fly explicitly; default is SLEAZE -- the hacker's classic route.
39
+ * Fly explicitly; the default is the player's STANCE (Tab, see
40
+ * MatrixStance), which ships as Brute Force.
38
41
  * The mode word is stripped so "hack loud mama wu" still finds Mama Wu.
39
42
  */
40
- static parseMode(args) {
43
+ static parseMode(args, stance) {
41
44
  const rest = [...(args ?? [])];
42
- let mode = 'sleaze';
45
+ // THE DEFAULT IS THE STANCE, NOT A LITERAL (uMQAhaAysgaKpWFkn,
46
+ // mjmcee 2026-09-03). It used to be hardcoded 'sleaze' here and
47
+ // again in mark.ts -- two copies of a decision the player could
48
+ // not see or change. Tab now sets it once and both verbs read it;
49
+ // the mode words below stay as a one-shot override for the action
50
+ // you are about to take without moving your standing posture.
51
+ let mode = stance;
43
52
  const loudIdx = rest.findIndex(w => /^(loud|force|brute|attack)$/i.test(w));
44
53
  if (loudIdx >= 0) {
45
54
  mode = 'attack';
46
55
  rest.splice(loudIdx, 1);
47
56
  }
48
57
  const quietIdx = rest.findIndex(w => /^(quiet|sleaze|sneak)$/i.test(w));
49
- if (quietIdx >= 0)
58
+ // SETS the mode, it does not merely strip the word. While Sleaze was
59
+ // the hardcoded default this branch could get away with only
60
+ // splicing -- it was right for the wrong reason, and nothing could
61
+ // tell the difference because both paths agreed. The moment the
62
+ // default became the stance (uMQAhaAysgaKpWFkn) that omission turned
63
+ // "hack quiet" into a Brute Force.
64
+ if (quietIdx >= 0) {
65
+ mode = 'sleaze';
50
66
  rest.splice(quietIdx, 1);
67
+ }
51
68
  return { mode, rest };
52
69
  }
53
70
  async execute(args = []) {
54
- const { mode, rest } = HackCommand.parseMode(args);
71
+ const { mode, rest: afterMode } = HackCommand.parseMode(args, this.actor.matrixStance);
72
+ // HOW MANY MARKS YOU ARE REACHING FOR, declared before the roll
73
+ // (p.238/p.240) -- "hack for 3", "hack 2 marks on the door". Stripped
74
+ // here so a declaration never lands in a target name, the same way
75
+ // the mode words are.
76
+ const { marks: declaredMarks, rest } = parseMarkDeclaration(afterMode);
55
77
  // PAN warfare: "hack <name>" cracks a meat actor's personal area
56
78
  // network -- from inside the Matrix, or right here in AR with a
57
79
  // working deck in hand (which is also how enemy deckers get YOU).
@@ -83,6 +105,14 @@ export class HackCommand extends BypassCommand {
83
105
  // sim mode like ice hits), not the meat-world instant-fatal of
84
106
  // hardwiring into a puzzle terminal.
85
107
  if (this.actor.plane === 'matrix') {
108
+ // A SLAVED DEVICE IS ITS OWN ICON (Data Trails p.87-88). Tried
109
+ // before the host resolution so a named maglock is the target the
110
+ // player actually meant, rather than falling through to the node
111
+ // it hangs off -- the whole point of the decomposition is that
112
+ // those are two different doors.
113
+ const deviceResult = await this.tryDeviceHack(rest, mode, declaredMarks);
114
+ if (deviceResult)
115
+ return deviceResult;
86
116
  // THE HOST, BY NAME, FROM ANYWHERE (SR5 p.246); bare "hack" means the
87
117
  // one hanging over the persona's vicinity. No patch to stand on first.
88
118
  const gridRooms = this.rooms ?? this.scene.getRooms();
@@ -113,11 +143,22 @@ export class HackCommand extends BypassCommand {
113
143
  }
114
144
  // What the host masters, through the room it stands over (models/host.ts).
115
145
  const lockedDoors = room.host.maglocks();
116
- // MARKS soften the crack (canon p.235-236, commands/mark.ts): each
117
- // key you hold on this host lowers the threshold; at enough marks
118
- // it opens like you belong (threshold 0 -- any roll walks in).
146
+ // MARKS ARE THE CURRENCY, AND THIS IS AN OPPOSED TEST NOW
147
+ // (uMQAhaAysgaKpWFkn, 2026-09-03). What stood here was a flat
148
+ // threshold the host never rolled against, softened one step per
149
+ // mark held -- so `hack` bought an entire host on the same roll
150
+ // that `mark` turned into one increment. Both are the SAME canon
151
+ // action (p.238/p.240); the difference was the verb the player
152
+ // typed, which is exactly what the report calls obfuscating.
153
+ //
154
+ // Now: declare how many marks you are reaching for (p.238/p.240,
155
+ // -4 for two and -10 for three, -6 with Go Big or Go Home), roll
156
+ // the action, and the host rolls its own defence against you.
119
157
  const myMarks = room.hostMarksBy.get(this.actor.name) ?? 0;
120
- const threshold = Math.max(0, (room.hostAlert ? 3 : 2) - myMarks);
158
+ if (myMarks >= MAX_MARKS) {
159
+ return `You already hold ${MAX_MARKS} marks on ${hostLabel(room)} -- as far as it is concerned you belong here.${hint(` ("enter" walks in; the doors and files inside are each their own icon.)`)}`;
160
+ }
161
+ const declared = Math.min(declaredMarks, MAX_MARKS - myMarks);
121
162
  // A BRACKET EATEN TO ZERO CANNOT SUCCEED. Gated here rather than
122
163
  // inside hostIntrusionRoll because that returns a boolean and a
123
164
  // refusal needs words. See Player.burnedAttributeRefusal for why
@@ -126,11 +167,14 @@ export class HackCommand extends BypassCommand {
126
167
  if (burned)
127
168
  return burned;
128
169
  this.actor.performAction('hacks the host', room.name);
129
- const success = await this.hostIntrusionRoll(mode, threshold, room.host?.grid);
130
- // GOD sees every illegal action (utilities/overwatch.ts) -- flat 2
131
- // evidence per host intrusion, success or failure (threshold rolls
132
- // have no defender dice to count).
133
- const godLines = this.godBill(2, `host intrusion (${mode})`);
170
+ const attempt = await this.hostIntrusionRoll(mode, declared, room);
171
+ const success = attempt.success;
172
+ // GOD BILLS THE DEFENDER'S HITS (p.231-232): "your OS increases by
173
+ // the number of hits the target gets on its defense test". It was a
174
+ // flat 2 here, which could not tell a host that nearly caught you
175
+ // from one that rolled nothing -- and could not, because nothing
176
+ // was rolling on the other side of the table.
177
+ const godLines = this.godBill(overwatchFromDefense(attempt.defenseHits), `host intrusion (${mode})`);
134
178
  if (!success) {
135
179
  if (mode === 'sleaze') {
136
180
  // Canon p.236: a blown SLEAZE action is NOTICED -- the host
@@ -191,9 +235,68 @@ export class HackCommand extends BypassCommand {
191
235
  this.scene.updateStatus();
192
236
  return lines.join('\n');
193
237
  }
194
- // Cracking the host buys everything it guards at once: the room's
195
- // physical maglocks AND its data vault (matrix items were sealed
196
- // until now -- see take.ts). The host is the vault, not the door.
238
+ // SUCCESS PLACES MARKS -- IT DOES NOT BUY THE HOST (the defect
239
+ // this item reports). One roll used to set hostCracked outright,
240
+ // so the identical roll was worth an entire node through `hack`
241
+ // and one increment through `mark`. Now both place what was
242
+ // DECLARED, and the node opens when you hold all three: at that
243
+ // point the host's own architecture treats you as staff (p.236).
244
+ //
245
+ // Reaching for three in a single action is still on the table --
246
+ // that is what the -10 is for -- so the one-action takeover
247
+ // survives at the book's price instead of being free to whoever
248
+ // guessed the right verb.
249
+ const marksNow = Math.min(MAX_MARKS, myMarks + declared);
250
+ room.hostMarksBy.set(this.actor.name, marksNow);
251
+ this.actor.noteConditionChanged();
252
+ this.logger.write(`Mark: ${this.actor.name} -> host ${room.name} (${marksNow}/${MAX_MARKS}, ${mode}).`);
253
+ // HACK ON THE FLY READS WHILE IT KEYS (p.240): every two full net
254
+ // hits is a Matrix Perception hit. One of the two benefits the
255
+ // report says the engine strips out -- and the one that makes the
256
+ // quiet route worth taking when it does not open anything yet.
257
+ const perception = mode === 'sleaze' ? freeMatrixPerceptionHits(attempt.netHits) : 0;
258
+ // BRUTE FORCE BURNS WHILE IT FORCES (p.238): 1 DV per two full net
259
+ // hits. Against a HOST there is nothing to burn -- canon gives a
260
+ // host no condition monitor, so this is carried to the icons that
261
+ // do have one (a PAN's deck, a device) rather than invented here.
262
+ const forcedDv = mode === 'attack' ? bruteForceMatrixDv(attempt.netHits) : 0;
263
+ if (marksNow < MAX_MARKS) {
264
+ const lines = [
265
+ mode === 'attack'
266
+ ? `You force a key into the lattice -- ${marksNow} of ${MAX_MARKS} marks riding ${hostLabel(room)} now.`
267
+ : `The key settles into the lattice unnoticed -- ${marksNow} of ${MAX_MARKS} marks riding ${hostLabel(room)} now.`,
268
+ ];
269
+ if (marksNow >= 1)
270
+ lines.push(` One mark is the door: "enter" walks your persona inside (p.239).`);
271
+ if (perception > 0)
272
+ lines.push(` {cyan-fg}And you read it on the way past -- ${perception} Matrix Perception hit${perception === 1 ? '' : 's'} of what this node is (p.240).{/cyan-fg}`);
273
+ if (forcedDv > 0)
274
+ lines.push(` The forcing burns ${forcedDv} DV into the architecture -- a host has no boards to brick, so it only announces you louder.`);
275
+ lines.push(` ${MAX_MARKS - marksNow} more and its architecture stops asking who you are.${hint(` ("hack for ${MAX_MARKS - marksNow}" reaches for the rest at once -- ${declarationPenalty(MAX_MARKS - marksNow, this.actor.hasQuality(GO_BIG_QUALITY))} dice.)`)}`);
276
+ if (mode === 'attack') {
277
+ this.actor.sneaking = false;
278
+ room.hostAlert = true;
279
+ this.scene.addWorldEvent(`${hostLabel(room, { capital: true })} takes a forced key -- alarm flagged, ice hunting.`);
280
+ }
281
+ lines.push(...godLines);
282
+ this.scene.updateStatus();
283
+ return lines.join('\n');
284
+ }
285
+ // Three marks: the node stops asking who you are.
286
+ //
287
+ // WHAT THIS NO LONGER BUYS: the room's maglocks. Canon has each
288
+ // slaved device as its own icon with its own marks -- Data Trails
289
+ // p.87-88 works the example, where a decker already standing
290
+ // inside a host still has to Hack on the Fly the door before a
291
+ // Control Device action can open it. Owning the host is not
292
+ // owning the door. `hack <lock>` from in here is that action.
293
+ //
294
+ // The host's own FILES do still open with it, and that is a
295
+ // deliberate line rather than an oversight: they are the host's
296
+ // own contents, not devices slaved to it, and the book's worked
297
+ // example is about a door. If that should decompose too it is a
298
+ // content question, and it is named here rather than quietly
299
+ // decided.
197
300
  room.hostCracked = true;
198
301
  const vaultedFiles = room.host.files();
199
302
  // WHAT THE CRACK ACTUALLY BOUGHT, asked of the same helper snoop
@@ -202,11 +305,32 @@ export class HackCommand extends BypassCommand {
202
305
  // the state the player is now standing in, not the one they left.
203
306
  const feedsNow = canSnoopFeeds(this.rooms ?? {}, room, this.actor);
204
307
  const lines = [`You're in. The host's sculpted security folds back layer by layer --`];
205
- if (lockedDoors.length > 0) {
206
- for (const door of lockedDoors) {
308
+ // WHICH DOORS ARE ICONS, AND WHICH ARE JUST THE HOST'S OWN WALLS.
309
+ //
310
+ // A door held by a DEVICE has that device's back-reference on it
311
+ // (Door.heldBy, written at build time) -- that device is a slaved
312
+ // icon with its own Device Rating, and canon makes it its own
313
+ // door: a decker inside the host still keys it separately (Data
314
+ // Trails p.87-88). Those are named, not released.
315
+ //
316
+ // A locked door with NO device behind it has no icon to mark and
317
+ // no other verb that opens it. Releasing those with the node is
318
+ // the engine's own reading of "the host runs this place" and is
319
+ // deliberately kept -- decomposing a door that has nothing to
320
+ // decompose into would strand it shut forever.
321
+ const iconLocks = room.openableDevices().filter(d => d.rating > 0 && d.opensExit);
322
+ const wallDoors = lockedDoors.filter(d => !d.heldBy);
323
+ if (wallDoors.length > 0) {
324
+ for (const door of wallDoors) {
207
325
  door.isLocked = false;
208
326
  }
209
- lines.push(` ${lockedDoors.length} maglock${lockedDoors.length === 1 ? '' : 's'} release${lockedDoors.length === 1 ? 's' : ''} in the MEAT world. The way is open, out there.`);
327
+ lines.push(` ${wallDoors.length} maglock${wallDoors.length === 1 ? '' : 's'} release${wallDoors.length === 1 ? 's' : ''} in the MEAT world -- the ones the node itself holds. The way is open, out there.`);
328
+ }
329
+ if (iconLocks.length > 0) {
330
+ // NOT RELEASED -- NAMED. Telling the player these are here, and
331
+ // that each is one more action, is the difference between a
332
+ // decomposition and a thing that quietly stopped working.
333
+ lines.push(` ${iconLocks.length} ${iconLocks.length === 1 ? 'lock hangs' : 'locks hang'} off it, still sealed -- each its own icon behind its own rating: ${iconLocks.map(d => d.name).join(', ')}.${hint(` ("hack <lock>" from in here keys one; the host's key is not the door's.)`)}`);
210
334
  }
211
335
  if (vaultedFiles.length > 0) {
212
336
  lines.push(` {cyan-fg}The data vault unseals -- ${vaultedFiles.map(i => i.name).join(', ')} spill${vaultedFiles.length === 1 ? 's' : ''} into the open.${hint(` Yours to "take".`)}{/cyan-fg}`);
@@ -314,7 +438,115 @@ export class HackCommand extends BypassCommand {
314
438
  * here alone -- partial canon reproduces the same report one layer
315
439
  * down.
316
440
  */
317
- async hostIntrusionRoll(mode, threshold, targetGrid) {
441
+ /**
442
+ * KEYING A SLAVED DEVICE -- the action the decomposition exists for
443
+ * (uMQAhaAysgaKpWFkn; Data Trails p.87-88).
444
+ *
445
+ * The decker is inside a host and names one of the locks hanging off
446
+ * it. That lock defends with its OWN Device Rating + Firewall, not the
447
+ * host's, and a mark on the host does nothing for it. One mark is
448
+ * enough to command a door open: opening one is a Free action, and
449
+ * p.238 puts a Free action at one mark.
450
+ *
451
+ * Returns null when the words name no device here, so hosts, PANs and
452
+ * the puzzle rail below are all reached untouched.
453
+ */
454
+ async tryDeviceHack(args, mode, declaredMarks) {
455
+ const actor = this.actor;
456
+ const host = actor.insideHost;
457
+ const named = args.join(' ').trim();
458
+ if (!host || !named)
459
+ return null;
460
+ const devices = host.openableDevices().filter(d => d.rating > 0);
461
+ if (devices.length === 0)
462
+ return null;
463
+ const raw = named.toLowerCase();
464
+ const matches = devices.filter(d => d.name.toLowerCase().includes(raw)
465
+ || (d.opensExit ?? '').toLowerCase() === raw
466
+ || d.description.toLowerCase().includes(raw));
467
+ if (matches.length !== 1)
468
+ return null;
469
+ const device = matches[0];
470
+ const held = device.marksBy.get(actor.name) ?? 0;
471
+ if (held >= MAX_MARKS) {
472
+ return `You already hold ${MAX_MARKS} marks on ${device.name} -- it answers to you as readily as to the house.`;
473
+ }
474
+ const burned = actor.burnedAttributeRefusal(mode === 'attack' ? 'attack' : 'sleaze');
475
+ if (burned)
476
+ return burned;
477
+ const declared = Math.min(declaredMarks, MAX_MARKS - held);
478
+ const declarePenalty = declarationPenalty(declared, actor.hasQuality(GO_BIG_QUALITY));
479
+ const silence = actor.matrixActionPenalty;
480
+ const limit = actor.matrixAttribute(mode === 'attack' ? 'attack' : 'sleaze');
481
+ const pool = mode === 'attack'
482
+ ? Math.max(1, actor.getAttackPool() + silence + actor.qualityBonus('attack') + declarePenalty)
483
+ : Math.max(1, actor.logic + actor.skillRating('hacking') + actor.qualityBonus('hacking') + actor.qualityBonus('sleaze')
484
+ + silence + actor.woundModifier - actor.sustainingPenalty + declarePenalty);
485
+ actor.performAction('works a slaved icon', device.name);
486
+ const roll = rollPool(pool, limit, { gremlins: actor.deckGremlins });
487
+ const defense = deviceDefensePool(device);
488
+ const defenseRoll = rollPool(defense.pool);
489
+ const netHits = roll.hits - defenseRoll.hits;
490
+ if (this.scene.isHumanControlled(actor)) {
491
+ const declaring = declared > 1 ? ` for ${declared} marks (${declarePenalty})` : '';
492
+ this.logger.meta(`${mode === 'attack' ? 'Brute Force (attack)' : 'Hack on the Fly (sleaze)'} on ${device.name}${declaring}: ${formatRoll(roll)}`);
493
+ this.logger.meta(`${defense.label} (DR ${device.rating}): ${formatRoll(defenseRoll)} -- net ${netHits >= 0 ? '+' : ''}${netHits}`);
494
+ }
495
+ const godLines = this.godBill(overwatchFromDefense(defenseRoll.hits), `device intrusion (${mode})`);
496
+ if (netHits <= 0) {
497
+ if (mode === 'sleaze') {
498
+ // A blown Sleaze is NOTICED (p.236) -- and a slaved device that
499
+ // notices tells the host it hangs off.
500
+ host.hostAlert = true;
501
+ actor.sneaking = false;
502
+ this.scene.addWorldEvent(`${device.name} flags a bad handshake -- ${hostLabel(host, { capital: true })} is awake.`);
503
+ this.scene.updateStatus();
504
+ return [`${device.name} refuses the key and SAYS SO -- the node it answers to knows something is in here.`, ...godLines].join('\n');
505
+ }
506
+ return [`${device.name} holds against the smash -- its firewall never even flexes. Nobody upstairs noticed.`, ...godLines].join('\n');
507
+ }
508
+ const now = Math.min(MAX_MARKS, held + declared);
509
+ device.marksBy.set(actor.name, now);
510
+ this.logger.write(`Mark: ${actor.name} -> device ${device.name} (${now}/${MAX_MARKS}, ${mode}).`);
511
+ const lines = [`${device.name} takes your key -- ${now} of ${MAX_MARKS} mark${now === 1 ? '' : 's'} on it now.`];
512
+ // BRUTE FORCE BURNS WHAT IT FORCES (p.238): 1 DV per two full net
513
+ // hits, resisted by Device Rating + Firewall. Unlike a host, a
514
+ // device HAS something to take it -- so here the benefit lands.
515
+ if (mode === 'attack') {
516
+ const dv = bruteForceMatrixDv(netHits);
517
+ if (dv > 0) {
518
+ const resisted = Math.max(0, dv - rollPool(defense.pool).hits);
519
+ if (resisted > 0) {
520
+ device.takeBarrierDamage(resisted);
521
+ lines.push(` The forcing burns ${resisted} into its boards -- ${device.barrierSummary()}`);
522
+ if (device.isHoled)
523
+ lines.push(` It dies open. Whatever it was holding shut is not shut any more.`);
524
+ }
525
+ }
526
+ host.hostAlert = true;
527
+ actor.sneaking = false;
528
+ }
529
+ else {
530
+ const perception = freeMatrixPerceptionHits(netHits);
531
+ if (perception > 0)
532
+ lines.push(` {cyan-fg}And you read it on the way past -- ${perception} Matrix Perception hit${perception === 1 ? '' : 's'} of what it guards (p.240).{/cyan-fg}`);
533
+ }
534
+ // ONE MARK COMMANDS IT. Opening a door is a Free action, and p.238
535
+ // puts a Free action at one mark -- so the key IS the door, and
536
+ // there is no second roll to make.
537
+ if (now >= 1 && !device.isOpen()) {
538
+ // NAME ONLY A VERB THAT DISPATCHES. An earlier draft offered
539
+ // "control <device>", which is not a command this game has --
540
+ // caught by advertised-verbs-structured.test.ts, which exists for
541
+ // exactly that. `open` is the real one, and it is a MEAT verb: the
542
+ // key is placed from in here, the door swings out there.
543
+ lines.push(` That is enough to work it: ${device.opensExit ? `the ${device.opensExit} way` : device.name} answers to you now.${hint(` ("open ${device.opensExit ?? device.name}" once your body is back in the room.)`)}`);
544
+ }
545
+ this.scene.updateStatus();
546
+ return [...lines, ...godLines].join('\n');
547
+ }
548
+ async hostIntrusionRoll(mode, declared, room) {
549
+ const targetGrid = room.host?.grid;
318
550
  const grid = gridActionModifier(this.actor.currentGrid, !!this.actor.hostInside, targetGrid);
319
551
  let pool;
320
552
  // Running silent charges -2 on every Matrix action (canon p.235-236,
@@ -329,11 +561,27 @@ export class HackCommand extends BypassCommand {
329
561
  else {
330
562
  pool = Math.max(1, this.actor.logic + this.actor.skillRating('hacking') + this.actor.qualityBonus('hacking') + this.actor.qualityBonus('sleaze') + silence + this.actor.woundModifier - this.actor.sustainingPenalty + grid.total);
331
563
  }
564
+ // DECLARING FOR MORE COSTS DICE, BEFORE THE ROLL (p.238/p.240): -4
565
+ // for two marks, -10 for three, -6 for three with Go Big or Go Home
566
+ // (Data Trails p.44). This is the price of the one-action takeover
567
+ // the old flat threshold handed out for nothing.
568
+ const declarePenalty = declarationPenalty(declared, this.actor.hasQuality(GO_BIG_QUALITY));
569
+ pool = Math.max(1, pool + declarePenalty);
332
570
  const roll = rollPool(pool, limit, { gremlins: this.actor.deckGremlins });
571
+ // AND THE HOST ROLLS BACK. There was no defender here at all: a flat
572
+ // threshold stood in for the opposed test both actions are built on,
573
+ // which is also why GOD could only be billed a flat rate (there were
574
+ // no defence hits to count). See hostDefensePool on why the host's
575
+ // own pool is an engine ruling and not a page number.
576
+ const defense = hostDefensePool(room.host);
577
+ const defenseRoll = rollPool(defense.pool);
578
+ const netHits = roll.hits - defenseRoll.hits;
333
579
  if (this.scene.isHumanControlled(this.actor)) {
334
- this.logger.meta(`${mode === 'attack' ? 'Brute Force (attack)' : 'Hack on the Fly (sleaze)'}${gridNote(grid)}: ${formatRoll(roll)} (${threshold}+ to crack)`);
580
+ const declaring = declared > 1 ? ` for ${declared} marks (${declarePenalty})` : '';
581
+ this.logger.meta(`${mode === 'attack' ? 'Brute Force (attack)' : 'Hack on the Fly (sleaze)'}${declaring}${gridNote(grid)}: ${formatRoll(roll)}`);
582
+ this.logger.meta(`${defense.label}: ${formatRoll(defenseRoll)} -- net ${netHits >= 0 ? '+' : ''}${netHits}`);
335
583
  }
336
- return roll.hits >= threshold;
584
+ return { success: netHits > 0, netHits, defenseHits: defenseRoll.hits };
337
585
  }
338
586
  /**
339
587
  * The PAN duel: opposed roll, attacker's Logic + the better of Hacking
@@ -592,10 +840,7 @@ export class HackCommand extends BypassCommand {
592
840
  }
593
841
  else if (!target.arOffline) {
594
842
  target.arOffline = true;
595
- const partner = target.activeCallPartner;
596
- if (partner) {
597
- target.activeCallPartner = undefined;
598
- partner.activeCallPartner = undefined;
843
+ if (dropActiveCall(target)) {
599
844
  lines.push(` Their call drops mid-word.`);
600
845
  }
601
846
  lines.push(` IN. You cut ${target.name}'s AR overlay dead -- no tactical feed, no calls, until they reboot.`);
@@ -1 +1 @@
1
- {"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,24 @@
1
1
  import { Command, ICommand } from './command.js';
2
2
  /**
3
- * MARK (canon p.235-238, player go 2026-08-24): place a MAtrix
4
- * Recognition Key on an icon -- the room's host, or a meat presence's
5
- * PAN. The patient decker's whole craft: each mark SOFTENS the target
6
- * for you (hack.ts -- hosts crack at a lower threshold, PAN intrusions
7
- * gain +2 dice per mark; at ${MAX_MARKS} marks a host simply thinks
8
- * you belong). Same Attack/Sleaze fork as hack: bare "mark" rides
9
- * Sleaze (fail = you're NOTICED); "mark loud <target>" is Brute Force
10
- * (fail = unnoticed, the firewall bites). Same GOD bill either way.
11
- * Marks die with your persona: reboot, jack-out, or convergence wipes
12
- * every key you placed; a target's reboot shakes yours off it.
3
+ * THERE IS NO MARK ACTION (uMQAhaAysgaKpWFkn, pcampbell: "Marking is a
4
+ * symptom of either Brute Force [Attack] or Hack on the Fly [Sleaze] ...
5
+ * the way Mark is working, it's obfuscating the real actions").
6
+ *
7
+ * Canon, checked against the rulebooks rather than memory: SR5 has no
8
+ * standalone action that places a mark. Brute Force (p.238) and Hack on
9
+ * the Fly (p.240) are the only two, and a mark is what they leave behind.
10
+ *
11
+ * So this file no longer implements one. It used to carry its own copy of
12
+ * the pool, the fork, the GOD bill and the outcome prose -- the same roll
13
+ * hack.ts was making, kept in a second place where the two could drift.
14
+ * They did: on a host, `hack` bought the entire node on that roll and
15
+ * `mark` bought one increment, and which you got depended on the word you
16
+ * typed. That was the report.
17
+ *
18
+ * What survives is the INSPECTION -- "mark list" answers "what keys am I
19
+ * holding", which is a reasonable thing to ask and not an action at all.
20
+ * Everything else routes to the real verb and says its real name, so the
21
+ * vocabulary teaches the book instead of hiding it.
13
22
  */
14
23
  export declare class MarkCommand extends Command implements ICommand {
15
24
  protected static verb: string;