@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,72 @@
1
+ /**
2
+ * GRIDS (SR5 p.220-222, p.233, p.240) -- increment 3 of the Matrix
3
+ * position model (2026-09-02).
4
+ *
5
+ * - The public grid is free to anyone and "the Barrens of the Matrix": it
6
+ * costs the user -2 on every Matrix action taken from it (p.233).
7
+ * - A local grid is a metroplex's own; a global grid belongs to one of the
8
+ * Big Ten (p.21-23; "ten publicly known global grids, one for each of
9
+ * the Big Ten", p.234). Neither penalises its own users.
10
+ * - Your grid is your lifestyle's (p.222 "Your Grid"): Low or lower gets
11
+ * the public grid; Middle a local grid; High one Big Ten global grid of
12
+ * your choosing; Luxury any grid you like.
13
+ * - Acting against a target on ANOTHER grid costs -2 (p.233); inside a host
14
+ * no grid penalty applies at all -- "the grid you're on doesn't really
15
+ * matter" (p.246).
16
+ * - Grid Hop (p.240): Complex Action, no test, needs access to the
17
+ * destination; without it, Hack on the Fly against 4 dice (local) or 6
18
+ * (global) hops you illegally, and a failed attempt does not alert.
19
+ */
20
+ export type GridKind = 'public' | 'local' | 'global';
21
+ export type GridKey = 'public' | `local:${string}` | `global:${string}`;
22
+ export interface Grid {
23
+ key: GridKey;
24
+ kind: GridKind;
25
+ /** As the game prints it: "the public grid", "the Neon Strip local grid", "the Renraku grid". */
26
+ name: string;
27
+ /** p.233: the public grid's own toll on its users' actions. */
28
+ userPenalty: 0 | -2;
29
+ }
30
+ export declare const PUBLIC_GRID: Grid;
31
+ export declare function localGrid(district: string): Grid;
32
+ export declare function globalGrid(corp: string): Grid;
33
+ /** The Big Ten of 2075 (SR5 p.21-23), each with a global grid (p.234). */
34
+ export declare const BIG_TEN: readonly string[];
35
+ /**
36
+ * The High-lifestyle provider until chargen offers the pick (p.222: "pick
37
+ * one of the Big Ten"). A PLACEHOLDER, chosen for being first in the
38
+ * book's own list, not for any fiction; the save carries the real choice
39
+ * in `gridProvider` once the web generator asks for it.
40
+ */
41
+ export declare const DEFAULT_GRID_PROVIDER: string;
42
+ /** Unknown on either side is NOT "another grid" -- no penalty on a guess. */
43
+ export declare function sameGrid(a: Grid | undefined, b: Grid | undefined): boolean;
44
+ /** p.222 "Your Grid": the grid a lifestyle buys. */
45
+ export declare function homeGrid(lifestyleTier: string, district: Grid, provider?: string): Grid;
46
+ /**
47
+ * Every grid a lifestyle has legitimate access to, for a legal hop (p.240).
48
+ * Public is free to all; Middle adds the local grid; High adds its chosen
49
+ * global grid; Luxury can be "on any grid you want".
50
+ */
51
+ export declare function gridsWithAccess(lifestyleTier: string, district: Grid, provider?: string): Grid[];
52
+ export declare function hasAccess(lifestyleTier: string, district: Grid, target: Grid, provider?: string): boolean;
53
+ /** p.240: the grid's defence against an illegal Hack on the Fly hop. Public is free -- no test. */
54
+ export declare function hopDefenceDice(target: Grid): 0 | 4 | 6;
55
+ /**
56
+ * A grid by what a player types: "public", "local", the district's name,
57
+ * a Big Ten name, or "global <corp>". Undefined when nothing answers.
58
+ */
59
+ export declare function resolveGridName(query: string, district: Grid): Grid | undefined;
60
+ export interface GridModifier {
61
+ total: number;
62
+ /** Mechanics-column words, one per penalty applied. */
63
+ parts: string[];
64
+ }
65
+ /**
66
+ * The dice a grid costs an action (p.233): the user's own grid toll (public
67
+ * -2) plus -2 when the target sits on another grid. Inside a host, none of
68
+ * it applies. Unknown grids cost nothing.
69
+ */
70
+ export declare function gridActionModifier(actorGrid: Grid | undefined, inside: boolean, targetGrid: Grid | undefined): GridModifier;
71
+ /** The Mechanics-column suffix for a modifier, or nothing when it costs nothing. */
72
+ export declare function gridNote(mod: GridModifier): string;
@@ -0,0 +1,100 @@
1
+ const slug = (s) => s.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
2
+ export const PUBLIC_GRID = { key: 'public', kind: 'public', name: 'the public grid', userPenalty: -2 };
3
+ export function localGrid(district) {
4
+ return { key: `local:${slug(district)}`, kind: 'local', name: `the ${district.trim()} local grid`, userPenalty: 0 };
5
+ }
6
+ export function globalGrid(corp) {
7
+ return { key: `global:${slug(corp)}`, kind: 'global', name: `the ${corp.trim()} grid`, userPenalty: 0 };
8
+ }
9
+ /** The Big Ten of 2075 (SR5 p.21-23), each with a global grid (p.234). */
10
+ export const BIG_TEN = [
11
+ 'Ares', 'Aztechnology', 'Evo', 'Horizon', 'Mitsuhama', 'NeoNET', 'Renraku', 'Saeder-Krupp', 'Shiawase', 'Wuxing',
12
+ ];
13
+ /**
14
+ * The High-lifestyle provider until chargen offers the pick (p.222: "pick
15
+ * one of the Big Ten"). A PLACEHOLDER, chosen for being first in the
16
+ * book's own list, not for any fiction; the save carries the real choice
17
+ * in `gridProvider` once the web generator asks for it.
18
+ */
19
+ export const DEFAULT_GRID_PROVIDER = BIG_TEN[0];
20
+ /** Unknown on either side is NOT "another grid" -- no penalty on a guess. */
21
+ export function sameGrid(a, b) {
22
+ if (!a || !b)
23
+ return true;
24
+ return a.key === b.key;
25
+ }
26
+ const tierRank = (tier) => ['street', 'squatter', 'low', 'middle', 'high', 'luxury'].indexOf(tier.trim().toLowerCase());
27
+ /** p.222 "Your Grid": the grid a lifestyle buys. */
28
+ export function homeGrid(lifestyleTier, district, provider = DEFAULT_GRID_PROVIDER) {
29
+ const rank = tierRank(lifestyleTier);
30
+ if (rank <= 2)
31
+ return PUBLIC_GRID; // Street, Squatter, Low (and unknown)
32
+ if (rank === 3)
33
+ return district; // Middle: the local grid
34
+ return globalGrid(provider); // High and Luxury: the chosen global grid
35
+ }
36
+ /**
37
+ * Every grid a lifestyle has legitimate access to, for a legal hop (p.240).
38
+ * Public is free to all; Middle adds the local grid; High adds its chosen
39
+ * global grid; Luxury can be "on any grid you want".
40
+ */
41
+ export function gridsWithAccess(lifestyleTier, district, provider = DEFAULT_GRID_PROVIDER) {
42
+ const rank = tierRank(lifestyleTier);
43
+ const grids = [PUBLIC_GRID];
44
+ if (rank >= 3)
45
+ grids.push(district);
46
+ if (rank === 4)
47
+ grids.push(globalGrid(provider));
48
+ if (rank >= 5)
49
+ for (const corp of BIG_TEN)
50
+ grids.push(globalGrid(corp));
51
+ return grids;
52
+ }
53
+ export function hasAccess(lifestyleTier, district, target, provider = DEFAULT_GRID_PROVIDER) {
54
+ return gridsWithAccess(lifestyleTier, district, provider).some(g => g.key === target.key);
55
+ }
56
+ /** p.240: the grid's defence against an illegal Hack on the Fly hop. Public is free -- no test. */
57
+ export function hopDefenceDice(target) {
58
+ return target.kind === 'public' ? 0 : target.kind === 'local' ? 4 : 6;
59
+ }
60
+ /**
61
+ * A grid by what a player types: "public", "local", the district's name,
62
+ * a Big Ten name, or "global <corp>". Undefined when nothing answers.
63
+ */
64
+ export function resolveGridName(query, district) {
65
+ const q = query.trim().toLowerCase().replace(/^the\s+/, '').replace(/\s+grid$/, '');
66
+ if (q === '')
67
+ return undefined;
68
+ if (q === 'public' || q === 'pubgrid')
69
+ return PUBLIC_GRID;
70
+ if (q === 'local' || slug(q) === district.key.slice('local:'.length))
71
+ return district;
72
+ const corpWord = q.replace(/^global\s+/, '');
73
+ const corp = BIG_TEN.find(c => c.toLowerCase() === corpWord || slug(c) === slug(corpWord));
74
+ return corp ? globalGrid(corp) : undefined;
75
+ }
76
+ /**
77
+ * The dice a grid costs an action (p.233): the user's own grid toll (public
78
+ * -2) plus -2 when the target sits on another grid. Inside a host, none of
79
+ * it applies. Unknown grids cost nothing.
80
+ */
81
+ export function gridActionModifier(actorGrid, inside, targetGrid) {
82
+ if (inside)
83
+ return { total: 0, parts: [] };
84
+ const parts = [];
85
+ let total = 0;
86
+ if (actorGrid?.userPenalty) {
87
+ total += actorGrid.userPenalty;
88
+ parts.push(`public grid ${actorGrid.userPenalty}`);
89
+ }
90
+ if (actorGrid && targetGrid && !sameGrid(actorGrid, targetGrid)) {
91
+ total -= 2;
92
+ parts.push(`other grid -2`);
93
+ }
94
+ return { total, parts };
95
+ }
96
+ /** The Mechanics-column suffix for a modifier, or nothing when it costs nothing. */
97
+ export function gridNote(mod) {
98
+ return mod.parts.length > 0 ? ` [${mod.parts.join(', ')}]` : '';
99
+ }
100
+ //# sourceMappingURL=grids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grids.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grids.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Player } from '../models/player.js';
2
+ import type { NPC } from '../models/npc.js';
3
+ /**
4
+ * THE LAST THING THAT HURT A PLAYER OUTSIDE AN EXCHANGE.
5
+ *
6
+ * A CombatExchange settles its own dead (resolveTakedown). Everything else
7
+ * that lands damage on a player -- IC biofeedback, dumpshock, a blow to an
8
+ * empty body -- only writes the track and walks away, so a decker whose
9
+ * heart stopped under Black IC kept typing "look" and "go up" (user report
10
+ * 2026-09-02). Those sites leave a note here; harm-settlement.ts reads it
11
+ * when the next command finds the track full, so the collapse names what
12
+ * did it instead of a generic "you collapse".
13
+ */
14
+ export interface HarmNote {
15
+ /** Who or what, for the log and the game-over line. */
16
+ by: string;
17
+ /** The actor behind it when there is one; the fallen stands in otherwise. */
18
+ actor?: Player | NPC;
19
+ /** The collapse line for the primary player, when the default reads wrong. */
20
+ fall?: string;
21
+ /** The GAME OVER banner, when the default reads wrong. */
22
+ gameOver?: string;
23
+ }
24
+ export declare function noteHarm(actor: Player, note: HarmNote): void;
25
+ export declare function takeHarmNote(actor: Player): HarmNote | undefined;
@@ -0,0 +1,10 @@
1
+ const lastHarm = new WeakMap();
2
+ export function noteHarm(actor, note) {
3
+ lastHarm.set(actor, note);
4
+ }
5
+ export function takeHarmNote(actor) {
6
+ const note = lastHarm.get(actor);
7
+ lastHarm.delete(actor);
8
+ return note;
9
+ }
10
+ //# sourceMappingURL=harm-note.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harm-note.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/harm-note.ts"],"names":[],"mappings":"AAyBA,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAoB,CAAC;AAEjD,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,IAAc;IACpD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Scene } from '../models/scene.js';
2
+ import type { Player } from '../models/player.js';
3
+ /**
4
+ * HARM NOBODY SETTLED (user report 2026-09-02: "I got killed, but I can
5
+ * still look and move around").
6
+ *
7
+ * The exchange settles the dead it makes; the other damage sites -- IC
8
+ * biofeedback (ic.ts), dumpshock (planes.ts), a blow to an empty body --
9
+ * write the track and walk away. Game.runInputAs calls this before and
10
+ * after every command, so a track that filled anywhere is judged the
11
+ * moment the player next acts, and never later than the same command.
12
+ *
13
+ * Canon:
14
+ * - A full Physical track is a death by the engine's standing rule
15
+ * (attack.ts resolveTakedown) -- the same door, so DocWagon, the shared-
16
+ * run permadeath and the game-over banner all behave as they do in a
17
+ * fight.
18
+ * - Out cold in VR: "If you become unconscious while in VR, your commlink
19
+ * or deck automatically switches you to AR, unless you are link-locked"
20
+ * (SR5 p.229). The switch is graceful -- no dumpshock. Link-locked, the
21
+ * persona stays in VR, defenceless, until the lock breaks.
22
+ * - Then the knockout the fight code already keeps (Scene.beginPlayerKnockout):
23
+ * the room settles around the body, and you come to or you do not.
24
+ *
25
+ * Returns the narration to append to the command's output; empty when
26
+ * nothing needed settling or it already was (deadPlayers, a knockout in
27
+ * progress).
28
+ */
29
+ export declare function settleUnresolvedHarm(scene: Scene, actor: Player): Promise<string[]>;
@@ -0,0 +1,64 @@
1
+ import { CombatExchange } from './combat-exchange.js';
2
+ import { Logger } from './logger.js';
3
+ import { leaveMatrix } from './planes.js';
4
+ import { takeHarmNote } from './harm-note.js';
5
+ /**
6
+ * HARM NOBODY SETTLED (user report 2026-09-02: "I got killed, but I can
7
+ * still look and move around").
8
+ *
9
+ * The exchange settles the dead it makes; the other damage sites -- IC
10
+ * biofeedback (ic.ts), dumpshock (planes.ts), a blow to an empty body --
11
+ * write the track and walk away. Game.runInputAs calls this before and
12
+ * after every command, so a track that filled anywhere is judged the
13
+ * moment the player next acts, and never later than the same command.
14
+ *
15
+ * Canon:
16
+ * - A full Physical track is a death by the engine's standing rule
17
+ * (attack.ts resolveTakedown) -- the same door, so DocWagon, the shared-
18
+ * run permadeath and the game-over banner all behave as they do in a
19
+ * fight.
20
+ * - Out cold in VR: "If you become unconscious while in VR, your commlink
21
+ * or deck automatically switches you to AR, unless you are link-locked"
22
+ * (SR5 p.229). The switch is graceful -- no dumpshock. Link-locked, the
23
+ * persona stays in VR, defenceless, until the lock breaks.
24
+ * - Then the knockout the fight code already keeps (Scene.beginPlayerKnockout):
25
+ * the room settles around the body, and you come to or you do not.
26
+ *
27
+ * Returns the narration to append to the command's output; empty when
28
+ * nothing needed settling or it already was (deadPlayers, a knockout in
29
+ * progress).
30
+ */
31
+ export async function settleUnresolvedHarm(scene, actor) {
32
+ if (scene.deadPlayers.has(actor.name))
33
+ return [];
34
+ if (!actor.isDown() && !actor.isUnconscious())
35
+ return [];
36
+ const logger = Logger.getInstance();
37
+ if (actor.isDown()) {
38
+ const harm = takeHarmNote(actor);
39
+ const by = harm?.by ?? 'the wound';
40
+ const exchange = new CombatExchange(scene, logger, actor);
41
+ return exchange.resolveDeath(actor, harm?.actor ?? actor, {
42
+ fallLine: harm?.fall ?? `You collapse in ${actor.currentLocation.name}. ${by} did that.`,
43
+ gameOverLine: harm?.gameOver ?? `💀 GAME OVER: ${actor.name} was killed by ${by}.`,
44
+ });
45
+ }
46
+ if (scene.getKnockout(actor.name))
47
+ return [];
48
+ const harm = takeHarmNote(actor);
49
+ const lines = [];
50
+ if (actor.plane === 'matrix') {
51
+ if (actor.linkLockedBy.size > 0) {
52
+ lines.push(`You black out with the link nailed open -- LINK-LOCKED, your persona hangs in the Matrix with nobody at the controls while your body lies where it fell.`);
53
+ }
54
+ else {
55
+ lines.push(...leaveMatrix(scene, actor, {
56
+ reason: `Your body goes slack and the deck does what it is built to do: it drops you to AR before the link can do worse. No dumpshock -- just the floor.`,
57
+ }));
58
+ }
59
+ }
60
+ const exchange = new CombatExchange(scene, logger, actor);
61
+ lines.push(...await exchange.resolvePlayerKnockout(harm?.actor ?? actor, actor));
62
+ return lines;
63
+ }
64
+ //# sourceMappingURL=harm-settlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harm-settlement.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/harm-settlement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAY,EAAE,KAAa;IACpE,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;QAAE,OAAO,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEpC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,WAAW,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,EAAE;YACxD,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,mBAAmB,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,EAAE,YAAY;YACxF,YAAY,EAAE,IAAI,EAAE,QAAQ,IAAI,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,EAAE,GAAG;SACnF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,0JAA0J,CAAC,CAAC;QACzK,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;gBACtC,MAAM,EAAE,iJAAiJ;aAC1J,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { NPC } from '../models/npc.js';
2
+ import type { Scene } from '../models/scene.js';
3
+ import type { Host } from '../models/host.js';
4
+ /** Launch one IC of this kind inside the host, as an actor. Returns undefined when the scene cannot host actors. */
5
+ export declare function spawnIC(scene: Scene, host: Host, kind: string): NPC | undefined;
6
+ /** Take a crashed IC out of the host: its name off the running list, its actor out of the scene, its kind queued to relaunch. */
7
+ export declare function crashIC(scene: Scene | undefined, host: Host, kind: string): void;
8
+ /** Every running IC whose actor has been crashed (its monitor filled, or its code sheared apart). */
9
+ export declare function crashedIC(host: Host): string[];
@@ -0,0 +1,98 @@
1
+ import { NPC } from '../models/npc.js';
2
+ import { CommandRegistry } from '../commands/command-registry.js';
3
+ import { Logger } from './logger.js';
4
+ /**
5
+ * IC AS ICONS (increment 5 of the Matrix position model, 2026-09-02).
6
+ * SR5 p.247: "Each IC program has a persona with its own Condition
7
+ * Monitor and Initiative Score ... IC uses the Matrix attributes of its
8
+ * host" and "rolls Host Rating x 2 for any attacks". p.355-356: a host
9
+ * runs up to its Rating in IC at once; crashed IC "can simply be
10
+ * reactivated the very next turn by the Host". p.229: IC and sprites
11
+ * have Matrix Condition Monitors and lose all damage when they stop
12
+ * running. The engine used to keep IC as names nothing could target;
13
+ * now each running IC is an actor inside the host -- a spike or a data
14
+ * spike lands on it, and the host relaunches what you crash.
15
+ *
16
+ * WHAT THE ENGINE READS INTO THE GAPS, said out loud:
17
+ * - Condition Monitor size: the device rule, 8 + ceil(Host Rating / 2)
18
+ * (p.228), applied through the actor's Body -- the same track sprites
19
+ * already use for their Matrix boxes.
20
+ * - Mental attributes: IC has none in the book; where a test asks for
21
+ * one (a persona's spike is resisted with Willpower + Firewall), the
22
+ * Host Rating stands in. That is the engine's reading of "uses the
23
+ * host's attributes", not a quoted line.
24
+ * - Initiative: the engine resolves host turns after each player action
25
+ * rather than by Initiative Score; the 4D6 hot-sim dice (p.247) are
26
+ * not rolled. Unchanged from before; recorded, not hidden.
27
+ */
28
+ /** The actor's name for a kind, unique in the scene. */
29
+ function iconName(scene, kind) {
30
+ if (!scene.getActor(kind))
31
+ return kind;
32
+ for (let n = 2; n < 50; n++) {
33
+ const name = `${kind} #${n}`;
34
+ if (!scene.getActor(name))
35
+ return name;
36
+ }
37
+ return `${kind} #${Date.now()}`;
38
+ }
39
+ /** Launch one IC of this kind inside the host, as an actor. Returns undefined when the scene cannot host actors. */
40
+ export function spawnIC(scene, host, kind) {
41
+ if (typeof scene.addActor !== 'function' || typeof scene.setCharacterLocation !== 'function')
42
+ return undefined;
43
+ const rating = host.rating;
44
+ const name = iconName(scene, kind);
45
+ const npc = new NPC({
46
+ dialog: [],
47
+ description: `${kind}: a program the ${host.name} host runs against intruders -- sculpted ice, sharp at every edge, and it has your icon.`,
48
+ playerConstructorConfig: {
49
+ playerName: name,
50
+ startLocation: host.over,
51
+ combat: {
52
+ body: rating, agility: rating, reaction: rating, strength: rating,
53
+ willpower: rating, logic: rating, intuition: rating, charisma: rating, edge: 0, combatSkill: 0,
54
+ },
55
+ },
56
+ }, new CommandRegistry(scene));
57
+ npc.plane = 'matrix';
58
+ npc.hostile = true;
59
+ npc.icHost = host;
60
+ npc.icKind = kind;
61
+ npc.matrixPosition = { kind: 'host', host };
62
+ scene.addActor(npc);
63
+ scene.setCharacterLocation(npc, host.over.name);
64
+ npc.scene = scene;
65
+ host.iceActors.set(kind, npc);
66
+ try {
67
+ Logger.getInstance().write(`IC launched: ${name} in ${host.name} (rating ${rating}).`);
68
+ }
69
+ catch { /* no session */ }
70
+ return npc;
71
+ }
72
+ /** Take a crashed IC out of the host: its name off the running list, its actor out of the scene, its kind queued to relaunch. */
73
+ export function crashIC(scene, host, kind) {
74
+ const actor = host.iceActors.get(kind);
75
+ host.iceActors.delete(kind);
76
+ const at = host.runningIC.indexOf(kind);
77
+ if (at >= 0)
78
+ host.runningIC.splice(at, 1);
79
+ if (actor && scene && typeof scene.removeActor === 'function') {
80
+ try {
81
+ host.over.removeActor(actor);
82
+ }
83
+ catch { /* not in the room */ }
84
+ scene.removeActor(actor.name);
85
+ }
86
+ if (!host.relaunchQueue.includes(kind))
87
+ host.relaunchQueue.push(kind);
88
+ }
89
+ /** Every running IC whose actor has been crashed (its monitor filled, or its code sheared apart). */
90
+ export function crashedIC(host) {
91
+ const out = [];
92
+ for (const [kind, actor] of host.iceActors) {
93
+ if (actor.isDown() || actor.deathClaimed)
94
+ out.push(kind);
95
+ }
96
+ return out;
97
+ }
98
+ //# sourceMappingURL=ic-actors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-actors.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ic-actors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Scene } from '../models/scene.js';
1
2
  import type { Player } from '../models/player.js';
2
3
  import type { Room } from '../models/room.js';
3
4
  /**
@@ -170,7 +171,7 @@ export declare function ambientPatrol(room: Room, actor: Player): IICTurn;
170
171
  * has. One entry point, so the caller never has to know which half of
171
172
  * the host is awake.
172
173
  */
173
- export declare function runHostTurn(room: Room, actor: Player): IICTurn;
174
+ export declare function runHostTurn(room: Room, actor: Player, scene?: Scene): IICTurn;
174
175
  /**
175
176
  * ONE COMBAT TURN of the host's ice.
176
177
  *
@@ -182,4 +183,4 @@ export declare function runHostTurn(room: Room, actor: Player): IICTurn;
182
183
  * analogue available; it is not something the book says, and it is not
183
184
  * dressed up as a citation.
184
185
  */
185
- export declare function runICTurn(room: Room, actor: Player): IICTurn;
186
+ export declare function runICTurn(room: Room, actor: Player, scene?: Scene): IICTurn;
@@ -1,4 +1,6 @@
1
1
  import { rollPool, formatRoll } from './dice.js';
2
+ import { noteHarm } from './harm-note.js';
3
+ import { spawnIC, crashIC, crashedIC } from './ic-actors.js';
2
4
  import { hostLabel } from './grid-names.js';
3
5
  import { MAX_MARKS } from './marks.js';
4
6
  /**
@@ -289,9 +291,9 @@ export function ambientPatrol(room, actor) {
289
291
  * has. One entry point, so the caller never has to know which half of
290
292
  * the host is awake.
291
293
  */
292
- export function runHostTurn(room, actor) {
294
+ export function runHostTurn(room, actor, scene) {
293
295
  if (hostIsHunting(room, actor))
294
- return runICTurn(room, actor);
296
+ return runICTurn(room, actor, scene);
295
297
  return ambientPatrol(room, actor);
296
298
  }
297
299
  /**
@@ -305,16 +307,35 @@ export function runHostTurn(room, actor) {
305
307
  * analogue available; it is not something the book says, and it is not
306
308
  * dressed up as a citation.
307
309
  */
308
- export function runICTurn(room, actor) {
310
+ export function runICTurn(room, actor, scene) {
309
311
  if (!hostIsHunting(room, actor))
310
312
  return empty();
311
313
  const out = empty();
312
- // LAUNCH: one program per Combat Turn (p.247), up to (Host Rating)
313
- // running at once, and never more than one of each type.
314
+ const host = room.host;
315
+ // CRASHED IC LEAVES, AND COMES BACK (p.355-356): a program whose monitor
316
+ // filled since the last turn is off the list now, and the host
317
+ // relaunches it the very next turn -- "delayed, never destroyed".
318
+ if (host) {
319
+ // Last turn's crashes come back FIRST (p.355-356: "reactivated the very
320
+ // next turn"); what crashes this turn waits for the next call.
321
+ if (host.relaunchQueue.length > 0 && room.runningIC.length < room.hostRating) {
322
+ const kind = host.relaunchQueue.shift();
323
+ room.runningIC.push(kind);
324
+ if (scene)
325
+ spawnIC(scene, host, kind);
326
+ out.lines.push(` {red-fg}The host relaunches ${kind}.{/red-fg}`);
327
+ }
328
+ for (const kind of crashedIC(host)) {
329
+ crashIC(scene, host, kind);
330
+ out.lines.push(` {red-fg}${kind} shears apart -- crashed. The host is already recompiling it.{/red-fg}`);
331
+ }
332
+ }
314
333
  if (room.runningIC.length < room.hostRating) {
315
- const next = IC_TYPES.find(t => !room.runningIC.includes(t.name));
334
+ const next = IC_TYPES.find(t => !room.runningIC.includes(t.name) && !(host?.relaunchQueue.includes(t.name)));
316
335
  if (next) {
317
336
  room.runningIC.push(next.name);
337
+ if (host && scene)
338
+ spawnIC(scene, host, next.name);
318
339
  out.lines.push(next.kind === 'patrol'
319
340
  ? ` {red-fg}${next.name} is already walking the host -- it never had to be launched.{/red-fg}`
320
341
  : ` {red-fg}The host launches ${next.name}.{/red-fg}`);
@@ -421,6 +442,7 @@ function reducerOrConditionalActs(room, actor, type, out) {
421
442
  * own head (p.229). Shared by the damage IC and the reducers-at-zero. */
422
443
  function applyMatrixDamage(actor, dealt, type, out) {
423
444
  if (actor.isTechnomancer()) {
445
+ noteHarm(actor, { by: type.name });
424
446
  actor.takeStun(dealt);
425
447
  out.lines.push(` {red-fg}${type.name} tears through your living persona -- ${dealt} stun: ${actor.stunSummary()}{/red-fg}`);
426
448
  return;
@@ -530,6 +552,12 @@ function dealBiofeedback(actor, dv, type, out) {
530
552
  out.lines.push(` The feedback surge breaks against you and dies.`);
531
553
  return;
532
554
  }
555
+ // The settlement (harm-settlement.ts) reads this when the track fills.
556
+ noteHarm(actor, {
557
+ by: `${type.name} biofeedback`,
558
+ fall: `The feedback surge stops your heart. Your body folds where it stands, still cabled in.`,
559
+ gameOver: `💀 GAME OVER: ${actor.name} was killed by ${type.name} biofeedback.`,
560
+ });
533
561
  if (hot) {
534
562
  actor.takeDamage(dealt);
535
563
  out.lines.push(` {red-fg}Hot-sim carries it into the MEAT -- ${dealt} physical: ${actor.conditionSummary()}{/red-fg}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ic.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ic.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/ic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;uDAEuD;AACvD,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,eAAe,GAAiE;IACpF,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAG,+BAA+B;IACpE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IAClC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IAClC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IAClC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IACnC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;CACpC,CAAC;AAEF,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC;WAC5D,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAiCD,wEAAwE;AACxE,MAAM,UAAU,GAA+B;IAC7C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU;CAC5F,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;IAC3E,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACvE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACzE,+DAA+D;IAC/D,uBAAuB;IACvB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5F,qEAAqE;IACrE,4BAA4B;IAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7H,qEAAqE;IACrE,gEAAgE;IAChE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3G,sEAAsE;IACtE,uEAAuE;IACvE,iEAAiE;IACjE,mBAAmB;IACnB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;IAC7F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACrG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC7F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC7F,oEAAoE;IACpE,yDAAyD;IACzD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE;IACvF,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE;CAC9F,CAAC;AAyBF,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,KAAa;IACrD,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;WAC1B,IAAI,CAAC,OAAO;QACf,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,WAAW;QACX,EAAE;QACF,iEAAiE;QACjE,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,gEAAgE;QAChE,oEAAoE;QACpE,iDAAiD;WAC9C,KAAK,CAAC,UAAU,KAAK,IAAI;QAC5B,iEAAiE;QACjE,iEAAiE;QACjE,iEAAiE;WAC9D,CAAC,IAAI,CAAC,cAAc;WACpB,IAAI,CAAC,SAAS,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU,EAAE,KAAa;IACvD,qDAAqD;IACrD,EAAE;IACF,kEAAkE;IAClE,uEAAuE;IACvE,qEAAqE;IACrE,mEAAmE;IACnE,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,mEAAmE;IACnE,4DAA4D;IAC5D,EAAE;IACF,sEAAsE;IACtE,mEAAmE;IACnE,sEAAsE;IACtE,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,yDAAyD;IACzD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,KAAa;IACrD,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IAC1D,oEAAoE;IACpE,+DAA+D;IAC/D,qEAAqE;IACrE,iEAAiE;IACjE,mEAAmE;IACnE,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC1C,oEAAoE;IACpE,uDAAuD;IACvD,IAAI,IAAI,CAAC,cAAc;QAAE,OAAO,GAAG,CAAC;IACpC,8DAA8D;IAC9D,sEAAsE;IACtE,+DAA+D;IAC/D,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE7C,kEAAkE;IAClE,8CAA8C;IAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE3D,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,6DAA6D;QAC7D,OAAO,GAAG,IAAI,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,kCAAkC;QAClC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sEAAsE,UAAU,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjJ,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAClG,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,4DAA4D;IAC5D,oEAAoE;IACpE,8CAA8C;IAC9C,EAAE;IACF,kEAAkE;IAClE,mEAAmE;IACnE,mEAAmE;IACnE,sEAAsE;IACtE,uEAAuE;IACvE,6CAA6C;IAC7C,EAAE;IACF,qEAAqE;IACrE,mEAAmE;IACnE,2DAA2D;IAC3D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,2FAA2F,IAAI,CAAC,IAAI,6DAA6D,CAAC,CAAC;IACjO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,KAAK,CAAC,IAAI,oDAAoD,CAAC,CAAC;IAChH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAU,EAAE,KAAa,EAAE,KAAa;IAClE,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,IAAU,EAAE,KAAa,EAAE,KAAa;IAChE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,yEAAyE;IACzE,+DAA+D;IAC/D,kEAAkE;IAClE,IAAI,IAAI,EAAE,CAAC;QACT,wEAAwE;QACxE,+DAA+D;QAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAG,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,IAAI,YAAY,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,wEAAwE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACnC,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,uEAAuE;gBAC/F,CAAC,CAAC,+BAA+B,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,8CAA8C;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACpD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACvD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;;YAC/D,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,IAAU,EAAE,KAAa,EAAE,IAAa,EAAE,GAAY;IACtE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,8BAA8B,KAAK,MAAM,UAAU,CAAC,MAAM,CAAC,6BAA6B,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IACtJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,wBAAwB,CAAC,IAAU,EAAE,KAAa,EAAE,IAAa,EAAE,GAAY;IACtF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,6CAA6C,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,mBAAmB,KAAK,eAAe,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACtI,OAAO;QACT,CAAC;QACD,kEAAkE;QAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,KAAK,eAAe,GAAG,oCAAoC,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC5H,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,eAAe,KAAK,iEAAiE,CAAC,CAAC;YAC5H,OAAO;QACT,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,uEAAuE;IACvE,+CAA+C;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,oDAAoD,MAAM,QAAQ,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,4BAA4B,KAAK,GAAG,CAAC,CAAC;QAC5J,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,qEAAqE;QACrE,oEAAoE;QACpE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,kIAAkI,CAAC,CAAC;QACzK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,sBAAsB,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAC;QACvG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAClB,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,+DAA+D;IAC/D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,6CAA6C,CAAC,CAAC;IACpF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,iCAAiC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3E,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,CAAC;AAED;0EAC0E;AAC1E,SAAS,iBAAiB,CAAC,KAAa,EAAE,KAAa,EAAE,IAAa,EAAE,GAAY;IAClF,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,yCAAyC,KAAK,UAAU,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC7H,OAAO;IACT,CAAC;IACD,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,UAAU,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAmB,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACvI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACjE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,UAAU,CAAC,IAAU,EAAE,KAAa,EAAE,IAAa,EAAE,GAAY;IACxE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,6CAA6C,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,sEAAsE;IACtE,oBAAoB;IACpB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACrC,uEAAuE;IACvE,qEAAqE;IACrE,+DAA+D;IAC/D,yDAAyD;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,EAAE,eAAe,KAAK,KAAK,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,kCAAkC,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAEpN,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,oDAAoD,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,gEAAgE;IAChE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,WAAW;QAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,IAAa,EAAE,GAAY;IAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO;IAChE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,0HAA0H,CAAC,CAAC;IACjK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,eAAe,CAAC,KAAa,EAAE,EAAU,EAAE,IAAa,EAAE,GAAY;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,EAAE,gCAAgC,UAAU,CAAC,MAAM,CAAC,OAAO,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACzJ,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE;QACd,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,cAAc;QAC9B,IAAI,EAAE,wFAAwF;QAC9F,QAAQ,EAAE,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,eAAe;KAChF,CAAC,CAAC;IACH,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,KAAK,cAAc,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC1H,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,KAAK,UAAU,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,UAAU,CAAC,IAAU,EAAE,KAAa,EAAE,GAAY;IACzD,0DAA0D;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,gEAAgE;QAChE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,SAAS,CAAC,IAAU,EAAE,KAAa,EAAE,GAAY;IACxD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,KAAK,MAAM,UAAU,CAAC,MAAM,CAAC,6BAA6B,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAElJ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,8DAA8D;QAC9D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;QAC/G,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1K,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,gCAAgC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5E,CAAC"}