@maka/maka-cli 5.117.0 → 5.118.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 (88) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +6 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +3 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +3 -6
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/download.js +4 -3
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/download.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +10 -8
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -3
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +14 -11
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.d.ts +16 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +95 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -0
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +3 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js +5 -7
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +24 -4
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -4
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +2 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +8 -5
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +2 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +20 -2
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +2 -5
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +1 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +2 -0
  45. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +4 -0
  47. package/bundle/typescript/src/commands/game/sideQuest/game.js +40 -13
  48. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/models/host.d.ts +80 -0
  50. package/bundle/typescript/src/commands/game/sideQuest/models/host.js +91 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/models/host.js.map +1 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +45 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +79 -35
  54. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +40 -9
  56. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +73 -12
  57. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +3 -0
  59. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -0
  60. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +2 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +2 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +30 -10
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js +64 -11
  67. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js.map +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js +2 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js.map +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +11 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +56 -8
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.d.ts +72 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js +100 -0
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js.map +1 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.d.ts +9 -0
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js +98 -0
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js.map +1 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +3 -2
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +26 -6
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.d.ts +62 -0
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js +97 -0
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js.map +1 -0
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +10 -0
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +24 -19
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  88. package/package.json +1 -1
@@ -34,7 +34,11 @@ export function setActorRoleResolver(fn) {
34
34
  }
35
35
  export function buildConditionReport(player, deps) {
36
36
  const { saveSlug, arSightUp } = deps;
37
- const deck = player.activeDeck ?? player.getCyberdeck();
37
+ // BRICKED INCLUDED (web report 2026-09-02: "my deck got bricked, but its
38
+ // status still says 4/12"): a forced dump clears activeDeck and
39
+ // getCyberdeck() hides a bricked deck, so the beat read nothing and the
40
+ // sheet froze on the last number. Status reads getAnyCyberdeck.
41
+ const deck = player.activeDeck ?? player.getAnyCyberdeck();
38
42
  return {
39
43
  slug: saveSlug(player.name),
40
44
  damageTaken: player.damageTaken,
@@ -47,6 +51,12 @@ export function buildConditionReport(player, deps) {
47
51
  // Where the meat sits while the persona rides the grid (web accepts
48
52
  // since 2026-09-02): "jacked in from Your Hideout". Absent in the meat.
49
53
  bodyRoom: player.plane === 'matrix' ? player.bodyRoom?.name : undefined,
54
+ // WHERE THE PERSONA IS (contract 2026-09-02, web accepts first): inside a
55
+ // host or on a grid, by name; absent in the meat. `room` above is the
56
+ // body's on every plane.
57
+ matrix: player.plane === 'matrix'
58
+ ? { grid: player.currentGrid?.name, host: player.hostInside?.name }
59
+ : undefined,
50
60
  simMode: player.simMode,
51
61
  stance: player.autoStance,
52
62
  drawn: player.weaponDrawn,
@@ -58,6 +68,13 @@ export function buildConditionReport(player, deps) {
58
68
  // accepts since 2026-09-02): Quickening, dumpshock and open astral senses
59
69
  // all bill through it, so the web never re-derives it.
60
70
  sustainingPenalty: player.sustainingPenalty,
71
+ // Hostile MARKs standing on the persona (contract 2026-09-02, web accepted
72
+ // first): the sum of what other personas hold on this PAN, read at fire
73
+ // time -- placements, the reboot clear and convergence all move it.
74
+ panMarks: [...player.panMarksBy.values()].reduce((n, v) => n + v, 0),
75
+ // The marks the host you are INSIDE holds on you (its own ledger, Host.marksOn);
76
+ // 0 outside a host -- the web gates it on the matrix plane.
77
+ hostMarksOnYou: player.hostInside?.marksOn.get(player.name) ?? 0,
61
78
  deckPrograms: deck?.loadedPrograms ?? [],
62
79
  // THE DECK'S OWN STAT LINE, verbatim (contract addition 2026-09-02):
63
80
  // the web shows programs live but its stat line came only from
@@ -81,7 +98,12 @@ export function buildConditionReport(player, deps) {
81
98
  // WHAT YOU CAN SEE, not who is there (user 2026-09-02: cover and
82
99
  // line of sight): the room panel's own rule, so a lurker behind good
83
100
  // cover you have not picked out is no dot on the web either.
101
+ // BODIES ONLY (session log 2026-09-02: IC actors listed as dots with a
102
+ // guessed role): a construct on the matrix plane -- IC, sprite, agent --
103
+ // has no body in the room. Another player's body still shows even
104
+ // while their persona rides the grid.
84
105
  actors: (player.currentLocation ? visibleActorsIn(player.currentLocation, player) : [])
106
+ .filter(a => !(a.plane === 'matrix' && a !== player && (a.icHost !== undefined || a.companionKind === 'sprite' || a.companionKind === 'agent')))
85
107
  .filter(a => a !== player && !a.isIncapacitated())
86
108
  .slice(0, 24)
87
109
  .map(a => ({
@@ -108,8 +130,29 @@ function noteRoster(report) {
108
130
  }
109
131
  catch { /* no session */ }
110
132
  }
133
+ /**
134
+ * Every field added to the beat since the 5.104 core, newest last. A beat
135
+ * refused by the site's check is retried without them -- see the catch in
136
+ * reportConditionSoon. When the site has accepted a field for good it can
137
+ * move above this line; nothing else reads the list.
138
+ */
139
+ const ADDITIVE_FIELDS = [
140
+ 'ar', 'actors', 'deckLine', 'deckDamage', 'astralPerceiving', 'bodyRoom', 'sustainingPenalty',
141
+ 'matrix', 'panMarks', 'hostMarksOnYou',
142
+ ];
111
143
  /** Refusal reasons already written to the session log -- one line each. */
112
- const announcedRefusals = new Set();
144
+ const announcedRefusals = new Map();
145
+ /** One line the first time a reason appears, then every 25th, so a long silent stretch shows in the log. */
146
+ function noteRefusal(why) {
147
+ const n = (announcedRefusals.get(why) ?? 0) + 1;
148
+ announcedRefusals.set(why, n);
149
+ if (n === 1 || n % 25 === 0) {
150
+ try {
151
+ Logger.getInstance().write(`condition-report: beat refused -- ${why}${n > 1 ? ` (x${n})` : ''}`);
152
+ }
153
+ catch { /* no session */ }
154
+ }
155
+ }
113
156
  export function reportConditionSoon(player) {
114
157
  // Before the TIMER, not just before the call: a scheduled beat firing
115
158
  // after a Jest file finished lazy-imported into a torn-down
@@ -139,20 +182,30 @@ export function reportConditionSoon(player) {
139
182
  // beat fires next. All read at FIRE time, like position.
140
183
  const report = buildConditionReport(player, { saveSlug, arSightUp });
141
184
  noteRoster(report);
142
- await HubLink.call(REPORT_METHOD, report);
185
+ try {
186
+ await HubLink.call(REPORT_METHOD, report);
187
+ }
188
+ catch (err) {
189
+ // A CONTRACT GAP MUST NOT BLACK OUT THE SHEET (session log 2026-09-02:
190
+ // one "Match failed [400]" at 21:15:59, then every beat refused in
191
+ // silence). The server's check refuses a field it has not learned
192
+ // yet -- a local build ahead of the site's deploy. Retry once with the
193
+ // additive fields stripped; the core beat is the same contract the
194
+ // sheet has honoured since 5.104.
195
+ if (!/Match failed/i.test(err instanceof Error ? err.message : String(err)))
196
+ throw err;
197
+ const core = { ...report };
198
+ for (const k of ADDITIVE_FIELDS)
199
+ delete core[k];
200
+ await HubLink.call(REPORT_METHOD, core);
201
+ noteRefusal('Match failed -- beat landed WITHOUT the additive fields (the site has not accepted one of them yet)');
202
+ }
143
203
  })().catch((err) => {
144
204
  // Still fire-and-forget -- but not INVISIBLE. A refused beat used to
145
205
  // vanish here, and "the deck line isn't syncing" could not be told
146
206
  // apart from "no beat was sent" (web report 2026-09-02). One line per
147
207
  // distinct reason in the session log; the game itself never hears it.
148
- const why = err instanceof Error ? err.message : String(err);
149
- if (!announcedRefusals.has(why)) {
150
- announcedRefusals.add(why);
151
- try {
152
- Logger.getInstance().write(`condition-report: beat refused -- ${why}`);
153
- }
154
- catch { /* no session */ }
155
- }
208
+ noteRefusal(err instanceof Error ? err.message : String(err));
156
209
  });
157
210
  }, COALESCE_MS);
158
211
  pending.unref?.();
@@ -1 +1 @@
1
- {"version":3,"file":"condition-report.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/condition-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition-report.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/condition-report.ts"],"names":[],"mappings":"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"}
@@ -89,10 +89,11 @@ export function hostLine(room, actor) {
89
89
  : 'sealed';
90
90
  const alert = room.hostAlert && !room.hostSanctioned ? ', walls UP' : '';
91
91
  const over = hostOver(gridVicinity(actor)) === room ? ', over you' : '';
92
+ const onGrid = room.host?.grid ? ` on ${room.host.grid.name}` : '';
92
93
  // A haven shows no rating and no eyes (jackpoint.ts): it is not a
93
94
  // thing you crack, so the numbers you would crack it with stay off.
94
95
  const rating = room.hostSanctioned ? '' : ` [HR ${room.hostRating}]`;
95
- return `${inside ? '▣' : '●'} ${hostLabel(room, { capital: true })}${rating} -- ${standing}${alert}${over}${inside ? ' -- INSIDE' : ''}`;
96
+ return `${inside ? '▣' : '●'} ${hostLabel(room, { capital: true })}${rating}${onGrid} -- ${standing}${alert}${over}${inside ? ' -- INSIDE' : ''}`;
96
97
  }
97
98
  /** The Map dock's one-line host: icon, name, rating, standing -- cut to the dock. */
98
99
  export function hostDockLine(room, actor, width) {
@@ -1 +1 @@
1
- {"version":3,"file":"grid-reach.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-reach.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-reach.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-reach.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Player } from '../models/player.js';
2
+ import type { Host } from '../models/host.js';
2
3
  import { Room } from '../models/room.js';
3
4
  import { Scene } from '../models/scene.js';
4
5
  /**
@@ -52,3 +53,13 @@ export declare function gridSculpt(actor: Player, room: Room): string;
52
53
  * the one room, and the block reads as it always did.
53
54
  */
54
55
  export declare function gridIconBlock(scene: Scene, actor: Player, room: Room, rooms?: Record<string, Room>): string;
56
+ /**
57
+ * THE ROOM DOCK INSIDE A HOST (user, 2026-09-02: "the room drawn when
58
+ * entering a host looks just like the room my meat body is in"). It was:
59
+ * the dock drew the body's room. A host has no floor plan to draw --
60
+ * its interior is a sculpted space with its own rules (SR5 p.219,
61
+ * p.246) -- so the dock shows what a persona inside one can see: the
62
+ * host, its rating, your marks and its alarm, the ice with its damage,
63
+ * the other personas, and the files. Cut to the dock's rows and columns.
64
+ */
65
+ export declare function hostInteriorPanel(scene: Scene, actor: Player, host: Host, rows: number, cols: number): string[];
@@ -1,4 +1,5 @@
1
1
  import { sameHostSide } from '../models/player.js';
2
+ import { personasInside } from './matrix-roster.js';
2
3
  import { hostsInReach, hostLine, roomsInReach, gridVicinity } from './grid-reach.js';
3
4
  import { NPC } from '../models/npc.js';
4
5
  import { hostLabel } from './grid-names.js';
@@ -275,7 +276,9 @@ function hostInteriorIcons(scene, actor, room) {
275
276
  // is instanceof NPC and nothing cleverer. It deliberately does NOT
276
277
  // read `hostile`: a rival decker can be hostile without being ice,
277
278
  // and that would put the wrong noun on a person.
278
- for (const a of scene.getActorsInRoom(room)) {
279
+ // Inside a host, the roster is who is INSIDE it (matrix-roster.ts) -- a
280
+ // persona's body is never in this room.
281
+ for (const a of (room.host ? personasInside(scene, room.host) : [])) {
279
282
  if (a === actor)
280
283
  continue;
281
284
  if (a.plane === 'matrix' && sameHostSide(actor, a) && actor.canPerceive(a)) {
@@ -323,7 +326,8 @@ function hostInteriorIcons(scene, actor, room) {
323
326
  // reach" while they attack. Naming them here does not pretend
324
327
  // otherwise; advertising a verb that refuses would be the worse lie.
325
328
  for (const name of room.runningIC) {
326
- icons.push(`▲ ${name} -- hunting, and it has your icon.`);
329
+ const ice = room.host?.iceActors.get(name);
330
+ icons.push(`▲ ${ice?.name ?? name} -- hunting, and it has your icon.${ice ? ` (${ice.conditionSummary()}) ("thread resonance-spike ${ice.name}" / "attack ${ice.name}" crash it)` : ''}`);
327
331
  }
328
332
  // THE WAN IS IN HERE WITH YOU (SR5 p.233, asked directly rather than
329
333
  // reasoned from the geometry): "If you are in a host that has a WAN,
@@ -394,7 +398,7 @@ function hostInteriorIcons(scene, actor, room) {
394
398
  */
395
399
  export function gridSculpt(actor, room) {
396
400
  // INSIDE, THE HEADER NAMES THE HOST, not the street address. A persona
397
- // in a host's architecture is not standing on the room's patch of grid
401
+ // in a host's architecture is not out on the grid at all
398
402
  // any more, and a header that kept saying so was half of why the
399
403
  // boundary read as absent.
400
404
  if (actor.insideHost === room) {
@@ -408,7 +412,8 @@ export function gridSculpt(actor, room) {
408
412
  // signal comes from. A host directly overhead gets a line of its own.
409
413
  const body = actor.bodyRoom ?? room;
410
414
  const header = `{cyan-fg}THE GRID :: jacked in from ${body.name.toUpperCase()}{/cyan-fg}`;
411
- const flat = `{cyan-fg}Black flatland under a black sky -- the icons are the only things out here.{/cyan-fg}`;
415
+ const grid = actor.currentGrid;
416
+ const flat = `{cyan-fg}Black flatland under a black sky -- the icons are the only things out here.${grid ? ` Riding ${grid.name}${grid.userPenalty ? ' (-2 on everything you do, p.233)' : ''}.` : ''}{/cyan-fg}`;
412
417
  if (!room.hasNode)
413
418
  return `${header}\n${flat}`;
414
419
  return `${header}\n${flat}\n{cyan-fg}${hostLabel(room, { capital: true })} hangs directly overhead, sealed. What it holds is inside it.{/cyan-fg}`;
@@ -453,7 +458,12 @@ export function gridIconBlock(scene, actor, room, rooms) {
453
458
  out.push(near.length > 0
454
459
  ? `{cyan-fg}ICONS IN REACH:{/cyan-fg}\n${near.map(i => ` {cyan-fg}${i}{/cyan-fg}`).join('\n')}`
455
460
  : `{cyan-fg}Nothing near -- background noise around your signal.{/cyan-fg}`);
456
- const far = [];
461
+ // FARTHER OUT, WITHOUT AN ADDRESS (SR5 p.235, p.243): Matrix Perception
462
+ // never tells you where a device physically sits -- that is Trace Icon,
463
+ // two marks and an opposed test. So far icons are listed by the noise
464
+ // band they cost, never by the room they are in. Only your own body's
465
+ // room is named above, because you know where you are sitting.
466
+ const byBand = new Map();
457
467
  for (const { room: r, noise } of roomsInReach(rooms, actor).slice(1)) {
458
468
  let icons = [];
459
469
  try {
@@ -464,12 +474,50 @@ export function gridIconBlock(scene, actor, room, rooms) {
464
474
  }
465
475
  if (icons.length === 0)
466
476
  continue;
467
- // Names only: a far icon is a dim shape, not a readout.
468
477
  const names = icons.map(i => i.replace(/^[^\s]+\s+/, '').split(' -- ')[0]);
469
- far.push(` {cyan-fg}· ${r.name} (noise -${noise}): ${names.join(', ')}{/cyan-fg}`);
478
+ const list = byBand.get(noise) ?? [];
479
+ for (const n of names)
480
+ if (!list.includes(n))
481
+ list.push(n);
482
+ byBand.set(noise, list);
470
483
  }
484
+ const far = [...byBand.entries()].sort((a, b) => a[0] - b[0])
485
+ .map(([noise, names]) => ` {cyan-fg}· dim, noise -${noise}: ${names.join(', ')}{/cyan-fg}`);
471
486
  if (far.length > 0)
472
487
  out.push(`{cyan-fg}FARTHER OUT -- dimmer with distance:{/cyan-fg}\n${far.join('\n')}`);
473
- return out.join('\n');
488
+ // A blank line between the distance bands (user, 2026-09-02): three
489
+ // sections read as three when they do not touch.
490
+ return out.join('\n\n');
491
+ }
492
+ /**
493
+ * THE ROOM DOCK INSIDE A HOST (user, 2026-09-02: "the room drawn when
494
+ * entering a host looks just like the room my meat body is in"). It was:
495
+ * the dock drew the body's room. A host has no floor plan to draw --
496
+ * its interior is a sculpted space with its own rules (SR5 p.219,
497
+ * p.246) -- so the dock shows what a persona inside one can see: the
498
+ * host, its rating, your marks and its alarm, the ice with its damage,
499
+ * the other personas, and the files. Cut to the dock's rows and columns.
500
+ */
501
+ export function hostInteriorPanel(scene, actor, host, rows, cols) {
502
+ const cut = (raw) => `{cyan-fg}${[...raw].slice(0, Math.max(4, cols)).join('')}{/cyan-fg}`;
503
+ const lines = [];
504
+ lines.push(cut(`INSIDE ${host.name}`));
505
+ const marks = host.marksBy.get(actor.name) ?? 0;
506
+ lines.push(cut(host.sanctioned
507
+ ? 'haven -- welcome here'
508
+ : `HR ${host.rating} · marks ${marks}/3${host.alert ? ' · WALLS UP' : ''}${host.cracked ? ' · cracked' : ''}`));
509
+ for (const kind of host.runningIC) {
510
+ const ice = host.iceActors.get(kind);
511
+ lines.push(cut(`▲ ${kind}${ice ? ` ${ice.damageTaken}/${ice.maxConditionBoxes}` : ''}`));
512
+ }
513
+ for (const a of personasInside(scene, host)) {
514
+ if (a === actor || a.icHost === host)
515
+ continue;
516
+ lines.push(cut(`◆ ${a.name}`));
517
+ }
518
+ const files = host.files().length;
519
+ if (files > 0)
520
+ lines.push(cut(`◇ ${files} file${files === 1 ? '' : 's'} ${host.cracked ? 'open' : 'sealed'}`));
521
+ return lines.slice(0, Math.max(1, rows));
474
522
  }
475
523
  //# sourceMappingURL=grid-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * GRIDS (SR5 p.220-222, p.233, p.240) -- increment 3 of the Matrix
3
+ * position model (2026-09-02).
4
+ *
5
+ * - The public grid is free to anyone and "the Barrens of the Matrix": it
6
+ * costs the user -2 on every Matrix action taken from it (p.233).
7
+ * - A local grid is a metroplex's own; a global grid belongs to one of the
8
+ * Big Ten (p.21-23; "ten publicly known global grids, one for each of
9
+ * the Big Ten", p.234). Neither penalises its own users.
10
+ * - Your grid is your lifestyle's (p.222 "Your Grid"): Low or lower gets
11
+ * the public grid; Middle a local grid; High one Big Ten global grid of
12
+ * your choosing; Luxury any grid you like.
13
+ * - Acting against a target on ANOTHER grid costs -2 (p.233); inside a host
14
+ * no grid penalty applies at all -- "the grid you're on doesn't really
15
+ * matter" (p.246).
16
+ * - Grid Hop (p.240): Complex Action, no test, needs access to the
17
+ * destination; without it, Hack on the Fly against 4 dice (local) or 6
18
+ * (global) hops you illegally, and a failed attempt does not alert.
19
+ */
20
+ export type GridKind = 'public' | 'local' | 'global';
21
+ export type GridKey = 'public' | `local:${string}` | `global:${string}`;
22
+ export interface Grid {
23
+ key: GridKey;
24
+ kind: GridKind;
25
+ /** As the game prints it: "the public grid", "the Neon Strip local grid", "the Renraku grid". */
26
+ name: string;
27
+ /** p.233: the public grid's own toll on its users' actions. */
28
+ userPenalty: 0 | -2;
29
+ }
30
+ export declare const PUBLIC_GRID: Grid;
31
+ export declare function localGrid(district: string): Grid;
32
+ export declare function globalGrid(corp: string): Grid;
33
+ /** The Big Ten of 2075 (SR5 p.21-23), each with a global grid (p.234). */
34
+ export declare const BIG_TEN: readonly string[];
35
+ /**
36
+ * The High-lifestyle provider until chargen offers the pick (p.222: "pick
37
+ * one of the Big Ten"). A PLACEHOLDER, chosen for being first in the
38
+ * book's own list, not for any fiction; the save carries the real choice
39
+ * in `gridProvider` once the web generator asks for it.
40
+ */
41
+ export declare const DEFAULT_GRID_PROVIDER: string;
42
+ /** Unknown on either side is NOT "another grid" -- no penalty on a guess. */
43
+ export declare function sameGrid(a: Grid | undefined, b: Grid | undefined): boolean;
44
+ /** p.222 "Your Grid": the grid a lifestyle buys. */
45
+ export declare function homeGrid(lifestyleTier: string, district: Grid, provider?: string): Grid;
46
+ /**
47
+ * Every grid a lifestyle has legitimate access to, for a legal hop (p.240).
48
+ * Public is free to all; Middle adds the local grid; High adds its chosen
49
+ * global grid; Luxury can be "on any grid you want".
50
+ */
51
+ export declare function gridsWithAccess(lifestyleTier: string, district: Grid, provider?: string): Grid[];
52
+ export declare function hasAccess(lifestyleTier: string, district: Grid, target: Grid, provider?: string): boolean;
53
+ /** p.240: the grid's defence against an illegal Hack on the Fly hop. Public is free -- no test. */
54
+ export declare function hopDefenceDice(target: Grid): 0 | 4 | 6;
55
+ /**
56
+ * A grid by what a player types: "public", "local", the district's name,
57
+ * a Big Ten name, or "global <corp>". Undefined when nothing answers.
58
+ */
59
+ export declare function resolveGridName(query: string, district: Grid): Grid | undefined;
60
+ export interface GridModifier {
61
+ total: number;
62
+ /** Mechanics-column words, one per penalty applied. */
63
+ parts: string[];
64
+ }
65
+ /**
66
+ * The dice a grid costs an action (p.233): the user's own grid toll (public
67
+ * -2) plus -2 when the target sits on another grid. Inside a host, none of
68
+ * it applies. Unknown grids cost nothing.
69
+ */
70
+ export declare function gridActionModifier(actorGrid: Grid | undefined, inside: boolean, targetGrid: Grid | undefined): GridModifier;
71
+ /** The Mechanics-column suffix for a modifier, or nothing when it costs nothing. */
72
+ export declare function gridNote(mod: GridModifier): string;
@@ -0,0 +1,100 @@
1
+ const slug = (s) => s.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
2
+ export const PUBLIC_GRID = { key: 'public', kind: 'public', name: 'the public grid', userPenalty: -2 };
3
+ export function localGrid(district) {
4
+ return { key: `local:${slug(district)}`, kind: 'local', name: `the ${district.trim()} local grid`, userPenalty: 0 };
5
+ }
6
+ export function globalGrid(corp) {
7
+ return { key: `global:${slug(corp)}`, kind: 'global', name: `the ${corp.trim()} grid`, userPenalty: 0 };
8
+ }
9
+ /** The Big Ten of 2075 (SR5 p.21-23), each with a global grid (p.234). */
10
+ export const BIG_TEN = [
11
+ 'Ares', 'Aztechnology', 'Evo', 'Horizon', 'Mitsuhama', 'NeoNET', 'Renraku', 'Saeder-Krupp', 'Shiawase', 'Wuxing',
12
+ ];
13
+ /**
14
+ * The High-lifestyle provider until chargen offers the pick (p.222: "pick
15
+ * one of the Big Ten"). A PLACEHOLDER, chosen for being first in the
16
+ * book's own list, not for any fiction; the save carries the real choice
17
+ * in `gridProvider` once the web generator asks for it.
18
+ */
19
+ export const DEFAULT_GRID_PROVIDER = BIG_TEN[0];
20
+ /** Unknown on either side is NOT "another grid" -- no penalty on a guess. */
21
+ export function sameGrid(a, b) {
22
+ if (!a || !b)
23
+ return true;
24
+ return a.key === b.key;
25
+ }
26
+ const tierRank = (tier) => ['street', 'squatter', 'low', 'middle', 'high', 'luxury'].indexOf(tier.trim().toLowerCase());
27
+ /** p.222 "Your Grid": the grid a lifestyle buys. */
28
+ export function homeGrid(lifestyleTier, district, provider = DEFAULT_GRID_PROVIDER) {
29
+ const rank = tierRank(lifestyleTier);
30
+ if (rank <= 2)
31
+ return PUBLIC_GRID; // Street, Squatter, Low (and unknown)
32
+ if (rank === 3)
33
+ return district; // Middle: the local grid
34
+ return globalGrid(provider); // High and Luxury: the chosen global grid
35
+ }
36
+ /**
37
+ * Every grid a lifestyle has legitimate access to, for a legal hop (p.240).
38
+ * Public is free to all; Middle adds the local grid; High adds its chosen
39
+ * global grid; Luxury can be "on any grid you want".
40
+ */
41
+ export function gridsWithAccess(lifestyleTier, district, provider = DEFAULT_GRID_PROVIDER) {
42
+ const rank = tierRank(lifestyleTier);
43
+ const grids = [PUBLIC_GRID];
44
+ if (rank >= 3)
45
+ grids.push(district);
46
+ if (rank === 4)
47
+ grids.push(globalGrid(provider));
48
+ if (rank >= 5)
49
+ for (const corp of BIG_TEN)
50
+ grids.push(globalGrid(corp));
51
+ return grids;
52
+ }
53
+ export function hasAccess(lifestyleTier, district, target, provider = DEFAULT_GRID_PROVIDER) {
54
+ return gridsWithAccess(lifestyleTier, district, provider).some(g => g.key === target.key);
55
+ }
56
+ /** p.240: the grid's defence against an illegal Hack on the Fly hop. Public is free -- no test. */
57
+ export function hopDefenceDice(target) {
58
+ return target.kind === 'public' ? 0 : target.kind === 'local' ? 4 : 6;
59
+ }
60
+ /**
61
+ * A grid by what a player types: "public", "local", the district's name,
62
+ * a Big Ten name, or "global <corp>". Undefined when nothing answers.
63
+ */
64
+ export function resolveGridName(query, district) {
65
+ const q = query.trim().toLowerCase().replace(/^the\s+/, '').replace(/\s+grid$/, '');
66
+ if (q === '')
67
+ return undefined;
68
+ if (q === 'public' || q === 'pubgrid')
69
+ return PUBLIC_GRID;
70
+ if (q === 'local' || slug(q) === district.key.slice('local:'.length))
71
+ return district;
72
+ const corpWord = q.replace(/^global\s+/, '');
73
+ const corp = BIG_TEN.find(c => c.toLowerCase() === corpWord || slug(c) === slug(corpWord));
74
+ return corp ? globalGrid(corp) : undefined;
75
+ }
76
+ /**
77
+ * The dice a grid costs an action (p.233): the user's own grid toll (public
78
+ * -2) plus -2 when the target sits on another grid. Inside a host, none of
79
+ * it applies. Unknown grids cost nothing.
80
+ */
81
+ export function gridActionModifier(actorGrid, inside, targetGrid) {
82
+ if (inside)
83
+ return { total: 0, parts: [] };
84
+ const parts = [];
85
+ let total = 0;
86
+ if (actorGrid?.userPenalty) {
87
+ total += actorGrid.userPenalty;
88
+ parts.push(`public grid ${actorGrid.userPenalty} (p.233)`);
89
+ }
90
+ if (actorGrid && targetGrid && !sameGrid(actorGrid, targetGrid)) {
91
+ total -= 2;
92
+ parts.push(`other grid -2 (p.233)`);
93
+ }
94
+ return { total, parts };
95
+ }
96
+ /** The Mechanics-column suffix for a modifier, or nothing when it costs nothing. */
97
+ export function gridNote(mod) {
98
+ return mod.parts.length > 0 ? ` [${mod.parts.join(', ')}]` : '';
99
+ }
100
+ //# sourceMappingURL=grids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grids.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grids.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { NPC } from '../models/npc.js';
2
+ import type { Scene } from '../models/scene.js';
3
+ import type { Host } from '../models/host.js';
4
+ /** Launch one IC of this kind inside the host, as an actor. Returns undefined when the scene cannot host actors. */
5
+ export declare function spawnIC(scene: Scene, host: Host, kind: string): NPC | undefined;
6
+ /** Take a crashed IC out of the host: its name off the running list, its actor out of the scene, its kind queued to relaunch. */
7
+ export declare function crashIC(scene: Scene | undefined, host: Host, kind: string): void;
8
+ /** Every running IC whose actor has been crashed (its monitor filled, or its code sheared apart). */
9
+ export declare function crashedIC(host: Host): string[];