@maka/maka-cli 5.8.0 → 5.9.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/archetypes.js +4 -2
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +14 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +24 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +31 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +16 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +86 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +94 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +178 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +48 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +41 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +160 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +15 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +24 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.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 +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +138 -23
- 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 +12 -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 +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +144 -24
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +3 -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 +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +187 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +27 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +51 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +165 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +76 -20
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +157 -34
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +52 -3
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +8 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +315 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { Door } from './door.js';
|
|
|
4
4
|
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
5
5
|
import { CALL_ICON, CALL_COLOR } from '../utilities/comm-style.js';
|
|
6
6
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
7
|
+
import { spotsActive, spotOf, describeSpotRoster } from '../utilities/spots.js';
|
|
7
8
|
import { priceOf } from '../utilities/commerce.js';
|
|
8
9
|
export class NPC extends Player {
|
|
9
10
|
_dialogue;
|
|
@@ -38,7 +39,7 @@ export class NPC extends Player {
|
|
|
38
39
|
// only social, magical, or violent acts interrupt with fresh dialogue --
|
|
39
40
|
// real sessions had an NPC deliver two full paragraphs because the
|
|
40
41
|
// player unequipped a gun, then more for every look/take/equip twitch.
|
|
41
|
-
static RESPOND_WORTHY_VERB = /enter|attack|subdue|kill|cast|releases|draw|holster|surrender|give|jack|project|return/i;
|
|
42
|
+
static RESPOND_WORTHY_VERB = /enter|attack|subdue|kill|cast|releases|draw|holster|surrender|give|jack|project|return|grappl|struggl/i;
|
|
42
43
|
// ==================== Companion fields (see Game.companions) ====================
|
|
43
44
|
// Set by Game.spawnCompanionShell: allyOf names the master this shell
|
|
44
45
|
// serves (drives the prompt block below and the follow hook in go.ts);
|
|
@@ -133,6 +134,15 @@ export class NPC extends Player {
|
|
|
133
134
|
Available in-game commands (use with [COMMAND] prefix):
|
|
134
135
|
|
|
135
136
|
- go <direction> — move in a direction like north, south, east, west
|
|
137
|
+
- move to <spot> — cross THIS room to one of its named places (bar, door, booths...),
|
|
138
|
+
when the room has them. You must share a place with someone to talk-to or trade
|
|
139
|
+
with them; speech from another place reaches them only as a shout everyone hears.
|
|
140
|
+
"move away" steps to the OPEN FLOOR -- the neutral ground between the places; to
|
|
141
|
+
reach someone standing there, move to the open floor yourself. "move to <name>"
|
|
142
|
+
also works: it walks you to wherever that person is standing.
|
|
143
|
+
- grapple <name> — seize and RESTRAIN someone without hurting them; held, they cannot
|
|
144
|
+
move, flee, or fight until they break your grip. Your hands are full while you hold
|
|
145
|
+
them ("release" lets go). If YOU are ever held: "struggle" is the only way out.
|
|
136
146
|
- say <message> — speak a message
|
|
137
147
|
- take <item name> — pick up an item from the current room ("take all" sweeps everything here, but only AFTER you have searched this room)
|
|
138
148
|
- drop <item name> — drop an item
|
|
@@ -272,6 +282,21 @@ description text.`;
|
|
|
272
282
|
// in AR must still reach their agent on the grid.
|
|
273
283
|
if (!opts?.viaLink && !this.canPerceive(actor))
|
|
274
284
|
return;
|
|
285
|
+
// AT HEEL, NOT AT THE TABLE (player ruling: companions don't jockey
|
|
286
|
+
// for their master). Broadcast room-speech -- ANYONE's, the master's
|
|
287
|
+
// included -- never wakes a companion shell's AI: the sentry mouthing
|
|
288
|
+
// off at the runner gets answered by the RUNNER, with the bound
|
|
289
|
+
// spirit standing silent at their shoulder (a real session had the
|
|
290
|
+
// spirit negotiating the door). It still LISTENS (history feeds
|
|
291
|
+
// later orders), and it still speaks when addressed directly
|
|
292
|
+
// ("talk"/"order"/viaLink -- those channels never set broadcast) or
|
|
293
|
+
// while running a standing directive (order.ts setObjective:
|
|
294
|
+
// autonomy was explicitly granted).
|
|
295
|
+
if (opts?.broadcast && this.companionKind && !this.objective) {
|
|
296
|
+
this._addToHistory(`${actor.name} says: "${message}"`);
|
|
297
|
+
this.logger.write(`${this.name} (companion, at heel) overheard ${actor.name} -- staying silent.`);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
275
300
|
// Player wakes us up
|
|
276
301
|
if (!(actor instanceof NPC)) {
|
|
277
302
|
if (this.waitingForPlayer)
|
|
@@ -300,6 +325,27 @@ description text.`;
|
|
|
300
325
|
this.logger.write(`${this.name} heard from ${actor.name}`);
|
|
301
326
|
await this.respondTo(actor, message);
|
|
302
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* ETIQUETTE (RAW p.138/141): "a social version of Sneak" -- the
|
|
330
|
+
* opposed test that lets someone move through a social space
|
|
331
|
+
* unremarked. Actor's Etiquette + Charisma vs THIS observer's
|
|
332
|
+
* Perception + Charisma; net hits >= 1 means they're accepted, >= 3
|
|
333
|
+
* improves the observer's attitude a line (p.141). Rolled per
|
|
334
|
+
* observer, like the physical sneak contest above. Player-visible
|
|
335
|
+
* dice tick in Mechanics (the established roll convention).
|
|
336
|
+
*/
|
|
337
|
+
etiquetteContest(actor, label) {
|
|
338
|
+
const skill = actor.skillRating('etiquette');
|
|
339
|
+
const mine = rollPool(Math.max(1, actor.charisma + (skill > 0 ? skill : -1) + actor.woundModifier - actor.sustainingPenalty));
|
|
340
|
+
const perception = this.skillRating('perception');
|
|
341
|
+
const theirs = rollPool(Math.max(1, this.charisma + (perception > 0 ? perception : -1) + this.woundModifier));
|
|
342
|
+
this.logger.write(`[ETIQUETTE] ${actor.name} ${mine.hits} vs ${this.name} ${theirs.hits} (${label}).`);
|
|
343
|
+
if (actor === this._scene?.getPlayer?.()) {
|
|
344
|
+
this.logger.meta(`Etiquette (${label}): ${formatRoll(mine)}`);
|
|
345
|
+
this.logger.meta(` ${this.name} reads the room: ${formatRoll(theirs)}`);
|
|
346
|
+
}
|
|
347
|
+
return mine.hits - theirs.hits;
|
|
348
|
+
}
|
|
303
349
|
async see(actor, verb, details) {
|
|
304
350
|
try {
|
|
305
351
|
if (actor === this || actor.name === this.name)
|
|
@@ -368,15 +414,117 @@ description text.`;
|
|
|
368
414
|
this._addToHistory(entry);
|
|
369
415
|
this.logger.write(`${this.name} sees ${entry}`);
|
|
370
416
|
// Mundane actions are noted, not answered (see RESPOND_WORTHY_VERB).
|
|
371
|
-
// Exception: MY opponent walking out mid-fight is never mundane --
|
|
417
|
+
// Exception 1: MY opponent walking out mid-fight is never mundane --
|
|
372
418
|
// seeing that "exits" is what triggers pursuit, so it must keep
|
|
373
419
|
// waking the AI even though an idle departure stays quiet.
|
|
374
420
|
const fleeingMyFight = verb.includes('exit') && this.combatOpponent === actor;
|
|
375
|
-
|
|
421
|
+
// Exception 2: THEFT. "take" is mundane -- unless what left the
|
|
422
|
+
// room is MINE (a real session: the player pocketed Mr. Krow's
|
|
423
|
+
// credstick at his own desk and Krow quietly noted it like
|
|
424
|
+
// weather). take.ts marks owned goods "(Owner's)" in the event;
|
|
425
|
+
// the ownership ledger backs it up with tolerant name matching,
|
|
426
|
+
// since the details may carry the player's typed shorthand.
|
|
427
|
+
const det = (details ?? '').toLowerCase();
|
|
428
|
+
const myTheft = /take/i.test(verb) && det.length > 0 && (det.includes(`(${this.name.toLowerCase()}'s)`)
|
|
429
|
+
|| (this._scene?.getOwnedItemsBy?.(this.name) ?? []).some((i) => {
|
|
430
|
+
const n = i.name.toLowerCase();
|
|
431
|
+
return det.includes(n) || n.includes(det);
|
|
432
|
+
}));
|
|
433
|
+
// Exception 3: an APPROACH that ends at MY OWN spot ("at" spots,
|
|
434
|
+
// utilities/spots.ts). Crossing a room is deliberately mundane --
|
|
435
|
+
// waking every NPC per move is the wall-of-attention this feature
|
|
436
|
+
// removes -- but someone walking up to where I stand is a social
|
|
437
|
+
// event for ME: the bartender greets you when you reach the bar,
|
|
438
|
+
// and only then.
|
|
439
|
+
const myApproach = /moves to/i.test(verb)
|
|
440
|
+
&& spotOf(this) !== undefined
|
|
441
|
+
&& (details ?? '').toLowerCase().includes(`the ${spotOf(this).toLowerCase()}`);
|
|
442
|
+
// Exception 4: THE PRIZE. The win-condition item is what the whole
|
|
443
|
+
// scene turns on -- watching it get pocketed is never mundane,
|
|
444
|
+
// owner or no owner (a real generated run: the Encrypted Blackmail
|
|
445
|
+
// File sat ownerless in the Dragons' cache, and the stationed
|
|
446
|
+
// enforcer watched it walk out unchallenged).
|
|
447
|
+
const prize = this._scene?.getWinCondition?.()?.item;
|
|
448
|
+
const prizeTheft = /take/i.test(verb) && !!prize && det.includes(prize.toLowerCase());
|
|
449
|
+
if (!NPC.RESPOND_WORTHY_VERB.test(verb) && !fleeingMyFight && !myTheft && !prizeTheft && !myApproach) {
|
|
376
450
|
this.logger.write(`[DEBUG] ${this.name} quietly notes "${entry}" -- no immediate response.`);
|
|
377
451
|
return;
|
|
378
452
|
}
|
|
379
|
-
|
|
453
|
+
// Arrival WARMTH follows the relationship (playtest note: the
|
|
454
|
+
// called-out-across-the-room greeting felt right for a friend --
|
|
455
|
+
// "this level of excitement goes with Loyalty" -- and a stranger's
|
|
456
|
+
// arrival shouldn't earn it; reputation covers non-contacts). In a
|
|
457
|
+
// SPOTTED room this is a hard gate, not prompt-pleading: telling a
|
|
458
|
+
// woken AI "a nod fits" still produced two Loyalty-1 barflies
|
|
459
|
+
// shouting greetings across the bar (real session) -- so anyone
|
|
460
|
+
// below the warmth bar quietly NOTES the arrival (their history
|
|
461
|
+
// keeps it for when you walk up) and never wakes. Unspotted rooms
|
|
462
|
+
// keep the old everyone-greets behavior (compat).
|
|
463
|
+
let arrivalNote = '';
|
|
464
|
+
if (/enter/i.test(verb) && !(actor instanceof NPC)) {
|
|
465
|
+
const rel = this._scene?.ownerGame?.contacts?.get(this.name);
|
|
466
|
+
let knownByRep = actor.notoriety >= 2 || actor.publicAwareness >= 2 || actor.streetCred >= 3;
|
|
467
|
+
const arrivedAtMySpot = spotOf(this) !== undefined
|
|
468
|
+
&& (details ?? '').toLowerCase().includes(`(at the ${spotOf(this).toLowerCase()})`);
|
|
469
|
+
// ETIQUETTE, hook 1 -- walking in like you belong: reputation
|
|
470
|
+
// ALWAYS turned heads, so the social Sneak is the counter
|
|
471
|
+
// (p.141: "ease suspicions, so that people might trust you more
|
|
472
|
+
// than they would an outsider"). Win the contest and this
|
|
473
|
+
// observer reads you as just another regular; LOSE it and they
|
|
474
|
+
// clocked both the reputation and the attempt to duck it.
|
|
475
|
+
let blendFailed = false;
|
|
476
|
+
if (knownByRep && !(rel && rel.loyalty >= 3)) {
|
|
477
|
+
if (this.etiquetteContest(actor, 'blend in') >= 1) {
|
|
478
|
+
knownByRep = false;
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
blendFailed = true;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
if (spotsActive(this.currentLocation)
|
|
485
|
+
&& !(rel && rel.loyalty >= 3) && !knownByRep && !arrivedAtMySpot) {
|
|
486
|
+
this.logger.write(`[DEBUG] ${this.name} quietly notes the arrival -- not warm enough to hail (loyalty ${rel?.loyalty ?? 'none'}).`);
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
if (rel && rel.loyalty >= 3) {
|
|
490
|
+
arrivalNote = ` [System note: ${actor.name} is a genuine friend (Loyalty ${rel.loyalty}/6) -- seeing them walk in pleases you. Calling a greeting across the room fits; wave them over if you like.]`;
|
|
491
|
+
}
|
|
492
|
+
else if (rel) {
|
|
493
|
+
arrivalNote = ` [System note: you know ${actor.name} (Loyalty ${rel.loyalty}/6, a regular face) -- a nod or a short word of acknowledgment fits. Save the enthusiasm for friends.]`;
|
|
494
|
+
}
|
|
495
|
+
else if (knownByRep) {
|
|
496
|
+
arrivalNote = ` [System note: you know ${actor.name} only by REPUTATION (Street Cred ${actor.streetCred}, Notoriety ${actor.notoriety}) -- react to the reputation, not the person: wary, curious, or carefully polite. No warm greeting for someone you've never met.${blendFailed ? ` And they walked in TRYING to pass unnoticed -- you clocked the act, which makes it worse.` : ''}]`;
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
arrivalNote = ` [System note: ${actor.name} is a stranger walking in -- strangers are background noise. Stay quiet unless your character has a working reason to hail them (you run the counter and they look like custom, say). A nod at most.]`;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
// ETIQUETTE, hook 2 -- the walk-up (p.141): approaching someone's
|
|
503
|
+
// spot is an opposed test unless you're already friends. 3+ net
|
|
504
|
+
// hits is RAW's attitude-up-a-line; zero net is an outsider's
|
|
505
|
+
// step, received with reserve.
|
|
506
|
+
let approachNote = '';
|
|
507
|
+
if (myApproach && !(actor instanceof NPC)) {
|
|
508
|
+
const rel = this._scene?.ownerGame?.contacts?.get(this.name);
|
|
509
|
+
if (rel && rel.loyalty >= 3) {
|
|
510
|
+
approachNote = ` They're a friend -- no ceremony needed.`;
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
const net = this.etiquetteContest(actor, 'walk-up');
|
|
514
|
+
approachNote = net >= 3
|
|
515
|
+
? ` Their approach is PITCH-PERFECT (Etiquette): whatever your guard was, it drops a notch -- receive them a shade warmer than you otherwise would.`
|
|
516
|
+
: net >= 1
|
|
517
|
+
? ` They carry themselves like they belong here -- receive them without suspicion.`
|
|
518
|
+
: ` The approach is CLUMSY -- an outsider's step. Receive them with the reserve you'd give someone who doesn't quite fit in here.`;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
await this.respondTo(actor, myTheft
|
|
522
|
+
? `${entry} [System note: that is YOUR property -- ${actor.name} just pocketed it right in front of you. React as ${this.name} would: call it out, demand it back, name a price, or answer it however fits your character. Do not ignore it.]`
|
|
523
|
+
: prizeTheft
|
|
524
|
+
? `${entry} [System note: ${actor.name} just pocketed the thing this whole scene turns on, right in front of you. If ${this.name} would care -- a guard, the owner's crew, anyone paid to watch it -- STOP them NOW: challenge, threaten, or attack. A true bystander at least marks the face. Do not ignore it.]`
|
|
525
|
+
: myApproach
|
|
526
|
+
? `${entry} [System note: ${actor.name} just walked up to the ${spotOf(this)} -- where YOU are. They're in front of you now; receive them as ${this.name} would.${approachNote}]`
|
|
527
|
+
: `${entry}${arrivalNote}`);
|
|
380
528
|
}
|
|
381
529
|
catch (error) {
|
|
382
530
|
this.logger.error(`Error in see: ${error}`);
|
|
@@ -465,6 +613,11 @@ description text.`;
|
|
|
465
613
|
.join(', ')
|
|
466
614
|
: '';
|
|
467
615
|
const exitsLine = exitsHere ? `Exits from ${this.currentLocation.name}: ${exitsHere}. "go" only works with these.` : '';
|
|
616
|
+
// Same rule as exitsLine: reflect must know the REAL options or the
|
|
617
|
+
// AI bounces off invented ones. "At" spots included when they exist.
|
|
618
|
+
const spotsLine = spotsActive(this.currentLocation)
|
|
619
|
+
? `Places in ${this.currentLocation.name}: ${describeSpotRoster(this.currentLocation, this).join('; ')}. You are ${spotOf(this) ? `at the ${spotOf(this)}` : 'moving through'}. "move to <place>" crosses to one -- talking or trading requires sharing a place.`
|
|
620
|
+
: '';
|
|
468
621
|
// A companion mid-fetch needs a target: where its master stands, and
|
|
469
622
|
// that a handover is a "give", not a promise.
|
|
470
623
|
const reflectMaster = this.allyOf ? this._scene?.getPlayer?.() : undefined;
|
|
@@ -480,6 +633,7 @@ ${masterLine}
|
|
|
480
633
|
${this.buildConditionSummary()}
|
|
481
634
|
${reflectGeography}
|
|
482
635
|
${exitsLine}
|
|
636
|
+
${spotsLine}
|
|
483
637
|
|
|
484
638
|
You just performed the action: "${commandString}"
|
|
485
639
|
With the result: "${result}"
|
|
@@ -490,6 +644,10 @@ Based on this, what is the most logical next in-game command (from the following
|
|
|
490
644
|
- Do not respond on behalf of another player or NPC
|
|
491
645
|
- If there is nothing to do, respond with: wait
|
|
492
646
|
- Only respond with one [COMMAND]
|
|
647
|
+
- READ the result above and report honestly: if it says an action failed, was refused,
|
|
648
|
+
or found nothing, then it FAILED -- never speak or act as if it succeeded (a beaten
|
|
649
|
+
sentry once announced a door "open" after his unlock bounced; the runner walked into
|
|
650
|
+
a locked hatch).
|
|
493
651
|
- If you have already said your piece and are waiting on someone to answer, the logical next step is: wait
|
|
494
652
|
${this._spokeThisStimulus ? '- You have ALREADY spoken since the last thing that happened. Do NOT say or talk-to again -- choose a non-speech action, or respond with: wait' : ''}
|
|
495
653
|
|
|
@@ -624,6 +782,12 @@ ${worldEventsSummary}
|
|
|
624
782
|
return;
|
|
625
783
|
}
|
|
626
784
|
const roomDesc = `They are currently in: "${room.name}" — ${room.description}`;
|
|
785
|
+
// "At" spots (utilities/spots.ts): WHERE everyone stands inside this
|
|
786
|
+
// room, so the AI greets an arrival at the door from across the room
|
|
787
|
+
// (or walks over) instead of assuming the newcomer is at its elbow.
|
|
788
|
+
const spotBlock = spotsActive(room)
|
|
789
|
+
? `\nPlaces in this room: ${describeSpotRoster(room, this).join('; ')}. You are ${spotOf(this) ? `at the ${spotOf(this)}` : 'moving through the room'}. You can only talk-to/give/trade with someone AT YOUR OWN place -- "move to <place>" crosses to them; speaking from elsewhere reaches them only as a shout.`
|
|
790
|
+
: '';
|
|
627
791
|
// The world's ACTUAL geography -- without this, a fixer briefing a job
|
|
628
792
|
// invents plausible-sounding districts and landmarks as destinations,
|
|
629
793
|
// and the player wanders looking for somewhere that doesn't exist
|
|
@@ -702,6 +866,23 @@ ${wares.map(i => `- "${i.name}" (${priceOf(i)} nuyen)`).join('\n')}
|
|
|
702
866
|
When a customer orders or agrees to buy, SERVE it in the same response: [COMMAND] give <item name> to <customer name>
|
|
703
867
|
The till settles automatically on handoff (they're charged street price, or what they can cover). Quote the price when they order. Never serve someone who hasn't asked.`
|
|
704
868
|
: '';
|
|
869
|
+
// BARRIERS AT YOUR POST (a real session: a beaten sentry announced he
|
|
870
|
+
// was "unlocking" a spell-sealed hatch he could never open -- his AI
|
|
871
|
+
// had no idea what guarded his own door, tried a doomed "unlock", and
|
|
872
|
+
// claimed success). An NPC standing in a puzzle's room knows what
|
|
873
|
+
// seals it, that he cannot wish it open, and HOW it opens -- as a
|
|
874
|
+
// guarded secret, so coercion and bribery become a real path to the
|
|
875
|
+
// pass. Companions are excluded: a bound spirit that knew the code
|
|
876
|
+
// would simply hand it to its master and skip the puzzle.
|
|
877
|
+
const barrierBlock = (!this.allyOf && this.currentLocation?.getPuzzleTargets)
|
|
878
|
+
? this.currentLocation.getPuzzleTargets().map(t => {
|
|
879
|
+
const dirNote = t.direction ? ` sealing the way ${t.direction}` : '';
|
|
880
|
+
if (t.puzzle.isSolved()) {
|
|
881
|
+
return `\nThe barrier "${t.puzzle.name}"${dirNote} already stands OPEN.`;
|
|
882
|
+
}
|
|
883
|
+
return `\nBARRIER AT YOUR POST (the lock${dirNote}): ${t.puzzle.riddle} It opens ONLY by its own mechanism -- the pass is "${t.puzzle.requiredPhrase ?? 'unknown even to you'}". You CANNOT unlock or open it any other way (no key, no shoulder, no goodwill), so NEVER claim to have opened it or promise to. The pass is a SECRET you guard with your standing: give it up only under real pressure -- beaten, genuinely frightened, well bribed, or masterfully played. Under that pressure, telling them how it opens IS how you comply.`;
|
|
884
|
+
}).join('')
|
|
885
|
+
: '';
|
|
705
886
|
// HOME TURF familiarity: if this NPC is on the player's contact
|
|
706
887
|
// roster (the whole hub cast is, from session start -- see
|
|
707
888
|
// Game.seedHomeTurfContacts), the AI should treat them as a KNOWN
|
|
@@ -791,10 +972,10 @@ Your objective is to drive the story line.
|
|
|
791
972
|
${dialogueSummary}
|
|
792
973
|
${payoutSummary}
|
|
793
974
|
|
|
794
|
-
${roomDesc}
|
|
975
|
+
${roomDesc}${spotBlock}
|
|
795
976
|
${formattedExitsStr}
|
|
796
977
|
${roomInventoryDesc}
|
|
797
|
-
${waresDesc}
|
|
978
|
+
${waresDesc}${barrierBlock}
|
|
798
979
|
${familiarity}
|
|
799
980
|
${droneNote}
|
|
800
981
|
${companionNote}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/npc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/npc.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export type SimMode = 'cold' | 'hot';
|
|
|
26
26
|
* mechanics as they land -- perception drives search rolls today; the
|
|
27
27
|
* rest are rated on the sheet and waiting for their verbs.
|
|
28
28
|
*/
|
|
29
|
-
export type SkillName = 'firearms' | 'blades' | 'unarmed' | 'sneaking' | 'perception' | 'athletics' | 'hacking' | 'locksmith' | 'negotiation' | 'con' | 'intimidation' | 'first-aid' | 'assensing' | 'spellcasting' | 'piloting' | 'conjuring';
|
|
29
|
+
export type SkillName = 'firearms' | 'blades' | 'unarmed' | 'sneaking' | 'perception' | 'athletics' | 'hacking' | 'locksmith' | 'negotiation' | 'con' | 'intimidation' | 'etiquette' | 'first-aid' | 'assensing' | 'spellcasting' | 'piloting' | 'conjuring';
|
|
30
30
|
export declare const SKILL_NAMES: SkillName[];
|
|
31
31
|
/**
|
|
32
32
|
* Skills that fall back to the legacy `combatSkill` attribute when no
|
|
@@ -104,6 +104,9 @@ export declare class Player extends AbstractPlayer {
|
|
|
104
104
|
lastExchangeAt: number;
|
|
105
105
|
inExchange: boolean;
|
|
106
106
|
autoStance: FightStance;
|
|
107
|
+
grappledBy?: string;
|
|
108
|
+
grappleThreshold?: number;
|
|
109
|
+
grappling?: string;
|
|
107
110
|
surrendered: boolean;
|
|
108
111
|
archetypeName?: string;
|
|
109
112
|
weaponDrawn: boolean;
|
|
@@ -249,6 +252,7 @@ export declare class Player extends AbstractPlayer {
|
|
|
249
252
|
get name(): string;
|
|
250
253
|
get currentLocation(): Room;
|
|
251
254
|
set currentLocation(room: Room);
|
|
255
|
+
atSpot?: string;
|
|
252
256
|
get inventory(): Inventory;
|
|
253
257
|
get equipment(): PlayerEquipment;
|
|
254
258
|
set equipment(newEquipment: PlayerEquipment);
|
|
@@ -268,7 +272,10 @@ export declare class Player extends AbstractPlayer {
|
|
|
268
272
|
} | null;
|
|
269
273
|
canEquip(item: Item): boolean;
|
|
270
274
|
private unequipBySlot;
|
|
271
|
-
hear(actor: Player, message: string
|
|
275
|
+
hear(actor: Player, message: string, _opts?: {
|
|
276
|
+
viaLink?: boolean;
|
|
277
|
+
broadcast?: boolean;
|
|
278
|
+
}): void | Promise<void>;
|
|
272
279
|
see(actor: Player, verb: string, details?: string): void | Promise<void>;
|
|
273
280
|
performAction(verb: string, details?: string): void;
|
|
274
281
|
readonly _onSeenAction: ({ actor, verb, details }: {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hint } from '../utilities/hints.js';
|
|
1
2
|
import { Category } from '../types/shared/item-enum.js';
|
|
2
3
|
import { Logger } from '../utilities/logger.js';
|
|
3
4
|
import { Inventory } from './inventory.js';
|
|
@@ -11,7 +12,7 @@ export const SKILL_NAMES = [
|
|
|
11
12
|
'firearms', 'blades', 'unarmed',
|
|
12
13
|
'sneaking', 'perception', 'athletics',
|
|
13
14
|
'hacking', 'locksmith',
|
|
14
|
-
'negotiation', 'con', 'intimidation',
|
|
15
|
+
'negotiation', 'con', 'intimidation', 'etiquette',
|
|
15
16
|
'first-aid',
|
|
16
17
|
'assensing', 'spellcasting', 'piloting', 'conjuring',
|
|
17
18
|
];
|
|
@@ -64,6 +65,15 @@ export class Player extends AbstractPlayer {
|
|
|
64
65
|
// if they surrender
|
|
65
66
|
// aggressive -- fights until they're dead; surrender means nothing
|
|
66
67
|
autoStance = 'manual';
|
|
68
|
+
// SUBDUING (RAW p.195, the "restrain" ask from a real session's runaway
|
|
69
|
+
// NPC): a grapple links two actors BY NAME -- grappledBy/grappling are
|
|
70
|
+
// the two ends, grappleThreshold the escape test's bar (the original
|
|
71
|
+
// net hits). Validity is checked lazily at every gate (see
|
|
72
|
+
// utilities/grapple.ts heldBy/holding): a dead, gone, or moved holder
|
|
73
|
+
// releases on the next look, so nothing needs cleanup hooks.
|
|
74
|
+
grappledBy;
|
|
75
|
+
grappleThreshold;
|
|
76
|
+
grappling;
|
|
67
77
|
// Set by the "surrender" command: this actor has thrown their hands up.
|
|
68
78
|
// Cleared the moment they initiate violence again (see
|
|
69
79
|
// CombatExchange.beginExchange). Guarded auto-fight honors it;
|
|
@@ -527,11 +537,21 @@ export class Player extends AbstractPlayer {
|
|
|
527
537
|
}
|
|
528
538
|
set currentLocation(room) {
|
|
529
539
|
if (this._currentLocation !== room) {
|
|
540
|
+
// A spot name is meaningless in another room -- clearing HERE (the
|
|
541
|
+
// one choke point every movement path funnels through: go, taxi,
|
|
542
|
+
// snap-backs, scene placement) is what keeps atSpot from ever
|
|
543
|
+
// dangling across rooms. Arrival positioning is the mover's job
|
|
544
|
+
// (go.ts assigns the entry spot after the move).
|
|
545
|
+
this.atSpot = undefined;
|
|
530
546
|
this.leaveRoom();
|
|
531
547
|
this.enterRoom(room);
|
|
532
548
|
}
|
|
533
549
|
this._currentLocation = room;
|
|
534
550
|
}
|
|
551
|
+
// Where this actor stands WITHIN the room ("at" spots, see
|
|
552
|
+
// utilities/spots.ts). undefined = circulating (reaches everything,
|
|
553
|
+
// gets no cover) -- the compat default for everything un-migrated.
|
|
554
|
+
atSpot;
|
|
535
555
|
get inventory() {
|
|
536
556
|
return this._inventory;
|
|
537
557
|
}
|
|
@@ -628,7 +648,7 @@ export class Player extends AbstractPlayer {
|
|
|
628
648
|
// one was out: the moment of the exchange, both hands are busy.
|
|
629
649
|
if (Player.isWeaponSlot(group, slot)) {
|
|
630
650
|
this.weaponDrawn = false;
|
|
631
|
-
return `You slide ${item.name} into your holster.${swapNotice} "brandish" when you want it in hand
|
|
651
|
+
return `You slide ${item.name} into your holster.${swapNotice}${hint(` "brandish" when you want it in hand.`)}`;
|
|
632
652
|
}
|
|
633
653
|
return `You equipped ${item.name} in your ${group}.${slot} slot.${swapNotice}`;
|
|
634
654
|
}
|
|
@@ -783,7 +803,7 @@ export class Player extends AbstractPlayer {
|
|
|
783
803
|
this.weaponDrawn = false;
|
|
784
804
|
return `You unequipped ${itemToUnequip.name} from your ${group}.${slot} slot.`;
|
|
785
805
|
}
|
|
786
|
-
hear(actor, message) {
|
|
806
|
+
hear(actor, message, _opts) {
|
|
787
807
|
// Cross-plane silence: a Matrix persona's chatter never reaches meat
|
|
788
808
|
// ears and vice versa; the astral hears the meat world it overlays.
|
|
789
809
|
if (!this.canPerceive(actor))
|
|
@@ -1083,9 +1103,11 @@ export class Player extends AbstractPlayer {
|
|
|
1083
1103
|
return Math.max(0, this.intuition + Math.floor(this.magic / 2) + this.woundModifier - this.sustainingPenalty);
|
|
1084
1104
|
}
|
|
1085
1105
|
// Combat sense: the adept's magic reads the fight before it happens.
|
|
1086
|
-
// Wired reflexes read it faster still.
|
|
1106
|
+
// Wired reflexes read it faster still. Locked in someone's grapple
|
|
1107
|
+
// (p.195: a subdued character counts as PRONE against attacks): -2.
|
|
1087
1108
|
const adeptBonus = this.adept ? Math.floor(this.magic / 2) : 0;
|
|
1088
|
-
|
|
1109
|
+
const grappled = this.grappledBy ? 2 : 0;
|
|
1110
|
+
return Math.max(0, this.reaction + Math.floor(this.intuition / 2) + adeptBonus + this.augBonus('defense') + this.woundModifier - this.sustainingPenalty - grappled);
|
|
1089
1111
|
}
|
|
1090
1112
|
getSoakPool() {
|
|
1091
1113
|
// Matrix: firewall -- Logic plus the DECK's quality (your deck is your
|