@maka/maka-cli 5.49.0 → 5.50.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/attack.js +20 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +9 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +27 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +43 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +6 -24
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/loot.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/loot.js +93 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/loot.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +4 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +23 -31
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +32 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +313 -17
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.d.ts +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.js +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/note.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +20 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +1 -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 +13 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +66 -9
- 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 +37 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +47 -19
- package/bundle/typescript/src/commands/game/sideQuest/game.js +182 -70
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +17 -2
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +62 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +31 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +24 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +85 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +182 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +4 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +17 -7
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +17 -13
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +29 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +87 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/range.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/range.js +69 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/range.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +186 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +742 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +524 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +273 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +890 -24
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-factory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/scene-factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene-factory.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/factories/scene-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -142,8 +142,8 @@ export declare class SceneSeedGenerator {
|
|
|
142
142
|
/**
|
|
143
143
|
* THE MEET's structural guarantees (canon p.28, player ruling: every
|
|
144
144
|
* run has its own client Johnson). The client must exist, be
|
|
145
|
-
* physically meetable, and carry a commlink -- the meet
|
|
146
|
-
*
|
|
145
|
+
* physically meetable, and carry a commlink -- the meet sets the
|
|
146
|
+
* terms and the wrap-up pays the lump sum, so a missing or
|
|
147
147
|
* unreachable client breaks the whole payment loop. This replaced the
|
|
148
148
|
* old "cannot reach Mr. Johnson" convention (an unreachable fixer NPC
|
|
149
149
|
* embedded in every run) when the fixer moved out of run scenes.
|
|
@@ -570,8 +570,8 @@ export class SceneSeedGenerator {
|
|
|
570
570
|
/**
|
|
571
571
|
* THE MEET's structural guarantees (canon p.28, player ruling: every
|
|
572
572
|
* run has its own client Johnson). The client must exist, be
|
|
573
|
-
* physically meetable, and carry a commlink -- the meet
|
|
574
|
-
*
|
|
573
|
+
* physically meetable, and carry a commlink -- the meet sets the
|
|
574
|
+
* terms and the wrap-up pays the lump sum, so a missing or
|
|
575
575
|
* unreachable client breaks the whole payment loop. This replaced the
|
|
576
576
|
* old "cannot reach Mr. Johnson" convention (an unreachable fixer NPC
|
|
577
577
|
* embedded in every run) when the fixer moved out of run scenes.
|
|
@@ -53,6 +53,9 @@ export default class Game {
|
|
|
53
53
|
/** The floating icon-minimap (map-overlay wave 2026-08-24). Optional:
|
|
54
54
|
* headless sessions never build widgets. */
|
|
55
55
|
private _mapBox?;
|
|
56
|
+
/** Its twin, docked to its right: the current room's own layout
|
|
57
|
+
* (spatial-viz follow-up 2026-08-25). See utilities/room-view.ts. */
|
|
58
|
+
private _roomMapBox?;
|
|
56
59
|
private _useAi;
|
|
57
60
|
private _aiRefusalAnnounced;
|
|
58
61
|
private _owner?;
|
|
@@ -317,7 +320,10 @@ export default class Game {
|
|
|
317
320
|
* Returns a player-facing line when something changed, else null.
|
|
318
321
|
*/
|
|
319
322
|
/** A hub-cast member by name, for roster displays that need the live
|
|
320
|
-
* actor (contacts.ts reads their commlink to show reachability).
|
|
323
|
+
* actor (contacts.ts reads their commlink to show reachability).
|
|
324
|
+
* ROOM GRIDS wave (2026-08-25): falls back to the CURRENT run scene
|
|
325
|
+
* so a live client (not yet a hub contact -- see onClientInteraction)
|
|
326
|
+
* resolves too; call.ts already reaches them the same way. */
|
|
321
327
|
hubActor(name: string): Player | NPC | undefined;
|
|
322
328
|
/** The whole hub cast -- call.ts merges these into its candidates so
|
|
323
329
|
* a linked contact answers from ANYWHERE (a real mid-run session:
|
|
@@ -489,7 +495,6 @@ export default class Game {
|
|
|
489
495
|
currentClient?: {
|
|
490
496
|
name: string;
|
|
491
497
|
met: boolean;
|
|
492
|
-
advancePaid: number;
|
|
493
498
|
reported: boolean;
|
|
494
499
|
dead?: boolean;
|
|
495
500
|
};
|
|
@@ -497,10 +502,12 @@ export default class Game {
|
|
|
497
502
|
/**
|
|
498
503
|
* The meet and the wrap-up, triggered by the player's first/next real
|
|
499
504
|
* interaction with the client (talk-to, a connected call, a give).
|
|
500
|
-
* Returns the beat's text
|
|
501
|
-
*
|
|
502
|
-
*
|
|
503
|
-
*
|
|
505
|
+
* Returns the beat's text or null when this NPC isn't the client /
|
|
506
|
+
* nothing new happens. LUMP SUM (player ruling 2026-08-25, replacing
|
|
507
|
+
* canon p.28's half-up-front: the advance beat kept misfiring in
|
|
508
|
+
* play): the meet sets the terms, the wrap-up pays the WHOLE number.
|
|
509
|
+
* Completing the objective before ever meeting them still collapses
|
|
510
|
+
* cleanly -- the wrap-up is the only beat that moves money.
|
|
504
511
|
*/
|
|
505
512
|
onClientInteraction(npcName: string): string | null;
|
|
506
513
|
/**
|
|
@@ -708,27 +715,48 @@ export default class Game {
|
|
|
708
715
|
*/
|
|
709
716
|
private initStatusBox;
|
|
710
717
|
/**
|
|
711
|
-
* THE MINIMAP (map-overlay wave 2026-08-24
|
|
712
|
-
*
|
|
713
|
-
*
|
|
714
|
-
*
|
|
715
|
-
*
|
|
716
|
-
*
|
|
717
|
-
*
|
|
718
|
-
*
|
|
718
|
+
* THE MINIMAP (map-overlay wave 2026-08-24; split into a pair
|
|
719
|
+
* 2026-08-25 -- player ask: "ample space to split the existing map in
|
|
720
|
+
* two, one for the area, one for the room"): two small icon
|
|
721
|
+
* viewports DOCKED side by side at the top of the Mechanics column --
|
|
722
|
+
* not floated over the log (a float occluded log text and, being
|
|
723
|
+
* numerically anchored, drifted on terminal resize; percentage
|
|
724
|
+
* geometry re-solves both). The Mechanics pane shifts down while
|
|
725
|
+
* EITHER is shown and takes the space back only once both hide.
|
|
726
|
+
* keys:false -- a keyable box appended after the input steals focus
|
|
727
|
+
* (the "eexxiitt" bug, see initInputBox). Hidden until the first
|
|
728
|
+
* setMapOverlay/setRoomOverlay with content.
|
|
719
729
|
*/
|
|
720
730
|
private static readonly MAP_DOCK_ROWS;
|
|
731
|
+
/** Must track the roomMapBox's `width` below -- updateExits derives
|
|
732
|
+
* the inner width from it to right-justify the elevation bar. */
|
|
733
|
+
private static readonly ROOM_DOCK_PCT;
|
|
734
|
+
/** Must track the mapBox's `width` below -- used to trim its caption. */
|
|
735
|
+
private static readonly MAP_DOCK_PCT;
|
|
721
736
|
private initMapBox;
|
|
722
|
-
/** Shifts the Mechanics pane down (map shown) or back up
|
|
737
|
+
/** Shifts the Mechanics pane down (a map box is shown) or back up
|
|
738
|
+
* (neither is). Driven by syncMapDock, never called directly. */
|
|
723
739
|
private dockMap;
|
|
740
|
+
/** Keeps the Mechanics pane's dock offset in sync with whichever
|
|
741
|
+
* docked box(es) -- district, room, or both -- are currently shown. */
|
|
742
|
+
private syncMapDock;
|
|
724
743
|
/**
|
|
725
|
-
* Paints (or hides) the docked minimap. Solo: updateExits
|
|
726
|
-
* from the local scene; shared runs: SharedRunSession.route
|
|
727
|
-
* from the server's per-player kind:'map' events. The
|
|
728
|
-
* gates both
|
|
744
|
+
* Paints (or hides) the docked DISTRICT minimap. Solo: updateExits
|
|
745
|
+
* feeds it from the local scene; shared runs: SharedRunSession.route
|
|
746
|
+
* feeds it from the server's per-player kind:'map' events. The
|
|
747
|
+
* preference gates both this and setRoomOverlay in one place.
|
|
729
748
|
*/
|
|
730
749
|
setMapOverlay(lines: string[]): void;
|
|
731
750
|
hideMapOverlay(): void;
|
|
751
|
+
/**
|
|
752
|
+
* Paints (or hides) the docked ROOM minimap -- the district box's
|
|
753
|
+
* twin, fed by updateExits from utilities/room-view.ts. Empty
|
|
754
|
+
* whenever the current room has no synthesized grid (spotless --
|
|
755
|
+
* THE COMPAT RULE) or the player is circulating in it (nothing fixed
|
|
756
|
+
* to center on): both read as "hide", same as an empty district.
|
|
757
|
+
*/
|
|
758
|
+
setRoomOverlay(lines: string[]): void;
|
|
759
|
+
hideRoomOverlay(): void;
|
|
732
760
|
/**
|
|
733
761
|
* Refreshes the status box from current player state. Called after any
|
|
734
762
|
* command that can change what belongs there (currently "call"/"end-call")
|
|
@@ -12,6 +12,7 @@ import { DOCWAGON_TIERS, RESUSC_FEE, DEATH_COMP } from './utilities/docwagon.js'
|
|
|
12
12
|
import { isFence, LIFESTYLE_TIERS } from './utilities/commerce.js';
|
|
13
13
|
import { bestFakeSin, wandRead, processArrest } from './utilities/sin.js';
|
|
14
14
|
import { renderMapViewport } from './utilities/map-view.js';
|
|
15
|
+
import { renderRoomLayoutCompact } from './utilities/room-view.js';
|
|
15
16
|
import { getPref } from './utilities/prefs.js';
|
|
16
17
|
import { rollPool, formatRoll } from './utilities/dice.js';
|
|
17
18
|
import { Direction } from './types/shared/direction-enum.js';
|
|
@@ -21,6 +22,8 @@ import { currentSession } from './utilities/session-context.js';
|
|
|
21
22
|
import { PlayersCommand } from './commands/players.js';
|
|
22
23
|
import { LookCommand } from './commands/look.js';
|
|
23
24
|
import { TakeCommand } from './commands/take.js';
|
|
25
|
+
import { LootCommand } from './commands/loot.js';
|
|
26
|
+
import { NoteCommand } from './commands/note.js';
|
|
24
27
|
import { GoCommand } from './commands/go.js';
|
|
25
28
|
import { UseCommand } from './commands/use.js';
|
|
26
29
|
import { EquipCommand } from './commands/equip.js';
|
|
@@ -146,6 +149,9 @@ export default class Game {
|
|
|
146
149
|
/** The floating icon-minimap (map-overlay wave 2026-08-24). Optional:
|
|
147
150
|
* headless sessions never build widgets. */
|
|
148
151
|
_mapBox;
|
|
152
|
+
/** Its twin, docked to its right: the current room's own layout
|
|
153
|
+
* (spatial-viz follow-up 2026-08-25). See utilities/room-view.ts. */
|
|
154
|
+
_roomMapBox;
|
|
149
155
|
_useAi = false;
|
|
150
156
|
_aiRefusalAnnounced = false;
|
|
151
157
|
// ACCOUNT BINDING (ruling 2026-08-23): who this runner belongs to,
|
|
@@ -1081,9 +1087,13 @@ export default class Game {
|
|
|
1081
1087
|
* Returns a player-facing line when something changed, else null.
|
|
1082
1088
|
*/
|
|
1083
1089
|
/** A hub-cast member by name, for roster displays that need the live
|
|
1084
|
-
* actor (contacts.ts reads their commlink to show reachability).
|
|
1090
|
+
* actor (contacts.ts reads their commlink to show reachability).
|
|
1091
|
+
* ROOM GRIDS wave (2026-08-25): falls back to the CURRENT run scene
|
|
1092
|
+
* so a live client (not yet a hub contact -- see onClientInteraction)
|
|
1093
|
+
* resolves too; call.ts already reaches them the same way. */
|
|
1085
1094
|
hubActor(name) {
|
|
1086
|
-
return this._hubScene?.allActors?.find(a => a.name === name && a !== this.player)
|
|
1095
|
+
return this._hubScene?.allActors?.find(a => a.name === name && a !== this.player)
|
|
1096
|
+
?? (this.scene !== this._hubScene ? this.scene?.allActors?.find(a => a.name === name && a !== this.player) : undefined);
|
|
1087
1097
|
}
|
|
1088
1098
|
/** The whole hub cast -- call.ts merges these into its candidates so
|
|
1089
1099
|
* a linked contact answers from ANYWHERE (a real mid-run session:
|
|
@@ -1415,16 +1425,18 @@ export default class Game {
|
|
|
1415
1425
|
// state never is (runs are disposable); reconstructed fresh by
|
|
1416
1426
|
// activateRunScene, settled into the roster by returnToHub.
|
|
1417
1427
|
currentClient;
|
|
1418
|
-
// Taxi warn-once (player ruling): leaving with the
|
|
1428
|
+
// Taxi warn-once (player ruling): leaving with the pay unclaimed
|
|
1419
1429
|
// arms this; the second "call taxi" forfeits. Mirrors _quitArmed.
|
|
1420
1430
|
forfeitArmed = false;
|
|
1421
1431
|
/**
|
|
1422
1432
|
* The meet and the wrap-up, triggered by the player's first/next real
|
|
1423
1433
|
* interaction with the client (talk-to, a connected call, a give).
|
|
1424
|
-
* Returns the beat's text
|
|
1425
|
-
*
|
|
1426
|
-
*
|
|
1427
|
-
*
|
|
1434
|
+
* Returns the beat's text or null when this NPC isn't the client /
|
|
1435
|
+
* nothing new happens. LUMP SUM (player ruling 2026-08-25, replacing
|
|
1436
|
+
* canon p.28's half-up-front: the advance beat kept misfiring in
|
|
1437
|
+
* play): the meet sets the terms, the wrap-up pays the WHOLE number.
|
|
1438
|
+
* Completing the objective before ever meeting them still collapses
|
|
1439
|
+
* cleanly -- the wrap-up is the only beat that moves money.
|
|
1428
1440
|
*/
|
|
1429
1441
|
onClientInteraction(npcName) {
|
|
1430
1442
|
const client = this.currentClient;
|
|
@@ -1438,30 +1450,22 @@ export default class Game {
|
|
|
1438
1450
|
const lines = [];
|
|
1439
1451
|
if (!client.met) {
|
|
1440
1452
|
client.met = true;
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
// crew shares the take) -- the player banks their share only.
|
|
1444
|
-
const split = this.applyCrewCut(advance);
|
|
1445
|
-
const paid = this.scene.payRunner(split.share, 'meet advance');
|
|
1446
|
-
client.advancePaid = advance;
|
|
1447
|
-
if (paid) {
|
|
1448
|
-
lines.push(`THE MEET: ${client.name} slides half across up front -- ${paid.net}¥ certified${paid.tax > 0 ? ` (${paid.tax}¥ skimmed: SIN on file)` : ''}. The other half on delivery.${hint(` (Canon terms, p.28 -- and the rate is negotiable exactly once: "haggle" while you have them.)`)}`);
|
|
1449
|
-
if (split.line)
|
|
1450
|
-
lines.push(` ${split.line}`);
|
|
1451
|
-
}
|
|
1452
|
-
Logger.getInstance().write(`Client meet: ${this.player.name} met ${client.name}, advance ${advance} (gross, crew took ${advance - split.share}).`);
|
|
1453
|
+
lines.push(`THE MEET: ${client.name} lays out the terms -- ${payout}¥ certified, in full, on delivery.${hint(` (The rate is negotiable exactly once: "haggle" while you have them.)`)}`);
|
|
1454
|
+
Logger.getInstance().write(`Client meet: ${this.player.name} met ${client.name}, terms ${payout} lump sum on delivery.`);
|
|
1453
1455
|
}
|
|
1454
1456
|
if (this.scene.isCompleted() && !client.reported) {
|
|
1455
1457
|
client.reported = true;
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1458
|
+
// The team's split comes off the top (canon: the crew shares the
|
|
1459
|
+
// take) -- the player banks their share only. Payout read LIVE so
|
|
1460
|
+
// a haggle at any point before delivery moves the real number.
|
|
1461
|
+
const split = this.applyCrewCut(payout);
|
|
1462
|
+
const paid = this.scene.payRunner(split.share, 'wrap-up settlement');
|
|
1459
1463
|
if (paid) {
|
|
1460
|
-
lines.push(`WRAP-UP: ${client.name}
|
|
1464
|
+
lines.push(`WRAP-UP: ${client.name} pays out in full -- ${paid.net}¥ certified${paid.tax > 0 ? ` (${paid.tax}¥ skimmed: SIN on file)` : ''}. Clean work; the name will remember yours.`);
|
|
1461
1465
|
if (split.line)
|
|
1462
1466
|
lines.push(` ${split.line}`);
|
|
1463
1467
|
}
|
|
1464
|
-
Logger.getInstance().write(`Client wrap-up: ${this.player.name} reported to ${client.name},
|
|
1468
|
+
Logger.getInstance().write(`Client wrap-up: ${this.player.name} reported to ${client.name}, settlement ${payout} (gross, crew took ${payout - split.share}).`);
|
|
1465
1469
|
// JOHNSONS DON'T LINGER (real session: a settled Ms. Slate paced
|
|
1466
1470
|
// in and out of rooms and tailed the runner around the scene).
|
|
1467
1471
|
// After the settlement beat lands, the client walks -- their AI
|
|
@@ -1611,6 +1615,8 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
1611
1615
|
CommandFactory.registerCommand('look', LookCommand);
|
|
1612
1616
|
CommandFactory.registerCommand('go', GoCommand);
|
|
1613
1617
|
CommandFactory.registerCommand('take', TakeCommand);
|
|
1618
|
+
CommandFactory.registerCommand('loot', LootCommand);
|
|
1619
|
+
CommandFactory.registerCommand('note', NoteCommand);
|
|
1614
1620
|
CommandFactory.registerCommand('use', UseCommand);
|
|
1615
1621
|
CommandFactory.registerCommand('equip', EquipCommand);
|
|
1616
1622
|
CommandFactory.registerCommand('unequip', UnequipCommand);
|
|
@@ -2717,7 +2723,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2717
2723
|
// THE MEET opens the job (canon p.28): the seed's client is this
|
|
2718
2724
|
// run's Johnson -- track them, and point the arrival at the meet.
|
|
2719
2725
|
this.currentClient = seed.client
|
|
2720
|
-
? { name: seed.client, met: false,
|
|
2726
|
+
? { name: seed.client, met: false, reported: false }
|
|
2721
2727
|
: undefined;
|
|
2722
2728
|
this.forfeitArmed = false;
|
|
2723
2729
|
// THE CLIENT REACHES OUT (ruling 2026-08-24, friction pass): the
|
|
@@ -2729,7 +2735,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2729
2735
|
const clientRoom = clientActor?.currentLocation?.name;
|
|
2730
2736
|
const clientSpot = clientActor ? spotOf(clientActor) : undefined;
|
|
2731
2737
|
const meetLine = seed.client
|
|
2732
|
-
? `\n📞 Your link chirps -- {bold}{underline}${seed.client}{/underline}{/bold}: "${clientRoom ? `I'm at ${clientRoom}${clientSpot ? `, the ${clientSpot}` : ''}` : `I'm on-site`} -- waiting on you. Come sit down before somebody else does."
|
|
2738
|
+
? `\n📞 Your link chirps -- {bold}{underline}${seed.client}{/underline}{/bold}: "${clientRoom ? `I'm at ${clientRoom}${clientSpot ? `, the ${clientSpot}` : ''}` : `I'm on-site`} -- waiting on you. Come sit down before somebody else does." Payment in full on delivery.${hint(` (Find them and talk, or "call ${seed.client}" -- the rate is negotiable at the meet, once.)`)}`
|
|
2733
2739
|
: '';
|
|
2734
2740
|
// No "=== JOB #n ===" banner on entry (player request) -- the Game
|
|
2735
2741
|
// Log window's own title carries the job name now.
|
|
@@ -3159,22 +3165,32 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3159
3165
|
screen.append(statusBox);
|
|
3160
3166
|
}
|
|
3161
3167
|
/**
|
|
3162
|
-
* THE MINIMAP (map-overlay wave 2026-08-24
|
|
3163
|
-
*
|
|
3164
|
-
*
|
|
3165
|
-
*
|
|
3166
|
-
*
|
|
3167
|
-
*
|
|
3168
|
-
*
|
|
3169
|
-
*
|
|
3168
|
+
* THE MINIMAP (map-overlay wave 2026-08-24; split into a pair
|
|
3169
|
+
* 2026-08-25 -- player ask: "ample space to split the existing map in
|
|
3170
|
+
* two, one for the area, one for the room"): two small icon
|
|
3171
|
+
* viewports DOCKED side by side at the top of the Mechanics column --
|
|
3172
|
+
* not floated over the log (a float occluded log text and, being
|
|
3173
|
+
* numerically anchored, drifted on terminal resize; percentage
|
|
3174
|
+
* geometry re-solves both). The Mechanics pane shifts down while
|
|
3175
|
+
* EITHER is shown and takes the space back only once both hide.
|
|
3176
|
+
* keys:false -- a keyable box appended after the input steals focus
|
|
3177
|
+
* (the "eexxiitt" bug, see initInputBox). Hidden until the first
|
|
3178
|
+
* setMapOverlay/setRoomOverlay with content.
|
|
3170
3179
|
*/
|
|
3171
|
-
|
|
3180
|
+
// 9 viewport rows + a caption row (the room name / "@ spot", moved off
|
|
3181
|
+
// the HUD 2026-08-25) + border.
|
|
3182
|
+
static MAP_DOCK_ROWS = 12;
|
|
3183
|
+
/** Must track the roomMapBox's `width` below -- updateExits derives
|
|
3184
|
+
* the inner width from it to right-justify the elevation bar. */
|
|
3185
|
+
static ROOM_DOCK_PCT = 0.23;
|
|
3186
|
+
/** Must track the mapBox's `width` below -- used to trim its caption. */
|
|
3187
|
+
static MAP_DOCK_PCT = 0.12;
|
|
3172
3188
|
initMapBox(screen) {
|
|
3173
3189
|
const mapBox = blessed.box({
|
|
3174
3190
|
id: 'mapBox',
|
|
3175
3191
|
top: 0,
|
|
3176
3192
|
left: '65%',
|
|
3177
|
-
width: '
|
|
3193
|
+
width: '12%',
|
|
3178
3194
|
height: Game.MAP_DOCK_ROWS,
|
|
3179
3195
|
border: { type: 'line' },
|
|
3180
3196
|
style: { border: { fg: 'blue' } },
|
|
@@ -3186,19 +3202,48 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3186
3202
|
});
|
|
3187
3203
|
this._mapBox = mapBox;
|
|
3188
3204
|
screen.append(mapBox);
|
|
3205
|
+
const roomMapBox = blessed.box({
|
|
3206
|
+
id: 'roomMapBox',
|
|
3207
|
+
top: 0,
|
|
3208
|
+
// Much wider than its district twin: this box carries the grid,
|
|
3209
|
+
// the elevation bar down its right side, AND (since the
|
|
3210
|
+
// 2026-08-25 room resize) a `large` room's full 12 cells at two
|
|
3211
|
+
// columns each -- the district view needs only its fixed 15-wide
|
|
3212
|
+
// viewport, so the space is better spent here.
|
|
3213
|
+
left: '77%',
|
|
3214
|
+
width: '23%',
|
|
3215
|
+
height: Game.MAP_DOCK_ROWS,
|
|
3216
|
+
border: { type: 'line' },
|
|
3217
|
+
style: { border: { fg: 'blue' } },
|
|
3218
|
+
label: ' Room ',
|
|
3219
|
+
tags: true,
|
|
3220
|
+
keys: false,
|
|
3221
|
+
content: '',
|
|
3222
|
+
hidden: true,
|
|
3223
|
+
});
|
|
3224
|
+
this._roomMapBox = roomMapBox;
|
|
3225
|
+
screen.append(roomMapBox);
|
|
3189
3226
|
}
|
|
3190
|
-
/** Shifts the Mechanics pane down (map shown) or back up
|
|
3227
|
+
/** Shifts the Mechanics pane down (a map box is shown) or back up
|
|
3228
|
+
* (neither is). Driven by syncMapDock, never called directly. */
|
|
3191
3229
|
dockMap(shown) {
|
|
3192
3230
|
if (!this._metaBox)
|
|
3193
3231
|
return;
|
|
3194
3232
|
this._metaBox.top = shown ? Game.MAP_DOCK_ROWS : 0;
|
|
3195
3233
|
this._metaBox.height = shown ? `100%-${11 + Game.MAP_DOCK_ROWS}` : '100%-11';
|
|
3196
3234
|
}
|
|
3235
|
+
/** Keeps the Mechanics pane's dock offset in sync with whichever
|
|
3236
|
+
* docked box(es) -- district, room, or both -- are currently shown. */
|
|
3237
|
+
syncMapDock() {
|
|
3238
|
+
const anyShown = (this._mapBox !== undefined && !this._mapBox.hidden)
|
|
3239
|
+
|| (this._roomMapBox !== undefined && !this._roomMapBox.hidden);
|
|
3240
|
+
this.dockMap(anyShown);
|
|
3241
|
+
}
|
|
3197
3242
|
/**
|
|
3198
|
-
* Paints (or hides) the docked minimap. Solo: updateExits
|
|
3199
|
-
* from the local scene; shared runs: SharedRunSession.route
|
|
3200
|
-
* from the server's per-player kind:'map' events. The
|
|
3201
|
-
* gates both
|
|
3243
|
+
* Paints (or hides) the docked DISTRICT minimap. Solo: updateExits
|
|
3244
|
+
* feeds it from the local scene; shared runs: SharedRunSession.route
|
|
3245
|
+
* feeds it from the server's per-player kind:'map' events. The
|
|
3246
|
+
* preference gates both this and setRoomOverlay in one place.
|
|
3202
3247
|
*/
|
|
3203
3248
|
setMapOverlay(lines) {
|
|
3204
3249
|
if (!this._mapBox)
|
|
@@ -3208,15 +3253,41 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3208
3253
|
return;
|
|
3209
3254
|
}
|
|
3210
3255
|
this._mapBox.setContent(lines.join('\n'));
|
|
3211
|
-
this.dockMap(true);
|
|
3212
3256
|
this._mapBox.show();
|
|
3257
|
+
this.syncMapDock();
|
|
3213
3258
|
this._screen?.render();
|
|
3214
3259
|
}
|
|
3215
3260
|
hideMapOverlay() {
|
|
3216
3261
|
if (!this._mapBox)
|
|
3217
3262
|
return;
|
|
3218
3263
|
this._mapBox.hide();
|
|
3219
|
-
this.
|
|
3264
|
+
this.syncMapDock();
|
|
3265
|
+
this._screen?.render();
|
|
3266
|
+
}
|
|
3267
|
+
/**
|
|
3268
|
+
* Paints (or hides) the docked ROOM minimap -- the district box's
|
|
3269
|
+
* twin, fed by updateExits from utilities/room-view.ts. Empty
|
|
3270
|
+
* whenever the current room has no synthesized grid (spotless --
|
|
3271
|
+
* THE COMPAT RULE) or the player is circulating in it (nothing fixed
|
|
3272
|
+
* to center on): both read as "hide", same as an empty district.
|
|
3273
|
+
*/
|
|
3274
|
+
setRoomOverlay(lines) {
|
|
3275
|
+
if (!this._roomMapBox)
|
|
3276
|
+
return;
|
|
3277
|
+
if (lines.length === 0 || !getPref('mapOverlay', true)) {
|
|
3278
|
+
this.hideRoomOverlay();
|
|
3279
|
+
return;
|
|
3280
|
+
}
|
|
3281
|
+
this._roomMapBox.setContent(lines.join('\n'));
|
|
3282
|
+
this._roomMapBox.show();
|
|
3283
|
+
this.syncMapDock();
|
|
3284
|
+
this._screen?.render();
|
|
3285
|
+
}
|
|
3286
|
+
hideRoomOverlay() {
|
|
3287
|
+
if (!this._roomMapBox)
|
|
3288
|
+
return;
|
|
3289
|
+
this._roomMapBox.hide();
|
|
3290
|
+
this.syncMapDock();
|
|
3220
3291
|
this._screen?.render();
|
|
3221
3292
|
}
|
|
3222
3293
|
/**
|
|
@@ -3250,30 +3321,22 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3250
3321
|
*/
|
|
3251
3322
|
statusLinesFor(player) {
|
|
3252
3323
|
const lines = [];
|
|
3253
|
-
// Line 1:
|
|
3254
|
-
//
|
|
3255
|
-
//
|
|
3256
|
-
//
|
|
3257
|
-
//
|
|
3258
|
-
//
|
|
3324
|
+
// Line 1: the fight autopilot mode. The stance lives HERE -- the
|
|
3325
|
+
// shortest HUD line -- because appended to the long readiness line it
|
|
3326
|
+
// wrapped out of the box on narrower terminals and effectively only
|
|
3327
|
+
// ever showed in the Tab announcement. Always shown, even MANUAL: the
|
|
3328
|
+
// HUD is how players discover Tab cycles it at all (see
|
|
3329
|
+
// utilities/auto-fight.ts). MANUAL is white, not gray -- blessed's
|
|
3259
3330
|
// gray is ANSI "bright black", which on a stock dark terminal palette
|
|
3260
3331
|
// is illegible enough that the stance looked absent entirely.
|
|
3332
|
+
//
|
|
3333
|
+
// WHERE YOU ARE MOVED OUT (player ruling 2026-08-25): the room name
|
|
3334
|
+
// now captions the Map box and the "@ spot" captions the Room box,
|
|
3335
|
+
// each under the picture it belongs to, so the HUD stops repeating
|
|
3336
|
+
// what two panels already show. The breadcrumb went with it -- the
|
|
3337
|
+
// district map draws the way you came far better than a text trail.
|
|
3261
3338
|
const stanceColor = player.autoStance === 'aggressive' ? 'red' : player.autoStance === 'guarded' ? 'yellow' : 'white';
|
|
3262
|
-
|
|
3263
|
-
// The breadcrumb, reading chronologically into the current location:
|
|
3264
|
-
// "Neon Strip (west) > Night Market" -- origin first, the direction
|
|
3265
|
-
// BACK to it in parens. An 18-room hub made "which way did I come in"
|
|
3266
|
-
// a real question.
|
|
3267
|
-
const crumb = player.cameFrom ? `${player.cameFrom.room} (${player.cameFrom.back}) > ` : '';
|
|
3268
|
-
if (player.currentLocation) {
|
|
3269
|
-
// "At" spots: where you stand WITHIN the room, when it has places
|
|
3270
|
-
// to stand (see utilities/spots.ts).
|
|
3271
|
-
const atNote = spotOf(player) ? ` @ ${player.atSpot}` : '';
|
|
3272
|
-
lines.push(`${crumb}{bold}📍 ${player.currentLocation.name}${atNote}{/bold} | ${stance}`);
|
|
3273
|
-
}
|
|
3274
|
-
else {
|
|
3275
|
-
lines.push(stance);
|
|
3276
|
-
}
|
|
3339
|
+
lines.push(`{${stanceColor}-fg}⚔ ${player.autoStance.toUpperCase()}{/${stanceColor}-fg}`);
|
|
3277
3340
|
// Line 2: both condition monitors -- in a game where a fight can kill
|
|
3278
3341
|
// you and casting can knock you out, current damage on either track is
|
|
3279
3342
|
// never something a player should have to ask for. Colors shift as
|
|
@@ -3414,22 +3477,71 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3414
3477
|
this.notePresenceAffectingChange();
|
|
3415
3478
|
}
|
|
3416
3479
|
updateExits(_room) {
|
|
3417
|
-
// THE ICON
|
|
3418
|
-
// kept as a no-op for exactly this -- it already
|
|
3419
|
-
// (go/lock/unlock, ui.ts), scene
|
|
3480
|
+
// THE ICON OVERLAYS (map-overlay wave 2026-08-24, split 2026-08-25):
|
|
3481
|
+
// this hook was kept as a no-op for exactly this -- it already
|
|
3482
|
+
// fires on movement (go/lock/unlock, move.ts, ui.ts), scene
|
|
3483
|
+
// transitions, and barrier changes (solve/bypass/lock/unlock).
|
|
3420
3484
|
// Session mode: the server's per-player kind:'map' events feed the
|
|
3421
|
-
// overlay instead (SharedRunSession.route)
|
|
3485
|
+
// district overlay instead (SharedRunSession.route); the room box
|
|
3486
|
+
// has no server-pushed path yet, so it just stays hidden in a
|
|
3487
|
+
// shared run, same as the district box did before that wiring.
|
|
3422
3488
|
if (!this._mapBox || this.remoteSession)
|
|
3423
3489
|
return;
|
|
3424
3490
|
const here = this.player.currentLocation;
|
|
3425
3491
|
if (!here || this.player.plane === 'matrix') {
|
|
3426
3492
|
this.hideMapOverlay();
|
|
3493
|
+
this.hideRoomOverlay();
|
|
3427
3494
|
return;
|
|
3428
3495
|
}
|
|
3429
|
-
|
|
3496
|
+
const screenW = Number(this._screen?.width) || 0;
|
|
3497
|
+
// Each box's inner width. Derived from the screen rather than read
|
|
3498
|
+
// off the widget: blessed resolves percentage geometry at render
|
|
3499
|
+
// time, so `.width` is still the raw '23%' here. Used to right-
|
|
3500
|
+
// justify the elevation bar and to trim the caption rows.
|
|
3501
|
+
const boxWidth = screenW > 0 ? Math.floor(screenW * Game.ROOM_DOCK_PCT) - 2 : undefined;
|
|
3502
|
+
const mapWidth = screenW > 0 ? Math.floor(screenW * Game.MAP_DOCK_PCT) - 2 : undefined;
|
|
3503
|
+
const caption = (text, width) => {
|
|
3504
|
+
const w = width ?? text.length;
|
|
3505
|
+
return `{bold}${text.length > w ? `${text.slice(0, Math.max(1, w - 1))}…` : text}{/bold}`;
|
|
3506
|
+
};
|
|
3507
|
+
// The district viewport must FIT ITS BOX. It was a hardcoded 15
|
|
3508
|
+
// columns, which was fine while the Map box was 35% wide and
|
|
3509
|
+
// silently overflowed into the Room box once it shrank to 12% --
|
|
3510
|
+
// on a narrower terminal the spill landed inside the neighbouring
|
|
3511
|
+
// border and smartCSR's partial redraws smeared it into stray
|
|
3512
|
+
// characters (playtest 2026-08-25: "getting some artifacting 'g'";
|
|
3513
|
+
// ui.ts documents this same smear from column drift). Odd widths
|
|
3514
|
+
// keep the player marker exactly centred.
|
|
3515
|
+
const mapInner = mapWidth ?? 15;
|
|
3516
|
+
const mapView = Math.max(7, mapInner % 2 === 0 ? mapInner - 1 : mapInner);
|
|
3517
|
+
const mapLines = renderMapViewport(this.scene.getRooms(), here, (r, d) => this.scene.barrierSealing(r, d), {
|
|
3430
3518
|
visited: this.player.visitedRooms,
|
|
3431
3519
|
arEyes: this.player.hasMatrixEyes(),
|
|
3432
|
-
})
|
|
3520
|
+
}, mapView);
|
|
3521
|
+
// The captions the HUD used to carry: where you are under the
|
|
3522
|
+
// district, where you stand under the room.
|
|
3523
|
+
if (mapLines.length > 0)
|
|
3524
|
+
mapLines.push(caption(here.name, mapWidth));
|
|
3525
|
+
this.setMapOverlay(mapLines);
|
|
3526
|
+
// A DECORATION MUST NEVER KILL THE RUN. This panel is pure derived
|
|
3527
|
+
// geometry -- if synthesis or rendering ever throws (a malformed
|
|
3528
|
+
// seed, a room shape no one anticipated), the right outcome is a
|
|
3529
|
+
// blank box and a log line, not a dead session mid-job.
|
|
3530
|
+
try {
|
|
3531
|
+
const roomLines = renderRoomLayoutCompact(here, this.player, {
|
|
3532
|
+
boxWidth,
|
|
3533
|
+
isOtherPlayer: a => this.scene.isHumanControlled(a),
|
|
3534
|
+
});
|
|
3535
|
+
if (roomLines.length > 0) {
|
|
3536
|
+
const spot = spotOf(this.player);
|
|
3537
|
+
roomLines.push(caption(spot ? `@ ${spot}` : '(moving through)', boxWidth));
|
|
3538
|
+
}
|
|
3539
|
+
this.setRoomOverlay(roomLines);
|
|
3540
|
+
}
|
|
3541
|
+
catch (err) {
|
|
3542
|
+
Logger.getInstance().write(`Room overlay render failed in ${here.name}: ${err instanceof Error ? err.stack ?? err.message : String(err)}`);
|
|
3543
|
+
this.hideRoomOverlay();
|
|
3544
|
+
}
|
|
3433
3545
|
}
|
|
3434
3546
|
updateInventory(_playerInventory, _currencyName = 'currency') {
|
|
3435
3547
|
this.updateStatus();
|