@maka/maka-cli 5.82.1 → 5.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/bundle/typescript/package.json +2 -2
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +7 -0
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +53 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +135 -0
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -0
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +18 -9
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +55 -21
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +39 -9
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/heal.d.ts +53 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/heal.js +158 -0
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/heal.js.map +1 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +26 -11
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +4 -5
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +14 -11
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +5 -3
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +28 -13
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +12 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +52 -2
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +85 -18
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +8 -5
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +8 -8
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +69 -16
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -11
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +45 -32
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +23 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +34 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +96 -14
  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.d.ts +25 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +51 -4
  46. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +9 -2
  48. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +12 -5
  49. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +26 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/game.js +182 -9
  52. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +38 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +85 -3
  55. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +32 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +48 -3
  58. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
  60. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +8 -5
  62. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +6 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.d.ts +124 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +209 -0
  67. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +3 -2
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +112 -15
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +8 -3
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +70 -8
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.d.ts +50 -0
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js +44 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js.map +1 -0
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +9 -0
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +133 -8
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +208 -30
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.d.ts +21 -0
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.js +28 -0
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.js.map +1 -0
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +5 -0
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +33 -0
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +9 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  90. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +3 -1
  91. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  92. package/package.json +2 -2
@@ -1,5 +1,4 @@
1
1
  import { hostLabel } from './grid-names.js';
2
- import { canReachHost } from './planes.js';
3
2
  import { isLinked } from './comm-style.js';
4
3
  import { isWatched, camerasLive, canSnoopFeeds } from './surveillance.js';
5
4
  /**
@@ -9,10 +8,26 @@ import { isWatched, camerasLive, canSnoopFeeds } from './surveillance.js';
9
8
  * only their tags if they are online"). Meat furniture -- spots,
10
9
  * exits, prose places -- is deliberately absent: if it isn't
11
10
  * broadcasting, it isn't here. Shared by look.ts (gridLook) and go.ts
12
- * (grid-jump arrivals). Glyphs match the grid map: ● host, ■
13
- * air-gapped, ◆ persona, ▣ PAN, ▲ dangerous device, ◇ data.
11
+ * (grid-jump arrivals). Glyphs match the grid map: ● host, ◆ persona,
12
+ * ▣ PAN, ▲ dangerous device, ◇ data. (There is no air-gapped-host glyph
13
+ * any more -- see hhSWvKKMxRC7DGXhh and canReachHost.)
14
14
  */
15
15
  export function gridIcons(scene, actor, room) {
16
+ // INSIDE A HOST IS A DIFFERENT PLACE (SR5 p.246, and Deditri's
17
+ // eJANuz2xqvpNSjuFq). "The virtual space inside a host is separate
18
+ // from the outside grid. When you're outside of a host, you can't
19
+ // interact directly with icons inside it... Once you're inside, you
20
+ // can see and interact with icons inside the host, but not outside."
21
+ //
22
+ // Everything below this branch is the OUTSIDE GRID: personas on the
23
+ // patch, people's PANs, the camera cluster bolted to the wall. None of
24
+ // that is visible from inside the host, and the host's own contents
25
+ // were never visible from out on the grid -- which is the bug that was
26
+ // filed. One boundary, read from both sides.
27
+ if (actor.insideHost === room)
28
+ return hostInteriorIcons(scene, actor, room);
29
+ if (actor.insideHost)
30
+ return [];
16
31
  const icons = [];
17
32
  if (room.hasNode) {
18
33
  // A HOST IS DESCRIBED BY ITS RATING (SR5 p.247; Deditri,
@@ -30,15 +45,17 @@ export function gridIcons(scene, actor, room) {
30
45
  if (room.hostSanctioned) {
31
46
  icons.push(`● ${hostLabel(room, { capital: true })} -- three spheres turning over rooms that were never sold to anyone. You're on the list; nothing here is hunting.`);
32
47
  }
33
- else if (!canReachHost(actor, room)) {
34
- icons.push(`■ ${hostLabel(room, { capital: true })}${hr} -- DARK. Air-gapped: it only opens to a hard line ("jack in" from inside this room).`);
35
- }
36
48
  else if (room.hostCracked) {
37
- icons.push(`● ${hostLabel(room, { capital: true })}${hr} -- cracked open, security in shreds. Whatever it guarded is unsealed.`);
49
+ icons.push(`● ${hostLabel(room, { capital: true })}${hr} -- cracked open, security in shreds. Whatever it guarded is unsealed, inside. ("enter" walks in)`);
38
50
  }
39
51
  else {
40
52
  const myMarks = room.hostMarksBy.get(actor.name) ?? 0;
41
- icons.push(`● ${hostLabel(room, { capital: true })}${hr} -- sculpted ice geometry over the room's systems.${room.hostAlert ? ' Walls UP -- it holds a mark on an intruder.' : ''}${myMarks > 0 ? ` [your marks: ${myMarks}/3]` : ''} ("hack" slips in on sleaze; "hack loud" smashes; "mark" softens it first)`);
53
+ // ONE SEALED ICON, and the verb that opens it. From out here a host
54
+ // is a shape with a rating, nothing more -- its files, its ice and
55
+ // anyone inside it are on the far side of a wall (p.246). The
56
+ // marks line stays because a mark is the DOOR (p.239), so it is
57
+ // the one fact about the inside that belongs on the outside.
58
+ icons.push(`● ${hostLabel(room, { capital: true })}${hr} -- sculpted ice geometry, sealed. Whatever it holds is inside it.${room.hostAlert ? ' Walls UP -- it holds a mark on an intruder.' : ''}${myMarks > 0 ? ` [your marks: ${myMarks}/3]` : ''} (${myMarks > 0 ? '"enter" walks in on your mark; ' : ''}"hack" slips in on sleaze; "hack loud" smashes; "mark" softens it first)`);
42
59
  }
43
60
  }
44
61
  for (const a of scene.getActorsInRoom(room)) {
@@ -121,9 +138,18 @@ export function gridIcons(scene, actor, room) {
121
138
  }
122
139
  }
123
140
  }
124
- for (const item of room.inventory.getAllItems()) {
125
- if (item.plane === 'matrix') {
126
- icons.push(`◇ ${item.name} [data] -- right there on the grid. ("take" it)`);
141
+ // A HOST'S FILES ARE NOT ON THE STREET'S GRID (p.246; eJANuz2xqvpNSjuFq).
142
+ // This loop used to list every matrix-plane item in the room as "right
143
+ // there on the grid" -- the host's sealed paydata, advertised by name
144
+ // to anyone who jacked in nearby and readable by a `take` that only
145
+ // checked hostCracked. That is the reported bug. Files that belong to
146
+ // a host now live inside it (hostInteriorIcons); what is left out here
147
+ // is data genuinely loose on the grid, in a room with no host over it.
148
+ if (!room.hasNode && !room.offlineServer) {
149
+ for (const item of room.inventory.getAllItems()) {
150
+ if (item.plane === 'matrix') {
151
+ icons.push(`◇ ${item.name} [data] -- loose on the grid, no architecture over it. ("take" it)`);
152
+ }
127
153
  }
128
154
  }
129
155
  // The cameras, as a THING (surveillance.ts): live for security, looped,
@@ -148,6 +174,64 @@ export function gridIcons(scene, actor, room) {
148
174
  }
149
175
  return icons;
150
176
  }
177
+ /**
178
+ * WHAT A PERSONA SEES FROM INSIDE A HOST (p.246): the host's own icons,
179
+ * and nothing from the outside grid.
180
+ *
181
+ * TWO ICE POPULATIONS LIVE IN HERE, on purpose, and they are not the
182
+ * same thing. Seeded ice NPCs are matrix-plane actors an author or the
183
+ * generator stationed in the room (npc-seed.ts: plane 'matrix' MAKES an
184
+ * NPC ice) -- they have names, dialogue and inventories. IC PROGRAMS are
185
+ * the book's constructs launched by an alerted host (utilities/ic.ts),
186
+ * typed and citable, with neither name nor inventory. Both are inside
187
+ * the host and both are invisible from the grid outside; merging them
188
+ * would either hand IC an inventory it must not have or take the lines
189
+ * away from a construct an author wrote for.
190
+ *
191
+ * The camera cluster is deliberately NOT moved in here. It is slaved to
192
+ * the host, and the books do not say where a slaved device's icon sits
193
+ * -- asked directly, the rules return Data Trails p.109 on slave control
194
+ * and are explicit that icon location is not addressed. CLAUDE.md's rule
195
+ * for that case is to say so and leave it out, so the cluster stays
196
+ * where it has always been: an icon on the outside grid, tappable in the
197
+ * flesh. An invented answer here would be a worse defect than a missing
198
+ * one.
199
+ */
200
+ function hostInteriorIcons(scene, actor, room) {
201
+ const icons = [];
202
+ // Other personas who are ALSO inside this host -- and only those.
203
+ for (const a of scene.getActorsInRoom(room)) {
204
+ if (a === actor)
205
+ continue;
206
+ if (a.plane === 'matrix' && a.insideHost === room && actor.canPerceive(a)) {
207
+ const companion = scene.ownerGame?.companions.find(c => c.npc === a);
208
+ icons.push(companion
209
+ ? `◆ ${a.name} -- yours, in here with you`
210
+ : `◆ ${a.name} -- a persona inside this host`);
211
+ }
212
+ }
213
+ // The host's files. Sealed until it is cracked: a mark buys the DOOR
214
+ // (p.239), not the contents, so a marked persona standing inside a
215
+ // host it has not broken still cannot walk off with the paydata.
216
+ //
217
+ // FILES ON AN OFFLINE SERVER ARE NOT IN HERE. The box is not on the
218
+ // Matrix, so its contents are not in the host's space either -- being
219
+ // inside the architecture buys nothing against a cable-only device.
220
+ // Listing them here would rebuild the exact bug this change removes,
221
+ // one container over.
222
+ const data = room.offlineServer
223
+ ? []
224
+ : room.inventory.getAllItems().filter(i => i.plane === 'matrix');
225
+ for (const item of data) {
226
+ icons.push(room.hostCracked
227
+ ? `◇ ${item.name} [data] -- unsealed, sitting open in the host's archive. ("take" it)`
228
+ : `◇ ${item.name} [data] -- SEALED in the host's archive. ("hack" the host to break the seal)`);
229
+ }
230
+ if (icons.length === 0) {
231
+ icons.push(`Empty architecture -- turning geometry and nothing in it worth the trip.`);
232
+ }
233
+ return icons;
234
+ }
151
235
  /**
152
236
  * THE ROOM AS THE GRID DRAWS IT (player ruling 2026-08-26: "looking in
153
237
  * the matrix shouldn't show the meatworld"). A persona's `look` used to
@@ -164,16 +248,29 @@ export function gridIcons(scene, actor, room) {
164
248
  * gridIcons below already names it with its state and its verbs.
165
249
  */
166
250
  export function gridSculpt(actor, room) {
251
+ // INSIDE, THE HEADER NAMES THE HOST, not the street address. A persona
252
+ // in a host's architecture is not standing on the room's patch of grid
253
+ // any more, and a header that kept saying so was half of why the
254
+ // boundary read as absent.
255
+ if (actor.insideHost === room) {
256
+ return [
257
+ `{cyan-fg}INSIDE :: ${hostLabel(room, { capital: true }).toUpperCase()} [HR ${room.hostRating}]{/cyan-fg}`,
258
+ `{cyan-fg}Architecture all the way around -- the outside grid is a wall away and might as well be weather.{/cyan-fg}`,
259
+ ].join('\n');
260
+ }
167
261
  const header = `{cyan-fg}THE GRID :: ${room.name.toUpperCase()}{/cyan-fg}`;
168
262
  // Thin ground says nothing extra on purpose: gridIconBlock's own
169
263
  // empty-case line already calls it thin, and where there ARE icons
170
264
  // they speak for themselves. Only a host earns a second line.
171
265
  if (!room.hasNode)
172
266
  return header;
173
- const ground = canReachHost(actor, room)
174
- ? `Dense ground -- a host's architecture stands over this patch, and everything on it answers to that.`
175
- : `Dead ground -- there is architecture here, but no door onto it from the wireless grid.`;
176
- return `${header}\n{cyan-fg}${ground}{/cyan-fg}`;
267
+ // NO MORE "DEAD GROUND". The air-gapped-host branch that used to live
268
+ // here is gone with the model it described (hhSWvKKMxRC7DGXhh): a host
269
+ // is part of the Matrix by definition, so there is no such thing as
270
+ // one you cannot reach from the grid. What is genuinely offline is a
271
+ // SERVER DEVICE sitting in the room, and that is a device, not
272
+ // architecture.
273
+ return `${header}\n{cyan-fg}Dense ground -- a host's architecture stands over this patch, sealed. What it holds is inside it.{/cyan-fg}`;
177
274
  }
178
275
  /**
179
276
  * The icons rendered as the standard cyan block, or the thin-grid line.
@@ -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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"}
@@ -119,9 +119,14 @@ export interface IICTurn {
119
119
  * world event hack.ts already prints promises "ice hunting", and this is
120
120
  * the code that finally pays that promise.
121
121
  *
122
- * A CRACKED HOST STOPS: room.ts documents cracking as mooting the alert,
123
- * and a host whose security "hangs in shreds" fielding fresh ice would
124
- * contradict the line the player was already given.
122
+ * A CRACKED HOST NO LONGER STOPS, and that ruling is retired on purpose.
123
+ * It predated ice entirely, and canon has no "cracked host stops
124
+ * defending" -- a host that notices an intrusion launches IC (p.247),
125
+ * full stop. Worse, once `enter` gated the inside, the exemption became
126
+ * half of a closed loop: the only ways into a host are a mark or a
127
+ * crack, a mark made you legitimate and a crack silenced the ice, so
128
+ * NOTHING ever ran. hostCracked keeps its other meanings -- the room's
129
+ * maglocks fall, the vault unseals -- but it stops being an immunity.
125
130
  */
126
131
  export declare function hostIsHunting(room: Room, actor: Player): boolean;
127
132
  /**
@@ -1,4 +1,5 @@
1
1
  import { rollPool, formatRoll } from './dice.js';
2
+ import { hostLabel } from './grid-names.js';
2
3
  import { MAX_MARKS } from './marks.js';
3
4
  /**
4
5
  * INTRUSION COUNTERMEASURES -- the host's side of the roll (SR5 p.247-248).
@@ -127,19 +128,36 @@ const empty = () => ({ lines: [], meta: [], world: [] });
127
128
  * world event hack.ts already prints promises "ice hunting", and this is
128
129
  * the code that finally pays that promise.
129
130
  *
130
- * A CRACKED HOST STOPS: room.ts documents cracking as mooting the alert,
131
- * and a host whose security "hangs in shreds" fielding fresh ice would
132
- * contradict the line the player was already given.
131
+ * A CRACKED HOST NO LONGER STOPS, and that ruling is retired on purpose.
132
+ * It predated ice entirely, and canon has no "cracked host stops
133
+ * defending" -- a host that notices an intrusion launches IC (p.247),
134
+ * full stop. Worse, once `enter` gated the inside, the exemption became
135
+ * half of a closed loop: the only ways into a host are a mark or a
136
+ * crack, a mark made you legitimate and a crack silenced the ice, so
137
+ * NOTHING ever ran. hostCracked keeps its other meanings -- the room's
138
+ * maglocks fall, the vault unseals -- but it stops being an immunity.
133
139
  */
134
140
  export function hostIsHunting(room, actor) {
135
141
  return actor.plane === 'matrix'
136
142
  && room.hasNode
143
+ // IC RUNS INSIDE THE HOST, AND NOWHERE ELSE (p.246-247; Deditri,
144
+ // rG8LtMoy5DHQJ2NuG: "I got a notification that an IC has found me,
145
+ // however I haven't entered a host. IC do not operate out on the
146
+ // Grid.").
147
+ //
148
+ // That report was filed against an engine with no inside/outside
149
+ // state at all, so at the time the complaint was mechanically wrong
150
+ // -- the player HAD been in the host, in the only sense the code had
151
+ // -- and the fix was to make the sentence name its host. This is the
152
+ // other half, and it is the half that makes the player right: a
153
+ // persona on the outside grid is now genuinely outside, and the ice
154
+ // in there cannot see them, let alone hunt them.
155
+ && actor.insideHost === room
137
156
  // A SANCTIONED HOST NEVER HUNTS (Room.hostSanctioned): the books
138
157
  // publish no IC for JackPoint, and a haven its own members built
139
158
  // does not field ice against them. Silence honoured, not a dial.
140
159
  && !room.hostSanctioned
141
- && room.hostAlert
142
- && !room.hostCracked;
160
+ && room.hostAlert;
143
161
  }
144
162
  /**
145
163
  * IS THIS PERSONA A LEGITIMATE USER? (p.248, Patrol.)
@@ -152,6 +170,27 @@ export function hostIsHunting(room, actor) {
152
170
  * buys something defensive rather than only softening a later crack.
153
171
  */
154
172
  export function looksLegitimate(room, actor) {
173
+ // BEING CAUGHT IS NOT CURED BY THE MARK IT PRODUCED.
174
+ //
175
+ // Checked against the books rather than reasoned out, because the
176
+ // interaction decides whether a whole subsystem runs. Canon holds both
177
+ // halves at once: "the act of placing a mark is illegal, but the act
178
+ // of having a mark is not... a persona with a mark is considered a
179
+ // legitimate user" (p.248) -- AND host security stays "vigilant for
180
+ // unauthorized users, even those with marks" (Data Trails p.168-169),
181
+ // launching IC at the persona that committed the illegal act. The mark
182
+ // "grants legitimacy for access purposes, but it does not stop the
183
+ // host's response to the illegal action it just witnessed."
184
+ //
185
+ // So legitimacy is a mark you hold MINUS having been made. The host's
186
+ // own marks are the record of being made: a blown Sleaze hands the
187
+ // target one free mark on you (p.231), which is exactly "it saw you".
188
+ // Without this second clause the first one was a trapdoor -- entering
189
+ // a host requires a mark (p.239), so every persona inside held one,
190
+ // so every persona inside was legitimate, so Patrol never looked at
191
+ // anyone. That is how ambient Patrol became unreachable.
192
+ if ((room.hostMarksOn.get(actor.name) ?? 0) > 0)
193
+ return false;
155
194
  return (room.hostMarksBy.get(actor.name) ?? 0) > 0;
156
195
  }
157
196
  /**
@@ -182,12 +221,21 @@ export function ambientPatrol(room, actor) {
182
221
  const out = empty();
183
222
  if (actor.plane !== 'matrix' || !room.hasNode)
184
223
  return out;
224
+ // PATROL SWEEPS THE HOST'S OWN SPACE (p.246-247). This is the exact
225
+ // path that produced rG8LtMoy5DHQJ2NuG -- a sweep notification
226
+ // reaching a player who did not believe they were in a host, because
227
+ // there was no such thing as being in one. Now there is, and the
228
+ // ambient sweep respects it: no threshold crossed, no eyes on you.
229
+ if (actor.insideHost !== room)
230
+ return out;
185
231
  // No eyes either -- a sanctioned host is not merely holding its ice
186
232
  // back, it is not watching for you. See hostIsHunting.
187
233
  if (room.hostSanctioned)
188
234
  return out;
189
- // Already made, or already open: Phase 1's turn owns those.
190
- if (room.hostAlert || room.hostCracked)
235
+ // Already made: the alerted host's own turn owns that persona
236
+ // (runHostTurn dispatches there instead). A CRACKED host is no longer
237
+ // exempt -- see hostIsHunting for why that ruling was retired.
238
+ if (room.hostAlert)
191
239
  return out;
192
240
  if (looksLegitimate(room, actor))
193
241
  return out;
@@ -218,7 +266,21 @@ export function ambientPatrol(room, actor) {
218
266
  }
219
267
  room.hostAlert = true;
220
268
  actor.sneaking = false;
221
- out.lines.push(` {red-fg}Patrol IC finds you -- an unmarked icon where none should be. The host knows it has an intruder.{/red-fg}`);
269
+ // NAME THE HOST THAT FOUND YOU (rG8LtMoy5DHQJ2NuG: "I got a
270
+ // notification that an IC has found me, however I haven't entered a
271
+ // host. IC do not operate out on the Grid.").
272
+ //
273
+ // The player was in fact inside Circuit Bazaar -- the report is a
274
+ // misread, and IC really do only run inside hosts (p.247). But the
275
+ // line gave them no way to know that: it said "the host" as though
276
+ // there were only one, named no place, and arrived while they thought
277
+ // they were out on open grid. A notification that cannot be located is
278
+ // indistinguishable from a bug in the rules.
279
+ //
280
+ // So it says WHICH host, and where it is. That is the whole fix; the
281
+ // deeper problem -- that this engine has no inside-vs-outside-host
282
+ // state for the player to have crossed -- is its own item.
283
+ out.lines.push(` {red-fg}${hostLabel(room, { capital: true })} makes you -- an unmarked icon where none should be. You're inside its architecture, on ${room.name}'s patch of grid, and it knows it has an intruder.{/red-fg}`);
222
284
  out.world.push(`${room.name}'s Patrol IC made ${actor.name} on a routine sweep -- alarm flagged, ice hunting.`);
223
285
  return out;
224
286
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ic.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * INHERENT LIMITS (SR5 core p.101-102, Final Calculations table).
3
+ *
4
+ * A limit caps HITS, never dice -- see utilities/dice.ts. Every bracket
5
+ * in a written test is one of these or a piece of gear's rating:
6
+ * `Hacking + Logic [Sleaze]`, `Astral Combat + Willpower [Astral]`.
7
+ *
8
+ * WHY THIS FILE EXISTS: the physical limit has had a home since the
9
+ * grapple work (utilities/grapple.ts physicalLimit, still there and
10
+ * still the one caller-facing name for it), but Mental and Social had
11
+ * none -- so the ASTRAL limit, which is defined in terms of both, could
12
+ * not be computed at all and astral combat shipped with no limit
13
+ * (TN4Fqkog6XsMErbYh). These are the two that were missing plus the one
14
+ * that needed them.
15
+ */
16
+ /** Anything with the mental attributes a Mental limit is built from. */
17
+ export interface IMentalAttrs {
18
+ logic: number;
19
+ intuition: number;
20
+ willpower: number;
21
+ }
22
+ /** Anything with the attributes a Social limit is built from. Essence is
23
+ * a decimal on the sheet and rounds UP before it is used here (p.100). */
24
+ export interface ISocialAttrs {
25
+ charisma: number;
26
+ willpower: number;
27
+ essence: number;
28
+ }
29
+ /**
30
+ * RAW Mental limit: `[(Logic x 2) + Intuition + Willpower] / 3`, round up
31
+ * (p.101-102).
32
+ */
33
+ export declare function mentalLimit(a: IMentalAttrs): number;
34
+ /**
35
+ * RAW Social limit: `[(Charisma x 2) + Willpower + Essence] / 3`, round
36
+ * up (p.101-102).
37
+ *
38
+ * Essence is rounded UP FIRST, per p.100 -- a runner at 4.4 Essence
39
+ * carries a 5 into this sum, not a 4.4. Doing the rounding once at the
40
+ * end instead quietly costs chromed characters a point of Social limit.
41
+ */
42
+ export declare function socialLimit(a: ISocialAttrs): number;
43
+ /**
44
+ * THE ASTRAL LIMIT: "equal to your Mental or Social limit, whichever is
45
+ * greater" (SR5 core p.278, Inherent Limit: Astral).
46
+ *
47
+ * It is the bracket on astral combat (`Astral Combat + Willpower
48
+ * [Astral]`, p.315) and on assensing tests made from the astral.
49
+ */
50
+ export declare function astralLimit(a: IMentalAttrs & ISocialAttrs): number;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * INHERENT LIMITS (SR5 core p.101-102, Final Calculations table).
3
+ *
4
+ * A limit caps HITS, never dice -- see utilities/dice.ts. Every bracket
5
+ * in a written test is one of these or a piece of gear's rating:
6
+ * `Hacking + Logic [Sleaze]`, `Astral Combat + Willpower [Astral]`.
7
+ *
8
+ * WHY THIS FILE EXISTS: the physical limit has had a home since the
9
+ * grapple work (utilities/grapple.ts physicalLimit, still there and
10
+ * still the one caller-facing name for it), but Mental and Social had
11
+ * none -- so the ASTRAL limit, which is defined in terms of both, could
12
+ * not be computed at all and astral combat shipped with no limit
13
+ * (TN4Fqkog6XsMErbYh). These are the two that were missing plus the one
14
+ * that needed them.
15
+ */
16
+ /**
17
+ * RAW Mental limit: `[(Logic x 2) + Intuition + Willpower] / 3`, round up
18
+ * (p.101-102).
19
+ */
20
+ export function mentalLimit(a) {
21
+ return Math.max(1, Math.ceil((a.logic * 2 + a.intuition + a.willpower) / 3));
22
+ }
23
+ /**
24
+ * RAW Social limit: `[(Charisma x 2) + Willpower + Essence] / 3`, round
25
+ * up (p.101-102).
26
+ *
27
+ * Essence is rounded UP FIRST, per p.100 -- a runner at 4.4 Essence
28
+ * carries a 5 into this sum, not a 4.4. Doing the rounding once at the
29
+ * end instead quietly costs chromed characters a point of Social limit.
30
+ */
31
+ export function socialLimit(a) {
32
+ return Math.max(1, Math.ceil((a.charisma * 2 + a.willpower + Math.ceil(a.essence)) / 3));
33
+ }
34
+ /**
35
+ * THE ASTRAL LIMIT: "equal to your Mental or Social limit, whichever is
36
+ * greater" (SR5 core p.278, Inherent Limit: Astral).
37
+ *
38
+ * It is the bracket on astral combat (`Astral Combat + Willpower
39
+ * [Astral]`, p.315) and on assensing tests made from the astral.
40
+ */
41
+ export function astralLimit(a) {
42
+ return Math.max(mentalLimit(a), socialLimit(a));
43
+ }
44
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAe;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,CAAe;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,CAA8B;IACxD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -235,6 +235,8 @@ export function serializePlayer(p) {
235
235
  haggledThisJob: p.haggledThisJob,
236
236
  damageTaken: p.damageTaken,
237
237
  stunTaken: p.stunTaken,
238
+ firstAidGiven: p.firstAidGiven,
239
+ magicallyHealed: p.magicallyHealed,
238
240
  needs: {
239
241
  ateThisCycle: p.ateThisCycle, sleptThisCycle: p.sleptThisCycle,
240
242
  hungerStreak: p.hungerStreak, sleepStreak: p.sleepStreak,
@@ -324,6 +326,13 @@ export function restorePlayer(p, s) {
324
326
  p.initiationGrade = s.initiationGrade;
325
327
  p.takeDamage(s.damageTaken);
326
328
  p.takeStun(s.stunTaken);
329
+ // STRICTLY AFTER the two calls above, which CLEAR both flags: taking
330
+ // damage opens a fresh set of wounds (Player.clearWoundSet). Restoring
331
+ // the save's damage looks exactly like taking it, so setting these
332
+ // first would hand back the once-per-wounds application on every load
333
+ // -- a reload would launder a spent medkit into a fresh one.
334
+ p.firstAidGiven = s.firstAidGiven ?? false;
335
+ p.magicallyHealed = s.magicallyHealed ?? false;
327
336
  p.addLockedFatigue('hunger', s.needs.hungerFatigue);
328
337
  p.addLockedFatigue('sleep', s.needs.sleepFatigue);
329
338
  p.ateThisCycle = s.needs.ateThisCycle;