@maka/maka-cli 5.68.0 → 5.70.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 +13 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.js +54 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +12 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +29 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +109 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.d.ts +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.js +107 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +7 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +12 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +22 -18
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +68 -30
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js +17 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +12 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +12 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +107 -14
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js +14 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +33 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.d.ts +40 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.js +91 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +10 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +4 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +12 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +41 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +112 -8
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +85 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +214 -3
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +101 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +67 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +167 -66
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +161 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +245 -24
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +97 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +134 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +19 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/crash-evidence.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/crash-evidence.js +106 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/crash-evidence.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +41 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +52 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.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 +45 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.d.ts +26 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js +45 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +90 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +70 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +168 -22
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +33 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +46 -6
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/tools/ai/ai.class.d.ts +53 -0
- package/bundle/typescript/src/tools/ai/ai.class.js +152 -7
- package/bundle/typescript/src/tools/ai/ai.class.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.class.d.ts +1 -1
- package/bundle/typescript/src/tools/https/https.class.js +29 -4
- package/bundle/typescript/src/tools/https/https.class.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.interface.d.ts +8 -0
- package/package.json +13 -2
|
@@ -74,6 +74,42 @@ export declare class Item extends AbstractItem {
|
|
|
74
74
|
get rangedBase(): number;
|
|
75
75
|
/** Base melee DV before STR/quality (RAW: knife STR+2, sword/katana/club STR+3). */
|
|
76
76
|
get meleeBase(): number;
|
|
77
|
+
/**
|
|
78
|
+
* ACCURACY -- the LIMIT on an attack made with this weapon (p.46-47,
|
|
79
|
+
* p.168: "Each weapon has an Accuracy rating that serves as its limit
|
|
80
|
+
* for attacks made with that weapon"). A gear limit REPLACES the
|
|
81
|
+
* inherent one, higher or lower (p.46-47), so this is not a floor or a
|
|
82
|
+
* cap on the Physical limit -- it is the limit.
|
|
83
|
+
*
|
|
84
|
+
* NOT COMPRESSED, unlike the DV values above. Damage was squeezed to
|
|
85
|
+
* engine scale because it is measured against soak dice this engine
|
|
86
|
+
* also scales; a limit is measured against HITS, which are the book's
|
|
87
|
+
* own units, and the Matrix brackets next door already spend the raw
|
|
88
|
+
* attribute ("whole, never halved"). Compressing here would make a
|
|
89
|
+
* sniper rifle and a holdout cap at the same place.
|
|
90
|
+
*
|
|
91
|
+
* The numbers are the book's tables (p.421-431), read through the same
|
|
92
|
+
* duck-typing school as rangedBase/armorPen so generated gear works
|
|
93
|
+
* unmodified. Class-based rather than per-weapon ON PURPOSE: the RAG
|
|
94
|
+
* could not produce standard-table rows for every gun this game ships
|
|
95
|
+
* (the shotgun table did not come back, and the one AK-97 figure it
|
|
96
|
+
* did return was off a Run Faster character sheet -- a MODIFIED
|
|
97
|
+
* weapon, not the table), so a per-weapon list would have meant
|
|
98
|
+
* inventing the gaps. Every value below is one the book gave up.
|
|
99
|
+
*
|
|
100
|
+
* THE PARENTHETICAL IS NOT MODELLED, deliberately. Tables write
|
|
101
|
+
* "Acc 5 (7)" for the value with a built-in smartgun or laser sight
|
|
102
|
+
* (p.429 Enfield: "4 (5) with the built-in laser sight"; p.433: a
|
|
103
|
+
* smartgun system is +2 Accuracy WITH a smartlink). This engine has no
|
|
104
|
+
* model for whether a character owns a smartlink, so the prerequisite
|
|
105
|
+
* for the bonus cannot be asked. Filed rather than guessed.
|
|
106
|
+
*
|
|
107
|
+
* Note the wireless smartgun bonus is a DICE POOL bonus (+1/+2,
|
|
108
|
+
* p.433), NOT an Accuracy bonus -- getAttackPool already spends it as
|
|
109
|
+
* dice. Keeping those apart is the same discipline as the Matrix
|
|
110
|
+
* brackets: a limit is never a die, and a die is never a limit.
|
|
111
|
+
*/
|
|
112
|
+
get accuracy(): number;
|
|
77
113
|
/**
|
|
78
114
|
* Armor penetration (<= 0): how much of the defender's ARMOR the hit
|
|
79
115
|
* ignores (RAW AP, compressed ~2:3 -- knife/katana -3 -> -2, heavy
|
|
@@ -121,6 +157,22 @@ export declare class Item extends AbstractItem {
|
|
|
121
157
|
* Player.getAttackPool / getPanDefensePool.
|
|
122
158
|
*/
|
|
123
159
|
matrixEdge(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): number;
|
|
160
|
+
/**
|
|
161
|
+
* THE MATRIX ATTRIBUTE ITSELF -- whole, for use as a LIMIT rather
|
|
162
|
+
* than as dice (SR5 p.226, p.222, p.234; RAG-checked 2026-08-28).
|
|
163
|
+
*
|
|
164
|
+
* A CYBERDECK carries the configurable array and answers all four.
|
|
165
|
+
* ANY OTHER DEVICE -- a commlink -- has only Data Processing and
|
|
166
|
+
* Firewall, and both equal its Device Rating (p.222, p.234). It has
|
|
167
|
+
* NO Attack and NO Sleaze: those belong to decks and hosts (p.226).
|
|
168
|
+
* Asking for one returns 0, which callers must read as "this device
|
|
169
|
+
* cannot take that action", never as "an unlimited one".
|
|
170
|
+
*
|
|
171
|
+
* matrixEdge above is the OLD half-the-attribute-as-dice
|
|
172
|
+
* substitution and is on its way out; it survives only where a pool
|
|
173
|
+
* genuinely wants a gear bonus rather than a cap.
|
|
174
|
+
*/
|
|
175
|
+
matrixAttribute(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): number;
|
|
124
176
|
/** Deck-side Matrix damage bonus: Attack attribute + a loaded Hammer. */
|
|
125
177
|
get matrixDamageBonus(): number;
|
|
126
178
|
/** One-line stat readout: "A5 S4 D4 F2, DR2, 1/2 programs". */
|
|
@@ -178,6 +178,85 @@ export class Item extends AbstractItem {
|
|
|
178
178
|
return 3;
|
|
179
179
|
return 2;
|
|
180
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* ACCURACY -- the LIMIT on an attack made with this weapon (p.46-47,
|
|
183
|
+
* p.168: "Each weapon has an Accuracy rating that serves as its limit
|
|
184
|
+
* for attacks made with that weapon"). A gear limit REPLACES the
|
|
185
|
+
* inherent one, higher or lower (p.46-47), so this is not a floor or a
|
|
186
|
+
* cap on the Physical limit -- it is the limit.
|
|
187
|
+
*
|
|
188
|
+
* NOT COMPRESSED, unlike the DV values above. Damage was squeezed to
|
|
189
|
+
* engine scale because it is measured against soak dice this engine
|
|
190
|
+
* also scales; a limit is measured against HITS, which are the book's
|
|
191
|
+
* own units, and the Matrix brackets next door already spend the raw
|
|
192
|
+
* attribute ("whole, never halved"). Compressing here would make a
|
|
193
|
+
* sniper rifle and a holdout cap at the same place.
|
|
194
|
+
*
|
|
195
|
+
* The numbers are the book's tables (p.421-431), read through the same
|
|
196
|
+
* duck-typing school as rangedBase/armorPen so generated gear works
|
|
197
|
+
* unmodified. Class-based rather than per-weapon ON PURPOSE: the RAG
|
|
198
|
+
* could not produce standard-table rows for every gun this game ships
|
|
199
|
+
* (the shotgun table did not come back, and the one AK-97 figure it
|
|
200
|
+
* did return was off a Run Faster character sheet -- a MODIFIED
|
|
201
|
+
* weapon, not the table), so a per-weapon list would have meant
|
|
202
|
+
* inventing the gaps. Every value below is one the book gave up.
|
|
203
|
+
*
|
|
204
|
+
* THE PARENTHETICAL IS NOT MODELLED, deliberately. Tables write
|
|
205
|
+
* "Acc 5 (7)" for the value with a built-in smartgun or laser sight
|
|
206
|
+
* (p.429 Enfield: "4 (5) with the built-in laser sight"; p.433: a
|
|
207
|
+
* smartgun system is +2 Accuracy WITH a smartlink). This engine has no
|
|
208
|
+
* model for whether a character owns a smartlink, so the prerequisite
|
|
209
|
+
* for the bonus cannot be asked. Filed rather than guessed.
|
|
210
|
+
*
|
|
211
|
+
* Note the wireless smartgun bonus is a DICE POOL bonus (+1/+2,
|
|
212
|
+
* p.433), NOT an Accuracy bonus -- getAttackPool already spends it as
|
|
213
|
+
* dice. Keeping those apart is the same discipline as the Matrix
|
|
214
|
+
* brackets: a limit is never a die, and a die is never a limit.
|
|
215
|
+
*/
|
|
216
|
+
get accuracy() {
|
|
217
|
+
const hay = this.weaponHay;
|
|
218
|
+
if (this.category === Category.MeleeWeapon) {
|
|
219
|
+
if (/katana/.test(hay))
|
|
220
|
+
return 7; // p.423
|
|
221
|
+
if (/knife|dagger|stiletto|shiv|razor/.test(hay))
|
|
222
|
+
return 6; // combat knife 6
|
|
223
|
+
if (/sword|axe|machete|claymore|blade/.test(hay))
|
|
224
|
+
return 6;
|
|
225
|
+
if (/pole\s?arm|halberd|spear|naginata/.test(hay))
|
|
226
|
+
return 5;
|
|
227
|
+
if (/sap|whip|garrote/.test(hay))
|
|
228
|
+
return 5;
|
|
229
|
+
if (/club|bat\b|baton|staff|pipe|crowbar|hammer|maul|mace|cudgel/.test(hay))
|
|
230
|
+
return 4;
|
|
231
|
+
return 5;
|
|
232
|
+
}
|
|
233
|
+
if (this.category === Category.RangedWeapon || this.category === Category.Weapon) {
|
|
234
|
+
if (/ranger arms|sm-?5/.test(hay))
|
|
235
|
+
return 8; // p.428
|
|
236
|
+
if (/sniper|longarm|barret|desert strike/.test(hay))
|
|
237
|
+
return 7;
|
|
238
|
+
if (/light\s?fire|colt america|light pistol/.test(hay))
|
|
239
|
+
return 7; // p.426
|
|
240
|
+
if (/crossbow/.test(hay))
|
|
241
|
+
return 6; // p.424
|
|
242
|
+
if (/hold-?out|derringer|palm pistol/.test(hay))
|
|
243
|
+
return 4; // p.426
|
|
244
|
+
if (/shotgun|roomsweeper|defiance|scattergun|enfield/.test(hay))
|
|
245
|
+
return 4;
|
|
246
|
+
if (/smg|submachine|uzi|ingram/.test(hay))
|
|
247
|
+
return 4;
|
|
248
|
+
if (/taser|machine pistol|revolver|warhawk|omni/.test(hay))
|
|
249
|
+
return 5;
|
|
250
|
+
if (/assault|ak-?\d|alpha|\brifle\b|carbine|machine gun|stoner/.test(hay))
|
|
251
|
+
return 5;
|
|
252
|
+
// Heavy pistols (Predator, Ultra-Power) and unrecognized iron.
|
|
253
|
+
return 5;
|
|
254
|
+
}
|
|
255
|
+
// Not a weapon: no Accuracy of its own. Callers fall back to the
|
|
256
|
+
// Physical limit, which is what an improvised or bare-handed
|
|
257
|
+
// attack uses (p.168).
|
|
258
|
+
return 0;
|
|
259
|
+
}
|
|
181
260
|
/**
|
|
182
261
|
* Armor penetration (<= 0): how much of the defender's ARMOR the hit
|
|
183
262
|
* ignores (RAW AP, compressed ~2:3 -- knife/katana -3 -> -2, heavy
|
|
@@ -308,6 +387,28 @@ export class Item extends AbstractItem {
|
|
|
308
387
|
return this.qualityBonus;
|
|
309
388
|
return Math.floor(this[kind] / 2);
|
|
310
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* THE MATRIX ATTRIBUTE ITSELF -- whole, for use as a LIMIT rather
|
|
392
|
+
* than as dice (SR5 p.226, p.222, p.234; RAG-checked 2026-08-28).
|
|
393
|
+
*
|
|
394
|
+
* A CYBERDECK carries the configurable array and answers all four.
|
|
395
|
+
* ANY OTHER DEVICE -- a commlink -- has only Data Processing and
|
|
396
|
+
* Firewall, and both equal its Device Rating (p.222, p.234). It has
|
|
397
|
+
* NO Attack and NO Sleaze: those belong to decks and hosts (p.226).
|
|
398
|
+
* Asking for one returns 0, which callers must read as "this device
|
|
399
|
+
* cannot take that action", never as "an unlimited one".
|
|
400
|
+
*
|
|
401
|
+
* matrixEdge above is the OLD half-the-attribute-as-dice
|
|
402
|
+
* substitution and is on its way out; it survives only where a pool
|
|
403
|
+
* genuinely wants a gear bonus rather than a cap.
|
|
404
|
+
*/
|
|
405
|
+
matrixAttribute(kind) {
|
|
406
|
+
if (this.isCyberdeck())
|
|
407
|
+
return this[kind];
|
|
408
|
+
if (kind === 'attack' || kind === 'sleaze')
|
|
409
|
+
return 0;
|
|
410
|
+
return this.deviceRating;
|
|
411
|
+
}
|
|
311
412
|
/** Deck-side Matrix damage bonus: Attack attribute + a loaded Hammer. */
|
|
312
413
|
get matrixDamageBonus() {
|
|
313
414
|
if (!this.isCyberdeck())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,6 +98,35 @@ export interface IBarrierPost {
|
|
|
98
98
|
* silently. Nothing throws when a guard starts waving people through.
|
|
99
99
|
*/
|
|
100
100
|
export declare function picketDutyNote(guarding: boolean, direction?: string): string;
|
|
101
|
+
/**
|
|
102
|
+
* OPPOSITION (JjQdy4A4tzcQdPHno: "none of the NPCs ever seem to get
|
|
103
|
+
* hostile"). See Player.hostile for why a flag was the missing piece
|
|
104
|
+
* and the wake-up was not.
|
|
105
|
+
*
|
|
106
|
+
* CANON SHAPES THIS, and it is narrower than "be aggressive". Asked
|
|
107
|
+
* fresh: hostility follows DETECTION and cause, never ambience. A host
|
|
108
|
+
* "informs its owner and launches IC" when it SPOTS you (p.247); Patrol
|
|
109
|
+
* IC escalates only when it has cause and is "mostly harmless to the
|
|
110
|
+
* innocent" (Data Trails p.86); guards round a corner, SEE the team,
|
|
111
|
+
* and shooting starts (p.374-377). Detection then feeds a Surprise Test
|
|
112
|
+
* (p.192), which is the engine's own opposed perception contest already
|
|
113
|
+
* sitting on arrival.
|
|
114
|
+
*
|
|
115
|
+
* So this note gives a REASON, never an order. It deliberately does NOT
|
|
116
|
+
* say attack: challenging a stranger, raising the alarm, or calling for
|
|
117
|
+
* backup are all better opening moves, and canon's own examples are
|
|
118
|
+
* mostly alerts rather than gunfire. A brief that said "attack on
|
|
119
|
+
* sight" would replace a game where nobody fights with a game where
|
|
120
|
+
* everybody does, and the second is worse -- a missed beat costs a
|
|
121
|
+
* moment, a room that shoots on sight costs the scene.
|
|
122
|
+
*
|
|
123
|
+
* THE LINE ABOUT NOT KNOWING WHO THEY ARE is load-bearing. Without it
|
|
124
|
+
* the AI tends to narrate certainty it has no source for -- naming the
|
|
125
|
+
* runner as a known infiltrator, or inventing what they are here to
|
|
126
|
+
* steal. Opposition means "you are not supposed to be here", not
|
|
127
|
+
* "I have read your file".
|
|
128
|
+
*/
|
|
129
|
+
export declare function hostileStanceNote(hostile: boolean, intruderName?: string): string;
|
|
101
130
|
export declare function barrierPostNote(barriers: IBarrierPost[]): string;
|
|
102
131
|
/**
|
|
103
132
|
* How many real credentials this NPC was actually handed -- the number
|
|
@@ -249,8 +278,46 @@ export declare class NPC extends Player {
|
|
|
249
278
|
private readonly _maxHistory;
|
|
250
279
|
private commandRegistry;
|
|
251
280
|
private lastNpcHeardTime;
|
|
281
|
+
/**
|
|
282
|
+
* How long an NPC ignores ANOTHER NPC's speech after hearing one.
|
|
283
|
+
*
|
|
284
|
+
* 2.5 SECONDS, BY RULING. The value was 500 with a comment reading
|
|
285
|
+
* "10 seconds" -- twenty times itself. Which of the two was intended
|
|
286
|
+
* was not recoverable from the code, so it went to the board rather
|
|
287
|
+
* than being "fixed" in either direction: silently making NPC
|
|
288
|
+
* cross-chatter twenty times rarer would have been a behaviour change
|
|
289
|
+
* wearing a typo's clothes. The answer came back neither -- 2-3
|
|
290
|
+
* seconds -- so the comment was not describing a lost intent and the
|
|
291
|
+
* number was not right either.
|
|
292
|
+
*
|
|
293
|
+
* MUST NOT SHIP IN THE SAME RELEASE AS THE CROWD NOTE (room.ts
|
|
294
|
+
* crowdNote, hiRLexr3xJjQM2jP4). This throttles exactly the cross-talk
|
|
295
|
+
* that clause addresses. If both move at once a playtest cannot tell
|
|
296
|
+
* which one quieted the room, or which one deadened it -- the clause
|
|
297
|
+
* ships and gets played first.
|
|
298
|
+
*/
|
|
252
299
|
private static npcHearCooldownMs;
|
|
253
300
|
private lastNpcSeenTime;
|
|
301
|
+
/**
|
|
302
|
+
* The same throttle for ACTIONS an NPC watches another NPC take.
|
|
303
|
+
*
|
|
304
|
+
* 2.5 SECONDS, MATCHING THE HEAR COOLDOWN, BY RULING. This was the
|
|
305
|
+
* second instance of the same lying comment -- "// 10 seconds"
|
|
306
|
+
* against a value of 500 -- and it was left at 500 on purpose when
|
|
307
|
+
* the hear one was raised, because applying that answer here would
|
|
308
|
+
* have extended a ruling past what was asked.
|
|
309
|
+
*
|
|
310
|
+
* The answer came back "both": hearing and seeing are the same kind
|
|
311
|
+
* of reaction and were plainly meant as a pair, so reacting five
|
|
312
|
+
* times faster to sight than to sound is not a design, it is a typo
|
|
313
|
+
* that survived. Which is what the matched-pair reading suggested --
|
|
314
|
+
* but a correct guess is still a guess, and the next one might not
|
|
315
|
+
* land.
|
|
316
|
+
*
|
|
317
|
+
* Same release coupling as its twin: neither of these ships beside
|
|
318
|
+
* the crowd-note clause (room.ts crowdNote), or a playtest cannot
|
|
319
|
+
* tell which one quieted the room.
|
|
320
|
+
*/
|
|
254
321
|
private static npcSeeCooldownMs;
|
|
255
322
|
private _maxRecursion;
|
|
256
323
|
private waitingForPlayer;
|
|
@@ -63,6 +63,49 @@ export function picketDutyNote(guarding, direction) {
|
|
|
63
63
|
+ ` You can be talked round by a genuinely good story or a real reason, and you can be`
|
|
64
64
|
+ ` put down by force. Short of one of those, the answer is no.`;
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* OPPOSITION (JjQdy4A4tzcQdPHno: "none of the NPCs ever seem to get
|
|
68
|
+
* hostile"). See Player.hostile for why a flag was the missing piece
|
|
69
|
+
* and the wake-up was not.
|
|
70
|
+
*
|
|
71
|
+
* CANON SHAPES THIS, and it is narrower than "be aggressive". Asked
|
|
72
|
+
* fresh: hostility follows DETECTION and cause, never ambience. A host
|
|
73
|
+
* "informs its owner and launches IC" when it SPOTS you (p.247); Patrol
|
|
74
|
+
* IC escalates only when it has cause and is "mostly harmless to the
|
|
75
|
+
* innocent" (Data Trails p.86); guards round a corner, SEE the team,
|
|
76
|
+
* and shooting starts (p.374-377). Detection then feeds a Surprise Test
|
|
77
|
+
* (p.192), which is the engine's own opposed perception contest already
|
|
78
|
+
* sitting on arrival.
|
|
79
|
+
*
|
|
80
|
+
* So this note gives a REASON, never an order. It deliberately does NOT
|
|
81
|
+
* say attack: challenging a stranger, raising the alarm, or calling for
|
|
82
|
+
* backup are all better opening moves, and canon's own examples are
|
|
83
|
+
* mostly alerts rather than gunfire. A brief that said "attack on
|
|
84
|
+
* sight" would replace a game where nobody fights with a game where
|
|
85
|
+
* everybody does, and the second is worse -- a missed beat costs a
|
|
86
|
+
* moment, a room that shoots on sight costs the scene.
|
|
87
|
+
*
|
|
88
|
+
* THE LINE ABOUT NOT KNOWING WHO THEY ARE is load-bearing. Without it
|
|
89
|
+
* the AI tends to narrate certainty it has no source for -- naming the
|
|
90
|
+
* runner as a known infiltrator, or inventing what they are here to
|
|
91
|
+
* steal. Opposition means "you are not supposed to be here", not
|
|
92
|
+
* "I have read your file".
|
|
93
|
+
*/
|
|
94
|
+
export function hostileStanceNote(hostile, intruderName) {
|
|
95
|
+
if (!hostile)
|
|
96
|
+
return '';
|
|
97
|
+
const who = intruderName ? `${intruderName} is` : 'They are';
|
|
98
|
+
return `\nYOU ARE OPPOSITION HERE, and this is not your friend.`
|
|
99
|
+
+ ` ${who} not supposed to be in this place, and you know it the moment you register them.`
|
|
100
|
+
+ ` You do not owe them help, directions, or the benefit of the doubt.`
|
|
101
|
+
+ ` Challenge them, demand what they are doing here, raise the alarm, call for backup,`
|
|
102
|
+
+ ` move to cut them off, or put hands on them -- whatever someone in your position`
|
|
103
|
+
+ ` would really do. Attacking is available ("attack <name>") and is sometimes right,`
|
|
104
|
+
+ ` but it is rarely the FIRST thing: a challenge or an alarm usually comes before a gun.`
|
|
105
|
+
+ ` You do NOT know their name, their employer, or what they came for unless you were`
|
|
106
|
+
+ ` told it or they tell you -- act on what you can see, not on a file you never read.`
|
|
107
|
+
+ ` If they talk their way round you, or beat you, that settles it.`;
|
|
108
|
+
}
|
|
66
109
|
export function barrierPostNote(barriers) {
|
|
67
110
|
return barriers.map(b => {
|
|
68
111
|
const dirNote = b.sealingDirection ? ` sealing the way ${b.sealingDirection}` : '';
|
|
@@ -432,9 +475,47 @@ export class NPC extends Player {
|
|
|
432
475
|
_maxHistory = 200;
|
|
433
476
|
commandRegistry;
|
|
434
477
|
lastNpcHeardTime = 0;
|
|
435
|
-
|
|
478
|
+
/**
|
|
479
|
+
* How long an NPC ignores ANOTHER NPC's speech after hearing one.
|
|
480
|
+
*
|
|
481
|
+
* 2.5 SECONDS, BY RULING. The value was 500 with a comment reading
|
|
482
|
+
* "10 seconds" -- twenty times itself. Which of the two was intended
|
|
483
|
+
* was not recoverable from the code, so it went to the board rather
|
|
484
|
+
* than being "fixed" in either direction: silently making NPC
|
|
485
|
+
* cross-chatter twenty times rarer would have been a behaviour change
|
|
486
|
+
* wearing a typo's clothes. The answer came back neither -- 2-3
|
|
487
|
+
* seconds -- so the comment was not describing a lost intent and the
|
|
488
|
+
* number was not right either.
|
|
489
|
+
*
|
|
490
|
+
* MUST NOT SHIP IN THE SAME RELEASE AS THE CROWD NOTE (room.ts
|
|
491
|
+
* crowdNote, hiRLexr3xJjQM2jP4). This throttles exactly the cross-talk
|
|
492
|
+
* that clause addresses. If both move at once a playtest cannot tell
|
|
493
|
+
* which one quieted the room, or which one deadened it -- the clause
|
|
494
|
+
* ships and gets played first.
|
|
495
|
+
*/
|
|
496
|
+
static npcHearCooldownMs = 2500;
|
|
436
497
|
lastNpcSeenTime = 0;
|
|
437
|
-
|
|
498
|
+
/**
|
|
499
|
+
* The same throttle for ACTIONS an NPC watches another NPC take.
|
|
500
|
+
*
|
|
501
|
+
* 2.5 SECONDS, MATCHING THE HEAR COOLDOWN, BY RULING. This was the
|
|
502
|
+
* second instance of the same lying comment -- "// 10 seconds"
|
|
503
|
+
* against a value of 500 -- and it was left at 500 on purpose when
|
|
504
|
+
* the hear one was raised, because applying that answer here would
|
|
505
|
+
* have extended a ruling past what was asked.
|
|
506
|
+
*
|
|
507
|
+
* The answer came back "both": hearing and seeing are the same kind
|
|
508
|
+
* of reaction and were plainly meant as a pair, so reacting five
|
|
509
|
+
* times faster to sight than to sound is not a design, it is a typo
|
|
510
|
+
* that survived. Which is what the matched-pair reading suggested --
|
|
511
|
+
* but a correct guess is still a guess, and the next one might not
|
|
512
|
+
* land.
|
|
513
|
+
*
|
|
514
|
+
* Same release coupling as its twin: neither of these ships beside
|
|
515
|
+
* the crowd-note clause (room.ts crowdNote), or a playtest cannot
|
|
516
|
+
* tell which one quieted the room.
|
|
517
|
+
*/
|
|
518
|
+
static npcSeeCooldownMs = 2500;
|
|
438
519
|
_maxRecursion = 5;
|
|
439
520
|
waitingForPlayer = false;
|
|
440
521
|
// One speech act per stimulus: set when this NPC speaks while handling a
|
|
@@ -628,7 +709,8 @@ Available in-game commands (use with [COMMAND] prefix):
|
|
|
628
709
|
- unequip <item name> — remove an equipped item
|
|
629
710
|
- unlock <door name> — unlock a door (if you have the key or solution)
|
|
630
711
|
- lock <door name> — lock a door
|
|
631
|
-
-
|
|
712
|
+
- use <panel name> <the code> — enter a code you actually know into a keypad or panel.
|
|
713
|
+
Only a PANEL takes a code; you cannot talk at a mechanical lock
|
|
632
714
|
- pick — attempt to pick the lock on the puzzle in this room without knowing the answer (50/50, a failure sets off an alarm)
|
|
633
715
|
- hack — attempt to hack the terminal/system in this room without knowing the answer (50/50, a failure trips a countermeasure)
|
|
634
716
|
- cast <spell> [at <target>] — cast a spell you know. Requires being Awakened
|
|
@@ -740,71 +822,85 @@ description text.`;
|
|
|
740
822
|
}
|
|
741
823
|
}
|
|
742
824
|
async hear(actor, message, opts) {
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
//
|
|
746
|
-
//
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
//
|
|
750
|
-
//
|
|
751
|
-
//
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
825
|
+
// NEVER RETHROW, for the same reason see() does not (below): hear()
|
|
826
|
+
// is fired-and-forgotten from Room.say and from every social
|
|
827
|
+
// command, so a rejection here lands as an unhandledRejection and
|
|
828
|
+
// ui.ts fatal handler kills the whole session. see() learned this
|
|
829
|
+
// from a provider running out of credits mid-session; the lesson
|
|
830
|
+
// was never swept across to hear(), and on 2026-08-29 the SAME
|
|
831
|
+
// shape came back through the other door -- a 502 HTML page from
|
|
832
|
+
// the relay, parsed as JSON, dying inside respondTo. An NPC that
|
|
833
|
+
// cannot react just... does not.
|
|
834
|
+
try {
|
|
835
|
+
if (actor === this || actor.name === this.name)
|
|
836
|
+
return;
|
|
837
|
+
// The gone don't listen (see act()): no stimulus may restart a
|
|
838
|
+
// removed shell's AI.
|
|
839
|
+
if (this.deathClaimed)
|
|
840
|
+
return;
|
|
841
|
+
// NEITHER DO THE UNCONSCIOUS. A knocked-out actor now STAYS in the
|
|
842
|
+
// scene so they can be brought round (player ruling 2026-08-25) --
|
|
843
|
+
// which means every AI entry point has to check, or the body on the
|
|
844
|
+
// floor keeps holding conversations.
|
|
845
|
+
if (this.isIncapacitated())
|
|
846
|
+
return;
|
|
847
|
+
// Cross-plane silence (see Player.canPerceive): a meat guard never
|
|
848
|
+
// hears a Matrix persona or an astral form, so its AI never reacts to
|
|
849
|
+
// things its character couldn't possibly know about. EXCEPT over a
|
|
850
|
+
// LINK, where plane is irrelevant: an order to a companion rides the
|
|
851
|
+
// deck / rigger / summoning bond (order.ts), and an active CALL is
|
|
852
|
+
// Matrix traffic end to end -- a jacked-in decker calling a meat-side
|
|
853
|
+
// contact is the most natural call there is (a real session's
|
|
854
|
+
// "call ratchet" from VR connected and then fell into this gate).
|
|
855
|
+
const overLink = opts?.viaLink || this.activeCallPartner === actor;
|
|
856
|
+
if (!overLink && !this.canPerceive(actor))
|
|
857
|
+
return;
|
|
858
|
+
// AT HEEL, NOT AT THE TABLE (player ruling: companions don't jockey
|
|
859
|
+
// for their master). Broadcast room-speech -- ANYONE's, the master's
|
|
860
|
+
// included -- never wakes a companion shell's AI: the sentry mouthing
|
|
861
|
+
// off at the runner gets answered by the RUNNER, with the bound
|
|
862
|
+
// spirit standing silent at their shoulder (a real session had the
|
|
863
|
+
// spirit negotiating the door). It still LISTENS (history feeds
|
|
864
|
+
// later orders), and it still speaks when addressed directly
|
|
865
|
+
// ("talk"/"order"/viaLink -- those channels never set broadcast) or
|
|
866
|
+
// while running a standing directive (order.ts setObjective:
|
|
867
|
+
// autonomy was explicitly granted).
|
|
868
|
+
if (opts?.broadcast && this.companionKind && !this.objective) {
|
|
869
|
+
this._addToHistory(`${actor.name} says: "${message}"`);
|
|
870
|
+
this.logger.write(`${this.name} (companion, at heel) overheard ${actor.name} -- staying silent.`);
|
|
871
|
+
return;
|
|
872
|
+
}
|
|
873
|
+
// Player wakes us up
|
|
874
|
+
if (!(actor instanceof NPC)) {
|
|
875
|
+
if (this.waitingForPlayer)
|
|
876
|
+
this.logger.write(`[DEBUG] ${this.name} received player input, waking up.`);
|
|
877
|
+
this.waitingForPlayer = false;
|
|
878
|
+
}
|
|
879
|
+
// If another NPC tries to trigger us and we are waiting for a player, ignore
|
|
880
|
+
if (this.waitingForPlayer && actor instanceof NPC) {
|
|
881
|
+
this.logger.write(`[DEBUG] ${this.name} is waiting for player input, ignoring NPC.`);
|
|
797
882
|
return;
|
|
798
883
|
}
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
884
|
+
// If another NPC tries to trigger us and we are on cooldown, ignore
|
|
885
|
+
if (actor instanceof NPC) {
|
|
886
|
+
const now = Date.now();
|
|
887
|
+
if (now - this.lastNpcHeardTime < NPC.npcHearCooldownMs) {
|
|
888
|
+
this.logger.write(`[DEBUG] ${this.name} is on NPC hear cooldown.`);
|
|
889
|
+
return;
|
|
890
|
+
}
|
|
891
|
+
this.lastNpcHeardTime = now;
|
|
892
|
+
this.waitingForPlayer = true;
|
|
893
|
+
this.logger.write(`[DEBUG] ${this.name} heard NPC, entering waiting state.`);
|
|
894
|
+
}
|
|
895
|
+
// Process input
|
|
896
|
+
const entry = `${actor.name} says: "${message}"`;
|
|
897
|
+
this._addToHistory(entry);
|
|
898
|
+
this.logger.write(`${this.name} heard from ${actor.name}`);
|
|
899
|
+
await this.respondTo(actor, message);
|
|
900
|
+
}
|
|
901
|
+
catch (error) {
|
|
902
|
+
this.logger.error(`Error in hear (reaction dropped): ${error}`);
|
|
802
903
|
}
|
|
803
|
-
// Process input
|
|
804
|
-
const entry = `${actor.name} says: "${message}"`;
|
|
805
|
-
this._addToHistory(entry);
|
|
806
|
-
this.logger.write(`${this.name} heard from ${actor.name}`);
|
|
807
|
-
await this.respondTo(actor, message);
|
|
808
904
|
}
|
|
809
905
|
/**
|
|
810
906
|
* ETIQUETTE (RAW p.138/141): "a social version of Sneak" -- the
|
|
@@ -1596,6 +1692,11 @@ An ORDER is the only way these goods change hands -- never a dialogue sale, neve
|
|
|
1596
1692
|
}
|
|
1597
1693
|
}
|
|
1598
1694
|
const picketBlock = picketDutyNote(this.guarding === true, guardedDirection);
|
|
1695
|
+
// OPPOSITION (see Player.hostile / hostileStanceNote). Named to the
|
|
1696
|
+
// actor who is actually here, so the note is about the person in
|
|
1697
|
+
// front of them rather than a standing grudge -- and never applied
|
|
1698
|
+
// to an ally shell, which serves the runner by construction.
|
|
1699
|
+
const hostileBlock = hostileStanceNote(this.hostile === true && !this.allyOf, actor?.name);
|
|
1599
1700
|
// CREDENTIALS YOU DO NOT HOLD (a real session: "the code Oren gave me
|
|
1600
1701
|
// is wrong"). The block above is the ONLY place an NPC is ever handed
|
|
1601
1702
|
// a real requiredPhrase, and it is keyed to the room they stand in --
|
|
@@ -1758,7 +1859,7 @@ Your objective is to drive the story line.
|
|
|
1758
1859
|
${formattedExitsStr}
|
|
1759
1860
|
${roomInventoryDesc}
|
|
1760
1861
|
${waresDesc}
|
|
1761
|
-
${swagNote}${clientNote}${picketBlock}${barrierBlock}${credentialHonesty}${localKnowledge}
|
|
1862
|
+
${swagNote}${clientNote}${hostileBlock}${picketBlock}${barrierBlock}${credentialHonesty}${localKnowledge}
|
|
1762
1863
|
${familiarity}
|
|
1763
1864
|
${droneNote}
|
|
1764
1865
|
${companionNote}${tableNote}
|