@maka/maka-cli 5.84.0 → 5.86.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 +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +1 -41
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +47 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js +16 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +31 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +11 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +28 -4
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +86 -16
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +86 -10
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +15 -6
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js +123 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js +43 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +96 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +59 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.d.ts +37 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.js +51 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.d.ts +76 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +84 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +86 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +137 -21
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js +139 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +1 -0
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js +46 -44
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/update.js +6 -20
- package/bundle/typescript/src/commands/update.js.map +1 -1
- package/bundle/typescript/src/tools/self-update/binary-install.d.ts +113 -0
- package/bundle/typescript/src/tools/self-update/binary-install.js +178 -0
- package/bundle/typescript/src/tools/self-update/binary-install.js.map +1 -0
- package/bundle/typescript/src/tools/self-update/update-maka.d.ts +3 -1
- package/bundle/typescript/src/tools/self-update/update-maka.js +219 -3
- package/bundle/typescript/src/tools/self-update/update-maka.js.map +1 -1
- package/package.json +1 -1
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
},
|
|
473
473
|
{
|
|
474
474
|
"name": "Sim Den",
|
|
475
|
-
"description": "Past the door, rows of scavenged sim-couches
|
|
475
|
+
"description": "Past the door, rows of scavenged sim-couches under a host that hums on the grid like any other. The paranoia is one rack further in: a matte-black server with no antenna on it, holding what matters on hard lines only. The couch rows whisper with other people's dreams.",
|
|
476
476
|
"roomType": "Den",
|
|
477
477
|
"hasNode": true,
|
|
478
478
|
"hostRating": 5,
|
|
@@ -541,10 +541,10 @@
|
|
|
541
541
|
}
|
|
542
542
|
},
|
|
543
543
|
{
|
|
544
|
-
"description": "Ratchet is the Circuit Bazaar's owner: a wiry decker who sells, repairs, and quietly upgrades electronics. He knows every host in the district, including the Sim Den's
|
|
544
|
+
"description": "Ratchet is the Circuit Bazaar's owner: a wiry decker who sells, repairs, and quietly upgrades electronics. He knows every host in the district, including the Sim Den's and the box it keeps off the grid, and gossips freely with fellow tech-heads.",
|
|
545
545
|
"dialogue": [
|
|
546
546
|
"Everything here boots. Mostly.",
|
|
547
|
-
"The Sim Den host?
|
|
547
|
+
"The Sim Den host? Right there on the grid like anyone's. It's the SERVER behind it that never sees a signal -- hard lines only, chummer. Somebody down there is paranoid for a REASON.",
|
|
548
548
|
"Bring me broken decks. I like the sad ones."
|
|
549
549
|
],
|
|
550
550
|
"player": {
|
|
@@ -868,7 +868,7 @@
|
|
|
868
868
|
"shape": "Slab",
|
|
869
869
|
"color": "Matte Black",
|
|
870
870
|
"texture": "Cold Metal",
|
|
871
|
-
"rating": "
|
|
871
|
+
"rating": "Legendary",
|
|
872
872
|
"weight": 0.2,
|
|
873
873
|
"heldBy": "Mr. Krow",
|
|
874
874
|
"owner": "Mr. Krow",
|
|
@@ -1290,7 +1290,7 @@
|
|
|
1290
1290
|
"shape": "Slab",
|
|
1291
1291
|
"color": "Gunmetal",
|
|
1292
1292
|
"texture": "Scarred Polymer",
|
|
1293
|
-
"rating": "
|
|
1293
|
+
"rating": "Rare",
|
|
1294
1294
|
"weight": 0.2,
|
|
1295
1295
|
"heldBy": "Torque",
|
|
1296
1296
|
"owner": "Torque",
|
|
@@ -1304,7 +1304,7 @@
|
|
|
1304
1304
|
"shape": "Slab",
|
|
1305
1305
|
"color": "Circuit Green",
|
|
1306
1306
|
"texture": "Taped Seams",
|
|
1307
|
-
"rating": "
|
|
1307
|
+
"rating": "Legendary",
|
|
1308
1308
|
"weight": 0.2,
|
|
1309
1309
|
"heldBy": "Ratchet",
|
|
1310
1310
|
"owner": "Ratchet",
|
|
@@ -1318,7 +1318,7 @@
|
|
|
1318
1318
|
"shape": "Slab",
|
|
1319
1319
|
"color": "Bone White",
|
|
1320
1320
|
"texture": "Antiseptic Plastic",
|
|
1321
|
-
"rating": "
|
|
1321
|
+
"rating": "Rare",
|
|
1322
1322
|
"weight": 0.2,
|
|
1323
1323
|
"heldBy": "Doc Halloran",
|
|
1324
1324
|
"owner": "Doc Halloran",
|
|
@@ -1332,7 +1332,7 @@
|
|
|
1332
1332
|
"shape": "Slab",
|
|
1333
1333
|
"color": "Faded Orange",
|
|
1334
1334
|
"texture": "Worn Rubber",
|
|
1335
|
-
"rating": "
|
|
1335
|
+
"rating": "Standard",
|
|
1336
1336
|
"weight": 0.2,
|
|
1337
1337
|
"heldBy": "Old Cray",
|
|
1338
1338
|
"owner": "Old Cray",
|
|
@@ -1346,7 +1346,7 @@
|
|
|
1346
1346
|
"shape": "Slab",
|
|
1347
1347
|
"color": "Neon Pink",
|
|
1348
1348
|
"texture": "Sticker-Covered",
|
|
1349
|
-
"rating": "
|
|
1349
|
+
"rating": "Standard",
|
|
1350
1350
|
"weight": 0.2,
|
|
1351
1351
|
"heldBy": "Skitter",
|
|
1352
1352
|
"owner": "Skitter",
|
|
@@ -1360,11 +1360,87 @@
|
|
|
1360
1360
|
"shape": "Slab",
|
|
1361
1361
|
"color": "Silver",
|
|
1362
1362
|
"texture": "Polished Glass",
|
|
1363
|
-
"rating": "
|
|
1363
|
+
"rating": "Rare",
|
|
1364
1364
|
"weight": 0.2,
|
|
1365
1365
|
"heldBy": "Whisper",
|
|
1366
1366
|
"owner": "Whisper",
|
|
1367
1367
|
"transferable": false
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"name": "Verdigris's Commlink",
|
|
1371
|
+
"description": "A commlink in a hand-stitched leather sleeve, sigils inked along the seam.",
|
|
1372
|
+
"size": "Small",
|
|
1373
|
+
"category": "Commlink",
|
|
1374
|
+
"shape": "Slab",
|
|
1375
|
+
"color": "Oxblood",
|
|
1376
|
+
"texture": "Tooled Leather",
|
|
1377
|
+
"rating": "Rare",
|
|
1378
|
+
"weight": 0.2,
|
|
1379
|
+
"heldBy": "Sister Verdigris",
|
|
1380
|
+
"owner": "Sister Verdigris",
|
|
1381
|
+
"transferable": false
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
"name": "Mama Wu's Commlink",
|
|
1385
|
+
"description": "A commlink that has taken more orders than any till on the Strip, screen fogged with steam.",
|
|
1386
|
+
"size": "Small",
|
|
1387
|
+
"category": "Commlink",
|
|
1388
|
+
"shape": "Slab",
|
|
1389
|
+
"color": "Rice White",
|
|
1390
|
+
"texture": "Steam-Clouded",
|
|
1391
|
+
"rating": "Standard",
|
|
1392
|
+
"weight": 0.2,
|
|
1393
|
+
"heldBy": "Mama Wu",
|
|
1394
|
+
"owner": "Mama Wu",
|
|
1395
|
+
"transferable": false
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
"name": "Patch's Commlink",
|
|
1399
|
+
"description": "A bar commlink behind the taps, ringer off, contact list longer than the drinks menu.",
|
|
1400
|
+
"size": "Small",
|
|
1401
|
+
"category": "Commlink",
|
|
1402
|
+
"shape": "Slab",
|
|
1403
|
+
"color": "Bottle Green",
|
|
1404
|
+
"texture": "Sticky Lacquer",
|
|
1405
|
+
"rating": "Rare",
|
|
1406
|
+
"weight": 0.2,
|
|
1407
|
+
"heldBy": "Patch",
|
|
1408
|
+
"owner": "Patch",
|
|
1409
|
+
"transferable": false
|
|
1410
|
+
},
|
|
1411
|
+
{
|
|
1412
|
+
"name": "Brick's Commlink",
|
|
1413
|
+
"description": "A commlink the size of a brick, in a case the size of two, in a fist the size of both.",
|
|
1414
|
+
"size": "Small",
|
|
1415
|
+
"category": "Commlink",
|
|
1416
|
+
"shape": "Slab",
|
|
1417
|
+
"color": "Dragon Red",
|
|
1418
|
+
"texture": "Rubber Armoured",
|
|
1419
|
+
"rating": "Standard",
|
|
1420
|
+
"weight": 0.2,
|
|
1421
|
+
"heldBy": "Brick",
|
|
1422
|
+
"owner": "Brick",
|
|
1423
|
+
"transferable": false
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"name": "Fairlight Excalibur",
|
|
1427
|
+
"description": "Mr. Krow's deck, and the reason nobody has ever read his call log. Top of the line and configured like a vault door rather than a battering ram -- every spare point of that array is sunk into Firewall.",
|
|
1428
|
+
"size": "Small",
|
|
1429
|
+
"category": "Cyberdeck",
|
|
1430
|
+
"shape": "Deck",
|
|
1431
|
+
"color": "Brushed Titanium",
|
|
1432
|
+
"texture": "Cool Enamel",
|
|
1433
|
+
"rating": "MilitaryGrade",
|
|
1434
|
+
"weight": 2,
|
|
1435
|
+
"heldBy": "Mr. Krow",
|
|
1436
|
+
"owner": "Mr. Krow",
|
|
1437
|
+
"transferable": false,
|
|
1438
|
+
"deckOrder": [
|
|
1439
|
+
3,
|
|
1440
|
+
2,
|
|
1441
|
+
1,
|
|
1442
|
+
0
|
|
1443
|
+
]
|
|
1368
1444
|
}
|
|
1369
1445
|
],
|
|
1370
1446
|
"puzzles": []
|
|
@@ -292,12 +292,21 @@ export interface IReproHost {
|
|
|
292
292
|
*/
|
|
293
293
|
rating?: number;
|
|
294
294
|
/**
|
|
295
|
-
* 'wireless' (default) is reachable by any jacked-in
|
|
296
|
-
*
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
295
|
+
* 'wireless' (default) is an ordinary host, reachable by any jacked-in
|
|
296
|
+
* persona -- which is now every host, because a host is Matrix
|
|
297
|
+
* architecture by definition (hhSWzLSXECFtfoAGa).
|
|
298
|
+
*
|
|
299
|
+
* 'wired' IS LEGACY AND MEANS SOMETHING ELSE NOW. It no longer makes
|
|
300
|
+
* an air-gapped HOST -- there is no such thing. The Room constructor
|
|
301
|
+
* migrates it to an ordinary host PLUS an offline server device
|
|
302
|
+
* holding the files, reachable only by a direct connection with the
|
|
303
|
+
* actor's body in the room (p.233). Kept so old fixtures still build;
|
|
304
|
+
* prefer 'wireless' and place a server deliberately in new ones.
|
|
305
|
+
*
|
|
306
|
+
* (The claim that used to sit here -- "every host in the shipped
|
|
307
|
+
* scenes that holds paydata is air-gapped" -- was true of the old
|
|
308
|
+
* model and is now false twice over: the model is gone, and the scene
|
|
309
|
+
* prose that said so has been corrected.)
|
|
301
310
|
*/
|
|
302
311
|
access?: 'wireless' | 'wired';
|
|
303
312
|
/** Which room carries it. Defaults to the side the runner starts on,
|
|
@@ -23,4 +23,21 @@ export interface IItemSeedJson {
|
|
|
23
23
|
plane?: 'meat' | 'matrix' | 'astral';
|
|
24
24
|
price?: number;
|
|
25
25
|
atSpot?: string;
|
|
26
|
+
/**
|
|
27
|
+
* HOW THIS DECK IS CONFIGURED (SR5 p.227, "Deck Configuration"):
|
|
28
|
+
* indexes into the deck's attribute array for [attack, sleaze,
|
|
29
|
+
* dataProcessing, firewall]. Cyberdecks only; ignored elsewhere.
|
|
30
|
+
*
|
|
31
|
+
* The engine's default is [0,1,2,3] -- the array's biggest number on
|
|
32
|
+
* ATTACK, which is a runner's aggression and the right default for a
|
|
33
|
+
* deck somebody bought to break into things. It is the wrong default
|
|
34
|
+
* for a deck somebody bought so that nothing can break into THEM,
|
|
35
|
+
* and canon makes that a choice rather than a different deck: the
|
|
36
|
+
* same four numbers, assigned as the owner sees fit.
|
|
37
|
+
*
|
|
38
|
+
* So this exists to let a seed say who its owner is. Krow runs
|
|
39
|
+
* Firewall-first because he is a fixer who never leaves the office
|
|
40
|
+
* and has no interest in attacking anyone (iM58MmFAysCp9QT6m).
|
|
41
|
+
*/
|
|
42
|
+
deckOrder?: number[];
|
|
26
43
|
}
|
|
@@ -87,7 +87,7 @@ export function aroTags(scene, actor, room) {
|
|
|
87
87
|
const tags = [];
|
|
88
88
|
// THE HOST's public face. EVERY host has one now: a host is Matrix
|
|
89
89
|
// architecture by definition (p.218), so there is no longer a variety
|
|
90
|
-
// that the street cannot see (
|
|
90
|
+
// that the street cannot see (hhSWzLSXECFtfoAGa removed it). A
|
|
91
91
|
// genuinely offline SERVER in the room is a device with no wireless
|
|
92
92
|
// presence, and it is correctly absent from this overlay for the same
|
|
93
93
|
// reason a silent PAN is.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Player } from '../models/player.js';
|
|
2
|
+
import { Room } from '../models/room.js';
|
|
3
|
+
import { IEphemeralHost } from './ephemeral.js';
|
|
4
|
+
export interface IBystanderHost extends IEphemeralHost {
|
|
5
|
+
/** Places that have already been populated -- once each. */
|
|
6
|
+
peopledRooms: Set<string>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Maybe somebody is here, minding their own business. Returns the line
|
|
10
|
+
* to show, or '' when the place is empty.
|
|
11
|
+
*
|
|
12
|
+
* NO AI, NO GOVERNOR (ruling): with AI off nothing spawns and nothing is
|
|
13
|
+
* narrated. A bystander is MORE dependent on this than the other two,
|
|
14
|
+
* not less -- their entire content is being talked to, so a mute one is
|
|
15
|
+
* a prop that looks like a person.
|
|
16
|
+
*/
|
|
17
|
+
export declare function maybeBystanders(host: IBystanderHost, actor: Player, room: Room): string;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Logger } from './logger.js';
|
|
2
|
+
import { isOutdoorsPlace } from './outdoors.js';
|
|
3
|
+
import { spawnEphemeral } from './ephemeral.js';
|
|
4
|
+
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
5
|
+
/**
|
|
6
|
+
* THE THIRD EPHEMERAL KIND: people who are simply there
|
|
7
|
+
* (7ALf6u7PvTg6TZSm7 -- Maka's item named "neutral npcs that don't
|
|
8
|
+
* impact the storyline/job"). The officer voiced a mechanic, the gang
|
|
9
|
+
* held a corner; this one has no job at all, which is exactly what
|
|
10
|
+
* makes it the hardest of the three.
|
|
11
|
+
*
|
|
12
|
+
* WHAT STOPS A BYSTANDER BECOMING A CHARACTER, which is the whole
|
|
13
|
+
* design question here. The two denials say what a passing face must
|
|
14
|
+
* not claim, and the fifth rule keeps it from acquiring an objective --
|
|
15
|
+
* but a body with nothing to be will audition for a part if the world
|
|
16
|
+
* keeps handing it turns. So the real machinery is SILENCE: a bystander
|
|
17
|
+
* is scenery until spoken to (npc.ts, both guards). Nothing gives one a
|
|
18
|
+
* turn unless a player deliberately gives it one.
|
|
19
|
+
*
|
|
20
|
+
* That single rule pays for itself twice. Room.say fans out to every
|
|
21
|
+
* mouth in earshot -- crowdNote exists because two NPCs answering one
|
|
22
|
+
* line already reads as a joke -- and `enter` is RESPOND_WORTHY, so
|
|
23
|
+
* without the guards a runner walking onto a busy street would wake a
|
|
24
|
+
* greeting committee and pay for an AI call per face.
|
|
25
|
+
*
|
|
26
|
+
* THEIR REASON FOR BEING THERE IS DISPOSABLE BY CONSTRUCTION. Each gets
|
|
27
|
+
* an ERRAND: waiting for a bus, eating, fixing a bike. It is texture,
|
|
28
|
+
* it explains why they are standing there, and it cannot outlive them
|
|
29
|
+
* because it hooks nothing -- no stock, no job, no favor, nothing the
|
|
30
|
+
* world would have to remember. An errand a player could take up would
|
|
31
|
+
* be a quest, and quests need characters.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Errands, deliberately BORING and deliberately finished-in-themselves.
|
|
35
|
+
* Every one is a reason to be standing there that goes nowhere: none
|
|
36
|
+
* needs help, none is a problem a runner could solve, and none implies
|
|
37
|
+
* a tomorrow. That is the test each of these has to pass.
|
|
38
|
+
*/
|
|
39
|
+
const ERRANDS = [
|
|
40
|
+
'waiting on a bus that is already late',
|
|
41
|
+
'eating noodles out of a carton, most of the way done',
|
|
42
|
+
'crouched over a bike chain that keeps slipping',
|
|
43
|
+
'arguing quietly into a commlink about somebody else entirely',
|
|
44
|
+
'smoking and watching the traffic',
|
|
45
|
+
'stacking crates outside a shop, nearly finished',
|
|
46
|
+
'reading a cracked tablet, absorbed',
|
|
47
|
+
];
|
|
48
|
+
const FIRST = ['Ravi', 'Jo', 'Marta', 'Teo', 'Nadia', 'Bo', 'Ines', 'Kwame'];
|
|
49
|
+
/** How often a public place turns out to have somebody in it. */
|
|
50
|
+
const BYSTANDER_CHANCE = 0.35;
|
|
51
|
+
/**
|
|
52
|
+
* The cap, registry-wide and for the same reason the gang's is
|
|
53
|
+
* (#118): a per-spawn limit reads as correct and lets a walk down a
|
|
54
|
+
* long street quietly put a dozen faces on the map. Lower than the
|
|
55
|
+
* gang's, because these do not resolve -- a fight ends and takes its
|
|
56
|
+
* mob with it, while scenery only leaves when you do.
|
|
57
|
+
*/
|
|
58
|
+
const MAX_STANDING = 2;
|
|
59
|
+
/**
|
|
60
|
+
* Maybe somebody is here, minding their own business. Returns the line
|
|
61
|
+
* to show, or '' when the place is empty.
|
|
62
|
+
*
|
|
63
|
+
* NO AI, NO GOVERNOR (ruling): with AI off nothing spawns and nothing is
|
|
64
|
+
* narrated. A bystander is MORE dependent on this than the other two,
|
|
65
|
+
* not less -- their entire content is being talked to, so a mute one is
|
|
66
|
+
* a prop that looks like a person.
|
|
67
|
+
*/
|
|
68
|
+
export function maybeBystanders(host, actor, room) {
|
|
69
|
+
if (!AI.isConfigured())
|
|
70
|
+
return '';
|
|
71
|
+
if (actor.plane !== 'meat')
|
|
72
|
+
return '';
|
|
73
|
+
// Public ground only. Someone standing around in a corp server room
|
|
74
|
+
// is a security question, and security questions belong to the scene.
|
|
75
|
+
if (!isOutdoorsPlace(room))
|
|
76
|
+
return '';
|
|
77
|
+
if (host.peopledRooms.has(room.name))
|
|
78
|
+
return '';
|
|
79
|
+
const standing = [...host.ephemerals.values()].filter(m => m.kind === 'bystander').length;
|
|
80
|
+
if (standing >= MAX_STANDING)
|
|
81
|
+
return '';
|
|
82
|
+
if (Math.random() >= BYSTANDER_CHANCE)
|
|
83
|
+
return '';
|
|
84
|
+
host.peopledRooms.add(room.name);
|
|
85
|
+
const name = uniqueName(host);
|
|
86
|
+
if (!name)
|
|
87
|
+
return '';
|
|
88
|
+
const errand = ERRANDS[Math.floor(Math.random() * ERRANDS.length)];
|
|
89
|
+
const npc = spawnEphemeral(host, {
|
|
90
|
+
name,
|
|
91
|
+
description: `an ordinary local, ${errand}. They live around here and have nothing to do with whatever brought you to this street: no job to offer, nothing to sell, nobody to introduce you to. They are a person having an unremarkable afternoon, and if you talk to them that is the most interesting thing that will happen to either of you today.`,
|
|
92
|
+
kind: 'bystander',
|
|
93
|
+
// ROOM-SCOPED, the plainest scope there is: they are here because
|
|
94
|
+
// you are here to see them. Walk away and the street goes back to
|
|
95
|
+
// being a street.
|
|
96
|
+
until: 'room',
|
|
97
|
+
room,
|
|
98
|
+
// Ordinary metahuman, no combat training -- the average of SR5's
|
|
99
|
+
// starting attribute range. They are not opposition and must never
|
|
100
|
+
// read as a threat; a bystander with a gunfighter's stats would be
|
|
101
|
+
// a scene NPC wearing scenery's clothes.
|
|
102
|
+
combat: {
|
|
103
|
+
body: 3, agility: 3, reaction: 3, strength: 3,
|
|
104
|
+
willpower: 3, logic: 3, intuition: 3, charisma: 3,
|
|
105
|
+
edge: 1, combatSkill: 0,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
if (!npc)
|
|
109
|
+
return '';
|
|
110
|
+
Logger.getInstance().write(`Bystander on ${room.name}: ${name} (${errand}).`);
|
|
111
|
+
return `{white-fg}${name} is here, ${errand}.{/white-fg}`;
|
|
112
|
+
}
|
|
113
|
+
function uniqueName(host) {
|
|
114
|
+
for (const base of FIRST) {
|
|
115
|
+
for (const suffix of ['', ' (2)']) {
|
|
116
|
+
const candidate = `${base}${suffix}`;
|
|
117
|
+
if (!host.scene.getActor(candidate))
|
|
118
|
+
return candidate;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=bystander.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bystander.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/bystander.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
1
2
|
export interface IDdpLiteConn {
|
|
2
3
|
call<T = unknown>(name: string, ...args: unknown[]): Promise<T>;
|
|
3
4
|
/** call() with a per-call deadline, for methods that legitimately run
|
|
@@ -9,6 +10,12 @@ export interface IDdpLiteConn {
|
|
|
9
10
|
on(event: 'connected' | 'disconnected', listener: () => void): IDdpLiteConn;
|
|
10
11
|
/** Runs after every RE-handshake, before re-subscription (re-login). */
|
|
11
12
|
onReconnect?: () => Promise<void>;
|
|
13
|
+
/** Observability for the re-handshake itself. The transport used to
|
|
14
|
+
* reconnect in complete silence, which made an alive-but-deaf link
|
|
15
|
+
* indistinguishable from a quiet table. */
|
|
16
|
+
onRehandshake?: (attempts: number) => void;
|
|
17
|
+
/** onReconnect THREW. Never swallowed -- see dispatch(). */
|
|
18
|
+
onReconnectAuthFailure?: (err: unknown) => void;
|
|
12
19
|
raw: {
|
|
13
20
|
_stream: {
|
|
14
21
|
on(event: 'message', cb: (raw: string) => void): void;
|
|
@@ -16,6 +23,52 @@ export interface IDdpLiteConn {
|
|
|
16
23
|
};
|
|
17
24
|
close(): void;
|
|
18
25
|
}
|
|
26
|
+
/** Exported for TESTS only -- connectDdp is the runtime entry point and
|
|
27
|
+
* the only one callers should use. The constructor opens no socket, so
|
|
28
|
+
* the reconnect handshake can be driven directly and offline, which is
|
|
29
|
+
* the only way to test a failure that only happens on a re-handshake. */
|
|
30
|
+
export declare class DdpLiteConn extends EventEmitter implements IDdpLiteConn {
|
|
31
|
+
private endpoint;
|
|
32
|
+
private ws?;
|
|
33
|
+
private nextId;
|
|
34
|
+
private calls;
|
|
35
|
+
private subs;
|
|
36
|
+
private streamEmitter;
|
|
37
|
+
private closed;
|
|
38
|
+
private handshaken;
|
|
39
|
+
private reconnectAttempt;
|
|
40
|
+
private reconnectTimer?;
|
|
41
|
+
private lastTraffic;
|
|
42
|
+
private watchdog?;
|
|
43
|
+
onReconnect?: () => Promise<void>;
|
|
44
|
+
onRehandshake?: (attempts: number) => void;
|
|
45
|
+
onReconnectAuthFailure?: (err: unknown) => void;
|
|
46
|
+
private rawEmitter;
|
|
47
|
+
readonly raw: {
|
|
48
|
+
_stream: {
|
|
49
|
+
on: (event: "message", cb: (raw: string) => void) => void;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
constructor(endpoint: string);
|
|
53
|
+
/** First connection; resolves after the DDP handshake or rejects on
|
|
54
|
+
* timeout/refusal (and then never retries -- the caller owns that). */
|
|
55
|
+
connectFirst(timeoutMs: number): Promise<void>;
|
|
56
|
+
private openSocket;
|
|
57
|
+
/** Fire a diagnostic hook. A broken diagnostic must never take the
|
|
58
|
+
* link down with it -- that would be a worse version of the silence
|
|
59
|
+
* these hooks exist to end. */
|
|
60
|
+
private notify;
|
|
61
|
+
private dispatch;
|
|
62
|
+
private scheduleReconnect;
|
|
63
|
+
private failInFlight;
|
|
64
|
+
private send;
|
|
65
|
+
call<T = unknown>(name: string, ...args: unknown[]): Promise<T>;
|
|
66
|
+
callWithTimeout<T = unknown>(name: string, timeoutMs: number, ...args: unknown[]): Promise<T>;
|
|
67
|
+
subscribe(name: string, ...args: unknown[]): Promise<{
|
|
68
|
+
stop(): void;
|
|
69
|
+
}>;
|
|
70
|
+
close(): void;
|
|
71
|
+
}
|
|
19
72
|
/** Drop-in for the sdk's connectDdp where the game used it. */
|
|
20
73
|
export declare function connectDdp(url: string, options?: {
|
|
21
74
|
firstConnectTimeoutMs?: number;
|
|
@@ -52,7 +52,11 @@ function wsUrl(url) {
|
|
|
52
52
|
.replace(/^http:/, 'ws:')
|
|
53
53
|
.replace(/\/+$/, '') + '/websocket';
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
/** Exported for TESTS only -- connectDdp is the runtime entry point and
|
|
56
|
+
* the only one callers should use. The constructor opens no socket, so
|
|
57
|
+
* the reconnect handshake can be driven directly and offline, which is
|
|
58
|
+
* the only way to test a failure that only happens on a re-handshake. */
|
|
59
|
+
export class DdpLiteConn extends EventEmitter {
|
|
56
60
|
endpoint;
|
|
57
61
|
ws;
|
|
58
62
|
nextId = 1;
|
|
@@ -66,6 +70,8 @@ class DdpLiteConn extends EventEmitter {
|
|
|
66
70
|
lastTraffic = Date.now();
|
|
67
71
|
watchdog;
|
|
68
72
|
onReconnect;
|
|
73
|
+
onRehandshake;
|
|
74
|
+
onReconnectAuthFailure;
|
|
69
75
|
// Field order matters: rawEmitter must initialize BEFORE raw's
|
|
70
76
|
// initializer closes over it (declaration-only fields re-init to
|
|
71
77
|
// undefined under useDefineForClassFields -- a real crash here).
|
|
@@ -165,18 +171,52 @@ class DdpLiteConn extends EventEmitter {
|
|
|
165
171
|
ws.on('close', () => onDown());
|
|
166
172
|
ws.on('error', (err) => onDown(err));
|
|
167
173
|
}
|
|
174
|
+
/** Fire a diagnostic hook. A broken diagnostic must never take the
|
|
175
|
+
* link down with it -- that would be a worse version of the silence
|
|
176
|
+
* these hooks exist to end. */
|
|
177
|
+
notify(hook, arg) {
|
|
178
|
+
try {
|
|
179
|
+
hook?.(arg);
|
|
180
|
+
}
|
|
181
|
+
catch { /* a reporter that throws reports nothing */ }
|
|
182
|
+
}
|
|
168
183
|
async dispatch(m, onHandshake) {
|
|
169
184
|
switch (m.msg) {
|
|
170
185
|
case 'connected': {
|
|
171
186
|
this.handshaken = true;
|
|
187
|
+
// Captured BEFORE the reset: how many attempts this re-handshake
|
|
188
|
+
// cost is the diagnostic, and zeroing it first would report 0.
|
|
189
|
+
const attempts = this.reconnectAttempt;
|
|
172
190
|
this.reconnectAttempt = 0;
|
|
173
191
|
const isReconnect = !onHandshake;
|
|
192
|
+
if (isReconnect)
|
|
193
|
+
this.notify(this.onRehandshake, attempts);
|
|
174
194
|
try {
|
|
175
195
|
if (isReconnect && this.onReconnect)
|
|
176
196
|
await this.onReconnect();
|
|
177
197
|
}
|
|
178
|
-
catch {
|
|
179
|
-
|
|
198
|
+
catch (err) {
|
|
199
|
+
// NOT SWALLOWED ANY MORE.
|
|
200
|
+
//
|
|
201
|
+
// This catch used to be empty, with a comment reading
|
|
202
|
+
// "re-login failed -- subs go out unauthenticated and the
|
|
203
|
+
// server publishes nothing; next drop retries". Every word of
|
|
204
|
+
// that is accurate, and together they describe a link that is
|
|
205
|
+
// ALIVE BUT DEAF: the socket is healthy, heartbeats flow, the
|
|
206
|
+
// watchdog is satisfied, every subscription is dead, and the
|
|
207
|
+
// "next drop" that would retry never comes because nothing is
|
|
208
|
+
// wrong with the connection. From inside the game it is
|
|
209
|
+
// indistinguishable from a table where nobody is talking.
|
|
210
|
+
//
|
|
211
|
+
// Two shared runs went exactly this way -- 2026-08-27T01-47-58
|
|
212
|
+
// and 2026-08-30T22-12-28, independent runs three days apart,
|
|
213
|
+
// byte-identical on the wire: two frames, both docs removed,
|
|
214
|
+
// then permanent silence.
|
|
215
|
+
//
|
|
216
|
+
// The transport still does not decide what to SAY about it
|
|
217
|
+
// (this file owns no fiction and imports no Logger); it just
|
|
218
|
+
// refuses to be the place the news stops.
|
|
219
|
+
this.notify(this.onReconnectAuthFailure, err);
|
|
180
220
|
}
|
|
181
221
|
// Re-send every live subscription with its ORIGINAL params.
|
|
182
222
|
if (isReconnect) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddp-lite.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ddp-lite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ddp-lite.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ddp-lite.ts"],"names":[],"mappings":"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"}
|