@maka/maka-cli 5.67.0 → 5.69.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 +6 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.js +54 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js +4 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +12 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +105 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.d.ts +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.js +107 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/climb.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.d.ts +39 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +89 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.d.ts +37 -17
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +53 -115
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.d.ts +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +203 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +44 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +70 -12
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js +17 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +12 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +12 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +8 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +107 -14
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +69 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/register.d.ts +15 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/register.js +32 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/register.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +33 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sprites.d.ts +35 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sprites.js +108 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sprites.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.d.ts +40 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.js +91 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/standby.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +10 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +27 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +7 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +4 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.d.ts +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js +162 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +12 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +17 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +41 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +4 -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 +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +91 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +135 -11
- package/bundle/typescript/src/commands/game/sideQuest/game.js +361 -30
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +24 -12
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +53 -13
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +31 -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 +98 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +98 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +95 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +179 -20
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +90 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +114 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/resonance-actions.d.ts +108 -0
- package/bundle/typescript/src/commands/game/sideQuest/resonance-actions.js +186 -0
- package/bundle/typescript/src/commands/game/sideQuest/resonance-actions.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/sprite-powers.d.ts +88 -0
- package/bundle/typescript/src/commands/game/sideQuest/sprite-powers.js +137 -0
- package/bundle/typescript/src/commands/game/sideQuest/sprite-powers.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +32 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +41 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +52 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +14 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +78 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +90 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +70 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +168 -22
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +83 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import blessed from 'blessed';
|
|
|
2
2
|
import { ISceneSeedJson } from './types/seed/scene-seed.js';
|
|
3
3
|
import { Item } from './models/item.js';
|
|
4
4
|
import { Player, Inventory, Room, Scene } from './models/_index.js';
|
|
5
|
-
import { ISaveFileV1, ISavedItem, SaveReason } from './types/save-file.js';
|
|
5
|
+
import { ISaveFileV1, ISavedItem, SaveReason, IRegisteredSprite } from './types/save-file.js';
|
|
6
6
|
/**
|
|
7
7
|
* One crew slot (see THE CREW block below): the persistent record a
|
|
8
8
|
* live 'ally' shell is rebuilt from each run. `ghost` marks a slot held
|
|
@@ -33,6 +33,7 @@ import { IDocwagonContract } from './utilities/docwagon.js';
|
|
|
33
33
|
import { ILifestyleTier } from './utilities/commerce.js';
|
|
34
34
|
import { CommandQueue } from './utilities/command-queue.js';
|
|
35
35
|
import { NPC } from './models/npc.js';
|
|
36
|
+
import type { CompanionKind } from './models/npc.js';
|
|
36
37
|
import { AutoFight } from './utilities/auto-fight.js';
|
|
37
38
|
import { IMainGameConfig } from './ui.js';
|
|
38
39
|
import { PlayerEquipment } from './types/player-equipment.js';
|
|
@@ -329,7 +330,7 @@ export default class Game {
|
|
|
329
330
|
private seedHomeTurfContacts;
|
|
330
331
|
companions: {
|
|
331
332
|
npc: NPC;
|
|
332
|
-
kind:
|
|
333
|
+
kind: CompanionKind;
|
|
333
334
|
services?: number;
|
|
334
335
|
force: number;
|
|
335
336
|
boundDevice?: Item;
|
|
@@ -340,9 +341,70 @@ export default class Game {
|
|
|
340
341
|
* survives travel and rides the save file. */
|
|
341
342
|
registered?: boolean;
|
|
342
343
|
}[];
|
|
343
|
-
/**
|
|
344
|
-
*
|
|
345
|
-
|
|
344
|
+
/** REGISTERED SPRITES WAITING IN THE RESONANCE (SR5 p.254-256):
|
|
345
|
+
* folded for travel, or staged from a resumed save, waiting to
|
|
346
|
+
* re-shell (the drone _pendingRedeploys school).
|
|
347
|
+
*
|
|
348
|
+
* An ARRAY since 2026-08-28. It was a single slot back when one
|
|
349
|
+
* sprite was the hard maximum; the canon cap is one COMPILED sprite
|
|
350
|
+
* with registered ones exempt, up to LOGIC of them (register.ts), so
|
|
351
|
+
* a single slot would have quietly dropped every registered sprite
|
|
352
|
+
* but one at the next save or journey -- the same "your permanent
|
|
353
|
+
* companion vanished" the fix is for, moved one step downstream. */
|
|
354
|
+
private _pendingSpriteRedeploy;
|
|
355
|
+
/** How many registrations are spent: the ones standing here plus the
|
|
356
|
+
* ones waiting in the Resonance. register.ts bills this against
|
|
357
|
+
* Logic. */
|
|
358
|
+
registeredSpriteCount(): number;
|
|
359
|
+
/** Registered sprites waiting in the Resonance, for the surfaces that
|
|
360
|
+
* have to tell a player what they still have. A copy: the stash is
|
|
361
|
+
* maintained by the movers above and nowhere else. */
|
|
362
|
+
registeredSpritesWaiting(): IRegisteredSprite[];
|
|
363
|
+
/**
|
|
364
|
+
* DISMISS half of Call/Dismiss Sprite (SR5 p.250, Simple Action):
|
|
365
|
+
* "send a sprite back to the Resonance, releasing it from any tasks it
|
|
366
|
+
* still owes you."
|
|
367
|
+
*
|
|
368
|
+
* The task release is canon and it is the expensive part -- p.256
|
|
369
|
+
* offers STANDBY (costs 1 task, keeps the rest) precisely because
|
|
370
|
+
* dismissing burns them all. So tasks go to 0 here rather than being
|
|
371
|
+
* carried, and the command that calls this says so out loud before a
|
|
372
|
+
* player spends a companion's usefulness to tidy the grid.
|
|
373
|
+
*
|
|
374
|
+
* Only a REGISTERED sprite has anywhere to go. A compiled one that is
|
|
375
|
+
* sent away is simply gone, which is decompile's job, not this one --
|
|
376
|
+
* so this refuses it rather than quietly destroying it.
|
|
377
|
+
*/
|
|
378
|
+
dismissSpriteToResonance(entry: (typeof this.companions)[number]): boolean;
|
|
379
|
+
/**
|
|
380
|
+
* STANDBY (SR5 p.256, a registered sprite TASK): "tells the sprite to
|
|
381
|
+
* return to the Resonance but come when you call it. This keeps the
|
|
382
|
+
* sprite from giving away your presence or getting in harm's way."
|
|
383
|
+
* Costs ONE task.
|
|
384
|
+
*
|
|
385
|
+
* The middle option dismissal made visible. Dismissing is free at the
|
|
386
|
+
* door and costs everything the sprite owes you (p.250); standby
|
|
387
|
+
* costs one and keeps the rest, which is the whole reason the book
|
|
388
|
+
* sells it. Without this the only way to park a sprite was to spend
|
|
389
|
+
* its entire usefulness, and a player who wanted it out of sight for
|
|
390
|
+
* one room paid for that with every favour it had left.
|
|
391
|
+
*
|
|
392
|
+
* Returns false when there is no task to spend with. A registered
|
|
393
|
+
* sprite that owes you nothing cannot pay for standby -- and does not
|
|
394
|
+
* need to, because dismissing it releases nothing it still had. The
|
|
395
|
+
* caller says that out loud rather than silently doing the other one.
|
|
396
|
+
*/
|
|
397
|
+
standbySpriteToResonance(entry: (typeof this.companions)[number]): boolean;
|
|
398
|
+
/**
|
|
399
|
+
* CALL half of Call/Dismiss Sprite (p.250): "You call a registered
|
|
400
|
+
* sprite you have waiting in the Resonance."
|
|
401
|
+
*
|
|
402
|
+
* `name` picks one when several wait; without it, the first. Returns
|
|
403
|
+
* the arrival line, or undefined when nothing answered -- the caller
|
|
404
|
+
* owns the refusal wording, because "you have none" and "you have
|
|
405
|
+
* some but not that one" are different things to be told.
|
|
406
|
+
*/
|
|
407
|
+
callSpriteFromResonance(name?: string): string | undefined;
|
|
346
408
|
private _pendingRedeploys;
|
|
347
409
|
private _saveFilePath?;
|
|
348
410
|
private _dead;
|
|
@@ -390,7 +452,7 @@ export default class Game {
|
|
|
390
452
|
spawnCompanionShell(opts: {
|
|
391
453
|
name: string;
|
|
392
454
|
description: string;
|
|
393
|
-
kind:
|
|
455
|
+
kind: CompanionKind;
|
|
394
456
|
combat: Partial<import('./models/player.js').ICombatAttributes>;
|
|
395
457
|
room: Room;
|
|
396
458
|
plane: 'meat' | 'matrix' | 'astral';
|
|
@@ -433,11 +495,7 @@ export default class Game {
|
|
|
433
495
|
/** Re-shell a registered sprite (travel arrival, or a resumed save).
|
|
434
496
|
* Returns the arrival line, or undefined when the shell can't land
|
|
435
497
|
* (name collision -- vanishingly rare). */
|
|
436
|
-
respawnRegisteredSprite(spec:
|
|
437
|
-
spriteType: string;
|
|
438
|
-
level: number;
|
|
439
|
-
tasks: number;
|
|
440
|
-
}): string | undefined;
|
|
498
|
+
respawnRegisteredSprite(spec: IRegisteredSprite): string | undefined;
|
|
441
499
|
/**
|
|
442
500
|
* Records a real transaction with a hub NPC: first contact opens the
|
|
443
501
|
* relationship at Loyalty 1 (a safeguard -- the hub cast is pre-seeded
|
|
@@ -654,6 +712,12 @@ export default class Game {
|
|
|
654
712
|
*/
|
|
655
713
|
runStartedAt?: Date;
|
|
656
714
|
forfeitArmed: boolean;
|
|
715
|
+
/** Set by "abandon": the next taxi WALKS OUT instead of running an
|
|
716
|
+
* errand (mYTCzJbsdZxYsTsZo). The reversible trip is the default and
|
|
717
|
+
* the irreversible one is asked for -- Notoriety, a forfeited payout
|
|
718
|
+
* and a destroyed scene should require the deliberate word, and a
|
|
719
|
+
* round trip you can undo by getting back in the cab should not. */
|
|
720
|
+
walkOutArmed: boolean;
|
|
657
721
|
/**
|
|
658
722
|
* The meet and the wrap-up, triggered by the player's first/next real
|
|
659
723
|
* interaction with the client (talk-to, a connected call, a give).
|
|
@@ -772,6 +836,66 @@ export default class Game {
|
|
|
772
836
|
* state (a persona still jacked in, an astral projection, a sneak,
|
|
773
837
|
* open combat bookkeeping) is settled on the way home.
|
|
774
838
|
*/
|
|
839
|
+
/**
|
|
840
|
+
* THE JOB YOU LEFT STANDING (mYTCzJbsdZxYsTsZo: "I'd like it to not
|
|
841
|
+
* fail the run -- I should be able to come and go to the job as I
|
|
842
|
+
* need (to get new gear)").
|
|
843
|
+
*
|
|
844
|
+
* Held in memory only, and deliberately NOT saved. Mid-run state
|
|
845
|
+
* never is -- "runs are disposable, a quit resumes to the hub with
|
|
846
|
+
* the job back on offer" -- so an errand is SESSION-SCOPED and needs
|
|
847
|
+
* no save-schema change. Quit mid-errand and you get exactly today's
|
|
848
|
+
* behaviour rather than a half-restored scene from a save that was
|
|
849
|
+
* never designed to hold one.
|
|
850
|
+
*
|
|
851
|
+
* The rooms survive because something finally holds them: returnToHub
|
|
852
|
+
* orphans a run "wholesale" only because nothing kept a reference.
|
|
853
|
+
*/
|
|
854
|
+
private _openRun?;
|
|
855
|
+
/** Is there a job waiting for the runner to come back to it? */
|
|
856
|
+
get hasOpenRun(): boolean;
|
|
857
|
+
/** The room an open run is waiting in, for the surfaces that say so. */
|
|
858
|
+
get openRunSceneName(): string | undefined;
|
|
859
|
+
/**
|
|
860
|
+
* AN ERRAND IS NOT A HOMECOMING, and that is the whole design.
|
|
861
|
+
*
|
|
862
|
+
* returnToHub is a RITUAL, not a journey. Walking its full length
|
|
863
|
+
* twice per gear run would hand a player, free and on demand: a full
|
|
864
|
+
* stun heal at High lifestyle ("the shower runs hot until the run is
|
|
865
|
+
* a rumor"), every vendor's shelves restocked, a fresh legwork pull
|
|
866
|
+
* from every contact, the busking cycle reset, and a rerolled
|
|
867
|
+
* for-hire board -- while ALSO charging rent again and burning a
|
|
868
|
+
* twelfth of the DocWagon contract, whose year "ticks in homecomings".
|
|
869
|
+
* Wrong in both directions at once: the exploit and the punishment
|
|
870
|
+
* are the same line of code.
|
|
871
|
+
*
|
|
872
|
+
* So this is its own path rather than a flag on that one. Written as
|
|
873
|
+
* a separate method ON PURPOSE: parameterising the ritual would mean
|
|
874
|
+
* every future line added to it silently joins the errand too, and
|
|
875
|
+
* the failure would be invisible -- a restock nobody notices is not a
|
|
876
|
+
* crash. Here, anything an errand should do has to be written here.
|
|
877
|
+
*
|
|
878
|
+
* WHAT IT DOES: state hygiene the cab demands (a persona cannot ride
|
|
879
|
+
* in a taxi), companions fold and unfold as on any trip, and the
|
|
880
|
+
* scene swaps. Nothing else.
|
|
881
|
+
*
|
|
882
|
+
* WHAT IT DOES NOT DO, all of it deliberate: no client settlement, no
|
|
883
|
+
* crew settlement or disband, no jobsRun tally, no lifestyle upkeep,
|
|
884
|
+
* no restock, no rumor, no gig advance, no hire reroll, no DocWagon
|
|
885
|
+
* tick, no legwork refresh -- and NO per-job reset. A RETURN LEG IS
|
|
886
|
+
* NOT A NEW JOB: Edge does not refill, haggledThisJob does not clear,
|
|
887
|
+
* First Impression does not re-arm. You come back as you left, which
|
|
888
|
+
* is the difference between fetching a gun and starting over.
|
|
889
|
+
*/
|
|
890
|
+
leaveRunForErrand(): string | undefined;
|
|
891
|
+
/** Back to the job you left standing. */
|
|
892
|
+
resumeOpenRun(): string | undefined;
|
|
893
|
+
/** Cross-plane and combat state that must not ride in a cab, shared
|
|
894
|
+
* by both legs of an errand. A persona has no body to put in a taxi
|
|
895
|
+
* and a fight does not travel. */
|
|
896
|
+
private settleTravelState;
|
|
897
|
+
/** The panel refresh both errand legs need. */
|
|
898
|
+
private refreshHubUi;
|
|
775
899
|
private returnToHub;
|
|
776
900
|
/**
|
|
777
901
|
* KNIGHT ERRANT CHECKPOINT (SINs & getting caught, ruling 2026-08-24;
|