@maka/maka-cli 5.48.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 +5 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +36 -132
- 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 +59 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.js +250 -49
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +42 -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 +63 -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 +40 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +49 -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 +32 -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/ui.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +17 -11
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -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/map-view.d.ts +70 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js +289 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +34 -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/prefs.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/prefs.js +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/prefs.js.map +1 -0
- 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/shared-run.js +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- 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/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/tools/ai/ai.class.d.ts +15 -0
- package/bundle/typescript/src/tools/ai/ai.class.js +20 -0
- package/bundle/typescript/src/tools/ai/ai.class.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.
|
|
@@ -50,6 +50,12 @@ export default class Game {
|
|
|
50
50
|
private _escArmedAt;
|
|
51
51
|
private _statusBox;
|
|
52
52
|
private _inputBox;
|
|
53
|
+
/** The floating icon-minimap (map-overlay wave 2026-08-24). Optional:
|
|
54
|
+
* headless sessions never build widgets. */
|
|
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?;
|
|
53
59
|
private _useAi;
|
|
54
60
|
private _aiRefusalAnnounced;
|
|
55
61
|
private _owner?;
|
|
@@ -314,7 +320,10 @@ export default class Game {
|
|
|
314
320
|
* Returns a player-facing line when something changed, else null.
|
|
315
321
|
*/
|
|
316
322
|
/** A hub-cast member by name, for roster displays that need the live
|
|
317
|
-
* 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. */
|
|
318
327
|
hubActor(name: string): Player | NPC | undefined;
|
|
319
328
|
/** The whole hub cast -- call.ts merges these into its candidates so
|
|
320
329
|
* a linked contact answers from ANYWHERE (a real mid-run session:
|
|
@@ -486,7 +495,6 @@ export default class Game {
|
|
|
486
495
|
currentClient?: {
|
|
487
496
|
name: string;
|
|
488
497
|
met: boolean;
|
|
489
|
-
advancePaid: number;
|
|
490
498
|
reported: boolean;
|
|
491
499
|
dead?: boolean;
|
|
492
500
|
};
|
|
@@ -494,10 +502,12 @@ export default class Game {
|
|
|
494
502
|
/**
|
|
495
503
|
* The meet and the wrap-up, triggered by the player's first/next real
|
|
496
504
|
* interaction with the client (talk-to, a connected call, a give).
|
|
497
|
-
* Returns the beat's text
|
|
498
|
-
*
|
|
499
|
-
*
|
|
500
|
-
*
|
|
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.
|
|
501
511
|
*/
|
|
502
512
|
onClientInteraction(npcName: string): string | null;
|
|
503
513
|
/**
|
|
@@ -704,6 +714,49 @@ export default class Game {
|
|
|
704
714
|
* pieces, not a status framework built ahead of need.
|
|
705
715
|
*/
|
|
706
716
|
private initStatusBox;
|
|
717
|
+
/**
|
|
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.
|
|
729
|
+
*/
|
|
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;
|
|
736
|
+
private initMapBox;
|
|
737
|
+
/** Shifts the Mechanics pane down (a map box is shown) or back up
|
|
738
|
+
* (neither is). Driven by syncMapDock, never called directly. */
|
|
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;
|
|
743
|
+
/**
|
|
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.
|
|
748
|
+
*/
|
|
749
|
+
setMapOverlay(lines: string[]): void;
|
|
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;
|
|
707
760
|
/**
|
|
708
761
|
* Refreshes the status box from current player state. Called after any
|
|
709
762
|
* command that can change what belongs there (currently "call"/"end-call")
|
|
@@ -11,6 +11,9 @@ import { pushSave, burnCloudSaveFor } from './utilities/cloud-saves.js';
|
|
|
11
11
|
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
|
+
import { renderMapViewport } from './utilities/map-view.js';
|
|
15
|
+
import { renderRoomLayoutCompact } from './utilities/room-view.js';
|
|
16
|
+
import { getPref } from './utilities/prefs.js';
|
|
14
17
|
import { rollPool, formatRoll } from './utilities/dice.js';
|
|
15
18
|
import { Direction } from './types/shared/direction-enum.js';
|
|
16
19
|
import { Logger } from './utilities/logger.js';
|
|
@@ -19,6 +22,8 @@ import { currentSession } from './utilities/session-context.js';
|
|
|
19
22
|
import { PlayersCommand } from './commands/players.js';
|
|
20
23
|
import { LookCommand } from './commands/look.js';
|
|
21
24
|
import { TakeCommand } from './commands/take.js';
|
|
25
|
+
import { LootCommand } from './commands/loot.js';
|
|
26
|
+
import { NoteCommand } from './commands/note.js';
|
|
22
27
|
import { GoCommand } from './commands/go.js';
|
|
23
28
|
import { UseCommand } from './commands/use.js';
|
|
24
29
|
import { EquipCommand } from './commands/equip.js';
|
|
@@ -141,6 +146,12 @@ export default class Game {
|
|
|
141
146
|
_escArmedAt = 0;
|
|
142
147
|
_statusBox;
|
|
143
148
|
_inputBox;
|
|
149
|
+
/** The floating icon-minimap (map-overlay wave 2026-08-24). Optional:
|
|
150
|
+
* headless sessions never build widgets. */
|
|
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;
|
|
144
155
|
_useAi = false;
|
|
145
156
|
_aiRefusalAnnounced = false;
|
|
146
157
|
// ACCOUNT BINDING (ruling 2026-08-23): who this runner belongs to,
|
|
@@ -1076,9 +1087,13 @@ export default class Game {
|
|
|
1076
1087
|
* Returns a player-facing line when something changed, else null.
|
|
1077
1088
|
*/
|
|
1078
1089
|
/** A hub-cast member by name, for roster displays that need the live
|
|
1079
|
-
* 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. */
|
|
1080
1094
|
hubActor(name) {
|
|
1081
|
-
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);
|
|
1082
1097
|
}
|
|
1083
1098
|
/** The whole hub cast -- call.ts merges these into its candidates so
|
|
1084
1099
|
* a linked contact answers from ANYWHERE (a real mid-run session:
|
|
@@ -1410,16 +1425,18 @@ export default class Game {
|
|
|
1410
1425
|
// state never is (runs are disposable); reconstructed fresh by
|
|
1411
1426
|
// activateRunScene, settled into the roster by returnToHub.
|
|
1412
1427
|
currentClient;
|
|
1413
|
-
// Taxi warn-once (player ruling): leaving with the
|
|
1428
|
+
// Taxi warn-once (player ruling): leaving with the pay unclaimed
|
|
1414
1429
|
// arms this; the second "call taxi" forfeits. Mirrors _quitArmed.
|
|
1415
1430
|
forfeitArmed = false;
|
|
1416
1431
|
/**
|
|
1417
1432
|
* The meet and the wrap-up, triggered by the player's first/next real
|
|
1418
1433
|
* interaction with the client (talk-to, a connected call, a give).
|
|
1419
|
-
* Returns the beat's text
|
|
1420
|
-
*
|
|
1421
|
-
*
|
|
1422
|
-
*
|
|
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.
|
|
1423
1440
|
*/
|
|
1424
1441
|
onClientInteraction(npcName) {
|
|
1425
1442
|
const client = this.currentClient;
|
|
@@ -1433,30 +1450,22 @@ export default class Game {
|
|
|
1433
1450
|
const lines = [];
|
|
1434
1451
|
if (!client.met) {
|
|
1435
1452
|
client.met = true;
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
// crew shares the take) -- the player banks their share only.
|
|
1439
|
-
const split = this.applyCrewCut(advance);
|
|
1440
|
-
const paid = this.scene.payRunner(split.share, 'meet advance');
|
|
1441
|
-
client.advancePaid = advance;
|
|
1442
|
-
if (paid) {
|
|
1443
|
-
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.)`)}`);
|
|
1444
|
-
if (split.line)
|
|
1445
|
-
lines.push(` ${split.line}`);
|
|
1446
|
-
}
|
|
1447
|
-
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.`);
|
|
1448
1455
|
}
|
|
1449
1456
|
if (this.scene.isCompleted() && !client.reported) {
|
|
1450
1457
|
client.reported = true;
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
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');
|
|
1454
1463
|
if (paid) {
|
|
1455
|
-
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.`);
|
|
1456
1465
|
if (split.line)
|
|
1457
1466
|
lines.push(` ${split.line}`);
|
|
1458
1467
|
}
|
|
1459
|
-
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}).`);
|
|
1460
1469
|
// JOHNSONS DON'T LINGER (real session: a settled Ms. Slate paced
|
|
1461
1470
|
// in and out of rooms and tailed the runner around the scene).
|
|
1462
1471
|
// After the settlement beat lands, the client walks -- their AI
|
|
@@ -1606,6 +1615,8 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
1606
1615
|
CommandFactory.registerCommand('look', LookCommand);
|
|
1607
1616
|
CommandFactory.registerCommand('go', GoCommand);
|
|
1608
1617
|
CommandFactory.registerCommand('take', TakeCommand);
|
|
1618
|
+
CommandFactory.registerCommand('loot', LootCommand);
|
|
1619
|
+
CommandFactory.registerCommand('note', NoteCommand);
|
|
1609
1620
|
CommandFactory.registerCommand('use', UseCommand);
|
|
1610
1621
|
CommandFactory.registerCommand('equip', EquipCommand);
|
|
1611
1622
|
CommandFactory.registerCommand('unequip', UnequipCommand);
|
|
@@ -1823,6 +1834,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
1823
1834
|
this.initLogBox(screen);
|
|
1824
1835
|
this.initMetaBox(screen);
|
|
1825
1836
|
this.initStatusBox(screen);
|
|
1837
|
+
this.initMapBox(screen); // docked atop the Mechanics column
|
|
1826
1838
|
this._screen = screen;
|
|
1827
1839
|
}
|
|
1828
1840
|
/** The engine half of startup: scene synthesis, command registration,
|
|
@@ -2711,7 +2723,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2711
2723
|
// THE MEET opens the job (canon p.28): the seed's client is this
|
|
2712
2724
|
// run's Johnson -- track them, and point the arrival at the meet.
|
|
2713
2725
|
this.currentClient = seed.client
|
|
2714
|
-
? { name: seed.client, met: false,
|
|
2726
|
+
? { name: seed.client, met: false, reported: false }
|
|
2715
2727
|
: undefined;
|
|
2716
2728
|
this.forfeitArmed = false;
|
|
2717
2729
|
// THE CLIENT REACHES OUT (ruling 2026-08-24, friction pass): the
|
|
@@ -2723,7 +2735,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2723
2735
|
const clientRoom = clientActor?.currentLocation?.name;
|
|
2724
2736
|
const clientSpot = clientActor ? spotOf(clientActor) : undefined;
|
|
2725
2737
|
const meetLine = seed.client
|
|
2726
|
-
? `\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.)`)}`
|
|
2727
2739
|
: '';
|
|
2728
2740
|
// No "=== JOB #n ===" banner on entry (player request) -- the Game
|
|
2729
2741
|
// Log window's own title carries the job name now.
|
|
@@ -2985,7 +2997,12 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2985
2997
|
// auto-scrolls (alwaysScroll) and keys/vi still scroll it when
|
|
2986
2998
|
// focused -- wheel-scroll wasn't worth shells full of coordinate
|
|
2987
2999
|
// bytes every time a session died hard.
|
|
2988
|
-
tags: true // Intercept tags
|
|
3000
|
+
tags: true, // Intercept tags
|
|
3001
|
+
// Terminal-style flow (playtest 2026-08-24: "it would work if the
|
|
3002
|
+
// text scrolled from the bottom up"): content anchors to the
|
|
3003
|
+
// bottom edge and pushes upward, like a shell. Probe-verified to
|
|
3004
|
+
// coexist with insertBottom, tail-follow, and PgUp paging.
|
|
3005
|
+
valign: 'bottom'
|
|
2989
3006
|
});
|
|
2990
3007
|
this._logBox = logBox;
|
|
2991
3008
|
// Scrolling without focus (player report: "can't scroll the game log
|
|
@@ -3093,6 +3110,8 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3093
3110
|
scrollable: true,
|
|
3094
3111
|
alwaysScroll: true,
|
|
3095
3112
|
tags: true,
|
|
3113
|
+
// Bottom-up flow, same as the world log (see initLogBox).
|
|
3114
|
+
valign: 'bottom',
|
|
3096
3115
|
});
|
|
3097
3116
|
this._metaBox = metaBox;
|
|
3098
3117
|
// Scrolling (player report: menus render here now and PgUp/PgDn
|
|
@@ -3145,6 +3164,132 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3145
3164
|
this._statusBox = statusBox;
|
|
3146
3165
|
screen.append(statusBox);
|
|
3147
3166
|
}
|
|
3167
|
+
/**
|
|
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.
|
|
3179
|
+
*/
|
|
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;
|
|
3188
|
+
initMapBox(screen) {
|
|
3189
|
+
const mapBox = blessed.box({
|
|
3190
|
+
id: 'mapBox',
|
|
3191
|
+
top: 0,
|
|
3192
|
+
left: '65%',
|
|
3193
|
+
width: '12%',
|
|
3194
|
+
height: Game.MAP_DOCK_ROWS,
|
|
3195
|
+
border: { type: 'line' },
|
|
3196
|
+
style: { border: { fg: 'blue' } },
|
|
3197
|
+
label: ' Map ',
|
|
3198
|
+
tags: true,
|
|
3199
|
+
keys: false,
|
|
3200
|
+
content: '',
|
|
3201
|
+
hidden: true,
|
|
3202
|
+
});
|
|
3203
|
+
this._mapBox = mapBox;
|
|
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);
|
|
3226
|
+
}
|
|
3227
|
+
/** Shifts the Mechanics pane down (a map box is shown) or back up
|
|
3228
|
+
* (neither is). Driven by syncMapDock, never called directly. */
|
|
3229
|
+
dockMap(shown) {
|
|
3230
|
+
if (!this._metaBox)
|
|
3231
|
+
return;
|
|
3232
|
+
this._metaBox.top = shown ? Game.MAP_DOCK_ROWS : 0;
|
|
3233
|
+
this._metaBox.height = shown ? `100%-${11 + Game.MAP_DOCK_ROWS}` : '100%-11';
|
|
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
|
+
}
|
|
3242
|
+
/**
|
|
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.
|
|
3247
|
+
*/
|
|
3248
|
+
setMapOverlay(lines) {
|
|
3249
|
+
if (!this._mapBox)
|
|
3250
|
+
return;
|
|
3251
|
+
if (lines.length === 0 || !getPref('mapOverlay', true)) {
|
|
3252
|
+
this.hideMapOverlay();
|
|
3253
|
+
return;
|
|
3254
|
+
}
|
|
3255
|
+
this._mapBox.setContent(lines.join('\n'));
|
|
3256
|
+
this._mapBox.show();
|
|
3257
|
+
this.syncMapDock();
|
|
3258
|
+
this._screen?.render();
|
|
3259
|
+
}
|
|
3260
|
+
hideMapOverlay() {
|
|
3261
|
+
if (!this._mapBox)
|
|
3262
|
+
return;
|
|
3263
|
+
this._mapBox.hide();
|
|
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();
|
|
3291
|
+
this._screen?.render();
|
|
3292
|
+
}
|
|
3148
3293
|
/**
|
|
3149
3294
|
* Refreshes the status box from current player state. Called after any
|
|
3150
3295
|
* command that can change what belongs there (currently "call"/"end-call")
|
|
@@ -3176,30 +3321,22 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3176
3321
|
*/
|
|
3177
3322
|
statusLinesFor(player) {
|
|
3178
3323
|
const lines = [];
|
|
3179
|
-
// Line 1:
|
|
3180
|
-
//
|
|
3181
|
-
//
|
|
3182
|
-
//
|
|
3183
|
-
//
|
|
3184
|
-
//
|
|
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
|
|
3185
3330
|
// gray is ANSI "bright black", which on a stock dark terminal palette
|
|
3186
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.
|
|
3187
3338
|
const stanceColor = player.autoStance === 'aggressive' ? 'red' : player.autoStance === 'guarded' ? 'yellow' : 'white';
|
|
3188
|
-
|
|
3189
|
-
// The breadcrumb, reading chronologically into the current location:
|
|
3190
|
-
// "Neon Strip (west) > Night Market" -- origin first, the direction
|
|
3191
|
-
// BACK to it in parens. An 18-room hub made "which way did I come in"
|
|
3192
|
-
// a real question.
|
|
3193
|
-
const crumb = player.cameFrom ? `${player.cameFrom.room} (${player.cameFrom.back}) > ` : '';
|
|
3194
|
-
if (player.currentLocation) {
|
|
3195
|
-
// "At" spots: where you stand WITHIN the room, when it has places
|
|
3196
|
-
// to stand (see utilities/spots.ts).
|
|
3197
|
-
const atNote = spotOf(player) ? ` @ ${player.atSpot}` : '';
|
|
3198
|
-
lines.push(`${crumb}{bold}📍 ${player.currentLocation.name}${atNote}{/bold} | ${stance}`);
|
|
3199
|
-
}
|
|
3200
|
-
else {
|
|
3201
|
-
lines.push(stance);
|
|
3202
|
-
}
|
|
3339
|
+
lines.push(`{${stanceColor}-fg}⚔ ${player.autoStance.toUpperCase()}{/${stanceColor}-fg}`);
|
|
3203
3340
|
// Line 2: both condition monitors -- in a game where a fight can kill
|
|
3204
3341
|
// you and casting can knock you out, current damage on either track is
|
|
3205
3342
|
// never something a player should have to ask for. Colors shift as
|
|
@@ -3340,7 +3477,71 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3340
3477
|
this.notePresenceAffectingChange();
|
|
3341
3478
|
}
|
|
3342
3479
|
updateExits(_room) {
|
|
3343
|
-
//
|
|
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).
|
|
3484
|
+
// Session mode: the server's per-player kind:'map' events feed the
|
|
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.
|
|
3488
|
+
if (!this._mapBox || this.remoteSession)
|
|
3489
|
+
return;
|
|
3490
|
+
const here = this.player.currentLocation;
|
|
3491
|
+
if (!here || this.player.plane === 'matrix') {
|
|
3492
|
+
this.hideMapOverlay();
|
|
3493
|
+
this.hideRoomOverlay();
|
|
3494
|
+
return;
|
|
3495
|
+
}
|
|
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), {
|
|
3518
|
+
visited: this.player.visitedRooms,
|
|
3519
|
+
arEyes: this.player.hasMatrixEyes(),
|
|
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
|
+
}
|
|
3344
3545
|
}
|
|
3345
3546
|
updateInventory(_playerInventory, _currencyName = 'currency') {
|
|
3346
3547
|
this.updateStatus();
|