@maka/maka-cli 5.62.0 → 5.63.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 (64) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.d.ts +7 -4
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js +7 -9
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +7 -2
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +7 -2
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +6 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +56 -7
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +9 -2
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +30 -3
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +5 -3
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js +3 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.d.ts +8 -0
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +10 -2
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +11 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +49 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +181 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +6 -2
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +7 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/game.js +22 -16
  32. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +22 -0
  34. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +105 -4
  35. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +15 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +17 -0
  38. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +23 -4
  40. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +54 -8
  41. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +36 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +81 -8
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +7 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +34 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +19 -0
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +28 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.d.ts +33 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js +61 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +12 -11
  56. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  57. package/bundle/typescript/src/maka.js +26 -0
  58. package/bundle/typescript/src/maka.js.map +1 -1
  59. package/bundle/typescript/src/tools/sdk-loader/relocate.js +7 -0
  60. package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
  61. package/bundle/typescript/src/tools/self-spawn/self-spawn.d.ts +10 -0
  62. package/bundle/typescript/src/tools/self-spawn/self-spawn.js +68 -0
  63. package/bundle/typescript/src/tools/self-spawn/self-spawn.js.map +1 -0
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mark.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/mark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mark.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/mark.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@ export class OverwatchCommand extends Command {
29
29
  const sleazeEdge = actor.isTechnomancer()
30
30
  ? Math.floor(actor.resonance / 2)
31
31
  : (actor.activeDeck ?? deck)?.matrixEdge('sleaze') ?? 0;
32
- const mine = rollPool(Math.max(1, actor.logic + (skill > 0 ? skill : -1) + sleazeEdge + actor.woundModifier - actor.sustainingPenalty));
32
+ // The check is itself a Sleaze action, so silence taxes it too
33
+ // (canon p.235-236, Player.matrixActionPenalty).
34
+ const mine = rollPool(Math.max(1, actor.logic + (skill > 0 ? skill : -1) + sleazeEdge + actor.matrixActionPenalty + actor.woundModifier - actor.sustainingPenalty));
33
35
  const god = rollPool(6);
34
36
  if (this.scene.isHumanControlled(actor)) {
35
37
  this.logger.meta(`Check Overwatch (EW, sleaze): ${formatRoll(mine)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"overwatch.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/overwatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overwatch.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/overwatch.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,14 @@ import { Command, ICommand } from './command.js';
5
5
  * you -- including the fixer, so a job callback will not find you until
6
6
  * you go loud again. Toggling silent drops any call you're on. The HUD's
7
7
  * Link line tracks the state (see game.ts updateStatus).
8
+ *
9
+ * What silence COSTS and what it does NOT (canon p.235-236, checked
10
+ * 2026-08-27): it hides your icon -- finding you takes a Matrix
11
+ * Perception test first, then an Opposed test -- and it charges -2 dice
12
+ * on every Matrix action you take (Player.matrixActionPenalty), on top
13
+ * of the calls and the commlink initiative bonus this engine already
14
+ * takes. It does NOT blind you: your own AR overlay keeps painting,
15
+ * because AR is what you receive (p.229). See utilities/ar.ts arSightUp.
8
16
  */
9
17
  export declare class SilentCommand extends Command implements ICommand {
10
18
  protected static verb: string;
@@ -8,10 +8,18 @@ import { CALL_ICON, CALL_COLOR } from '../utilities/comm-style.js';
8
8
  * you -- including the fixer, so a job callback will not find you until
9
9
  * you go loud again. Toggling silent drops any call you're on. The HUD's
10
10
  * Link line tracks the state (see game.ts updateStatus).
11
+ *
12
+ * What silence COSTS and what it does NOT (canon p.235-236, checked
13
+ * 2026-08-27): it hides your icon -- finding you takes a Matrix
14
+ * Perception test first, then an Opposed test -- and it charges -2 dice
15
+ * on every Matrix action you take (Player.matrixActionPenalty), on top
16
+ * of the calls and the commlink initiative bonus this engine already
17
+ * takes. It does NOT blind you: your own AR overlay keeps painting,
18
+ * because AR is what you receive (p.229). See utilities/ar.ts arSightUp.
11
19
  */
12
20
  export class SilentCommand extends Command {
13
21
  static verb = 'silent';
14
- static description = 'Toggle your commlink broadcast: running silent means no calls in OR out (nobody can reach you -- not even the fixer) until you go loud again.';
22
+ static description = 'Toggle your commlink broadcast: running silent hides your icon -- no calls in OR out (nobody can reach you, not even the fixer), no commlink initiative bonus, and -2 dice on your own Matrix actions, until you go loud again. Your AR overlay keeps painting.';
15
23
  async execute(_args = []) {
16
24
  const actor = this.actor;
17
25
  // Your link's broadcast IS the Matrix connection -- killing it while
@@ -54,7 +62,7 @@ export class SilentCommand extends Command {
54
62
  // NOT {gray-fg} (standing ruling): blessed gray is ANSI
55
63
  // bright-black and vanishes on stock dark palettes. White is the
56
64
  // established neutral for mechanics text.
57
- return `{white-fg}${CALL_ICON} You kill your link's broadcast.${hangupNote} Running silent -- no calls in or out, and your AR overlay dies with it (no commlink initiative bonus) until you go loud${hint(` ("silent" again)`)}.{/white-fg}`;
65
+ return `{white-fg}${CALL_ICON} You kill your link's broadcast.${hangupNote} Running silent -- no calls in or out, no commlink initiative bonus, and -2 dice on everything you do on the grid while you're covering your own tracks. Your overlay keeps painting: silence is what you EMIT, not what you can see. Until you go loud${hint(` ("silent" again)`)}.{/white-fg}`;
58
66
  }
59
67
  }
60
68
  //# sourceMappingURL=silent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"silent.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/silent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC9B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,WAAW,GAAG,+IAA+I,CAAC;IAE/K,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,8FAA8F,CAAC;QACxG,CAAC;QAED,MAAM,UAAU,GACd,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI;YACtC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,kCAAkC,CAAC;QAC5C,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;YAC5B,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,wBAAwB,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM;gBAAE,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,OAAO,IAAI,UAAU,OAAO,SAAS,6EAA6E,UAAU,MAAM,CAAC;QACrI,CAAC;QAED,wDAAwD;QACxD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACpC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,0BAA0B,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAC1F,UAAU,GAAG,kBAAkB,OAAO,CAAC,IAAI,kBAAkB,CAAC;QAChE,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxD,wDAAwD;QACxD,iEAAiE;QACjE,0CAA0C;QAC1C,OAAO,aAAa,SAAS,mCAAmC,UAAU,2HAA2H,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;IAC/O,CAAC"}
1
+ {"version":3,"file":"silent.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/silent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC9B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,WAAW,GAAG,iQAAiQ,CAAC;IAEjS,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,8FAA8F,CAAC;QACxG,CAAC;QAED,MAAM,UAAU,GACd,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI;YACtC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,kCAAkC,CAAC;QAC5C,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;YAC5B,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,wBAAwB,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM;gBAAE,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,OAAO,IAAI,UAAU,OAAO,SAAS,6EAA6E,UAAU,MAAM,CAAC;QACrI,CAAC;QAED,wDAAwD;QACxD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACpC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,0BAA0B,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAC1F,UAAU,GAAG,kBAAkB,OAAO,CAAC,IAAI,kBAAkB,CAAC;QAChE,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM;YAAE,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxD,wDAAwD;QACxD,iEAAiE;QACjE,0CAA0C;QAC1C,OAAO,aAAa,SAAS,mCAAmC,UAAU,0PAA0P,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;IAC9W,CAAC"}
@@ -56,7 +56,17 @@ export class SolveCommand extends Command {
56
56
  this.logger.write(`${this.actor.name} attempted to solve ${targets[0].puzzle.name} with result false`);
57
57
  this.logger.write(`SolveCommand: ${firstResult.message}`);
58
58
  this.actor.performAction('solve', firstResult.message);
59
- return firstResult.message;
59
+ // NAME THE OTHER ROUTE (blocker 2026-08-27): a wrong answer was the
60
+ // last dead-end refusal left on a barrier -- the same silence go.ts
61
+ // and unlock.ts had. A player who was handed a bad code has nowhere
62
+ // to go from "that's not it"; the risky route is exactly what they
63
+ // need to hear about. Only offered while it's actually available:
64
+ // a burned route is not a suggestion, it's a closed door.
65
+ const alt = targets.find(t => !t.puzzle.bypassBurned && t.puzzle.getBypassVerb());
66
+ const altNote = alt
67
+ ? `\n(There's another way at this one -- "${alt.puzzle.getBypassVerb()}" it. Riskier, and it gets exactly one try.)`
68
+ : '';
69
+ return firstResult.message + altNote;
60
70
  }
61
71
  }
62
72
  //# sourceMappingURL=solve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solve.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/solve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solve.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/solve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Command, ICommand } from './command.js';
2
+ /**
3
+ * TAP -- THE DIRECT CONNECTION (backlog items 9 and 10, Niko, session
4
+ * 2026-08-27T02-07-12-404Z: "check the rules on this -- shouldn't I be
5
+ * able to get at the camera?" and "I should be able to get at the host
6
+ * through the camera"). Both are the same mechanic seen from each end,
7
+ * and canon says yes to both. RAG-checked against the books 2026-08-27:
8
+ *
9
+ * - A camera on a facility's network is a DEVICE SLAVED to that host
10
+ * (a WAN). Slaved devices normally defend with the BETTER of their
11
+ * own rating and their master's -- which is why hosts are hard
12
+ * (SR5 core p.233, "PANs and WANs").
13
+ * - EXCEPT against a direct connection. "If a slaved device is under
14
+ * attack via a direct connection, it cannot use its master's ratings
15
+ * to defend itself" -- it falls back on its own weak ones (p.233,
16
+ * restated in the tactics reference p.354-355). That is the whole
17
+ * trick: you are not out-fencing the host, you are refusing to fight
18
+ * it.
19
+ * - A direct connection is a CABLE. You plug into the device's
20
+ * universal data connector; every cyberdeck and datajack ships with
21
+ * a meter of retractable microfilament, or buy cable at ~5Y/m (p.232
22
+ * "Direct Connections"). So the price is physical: your body, in the
23
+ * room, in reach of the lens. See directConnectionBlocker.
24
+ * - And the payoff Niko asked for: "if you get a mark on a slave you
25
+ * also get a mark on the master" (p.233). One mark on the camera IS
26
+ * one mark on the host. Data Trails p.87-88 ("A Lesson in Host
27
+ * Invasion") walks exactly this play: direct-connect a slaved
28
+ * terminal, Hack on the Fly for a mark, and that mark is what Enter
29
+ * Host spends.
30
+ *
31
+ * WHAT THIS IS NOT: a skeleton key. It buys ONE mark, not a cracked
32
+ * host. The marks still have to add up (hack.ts: each one lowers the
33
+ * crack threshold, and at MAX_MARKS the host opens like you belong),
34
+ * GOD still bills the intrusion (p.231-232), and a blown sleaze still
35
+ * puts the walls up. What you are buying with the cable is a fight
36
+ * against a camera's ratings instead of a host's -- and the cost is
37
+ * that you had to walk in and touch it.
38
+ *
39
+ * The one place it beats the wireless road outright is an AIR-GAPPED
40
+ * host: it has no door onto the grid at all (planes.canReachHost), but
41
+ * its cameras are wired to it, and a cable is a hard line. Physical
42
+ * infiltration is supposed to be the answer to an air gap, and now it
43
+ * is one from the camera as well as from the terminal.
44
+ */
45
+ export declare class TapCommand extends Command implements ICommand {
46
+ protected static verb: string;
47
+ protected static description: string;
48
+ execute(args?: string[]): Promise<string>;
49
+ }
@@ -0,0 +1,181 @@
1
+ import { Command } from './command.js';
2
+ import { rollPool, formatRoll } from '../utilities/dice.js';
3
+ import { accrueOverwatch } from '../utilities/overwatch.js';
4
+ import { MAX_MARKS } from '../utilities/marks.js';
5
+ import { isWatched, cameraMasterHost, directConnectionBlocker } from '../utilities/surveillance.js';
6
+ import { hint } from '../utilities/hints.js';
7
+ /**
8
+ * TAP -- THE DIRECT CONNECTION (backlog items 9 and 10, Niko, session
9
+ * 2026-08-27T02-07-12-404Z: "check the rules on this -- shouldn't I be
10
+ * able to get at the camera?" and "I should be able to get at the host
11
+ * through the camera"). Both are the same mechanic seen from each end,
12
+ * and canon says yes to both. RAG-checked against the books 2026-08-27:
13
+ *
14
+ * - A camera on a facility's network is a DEVICE SLAVED to that host
15
+ * (a WAN). Slaved devices normally defend with the BETTER of their
16
+ * own rating and their master's -- which is why hosts are hard
17
+ * (SR5 core p.233, "PANs and WANs").
18
+ * - EXCEPT against a direct connection. "If a slaved device is under
19
+ * attack via a direct connection, it cannot use its master's ratings
20
+ * to defend itself" -- it falls back on its own weak ones (p.233,
21
+ * restated in the tactics reference p.354-355). That is the whole
22
+ * trick: you are not out-fencing the host, you are refusing to fight
23
+ * it.
24
+ * - A direct connection is a CABLE. You plug into the device's
25
+ * universal data connector; every cyberdeck and datajack ships with
26
+ * a meter of retractable microfilament, or buy cable at ~5Y/m (p.232
27
+ * "Direct Connections"). So the price is physical: your body, in the
28
+ * room, in reach of the lens. See directConnectionBlocker.
29
+ * - And the payoff Niko asked for: "if you get a mark on a slave you
30
+ * also get a mark on the master" (p.233). One mark on the camera IS
31
+ * one mark on the host. Data Trails p.87-88 ("A Lesson in Host
32
+ * Invasion") walks exactly this play: direct-connect a slaved
33
+ * terminal, Hack on the Fly for a mark, and that mark is what Enter
34
+ * Host spends.
35
+ *
36
+ * WHAT THIS IS NOT: a skeleton key. It buys ONE mark, not a cracked
37
+ * host. The marks still have to add up (hack.ts: each one lowers the
38
+ * crack threshold, and at MAX_MARKS the host opens like you belong),
39
+ * GOD still bills the intrusion (p.231-232), and a blown sleaze still
40
+ * puts the walls up. What you are buying with the cable is a fight
41
+ * against a camera's ratings instead of a host's -- and the cost is
42
+ * that you had to walk in and touch it.
43
+ *
44
+ * The one place it beats the wireless road outright is an AIR-GAPPED
45
+ * host: it has no door onto the grid at all (planes.canReachHost), but
46
+ * its cameras are wired to it, and a cable is a hard line. Physical
47
+ * infiltration is supposed to be the answer to an air gap, and now it
48
+ * is one from the camera as well as from the terminal.
49
+ */
50
+ export class TapCommand extends Command {
51
+ static verb = 'tap';
52
+ static description = 'Cable into a camera you are standing next to -- a DIRECT CONNECTION (p.232). A slaved device can\'t hide behind its host\'s ratings against a cable, so the camera fights you with its own; and a mark on a slaved device is a mark on the host it answers to (p.233), which is your way in. Needs your BODY in the room and a deck in hand. "tap" is sleaze (fail = noticed); "tap loud" is brute force (fail = unnoticed, the firewall bites).';
53
+ async execute(args = []) {
54
+ const actor = this.actor;
55
+ const room = actor.currentLocation;
56
+ const rooms = this.rooms ?? {};
57
+ // Same mode vocabulary as hack.ts and mark.ts -- one fork, learned once.
58
+ const words = (args ?? []).map(w => w.toLowerCase());
59
+ const mode = words.some(w => /^(loud|force|brute|attack)$/.test(w)) ? 'attack' : 'sleaze';
60
+ if (!isWatched(room)) {
61
+ return `No cameras in here to cable into.${hint(` (Your overlay tags them "◎ Camera cluster" when there are.)`)}`;
62
+ }
63
+ // The refusals TEACH (item 9 was a player asking whether the rules
64
+ // allowed this at all) -- each one names what a direct connection
65
+ // actually requires instead of just saying no.
66
+ const blocked = directConnectionBlocker(actor, room);
67
+ if (blocked)
68
+ return blocked;
69
+ const host = cameraMasterHost(rooms, room);
70
+ if (!host) {
71
+ return `You get the housing open and find... a wire to a box on the wall. These are dumb recorders -- no host on this site for them to answer to, nothing on the other end of your cable but tape. ${hint(`Whatever they saw, they saw locally.`)}`;
72
+ }
73
+ if (host.hostCracked) {
74
+ return `You could -- but the ${host.name} host is already cracked wide open, and these lenses answer to you through it. Save the cable.${hint(` ("snoop ${room.name}" rides the feeds.)`)}`;
75
+ }
76
+ const held = host.hostMarksBy.get(actor.name) ?? 0;
77
+ if (held >= MAX_MARKS) {
78
+ return `You already hold ${MAX_MARKS} marks on the ${host.name} host -- it thinks you belong. Another key would not fit on the ring.${hint(` ("hack" walks you in.)`)}`;
79
+ }
80
+ // THE ROLL. The camera defends with its OWN ratings, not the host's
81
+ // (p.233) -- that is what the cable bought -- so the threshold sits
82
+ // a full step below hack.ts's host intrusion (2, or 3 on alert).
83
+ // A site with its walls up is still harder: an alerted host is
84
+ // watching its own edges.
85
+ const threshold = host.hostAlert ? 2 : 1;
86
+ const silence = actor.matrixActionPenalty;
87
+ let pool;
88
+ if (mode === 'attack') {
89
+ pool = Math.max(1, actor.logic + actor.skillRating('hacking') + (actor.getCyberdeck()?.matrixEdge('attack') ?? 0) + actor.qualityBonus('hacking') + silence + actor.woundModifier - actor.sustainingPenalty);
90
+ }
91
+ else {
92
+ const sleazeEdge = actor.isTechnomancer()
93
+ ? Math.floor(actor.resonance / 2)
94
+ : actor.getCyberdeck()?.matrixEdge('sleaze') ?? 0;
95
+ pool = Math.max(1, actor.logic + actor.skillRating('hacking') + sleazeEdge + actor.qualityBonus('hacking') + silence + actor.woundModifier - actor.sustainingPenalty);
96
+ }
97
+ actor.performAction('cables into the cameras', `${room.name} -- a hand on the housing, a filament out of their deck`);
98
+ const roll = rollPool(pool);
99
+ if (this.scene.isHumanControlled(actor)) {
100
+ this.logger.meta(`Direct connection, camera (${mode === 'attack' ? 'brute force' : 'sleaze'}): ${formatRoll(roll)} (${threshold}+ -- its OWN ratings, not the host's)`);
101
+ }
102
+ this.logger.write(`${actor.name} direct-connected to ${room.name}'s cameras (${mode}): ${roll.hits} vs ${threshold}, master=${host.name}.`);
103
+ // GOD counts it either way (p.231-232) -- the same flat 2 a host
104
+ // intrusion bills, because a threshold roll has no defender hits to
105
+ // count. A cable is quieter than the grid, not invisible to it.
106
+ const bill = accrueOverwatch(this.scene, actor, 2, `direct connection (camera, ${mode})`);
107
+ const godLines = bill.lines;
108
+ if (roll.hits < threshold) {
109
+ if (mode === 'sleaze') {
110
+ // p.236: a blown Sleaze action is NOTICED. The camera screams to
111
+ // its master, which is the same alarm hack.ts raises.
112
+ host.hostAlert = true;
113
+ actor.sneaking = false;
114
+ this.scene.addWorldEvent(`Something forced the cameras in ${room.name} -- the ${host.name} host flagged an intrusion and its ice is hunting.`);
115
+ this.scene.updateStatus();
116
+ return [
117
+ `The housing's tamper line trips under your fingers.`,
118
+ ` The camera reports itself -- and the ${host.name} host believes it. Walls UP: it holds a mark on your persona now, everything guarding this place knows someone is on the wire, and you are no longer moving unnoticed.`,
119
+ ...godLines,
120
+ ].join('\n');
121
+ }
122
+ // p.236: a failed Attack action is never noticed -- the firewall
123
+ // just chews on whatever is holding the other end of the cable.
124
+ const dealt = Math.max(0, 2 - rollPool(actor.getSoakPool()).hits);
125
+ const lines = [`You put your shoulder into it and the camera just... doesn't give.`];
126
+ if (dealt > 0) {
127
+ if (actor.simMode === 'hot' || actor.isTechnomancer()) {
128
+ actor.takeStun(dealt);
129
+ lines.push(` The feedback comes straight back up the wire -- ${dealt} stun: ${actor.stunSummary()}`);
130
+ }
131
+ else {
132
+ actor.takeMatrixDamage(dealt);
133
+ lines.push(` Your deck takes the bite -- ${dealt} box${dealt === 1 ? '' : 'es'}: ${actor.matrixSummary()}`);
134
+ }
135
+ }
136
+ else {
137
+ lines.push(` You shed the counterstrike and pull the filament back.`);
138
+ }
139
+ lines.push(` Nothing upstairs noticed: a smash that never lands leaves nothing to report.`);
140
+ lines.push(...godLines);
141
+ this.scene.updateStatus();
142
+ return lines.join('\n');
143
+ }
144
+ // IN. Canon p.233: the mark on the slave IS a mark on the master.
145
+ const now = held + 1;
146
+ host.hostMarksBy.set(actor.name, now);
147
+ if (mode === 'attack') {
148
+ actor.sneaking = false;
149
+ this.scene.addWorldEvent(`${actor.name} forced the cameras in ${room.name} -- the ${host.name} host felt it go.`);
150
+ }
151
+ this.logger.write(`${actor.name} now holds ${now} mark(s) on ${host.name} via the ${room.name} cameras.`);
152
+ const lines = [
153
+ `{cyan-fg}The filament finds the connector and the camera stops being a camera -- it's a device, and it's talking to you.{/cyan-fg}`,
154
+ ` {cyan-fg}It never gets to hide behind the ${host.name} host: a cable doesn't ask the network for permission, so the lens has to defend itself with what a lens has. It doesn't have much.{/cyan-fg}`,
155
+ ` {cyan-fg}MARK PLACED -- and it lands on the host too. The camera answers to ${host.name}, and anything ${host.name} trusts to speak for it just handed you a key. [${now}/${MAX_MARKS}]{/cyan-fg}`,
156
+ ];
157
+ if (mode === 'attack') {
158
+ lines.push(` The housing is visibly forced -- the host FELT that one, even if nothing saw your face.`);
159
+ }
160
+ else {
161
+ lines.push(` Nothing logged, nothing flagged. You were never here.`);
162
+ }
163
+ if (host === room) {
164
+ lines.push(` {cyan-fg}${now >= MAX_MARKS
165
+ ? `The host thinks you belong now -- "hack" walks straight in.`
166
+ : `The ${host.name} host cracks easier with every key you hold${hint(` -- "jack in" and "hack", or come back for another lens`)}.`}{/cyan-fg}`);
167
+ }
168
+ else {
169
+ lines.push(` {cyan-fg}These lenses ride the site network, so the key fits the ${host.name} host${hint(` -- "jack in", "go ${host.name}", "hack"`)}.{/cyan-fg}`);
170
+ }
171
+ // A mark is all canSnoopFeeds ever wanted (surveillance.ts).
172
+ lines.push(` {cyan-fg}And the eyes are half yours already${hint(` -- jacked in, "snoop <room>" rides any feed on this network`)}.{/cyan-fg}`);
173
+ if (host.nodeAccess === 'wired') {
174
+ lines.push(` {cyan-fg}Worth knowing: that host is AIR-GAPPED. No persona was ever going to drift up to it. This cable is the only door it has, and you're holding a key to it.{/cyan-fg}`);
175
+ }
176
+ lines.push(...godLines);
177
+ this.scene.updateStatus();
178
+ return lines.join('\n');
179
+ }
180
+ }
181
+ //# sourceMappingURL=tap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/tap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAO;IAC3B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,WAAW,GAAG,kbAAkb,CAAC;IAEld,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAE/B,yEAAyE;QACzE,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAwB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE/G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,oCAAoC,IAAI,CAAC,8DAA8D,CAAC,EAAE,CAAC;QACpH,CAAC;QAED,mEAAmE;QACnE,kEAAkE;QAClE,+CAA+C;QAC/C,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,8LAA8L,IAAI,CAAC,sCAAsC,CAAC,EAAE,CAAC;QACtP,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,wBAAwB,IAAI,CAAC,IAAI,iGAAiG,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,qBAAqB,CAAC,EAAE,CAAC;QAC9L,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACtB,OAAO,oBAAoB,SAAS,iBAAiB,IAAI,CAAC,IAAI,wEAAwE,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC1K,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,+DAA+D;QAC/D,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC;QAC1C,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/M,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,EAAE;gBACvC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBACjC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxK,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,IAAI,yDAAyD,CAAC,CAAC;QACtH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,uCAAuC,CAAC,CAAC;QAC1K,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,eAAe,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,SAAS,YAAY,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE5I,iEAAiE;QACjE,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,8BAA8B,IAAI,GAAG,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,iEAAiE;gBACjE,sDAAsD;gBACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mCAAmC,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,oDAAoD,CAAC,CAAC;gBAC/I,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO;oBACL,qDAAqD;oBACrD,0CAA0C,IAAI,CAAC,IAAI,wKAAwK;oBAC3N,GAAG,QAAQ;iBACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YACD,iEAAiE;YACjE,gEAAgE;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,CAAC,oEAAoE,CAAC,CAAC;YACrF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;oBACtD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,qDAAqD,KAAK,UAAU,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACxG,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC9B,KAAK,CAAC,IAAI,CAAC,iCAAiC,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC/G,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACzE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,0BAA0B,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,cAAc,GAAG,eAAe,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;QAE1G,MAAM,KAAK,GAAG;YACZ,oIAAoI;YACpI,+CAA+C,IAAI,CAAC,IAAI,+IAA+I;YACvM,iFAAiF,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,mDAAmD,GAAG,IAAI,SAAS,aAAa;SACtM,CAAC;QACF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;QAC1G,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,SAAS;gBACvC,CAAC,CAAC,6DAA6D;gBAC/D,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,8CAA8C,IAAI,CAAC,yDAAyD,CAAC,GAAG,YAAY,CAAC,CAAC;QACpJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,sEAAsE,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,CAAC;QACnK,CAAC;QACD,6DAA6D;QAC7D,KAAK,CAAC,IAAI,CAAC,iDAAiD,IAAI,CAAC,8DAA8D,CAAC,aAAa,CAAC,CAAC;QAC/I,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,+KAA+K,CAAC,CAAC;QAC9L,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Door } from '../models/door.js';
2
2
  import { Command } from './command.js';
3
- import { exitSpot, ensureAtSpot } from '../utilities/spots.js';
3
+ import { exitSpot, ensureAtSpot, lockedRouteHint } from '../utilities/spots.js';
4
4
  export class UnlockCommand extends Command {
5
5
  static verb = 'unlock';
6
6
  static description = 'Unlock a door.';
@@ -62,7 +62,11 @@ export class UnlockCommand extends Command {
62
62
  }
63
63
  }
64
64
  this.logger.write(`UnlockCommand: ${this.actor.name} does not have the required key (${requiredKeyOrSolution}) for "${target}".`);
65
- return crossNote + `You don't have the key or solution to unlock this door.`;
65
+ // Same first-contact problem go.ts had (blocker 2026-08-27): a flat
66
+ // "you don't have the key" in front of a barrier that advertises a
67
+ // workable route reads as the door refusing to acknowledge itself.
68
+ // Silent on a plain keyed door, which genuinely has no other way.
69
+ return crossNote + `You don't have the key or solution to unlock this door.${lockedRouteHint(door)}`;
66
70
  }
67
71
  }
68
72
  //# sourceMappingURL=unlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/unlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/unlock.ts"],"names":[],"mappings":"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"}
@@ -478,6 +478,13 @@ For EVERY npc in the skeleton, expand its "concept":
478
478
  "description" should read like a client rep's dossier -- the employer's deniable face, a
479
479
  Johnson buying deniability. When referring to places, use EXACT room names from the
480
480
  skeleton -- never invent locations.
481
+ NEVER write a CREDENTIAL into "dialogue" or "description" -- no door code, safe
482
+ combination, passphrase, or key-word, not even a hint at the digits. This stage runs in
483
+ PARALLEL with the stage that writes the pass each barrier actually accepts, so you
484
+ cannot see those passes, and any credential you write here is one you invented: the lock
485
+ will refuse it and the player will burn a run trusting it. An NPC may say that a code
486
+ EXISTS, who holds it, or where it's written down -- never what it is. The engine hands
487
+ the real pass to whoever genuinely holds it, at runtime (see npc.ts).
481
488
  - "combat": OPTIONAL attribute block -- omit for anyone who'd never fight. Each attribute
482
489
  1-8 (soft civilian 1-2, street-level 3-4, hardened enforcer 5-6, elite 7-8):
483
490
  { "body", "agility", "reaction", "combatSkill", "strength"?, "willpower"?, "logic"?,