@maka/maka-cli 5.117.0 → 5.119.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 +6 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.d.ts +14 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js +73 -38
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +3 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/download.js +4 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/download.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +10 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +17 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +72 -20
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +30 -14
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +14 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +95 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +3 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js +5 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +24 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +20 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +7 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +6 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +4 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js +11 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +5 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +20 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +2 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.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/chargen-factory.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +17 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +1 -0
- 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 +2 -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 +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +132 -29
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/host.d.ts +80 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/host.js +98 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/host.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +50 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +78 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +133 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +381 -85
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +40 -9
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +73 -12
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +34 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +58 -26
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.d.ts +8 -12
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +14 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.d.ts +22 -16
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js +22 -16
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +13 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +8 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +61 -16
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js +111 -11
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +5 -27
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +56 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.d.ts +72 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js +100 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.d.ts +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.d.ts +29 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js +64 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js +98 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +34 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.d.ts +42 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js +75 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.d.ts +62 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js +97 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +1 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +85 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +39 -23
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Room } from './room.js';
|
|
2
|
+
import type { NPC } from './npc.js';
|
|
3
|
+
import type { Door } from './door.js';
|
|
4
|
+
import type { Item } from './item.js';
|
|
5
|
+
import type { Grid } from '../utilities/grids.js';
|
|
6
|
+
/**
|
|
7
|
+
* A HOST (SR5 p.246-247), as its own object. Increment 1 of the Matrix
|
|
8
|
+
* position model (plan 2026-09-02): the host state that used to live as
|
|
9
|
+
* loose fields on Room moves here, and Room keeps delegating accessors
|
|
10
|
+
* so every existing reader and writer compiles and behaves unchanged.
|
|
11
|
+
*
|
|
12
|
+
* `over` is the physical room the host stands over in this engine: the
|
|
13
|
+
* site systems it masters bind through it -- a crack releases that room's
|
|
14
|
+
* maglocks and unseals the matrix items in its inventory, and the room's
|
|
15
|
+
* cameras answer to it (utilities/surveillance.ts). Canon puts no host at
|
|
16
|
+
* a physical address (p.246, "hosts don't have a physical location"); the
|
|
17
|
+
* anchor is the engine's mapping of "the network that runs this place",
|
|
18
|
+
* not a claim about where the host is.
|
|
19
|
+
*
|
|
20
|
+
* `grid` is optional and unset by default: canon says hosts are reached
|
|
21
|
+
* from any grid and pay to be accessible from all of them (p.246, Data
|
|
22
|
+
* Trails p.15); a seed may declare one, and only then does the cross-grid
|
|
23
|
+
* penalty apply to actions against it (increment 3).
|
|
24
|
+
*
|
|
25
|
+
* What persists: `cracked` only (utilities/persistence.ts). Marks, alert,
|
|
26
|
+
* running IC and the patrol clock are session state by design.
|
|
27
|
+
*/
|
|
28
|
+
export declare class Host {
|
|
29
|
+
static readonly DEFAULT_RATING = 3;
|
|
30
|
+
static readonly MIN_RATING = 1;
|
|
31
|
+
static readonly MAX_RATING = 12;
|
|
32
|
+
/** SR5 p.247: Host Rating 1-12; anything else is the default. */
|
|
33
|
+
static clampRating(rating: number | undefined): number;
|
|
34
|
+
readonly over: Room;
|
|
35
|
+
rating: number;
|
|
36
|
+
grid?: Grid;
|
|
37
|
+
/** The seed's word for the grid ('public' | 'local' | 'global:<corp>'); resolved against the scene's local grid by the factory. */
|
|
38
|
+
gridSeed?: string;
|
|
39
|
+
/** The one persisted field. A sanctioned host never remembers a crack. */
|
|
40
|
+
cracked: boolean;
|
|
41
|
+
/** player name -> marks the player holds on this host (max 3, p.236). */
|
|
42
|
+
marksBy: Map<string, number>;
|
|
43
|
+
/** player name -> marks the host holds on that player. */
|
|
44
|
+
marksOn: Map<string, number>;
|
|
45
|
+
/** Walls up: the host holds a mark on an intruder and its ice is hunting. */
|
|
46
|
+
alert: boolean;
|
|
47
|
+
/** IC running now, by kind name. Names, not actors -- until increment 5. */
|
|
48
|
+
runningIC: string[];
|
|
49
|
+
/** The running IC as actors, by kind (utilities/ic-actors.ts). Empty where no scene could host them. */
|
|
50
|
+
iceActors: Map<string, NPC>;
|
|
51
|
+
/** Kinds crashed this turn; the host relaunches them next turn (p.355-356). */
|
|
52
|
+
relaunchQueue: string[];
|
|
53
|
+
patrolCountdown?: number;
|
|
54
|
+
/** A haven (jackpoint.ts): never hunts, shows no rating, forgets cracks. */
|
|
55
|
+
sanctioned: boolean;
|
|
56
|
+
constructor(over: Room, opts?: {
|
|
57
|
+
rating?: number;
|
|
58
|
+
grid?: Grid;
|
|
59
|
+
sanctioned?: boolean;
|
|
60
|
+
});
|
|
61
|
+
/** The host is named for the place it stands over -- every alias the game prints derives from this. */
|
|
62
|
+
get name(): string;
|
|
63
|
+
/** So a Host can stand in for a Room wherever a reader only asks "is there a host here?". */
|
|
64
|
+
get hasNode(): true;
|
|
65
|
+
/**
|
|
66
|
+
* SR5 p.247: a host's four Matrix attributes are Host Rating, +1, +2, +3
|
|
67
|
+
* in some order. This engine's fixed order: Attack +1, Sleaze +0, Data
|
|
68
|
+
* Processing +3, Firewall +2.
|
|
69
|
+
*/
|
|
70
|
+
attributes(): {
|
|
71
|
+
attack: number;
|
|
72
|
+
sleaze: number;
|
|
73
|
+
dataProcessing: number;
|
|
74
|
+
firewall: number;
|
|
75
|
+
};
|
|
76
|
+
/** The matrix-plane items the host keeps, from the room it stands over (until seeds carry host files). */
|
|
77
|
+
files(): Item[];
|
|
78
|
+
/** The locked doors of the room it stands over -- what a crack releases. */
|
|
79
|
+
maglocks(): Door[];
|
|
80
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A HOST (SR5 p.246-247), as its own object. Increment 1 of the Matrix
|
|
3
|
+
* position model (plan 2026-09-02): the host state that used to live as
|
|
4
|
+
* loose fields on Room moves here, and Room keeps delegating accessors
|
|
5
|
+
* so every existing reader and writer compiles and behaves unchanged.
|
|
6
|
+
*
|
|
7
|
+
* `over` is the physical room the host stands over in this engine: the
|
|
8
|
+
* site systems it masters bind through it -- a crack releases that room's
|
|
9
|
+
* maglocks and unseals the matrix items in its inventory, and the room's
|
|
10
|
+
* cameras answer to it (utilities/surveillance.ts). Canon puts no host at
|
|
11
|
+
* a physical address (p.246, "hosts don't have a physical location"); the
|
|
12
|
+
* anchor is the engine's mapping of "the network that runs this place",
|
|
13
|
+
* not a claim about where the host is.
|
|
14
|
+
*
|
|
15
|
+
* `grid` is optional and unset by default: canon says hosts are reached
|
|
16
|
+
* from any grid and pay to be accessible from all of them (p.246, Data
|
|
17
|
+
* Trails p.15); a seed may declare one, and only then does the cross-grid
|
|
18
|
+
* penalty apply to actions against it (increment 3).
|
|
19
|
+
*
|
|
20
|
+
* What persists: `cracked` only (utilities/persistence.ts). Marks, alert,
|
|
21
|
+
* running IC and the patrol clock are session state by design.
|
|
22
|
+
*/
|
|
23
|
+
export class Host {
|
|
24
|
+
static DEFAULT_RATING = 3;
|
|
25
|
+
static MIN_RATING = 1;
|
|
26
|
+
static MAX_RATING = 12;
|
|
27
|
+
/** SR5 p.247: Host Rating 1-12; anything else is the default. */
|
|
28
|
+
static clampRating(rating) {
|
|
29
|
+
if (typeof rating !== 'number' || !Number.isFinite(rating))
|
|
30
|
+
return Host.DEFAULT_RATING;
|
|
31
|
+
return Math.min(Host.MAX_RATING, Math.max(Host.MIN_RATING, Math.round(rating)));
|
|
32
|
+
}
|
|
33
|
+
over;
|
|
34
|
+
rating;
|
|
35
|
+
grid;
|
|
36
|
+
/** The seed's word for the grid ('public' | 'local' | 'global:<corp>'); resolved against the scene's local grid by the factory. */
|
|
37
|
+
gridSeed;
|
|
38
|
+
/** The one persisted field. A sanctioned host never remembers a crack. */
|
|
39
|
+
cracked = false;
|
|
40
|
+
/** player name -> marks the player holds on this host (max 3, p.236). */
|
|
41
|
+
marksBy = new Map();
|
|
42
|
+
/** player name -> marks the host holds on that player. */
|
|
43
|
+
marksOn = new Map();
|
|
44
|
+
/** Walls up: the host holds a mark on an intruder and its ice is hunting. */
|
|
45
|
+
alert = false;
|
|
46
|
+
/** IC running now, by kind name. Names, not actors -- until increment 5. */
|
|
47
|
+
runningIC = [];
|
|
48
|
+
/** The running IC as actors, by kind (utilities/ic-actors.ts). Empty where no scene could host them. */
|
|
49
|
+
iceActors = new Map();
|
|
50
|
+
/** Kinds crashed this turn; the host relaunches them next turn (p.355-356). */
|
|
51
|
+
relaunchQueue = [];
|
|
52
|
+
patrolCountdown;
|
|
53
|
+
/** A haven (jackpoint.ts): never hunts, shows no rating, forgets cracks. */
|
|
54
|
+
sanctioned = false;
|
|
55
|
+
constructor(over, opts = {}) {
|
|
56
|
+
this.over = over;
|
|
57
|
+
this.rating = Host.clampRating(opts.rating);
|
|
58
|
+
this.grid = opts.grid;
|
|
59
|
+
this.sanctioned = opts.sanctioned ?? false;
|
|
60
|
+
}
|
|
61
|
+
/** The host is named for the place it stands over -- every alias the game prints derives from this. */
|
|
62
|
+
get name() {
|
|
63
|
+
return this.over.name;
|
|
64
|
+
}
|
|
65
|
+
/** So a Host can stand in for a Room wherever a reader only asks "is there a host here?". */
|
|
66
|
+
get hasNode() {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* SR5 p.247: a host's four Matrix attributes are Host Rating, +1, +2, +3
|
|
71
|
+
* in some order. This engine's fixed order: Attack +1, Sleaze +0, Data
|
|
72
|
+
* Processing +3, Firewall +2.
|
|
73
|
+
*/
|
|
74
|
+
attributes() {
|
|
75
|
+
const hr = this.rating;
|
|
76
|
+
return { attack: hr + 1, sleaze: hr, dataProcessing: hr + 3, firewall: hr + 2 };
|
|
77
|
+
}
|
|
78
|
+
/** The matrix-plane items the host keeps, from the room it stands over (until seeds carry host files). */
|
|
79
|
+
files() {
|
|
80
|
+
// A WIRED SITE'S FILES ARE NOT THE HOST'S (user report 2026-09-02: a crack
|
|
81
|
+
// said "the data vault unseals -- Ghost-Sim Bootlegs spills into the open",
|
|
82
|
+
// then the file said it sits on the offline server). A room with an
|
|
83
|
+
// offline server keeps its data on that box, air-gapped, off the grid --
|
|
84
|
+
// fileReach (planes.ts) already routes it there. The host holds nothing.
|
|
85
|
+
if (this.over.offlineServer)
|
|
86
|
+
return [];
|
|
87
|
+
return this.over.inventory.getAllItems().filter(i => i.plane === 'matrix');
|
|
88
|
+
}
|
|
89
|
+
/** The locked doors of the room it stands over -- what a crack releases. */
|
|
90
|
+
maglocks() {
|
|
91
|
+
return Array.from(this.over.exits.values())
|
|
92
|
+
.filter((exit) => isDoor(exit) && exit.checkIfLocked());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function isDoor(exit) {
|
|
96
|
+
return typeof exit === 'object' && exit !== null && typeof exit.checkIfLocked === 'function';
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,7 +107,26 @@ export declare class Item extends AbstractItem {
|
|
|
107
107
|
/** Spends one round; returns false on an empty magazine. */
|
|
108
108
|
fireRound(): boolean;
|
|
109
109
|
/** Refills the magazine (the spent Ammunition item is the caller's job). */
|
|
110
|
-
reload()
|
|
110
|
+
/** The ammunition item last loaded, by name (reload.ts) -- decides Stun vs Physical (p.434). */
|
|
111
|
+
loadedAmmo?: string;
|
|
112
|
+
reload(ammoName?: string): void;
|
|
113
|
+
/**
|
|
114
|
+
* STUN BY NATURE (SR5 p.170-171, p.424, RAG-checked 2026-09-02):
|
|
115
|
+
* electricity damage is Stun, so a taser, a stun baton or shock gloves
|
|
116
|
+
* never deal Physical.
|
|
117
|
+
*/
|
|
118
|
+
isStunWeapon(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* STUN BY AMMUNITION (p.434): gel rounds deal Stun at AP +1; stick-n-shock
|
|
121
|
+
* deal electric Stun at DV -2, AP -5. Anything else is Physical.
|
|
122
|
+
*/
|
|
123
|
+
stunAmmo(): {
|
|
124
|
+
kind: 'gel' | 'stick-n-shock';
|
|
125
|
+
dvMod: number;
|
|
126
|
+
apMod: number;
|
|
127
|
+
} | undefined;
|
|
128
|
+
/** Ammunition that would make this gun non-lethal (reload picks it under the non-lethal stance). */
|
|
129
|
+
static isStunAmmo(item: Item): boolean;
|
|
111
130
|
get owner(): string | undefined;
|
|
112
131
|
set owner(owner: string | undefined);
|
|
113
132
|
get id(): string;
|
|
@@ -193,6 +212,36 @@ export declare class Item extends AbstractItem {
|
|
|
193
212
|
/** Re-assign the array (RAW: any order, same four values). */
|
|
194
213
|
configureDeck(order: number[]): boolean;
|
|
195
214
|
loadedPrograms: string[];
|
|
215
|
+
/**
|
|
216
|
+
* THE DECK'S STORAGE (SR5 p.227, p.243, RAG-checked 2026-09-02): "you
|
|
217
|
+
* can have any number of programs in storage on your deck, but only a
|
|
218
|
+
* limited number running". Programs are files, not gear -- a chip is
|
|
219
|
+
* the purchase medium and is consumed the moment it meets a deck
|
|
220
|
+
* (Player.addInventory). Storage is hardware: it survives a brick and
|
|
221
|
+
* is lost with the deck. Keys into utilities/programs.ts.
|
|
222
|
+
*/
|
|
223
|
+
storedPrograms: string[];
|
|
224
|
+
hasStored(key: string): boolean;
|
|
225
|
+
/** Writes a program into storage; false when it was already there. */
|
|
226
|
+
installProgram(key: string): boolean;
|
|
227
|
+
/**
|
|
228
|
+
* PAPERS (SR5 p.443, RAG-checked 2026-09-02): a SIN, real or fake, is
|
|
229
|
+
* "digital, not physical" -- it exists on your commlink or in your PAN --
|
|
230
|
+
* and a fake license "exists on your SIN and is linked to it". So the
|
|
231
|
+
* device carries them as files, and a license names the SIN it was
|
|
232
|
+
* bought for (`linkedSin`). Player.addInventory routes a bought paper
|
|
233
|
+
* here; utilities/sin.ts reads them from here.
|
|
234
|
+
*/
|
|
235
|
+
papers: Item[];
|
|
236
|
+
/** On a license: the name of the fake SIN it was bought for. */
|
|
237
|
+
linkedSin?: string;
|
|
238
|
+
isPaper(): boolean;
|
|
239
|
+
/** A commlink or a deck: the PAN's master, where papers live. */
|
|
240
|
+
holdsPapers(): boolean;
|
|
241
|
+
/** A data-soft chip: Mapsoft, Shopsoft, Datasoft (utilities/programs.ts DATA_SOFTS). */
|
|
242
|
+
get softKey(): string | undefined;
|
|
243
|
+
/** A chip is a Software item whose name is a program the street knows. */
|
|
244
|
+
get programKey(): string | undefined;
|
|
196
245
|
hasProgram(key: string): boolean;
|
|
197
246
|
private attrValue;
|
|
198
247
|
get attack(): number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Size, Category, Rating } from '../types/shared/item-enum.js';
|
|
2
|
-
import { PROGRAM_ATTR_MODS } from '../utilities/programs.js';
|
|
2
|
+
import { PROGRAM_ATTR_MODS, findProgram, findSoft, getSoft } from '../utilities/programs.js';
|
|
3
3
|
import { catalogHullFor } from '../utilities/catalog.js';
|
|
4
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
5
|
import { AbstractItem } from '../types/shared/abstracts.js';
|
|
@@ -179,11 +179,39 @@ export class Item extends AbstractItem {
|
|
|
179
179
|
return true;
|
|
180
180
|
}
|
|
181
181
|
/** Refills the magazine (the spent Ammunition item is the caller's job). */
|
|
182
|
-
reload()
|
|
182
|
+
/** The ammunition item last loaded, by name (reload.ts) -- decides Stun vs Physical (p.434). */
|
|
183
|
+
loadedAmmo;
|
|
184
|
+
reload(ammoName) {
|
|
183
185
|
if (this.isFirearm()) {
|
|
184
186
|
this.ammo = Item.MAGAZINE_CAPACITY;
|
|
187
|
+
if (ammoName !== undefined)
|
|
188
|
+
this.loadedAmmo = ammoName;
|
|
185
189
|
}
|
|
186
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* STUN BY NATURE (SR5 p.170-171, p.424, RAG-checked 2026-09-02):
|
|
193
|
+
* electricity damage is Stun, so a taser, a stun baton or shock gloves
|
|
194
|
+
* never deal Physical.
|
|
195
|
+
*/
|
|
196
|
+
isStunWeapon() {
|
|
197
|
+
return /taser|stun (baton|gun)|shock glove|pulsar|defiance ex|stunner/.test(this.weaponHay);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* STUN BY AMMUNITION (p.434): gel rounds deal Stun at AP +1; stick-n-shock
|
|
201
|
+
* deal electric Stun at DV -2, AP -5. Anything else is Physical.
|
|
202
|
+
*/
|
|
203
|
+
stunAmmo() {
|
|
204
|
+
const a = (this.loadedAmmo ?? '').toLowerCase();
|
|
205
|
+
if (/gel/.test(a))
|
|
206
|
+
return { kind: 'gel', dvMod: 0, apMod: 1 };
|
|
207
|
+
if (/stick|shock/.test(a))
|
|
208
|
+
return { kind: 'stick-n-shock', dvMod: -2, apMod: -5 };
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
/** Ammunition that would make this gun non-lethal (reload picks it under the non-lethal stance). */
|
|
212
|
+
static isStunAmmo(item) {
|
|
213
|
+
return item.category === Category.Ammunition && /gel|stick|shock/i.test(item.name);
|
|
214
|
+
}
|
|
187
215
|
get owner() {
|
|
188
216
|
return this._owner;
|
|
189
217
|
}
|
|
@@ -439,6 +467,54 @@ export class Item extends AbstractItem {
|
|
|
439
467
|
// themselves live in inventory as Software items -- this is what's in
|
|
440
468
|
// running memory, capped by programSlots.
|
|
441
469
|
loadedPrograms = [];
|
|
470
|
+
/**
|
|
471
|
+
* THE DECK'S STORAGE (SR5 p.227, p.243, RAG-checked 2026-09-02): "you
|
|
472
|
+
* can have any number of programs in storage on your deck, but only a
|
|
473
|
+
* limited number running". Programs are files, not gear -- a chip is
|
|
474
|
+
* the purchase medium and is consumed the moment it meets a deck
|
|
475
|
+
* (Player.addInventory). Storage is hardware: it survives a brick and
|
|
476
|
+
* is lost with the deck. Keys into utilities/programs.ts.
|
|
477
|
+
*/
|
|
478
|
+
storedPrograms = [];
|
|
479
|
+
hasStored(key) {
|
|
480
|
+
return this.storedPrograms.includes(key);
|
|
481
|
+
}
|
|
482
|
+
/** Writes a program into storage; false when it was already there. */
|
|
483
|
+
installProgram(key) {
|
|
484
|
+
// A cyberprogram needs a deck; a data soft (p.441-442) runs on a
|
|
485
|
+
// commlink too.
|
|
486
|
+
const fits = this.isCyberdeck() || (this.category === Category.Commlink && getSoft(key) !== undefined);
|
|
487
|
+
if (!fits || this.hasStored(key))
|
|
488
|
+
return false;
|
|
489
|
+
this.storedPrograms.push(key);
|
|
490
|
+
return true;
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* PAPERS (SR5 p.443, RAG-checked 2026-09-02): a SIN, real or fake, is
|
|
494
|
+
* "digital, not physical" -- it exists on your commlink or in your PAN --
|
|
495
|
+
* and a fake license "exists on your SIN and is linked to it". So the
|
|
496
|
+
* device carries them as files, and a license names the SIN it was
|
|
497
|
+
* bought for (`linkedSin`). Player.addInventory routes a bought paper
|
|
498
|
+
* here; utilities/sin.ts reads them from here.
|
|
499
|
+
*/
|
|
500
|
+
papers = [];
|
|
501
|
+
/** On a license: the name of the fake SIN it was bought for. */
|
|
502
|
+
linkedSin;
|
|
503
|
+
isPaper() {
|
|
504
|
+
return this.category === Category.FakeSIN || this.category === Category.License || this.category === Category.SIN;
|
|
505
|
+
}
|
|
506
|
+
/** A commlink or a deck: the PAN's master, where papers live. */
|
|
507
|
+
holdsPapers() {
|
|
508
|
+
return this.category === Category.Commlink || this.isCyberdeck();
|
|
509
|
+
}
|
|
510
|
+
/** A data-soft chip: Mapsoft, Shopsoft, Datasoft (utilities/programs.ts DATA_SOFTS). */
|
|
511
|
+
get softKey() {
|
|
512
|
+
return this.category === Category.Software ? findSoft(this.name)?.key : undefined;
|
|
513
|
+
}
|
|
514
|
+
/** A chip is a Software item whose name is a program the street knows. */
|
|
515
|
+
get programKey() {
|
|
516
|
+
return this.category === Category.Software ? findProgram(this.name)?.key : undefined;
|
|
517
|
+
}
|
|
442
518
|
hasProgram(key) {
|
|
443
519
|
return this.loadedPrograms.includes(key);
|
|
444
520
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA+B5D,MAAM,OAAO,IAAK,SAAQ,YAAY;IAC5B,GAAG,CAAS;IACZ,MAAM,CAAsB;IAC7B,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,IAAI,CAAO;IACX,QAAQ,CAAW;IACnB,KAAK,CAAS;IACd,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAU;IACjB,OAAO,CAAU;IACjB,kBAAkB,CAGvB;IACK,KAAK,GAAiC,MAAM,CAAC;IAC7C,KAAK,CAAU;IACtB,gEAAgE;IACzD,MAAM,CAAU;IAEvB,uEAAuE;IACvE,qEAAqE;IACrE,8CAA8C;IACvC,MAAM,GAAG,KAAK,CAAC;IAEd,aAAa,CAAU;IAE/B,8BAA8B;IACpB,eAAe,GAAW,CAAC,CAAC;IAC5B,iBAAiB,CAAU;IAErC,YAAY,OAA+B;QACzC,KAAK,EAAE,CAAC;QAER,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAErD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,eAAe;QACpE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;QAEpB,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,iEAAiE;QACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACjD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,KAAK;oBACb,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;oBAC7B,MAAM;gBACR,KAAK,IAAI,CAAC,MAAM;oBACd,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;oBAC7B,MAAM;gBACR,KAAK,IAAI,CAAC,KAAK;oBACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,MAAM;YACV,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,wEAAwE;QACxE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACrC,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAU,oBAAoB,GAA0B,IAAI,GAAG,CAAW;QAC9E,QAAQ,CAAC,UAAU;QACnB,QAAQ,CAAC,UAAU;QACnB,QAAQ,CAAC,IAAI;QACb,QAAQ,CAAC,KAAK;QACd,QAAQ,CAAC,IAAI;QACb,QAAQ,CAAC,SAAS;QAClB,QAAQ,CAAC,SAAS;QAClB,QAAQ,CAAC,OAAO;QAChB,QAAQ,CAAC,SAAS;QAClB,QAAQ,CAAC,cAAc;KACxB,CAAC,CAAC;IAEH;;;;OAIG;IACI,QAAQ,GAAG,CAAC,CAAC;IAEpB,0EAA0E;IAC1E,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAW;QACpC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,MAAM,GAAI,QAA8C,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAkB,CAAC,CAAC;QACnF,wEAAwE;QACxE,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,MAAM,CAC5C,CAAC;IACJ,CAAC;IAED,+DAA+D;IAE/D,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IAEvC,iEAAiE;IAC1D,IAAI,GAAG,CAAC,CAAC;IAEhB,oEAAoE;IACpE,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;IACtF,CAAC;IAED,4DAA4D;IAC5D,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;QAC3D,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,gGAAgG;IACzF,UAAU,CAAU;IAE3B,MAAM,CAAC,QAAiB;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oGAAoG;IACpG,MAAM,CAAC,UAAU,CAAC,IAAU;QAC1B,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAyB;QACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,GAAG;QACD,OAAO,eAAe,IAAI,CAAC,IAAI,4BAA4B,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY;QACd,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3B,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;YAChC,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,qCAAqC;IAErC,IAAY,SAAS;QACnB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IAED,mFAAmF;IACnF,IAAI,UAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,yDAAyD,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAClF,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAChD,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACjE,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAClE,IAAI,0CAA0C,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACnE,kEAAkE;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,oFAAoF;IACpF,IAAI,SAAS;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAClE,IAAI,gDAAgD,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,IAAI,QAAQ;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAkC,QAAQ;YAC3E,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAQ,iBAAiB;YACpF,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC5D,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,6DAA6D,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjF,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAuB,QAAQ;YAC3E,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAE,QAAQ;YAC3E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAgC,QAAQ;YAC3E,IAAI,iCAAiC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAS,QAAQ;YAC3E,IAAI,iDAAiD,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YACpD,IAAI,4CAA4C,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YACrE,IAAI,2DAA2D,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YACpF,+DAA+D;YAC/D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,iEAAiE;QACjE,6DAA6D;QAC7D,uBAAuB;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;OAKG;IACH,IAAI,QAAQ;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACxD,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAI,oDAAoD,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC7E,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjF,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACjD,IAAI,qEAAqE,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/F,IAAI,sHAAsH,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC/I,OAAO,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACtC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wEAAwE;IACxE,IAAI,YAAY;QACd,OAAO,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChG,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,mEAAmE;IACnE,kEAAkE;IAE1D,WAAW,GAAG,CAAC,CAAC;IAExB,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,4EAA4E;IAC5E,IAAI,YAAY;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,4DAA4D;IAC5D,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,mEAAmE;IACnE,iEAAiE;IACjE,qCAAqC;IAErC,4EAA4E;IAC5E,IAAI,YAAY;QACd,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,SAAS;QACX,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACtE,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAC1D,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,IAAI,SAAS;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,8DAA8D;IAC9D,aAAa,CAAC,KAAe;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC/E,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,sEAAsE;IACtE,0CAA0C;IACnC,cAAc,GAAa,EAAE,CAAC;IAErC;;;;;;;OAOG;IACI,cAAc,GAAa,EAAE,CAAC;IAErC,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,sEAAsE;IACtE,cAAc,CAAC,GAAW;QACxB,iEAAiE;QACjE,gBAAgB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;QACvG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,GAAW,EAAE,CAAC;IAC3B,gEAAgE;IACzD,SAAS,CAAU;IAE1B,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC;IACpH,CAAC;IAED,iEAAiE;IACjE,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC;IAED,wFAAwF;IACxF,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,IAAmB,EAAE,GAAwD;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjG,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,cAAc,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEhE;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,IAAyD;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,IAAyD;QACvE,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,yEAAyE;IACzE,IAAI,iBAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,+DAA+D;IAC/D,YAAY;QACV,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,WAAW,CAAC;IAC1K,CAAC;IAED,0DAA0D;IAC1D,cAAc,CAAC,KAAa;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,UAAU,CAAC,KAAa;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,GAAG,GAAG,CAAC;IAC/E,CAAC;IAED,sDAAsD;IACtD,mEAAmE;IACnE,+DAA+D;IAC/D,mEAAmE;IACnE,uEAAuE;IAE/D,YAAY,GAAG,CAAC,CAAC;IAEzB,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,aAAa;QACf,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,0DAA0D;IAC1D,eAAe,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC;IACjD,CAAC;IAED,6DAA6D;IAC7D,WAAW,CAAC,KAAa;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,uEAAuE;IACvE,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,GAAG,GAAG,CAAC;IAC/E,CAAC;IAED,iBAAiB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,kBAAkB,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAC/E,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IACtE,CAAC;IAED,2BAA2B;IAE3B;;;;;;;;OAQG;IACI,iBAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC;IAC9F,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEM,WAAW,CAAC,MAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO,CAAC,CAAC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5D,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACxB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc;YACvD,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS;YAC7C,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAC3E,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;SAChF,CAAC;IACJ,CAAC;IAEM,2BAA2B;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpB,MAAM,YAAY,GAAG,GAAG;iBACrB,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAG,sCAAsC;iBACnE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,0BAA0B;YAEtE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClB,CAAC,CAAC,KAAK,CAAC;YAEV,OAAO,GAAG,YAAY,KAAK,cAAc,EAAE,CAAC;QAC9C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { PlayerEquipment } from '../types/player-equipment.js';
|
|
2
|
+
import type { Grid } from '../utilities/grids.js';
|
|
3
|
+
import type { Host } from './host.js';
|
|
2
4
|
import { type Aspect } from '../aspects.js';
|
|
3
5
|
import { LifestyleChoices } from '../types/seed/lifestyle-seed.js';
|
|
4
6
|
import { Logger } from '../utilities/logger.js';
|
|
@@ -14,8 +16,11 @@ import { AbstractPlayer } from '../types/shared/abstracts.js';
|
|
|
14
16
|
* (attack pool). Everything else a real character sheet would carry is out
|
|
15
17
|
* of scope until something actually needs it.
|
|
16
18
|
*/
|
|
17
|
-
export type FightStance = 'manual' | '
|
|
19
|
+
export type FightStance = 'manual' | 'non-lethal' | 'lethal';
|
|
18
20
|
export declare const STANCE_CYCLE: FightStance[];
|
|
21
|
+
/** The old names, still accepted from saves and the stance command. */
|
|
22
|
+
export declare const STANCE_ALIASES: Record<string, FightStance>;
|
|
23
|
+
export declare function normalizeStance(v: string | undefined): FightStance;
|
|
19
24
|
export type Plane = 'meat' | 'matrix' | 'astral' | 'drone';
|
|
20
25
|
/** Meat and a jumped-in drone share the physical world. */
|
|
21
26
|
export declare function isPhysicalPlane(plane: Plane): boolean;
|
|
@@ -51,6 +56,19 @@ export declare function isPhysicalPlane(plane: Plane): boolean;
|
|
|
51
56
|
* actors out of a Matrix target list; this function answers one question
|
|
52
57
|
* and is not a second plane check.
|
|
53
58
|
*/
|
|
59
|
+
/**
|
|
60
|
+
* A persona's place in the Matrix (SR5 p.239, p.246): out on a grid, or
|
|
61
|
+
* inside a host it entered from one -- and never on a street. See
|
|
62
|
+
* Player.matrixPosition.
|
|
63
|
+
*/
|
|
64
|
+
export type MatrixPosition = {
|
|
65
|
+
kind: 'grid';
|
|
66
|
+
grid?: Grid;
|
|
67
|
+
} | {
|
|
68
|
+
kind: 'host';
|
|
69
|
+
host: Host;
|
|
70
|
+
from?: Grid;
|
|
71
|
+
};
|
|
54
72
|
export declare function sameHostSide(actor: Player, other: Player): boolean;
|
|
55
73
|
export type SimMode = 'cold' | 'hot';
|
|
56
74
|
/**
|
|
@@ -435,7 +453,32 @@ export declare class Player extends AbstractPlayer {
|
|
|
435
453
|
* Session state like hostAlert and linkLockedBy: leaving the Matrix
|
|
436
454
|
* ends it, so nothing here is persisted.
|
|
437
455
|
*/
|
|
438
|
-
|
|
456
|
+
/**
|
|
457
|
+
* WHERE THE PERSONA IS (increment 2 of the Matrix position model): on a
|
|
458
|
+
* grid, or inside a host it entered from one. Session-only, like
|
|
459
|
+
* bodyRoom. The body stays in currentLocation on every plane -- the
|
|
460
|
+
* persona never writes it. The setter fires the live-sheet beat, which
|
|
461
|
+
* is the beat the currentLocation setter used to fire on enter/exit.
|
|
462
|
+
* `grid` may be unknown (fixtures, and increment 2 itself): unknown is
|
|
463
|
+
* not "another grid", so it costs nothing.
|
|
464
|
+
*/
|
|
465
|
+
private _matrixPosition?;
|
|
466
|
+
get matrixPosition(): MatrixPosition | undefined;
|
|
467
|
+
set matrixPosition(v: MatrixPosition | undefined);
|
|
468
|
+
/** The grid the persona rides, when it is on one. */
|
|
469
|
+
get currentGrid(): Grid | undefined;
|
|
470
|
+
/** The host the persona is inside, when it is inside one. */
|
|
471
|
+
get hostInside(): Host | undefined;
|
|
472
|
+
/**
|
|
473
|
+
* @deprecated compat through increment 4 -- read hostInside / write
|
|
474
|
+
* matrixPosition. The room a host stands over, when inside one. The
|
|
475
|
+
* setter still builds the position so every old writer keeps working.
|
|
476
|
+
*/
|
|
477
|
+
private _compatInsideRoom?;
|
|
478
|
+
get insideHost(): Room | undefined;
|
|
479
|
+
set insideHost(room: Room | undefined);
|
|
480
|
+
/** The grid last stood on, so an exit built through the old setter returns there. */
|
|
481
|
+
private get lastGrid();
|
|
439
482
|
/**
|
|
440
483
|
* MATRIX ATTRIBUTES BURNED OFF BY IC (p.248): Acid eats Firewall,
|
|
441
484
|
* Binder eats Data Processing, Jammer eats Attack, Marker eats Sleaze.
|
|
@@ -491,6 +534,20 @@ export declare class Player extends AbstractPlayer {
|
|
|
491
534
|
* here (no such aug yet), so it is not claimed.
|
|
492
535
|
*/
|
|
493
536
|
hasDirectNeuralInterface(): boolean;
|
|
537
|
+
/** True for the one Electronics item that is a trode net (p.439-440). */
|
|
538
|
+
static isTrodeNet(item: Item): boolean;
|
|
539
|
+
/**
|
|
540
|
+
* WHAT CARRIES THE DIRECT NEURAL INTERFACE, for the equipment panel and
|
|
541
|
+
* the jack-in gate: a living persona, an implanted datajack, a trode net
|
|
542
|
+
* worn on the head, or one still in the bag (it works from there too --
|
|
543
|
+
* the engine has never made the player put it on, and a net in the bag
|
|
544
|
+
* was the only place it could live before the head slot existed).
|
|
545
|
+
*/
|
|
546
|
+
dniSource(): {
|
|
547
|
+
kind: 'technomancer' | 'datajack' | 'trodes';
|
|
548
|
+
worn?: boolean;
|
|
549
|
+
item?: Item;
|
|
550
|
+
} | null;
|
|
494
551
|
/**
|
|
495
552
|
* THE PRICE OF SILENCE (canon p.235-236 "Running Silent",
|
|
496
553
|
* RAG-checked 2026-08-27): "-2 dice pool modifier to all of your
|
|
@@ -571,6 +628,10 @@ export declare class Player extends AbstractPlayer {
|
|
|
571
628
|
private static readonly ATTR_EATER;
|
|
572
629
|
private static readonly ATTR_NAME;
|
|
573
630
|
/** The undamaged array, before any IC reduction. */
|
|
631
|
+
/** Set on an IC actor (utilities/ic-actors.ts): "IC uses the Matrix attributes of its host" (p.247). */
|
|
632
|
+
icHost?: Host;
|
|
633
|
+
/** The IC kind an IC actor was launched as -- the name the host's running list carries. */
|
|
634
|
+
icKind?: string;
|
|
574
635
|
baseMatrixAttribute(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): number;
|
|
575
636
|
/**
|
|
576
637
|
* THE LIVE LINK -- what makes this runner reachable and lit (p.223,
|
|
@@ -791,7 +852,11 @@ export declare class Player extends AbstractPlayer {
|
|
|
791
852
|
* the only quality that edits an attribute (RAW raises the Edge ceiling;
|
|
792
853
|
* with no attribute point-buy here, the point lands directly).
|
|
793
854
|
*/
|
|
794
|
-
|
|
855
|
+
/** Rating per rated quality (qualities.ts maxRating); absent = 1. */
|
|
856
|
+
qualityRatings: Map<string, number>;
|
|
857
|
+
/** The rating held, 0 when the quality is not held; a flat quality reads 1. */
|
|
858
|
+
qualityRating(key: string): number;
|
|
859
|
+
addQuality(rawKey: string, rating?: number): void;
|
|
795
860
|
/**
|
|
796
861
|
* The single tap every pool reads qualities through (cf. augBonus).
|
|
797
862
|
*
|
|
@@ -979,11 +1044,54 @@ export declare class Player extends AbstractPlayer {
|
|
|
979
1044
|
set maxCarryingWeight(weight: number);
|
|
980
1045
|
get currentWeight(): number;
|
|
981
1046
|
addInventory(item: Item): void;
|
|
1047
|
+
/** Where papers live (p.443): the commlink, else the deck -- the PAN's master. */
|
|
1048
|
+
paperDevice(): Item | undefined;
|
|
1049
|
+
/** Every device that can hold papers, commlinks first. */
|
|
1050
|
+
paperDevices(): Item[];
|
|
1051
|
+
/** Every paper on every device. */
|
|
1052
|
+
papers(): Item[];
|
|
1053
|
+
/** Files a paper on a device; a license links to the presented fake SIN (utilities/sin.ts resolves "presented"). */
|
|
1054
|
+
filePaper(device: Item, paper: Item): void;
|
|
1055
|
+
/** Burns a fake SIN: gone from its device, and every license linked to it goes with it (p.443). Returns the licenses lost. */
|
|
1056
|
+
burnPaper(sin: Item): Item[];
|
|
1057
|
+
/** Every paper in the pack files onto the carried device; returns how many moved. */
|
|
1058
|
+
sweepPapersOntoDevice(): number;
|
|
1059
|
+
/** The commlinks on this runner: worn on the head, or in the pack. */
|
|
1060
|
+
commlinks(): Item[];
|
|
1061
|
+
/** Where a data soft lives (p.441-442): the deck if there is one, else a commlink. */
|
|
1062
|
+
softDevice(): Item | undefined;
|
|
1063
|
+
/** A soft in the storage of any device on you -- a chip in the bag is not installed. */
|
|
1064
|
+
hasSoft(key: string): boolean;
|
|
1065
|
+
/**
|
|
1066
|
+
* THE SOCIAL LIMIT (SR5 p.100-101): [(Charisma x 2) + Willpower + Essence]
|
|
1067
|
+
* / 3, rounded up, with Essence rounded up first (p.95, p.100 -- the
|
|
1068
|
+
* rounding rule is cited; the table row itself the RAG did not return,
|
|
1069
|
+
* see rag-table-rows-missing). A Shopsoft adds one when buying or
|
|
1070
|
+
* selling what it covers (p.442) -- see commands/haggle.ts.
|
|
1071
|
+
*/
|
|
1072
|
+
get socialLimit(): number;
|
|
1073
|
+
/** Every program chip in the pack installs into the carried deck; returns how many chips were consumed. */
|
|
1074
|
+
sweepProgramChipsIntoDeck(): number;
|
|
982
1075
|
removeInventory(item: Item): boolean;
|
|
983
1076
|
equip(item: Item): string;
|
|
1077
|
+
/** The word a player would use for a slot -- never the key ("body armor", not "torso.armorVest"). */
|
|
1078
|
+
private static readonly SLOT_WORDS;
|
|
1079
|
+
static slotWord(group: keyof PlayerEquipment, slot: string): string;
|
|
984
1080
|
/** True for the hand slots that hold a wielded weapon. */
|
|
985
1081
|
static isWeaponSlot(group: keyof PlayerEquipment, slot: string): boolean;
|
|
986
1082
|
unequip(input: string): string;
|
|
1083
|
+
/**
|
|
1084
|
+
* The slot an ITEM wears in: the category decides (determineEquipmentSlot)
|
|
1085
|
+
* except where the name has to -- a trode net is Electronics like a
|
|
1086
|
+
* flashlight, and the flashlight has no slot. Kit devices (a deck, a
|
|
1087
|
+
* drone, uninstalled 'ware) answer null: they are carried, not worn.
|
|
1088
|
+
*/
|
|
1089
|
+
slotForItem(item: Item): {
|
|
1090
|
+
group: keyof PlayerEquipment;
|
|
1091
|
+
slot: string;
|
|
1092
|
+
} | null;
|
|
1093
|
+
/** Everything in the bag that has a slot and is not in it -- armor left in the pack (a real save: Armor Clothing carried, nothing worn). */
|
|
1094
|
+
wearablesInBag(): Item[];
|
|
987
1095
|
determineEquipmentSlot(input: string): {
|
|
988
1096
|
group: keyof PlayerEquipment;
|
|
989
1097
|
slot: string;
|
|
@@ -1099,6 +1207,23 @@ export declare class Player extends AbstractPlayer {
|
|
|
1099
1207
|
stowWeapon(): Item | null;
|
|
1100
1208
|
/** Total soak dice from every equipped armor-category item. */
|
|
1101
1209
|
getArmorValue(): number;
|
|
1210
|
+
/**
|
|
1211
|
+
* ARMOR DOES NOT STACK (SR5 p.169, RAG-checked 2026-09-02): "only the
|
|
1212
|
+
* highest Armor rating applies; all other pieces only add bulk". A helmet
|
|
1213
|
+
* or shield is a "+" accessory and adds to that one piece (p.438). The
|
|
1214
|
+
* old sum let a vest under a coat out-armor either -- the same deviation
|
|
1215
|
+
* the trim rule below already closed for boots and gloves. `ignored` is
|
|
1216
|
+
* what the player is wearing for nothing, so the panel can say so.
|
|
1217
|
+
*/
|
|
1218
|
+
armorBreakdown(): {
|
|
1219
|
+
total: number;
|
|
1220
|
+
piece: Item | null;
|
|
1221
|
+
extras: {
|
|
1222
|
+
item: Item;
|
|
1223
|
+
bonus: number;
|
|
1224
|
+
}[];
|
|
1225
|
+
ignored: Item[];
|
|
1226
|
+
};
|
|
1102
1227
|
getAttackPool(): number;
|
|
1103
1228
|
/**
|
|
1104
1229
|
* The subdual pool: bare-hands work regardless of what's in the other
|
|
@@ -1388,6 +1513,11 @@ export declare class Player extends AbstractPlayer {
|
|
|
1388
1513
|
get formMatrixBonus(): number;
|
|
1389
1514
|
/** Static Veil: +2 to matrix defense while sustained. */
|
|
1390
1515
|
get formDefenseBonus(): number;
|
|
1516
|
+
/** The Force each sustained spell was cast at (cast.ts records it) -- Focused Concentration reads it. */
|
|
1517
|
+
sustainedForces: Map<"armor" | "invisibility" | "reflexes", number>;
|
|
1518
|
+
noteSustainedForce(kind: 'armor' | 'invisibility' | 'reflexes', force: number): void;
|
|
1519
|
+
/** GREMLINS (p.81): the 1s a glitch needs, one fewer per rating, on external equipment -- the deck. */
|
|
1520
|
+
get deckGremlins(): number;
|
|
1391
1521
|
get sustainingPenalty(): number;
|
|
1392
1522
|
private _astralPerceiving;
|
|
1393
1523
|
/** Assensing (SR5 p.312): the live sheet shows it, so a change is a
|