@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.
Files changed (159) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +6 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +9 -2
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +3 -0
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.d.ts +14 -2
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js +73 -38
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +3 -6
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js.map +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/download.js +4 -3
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/download.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +10 -8
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +17 -7
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.d.ts +10 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +72 -20
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -3
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +30 -14
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +14 -2
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.d.ts +16 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +95 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -0
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +6 -0
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +3 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js +5 -7
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +24 -4
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +20 -6
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +7 -6
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +6 -3
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +8 -5
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +4 -3
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js +11 -3
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +5 -3
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +20 -2
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +2 -5
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +17 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +6 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +17 -4
  71. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +1 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +2 -0
  75. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  76. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +22 -0
  77. package/bundle/typescript/src/commands/game/sideQuest/game.js +132 -29
  78. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/models/host.d.ts +80 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/models/host.js +98 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/models/host.js.map +1 -0
  82. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +50 -1
  83. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +78 -2
  84. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +133 -3
  86. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +381 -85
  87. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +40 -9
  89. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +73 -12
  90. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +3 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -0
  93. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  94. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +34 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +58 -26
  96. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.d.ts +8 -12
  98. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +14 -1
  99. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
  100. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +2 -0
  101. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.d.ts +22 -16
  102. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js +22 -16
  103. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js.map +1 -1
  104. package/bundle/typescript/src/commands/game/sideQuest/ui.js +2 -2
  105. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  106. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +13 -8
  107. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  108. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +1 -1
  109. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +8 -7
  110. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  111. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +61 -16
  112. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  113. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.d.ts +23 -0
  114. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js +111 -11
  115. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js.map +1 -1
  116. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +5 -1
  117. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +5 -27
  118. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  119. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js +2 -1
  120. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js.map +1 -1
  121. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +11 -0
  122. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +56 -8
  123. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  124. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.d.ts +72 -0
  125. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js +100 -0
  126. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js.map +1 -0
  127. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.d.ts +25 -0
  128. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js +10 -0
  129. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js.map +1 -0
  130. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.d.ts +29 -0
  131. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js +64 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js.map +1 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.d.ts +9 -0
  134. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js +98 -0
  135. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js.map +1 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +3 -2
  137. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +34 -6
  138. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
  139. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.d.ts +42 -2
  140. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js +75 -4
  141. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +1 -1
  142. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.d.ts +62 -0
  143. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js +97 -0
  144. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js.map +1 -0
  145. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js +3 -3
  146. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +1 -1
  147. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +1 -3
  148. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +85 -7
  149. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  150. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +10 -0
  151. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +39 -23
  152. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  153. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.d.ts +16 -0
  154. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js +12 -0
  155. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js.map +1 -1
  156. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +2 -0
  157. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +23 -4
  158. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
  159. 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(): void;
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' | 'guarded' | 'aggressive';
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
- insideHost?: Room;
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
- addQuality(key: string): void;
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