@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.
- package/bundle/typescript/package.json +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +135 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +18 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +55 -21
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +39 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/heal.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/heal.js +158 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/heal.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +26 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +4 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +14 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +5 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +28 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +52 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +85 -18
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +8 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +69 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +45 -32
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +23 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +34 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +96 -14
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.d.ts +25 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +51 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +12 -5
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +182 -9
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +85 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +32 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +48 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.d.ts +124 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +209 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +112 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +70 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +133 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +208 -30
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.js +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +33 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +3 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- 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
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,
|
|
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
|
|
123
|
-
*
|
|
124
|
-
*
|
|
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
|
|
131
|
-
*
|
|
132
|
-
*
|
|
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
|
|
190
|
-
|
|
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
|
-
|
|
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;
|