@maka/maka-cli 5.8.0 → 5.10.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 (166) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +4 -2
  3. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +3 -2
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +14 -6
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -2
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +24 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +2 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +31 -4
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +16 -2
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +86 -15
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +5 -4
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +2 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +5 -4
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +5 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +5 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +94 -16
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.d.ts +38 -0
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +178 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +7 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.d.ts +10 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js +24 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js.map +1 -0
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +2 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +2 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +2 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +2 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +48 -4
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +3 -2
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +41 -0
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +160 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -0
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +2 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +2 -1
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -1
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +2 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +8 -2
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  71. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +15 -4
  72. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  73. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +7 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +2 -1
  76. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +3 -2
  78. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +11 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
  81. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +24 -13
  82. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
  83. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +2 -1
  84. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js +4 -0
  86. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +1 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +37 -4
  88. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +6 -0
  90. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +5 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -1
  93. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +9 -2
  94. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +2 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
  98. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
  99. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +2 -1
  100. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +1 -1
  101. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +5 -0
  102. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
  103. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +11 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +138 -23
  105. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  106. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +12 -0
  107. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  108. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +33 -1
  109. package/bundle/typescript/src/commands/game/sideQuest/game.js +303 -26
  110. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  111. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +2 -0
  112. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +3 -0
  113. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  114. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +13 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +195 -6
  116. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  117. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +11 -2
  118. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +35 -5
  119. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  120. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +12 -0
  121. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +19 -1
  122. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  123. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +12 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +51 -4
  125. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +45 -0
  127. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +197 -4
  128. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  129. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +76 -20
  130. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +157 -34
  131. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +208 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.js +14 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.js.map +1 -0
  134. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +1 -0
  135. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +1 -0
  137. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +1 -0
  138. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
  139. package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +6 -0
  140. package/bundle/typescript/src/commands/game/sideQuest/ui.js +100 -7
  141. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  142. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +18 -4
  143. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  144. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +50 -0
  145. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +232 -0
  146. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -0
  147. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +10 -0
  148. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +17 -0
  149. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  150. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +36 -0
  151. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js +57 -0
  152. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +1 -0
  153. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
  154. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +55 -0
  155. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -0
  156. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +71 -0
  157. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +447 -0
  158. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -0
  159. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +8 -7
  160. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  161. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +121 -0
  162. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +315 -0
  163. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -0
  164. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +174 -18
  165. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  166. package/package.json +1 -1
@@ -4,6 +4,7 @@ import { Door } from './door.js';
4
4
  import { AI } from '../../../../tools/ai/ai.class.js';
5
5
  import { CALL_ICON, CALL_COLOR } from '../utilities/comm-style.js';
6
6
  import { rollPool, formatRoll } from '../utilities/dice.js';
7
+ import { spotsActive, spotOf, describeSpotRoster } from '../utilities/spots.js';
7
8
  import { priceOf } from '../utilities/commerce.js';
8
9
  export class NPC extends Player {
9
10
  _dialogue;
@@ -38,7 +39,7 @@ export class NPC extends Player {
38
39
  // only social, magical, or violent acts interrupt with fresh dialogue --
39
40
  // real sessions had an NPC deliver two full paragraphs because the
40
41
  // player unequipped a gun, then more for every look/take/equip twitch.
41
- static RESPOND_WORTHY_VERB = /enter|attack|subdue|kill|cast|releases|draw|holster|surrender|give|jack|project|return/i;
42
+ static RESPOND_WORTHY_VERB = /enter|attack|subdue|kill|cast|releases|draw|holster|surrender|give|jack|project|return|grappl|struggl/i;
42
43
  // ==================== Companion fields (see Game.companions) ====================
43
44
  // Set by Game.spawnCompanionShell: allyOf names the master this shell
44
45
  // serves (drives the prompt block below and the follow hook in go.ts);
@@ -118,6 +119,14 @@ export class NPC extends Player {
118
119
  }
119
120
  }
120
121
  /** Sets the standing objective the AI pursues (surfaced in its prompt). */
122
+ // Persistence accessors (utilities/persistence.ts): the AI memory tail
123
+ // is how a contact remembers you across sessions.
124
+ exportHistory(tail = 40) {
125
+ return this._history.slice(-tail);
126
+ }
127
+ restoreHistory(entries) {
128
+ this._history = [...entries];
129
+ }
121
130
  setObjective(objective) {
122
131
  this._objective = objective;
123
132
  }
@@ -133,6 +142,15 @@ export class NPC extends Player {
133
142
  Available in-game commands (use with [COMMAND] prefix):
134
143
 
135
144
  - go <direction> — move in a direction like north, south, east, west
145
+ - move to <spot> — cross THIS room to one of its named places (bar, door, booths...),
146
+ when the room has them. You must share a place with someone to talk-to or trade
147
+ with them; speech from another place reaches them only as a shout everyone hears.
148
+ "move away" steps to the OPEN FLOOR -- the neutral ground between the places; to
149
+ reach someone standing there, move to the open floor yourself. "move to <name>"
150
+ also works: it walks you to wherever that person is standing.
151
+ - grapple <name> — seize and RESTRAIN someone without hurting them; held, they cannot
152
+ move, flee, or fight until they break your grip. Your hands are full while you hold
153
+ them ("release" lets go). If YOU are ever held: "struggle" is the only way out.
136
154
  - say <message> — speak a message
137
155
  - take <item name> — pick up an item from the current room ("take all" sweeps everything here, but only AFTER you have searched this room)
138
156
  - drop <item name> — drop an item
@@ -272,6 +290,21 @@ description text.`;
272
290
  // in AR must still reach their agent on the grid.
273
291
  if (!opts?.viaLink && !this.canPerceive(actor))
274
292
  return;
293
+ // AT HEEL, NOT AT THE TABLE (player ruling: companions don't jockey
294
+ // for their master). Broadcast room-speech -- ANYONE's, the master's
295
+ // included -- never wakes a companion shell's AI: the sentry mouthing
296
+ // off at the runner gets answered by the RUNNER, with the bound
297
+ // spirit standing silent at their shoulder (a real session had the
298
+ // spirit negotiating the door). It still LISTENS (history feeds
299
+ // later orders), and it still speaks when addressed directly
300
+ // ("talk"/"order"/viaLink -- those channels never set broadcast) or
301
+ // while running a standing directive (order.ts setObjective:
302
+ // autonomy was explicitly granted).
303
+ if (opts?.broadcast && this.companionKind && !this.objective) {
304
+ this._addToHistory(`${actor.name} says: "${message}"`);
305
+ this.logger.write(`${this.name} (companion, at heel) overheard ${actor.name} -- staying silent.`);
306
+ return;
307
+ }
275
308
  // Player wakes us up
276
309
  if (!(actor instanceof NPC)) {
277
310
  if (this.waitingForPlayer)
@@ -300,6 +333,27 @@ description text.`;
300
333
  this.logger.write(`${this.name} heard from ${actor.name}`);
301
334
  await this.respondTo(actor, message);
302
335
  }
336
+ /**
337
+ * ETIQUETTE (RAW p.138/141): "a social version of Sneak" -- the
338
+ * opposed test that lets someone move through a social space
339
+ * unremarked. Actor's Etiquette + Charisma vs THIS observer's
340
+ * Perception + Charisma; net hits >= 1 means they're accepted, >= 3
341
+ * improves the observer's attitude a line (p.141). Rolled per
342
+ * observer, like the physical sneak contest above. Player-visible
343
+ * dice tick in Mechanics (the established roll convention).
344
+ */
345
+ etiquetteContest(actor, label) {
346
+ const skill = actor.skillRating('etiquette');
347
+ const mine = rollPool(Math.max(1, actor.charisma + (skill > 0 ? skill : -1) + actor.woundModifier - actor.sustainingPenalty));
348
+ const perception = this.skillRating('perception');
349
+ const theirs = rollPool(Math.max(1, this.charisma + (perception > 0 ? perception : -1) + this.woundModifier));
350
+ this.logger.write(`[ETIQUETTE] ${actor.name} ${mine.hits} vs ${this.name} ${theirs.hits} (${label}).`);
351
+ if (actor === this._scene?.getPlayer?.()) {
352
+ this.logger.meta(`Etiquette (${label}): ${formatRoll(mine)}`);
353
+ this.logger.meta(` ${this.name} reads the room: ${formatRoll(theirs)}`);
354
+ }
355
+ return mine.hits - theirs.hits;
356
+ }
303
357
  async see(actor, verb, details) {
304
358
  try {
305
359
  if (actor === this || actor.name === this.name)
@@ -368,15 +422,117 @@ description text.`;
368
422
  this._addToHistory(entry);
369
423
  this.logger.write(`${this.name} sees ${entry}`);
370
424
  // Mundane actions are noted, not answered (see RESPOND_WORTHY_VERB).
371
- // Exception: MY opponent walking out mid-fight is never mundane --
425
+ // Exception 1: MY opponent walking out mid-fight is never mundane --
372
426
  // seeing that "exits" is what triggers pursuit, so it must keep
373
427
  // waking the AI even though an idle departure stays quiet.
374
428
  const fleeingMyFight = verb.includes('exit') && this.combatOpponent === actor;
375
- if (!NPC.RESPOND_WORTHY_VERB.test(verb) && !fleeingMyFight) {
429
+ // Exception 2: THEFT. "take" is mundane -- unless what left the
430
+ // room is MINE (a real session: the player pocketed Mr. Krow's
431
+ // credstick at his own desk and Krow quietly noted it like
432
+ // weather). take.ts marks owned goods "(Owner's)" in the event;
433
+ // the ownership ledger backs it up with tolerant name matching,
434
+ // since the details may carry the player's typed shorthand.
435
+ const det = (details ?? '').toLowerCase();
436
+ const myTheft = /take/i.test(verb) && det.length > 0 && (det.includes(`(${this.name.toLowerCase()}'s)`)
437
+ || (this._scene?.getOwnedItemsBy?.(this.name) ?? []).some((i) => {
438
+ const n = i.name.toLowerCase();
439
+ return det.includes(n) || n.includes(det);
440
+ }));
441
+ // Exception 3: an APPROACH that ends at MY OWN spot ("at" spots,
442
+ // utilities/spots.ts). Crossing a room is deliberately mundane --
443
+ // waking every NPC per move is the wall-of-attention this feature
444
+ // removes -- but someone walking up to where I stand is a social
445
+ // event for ME: the bartender greets you when you reach the bar,
446
+ // and only then.
447
+ const myApproach = /moves to/i.test(verb)
448
+ && spotOf(this) !== undefined
449
+ && (details ?? '').toLowerCase().includes(`the ${spotOf(this).toLowerCase()}`);
450
+ // Exception 4: THE PRIZE. The win-condition item is what the whole
451
+ // scene turns on -- watching it get pocketed is never mundane,
452
+ // owner or no owner (a real generated run: the Encrypted Blackmail
453
+ // File sat ownerless in the Dragons' cache, and the stationed
454
+ // enforcer watched it walk out unchallenged).
455
+ const prize = this._scene?.getWinCondition?.()?.item;
456
+ const prizeTheft = /take/i.test(verb) && !!prize && det.includes(prize.toLowerCase());
457
+ if (!NPC.RESPOND_WORTHY_VERB.test(verb) && !fleeingMyFight && !myTheft && !prizeTheft && !myApproach) {
376
458
  this.logger.write(`[DEBUG] ${this.name} quietly notes "${entry}" -- no immediate response.`);
377
459
  return;
378
460
  }
379
- await this.respondTo(actor, entry);
461
+ // Arrival WARMTH follows the relationship (playtest note: the
462
+ // called-out-across-the-room greeting felt right for a friend --
463
+ // "this level of excitement goes with Loyalty" -- and a stranger's
464
+ // arrival shouldn't earn it; reputation covers non-contacts). In a
465
+ // SPOTTED room this is a hard gate, not prompt-pleading: telling a
466
+ // woken AI "a nod fits" still produced two Loyalty-1 barflies
467
+ // shouting greetings across the bar (real session) -- so anyone
468
+ // below the warmth bar quietly NOTES the arrival (their history
469
+ // keeps it for when you walk up) and never wakes. Unspotted rooms
470
+ // keep the old everyone-greets behavior (compat).
471
+ let arrivalNote = '';
472
+ if (/enter/i.test(verb) && !(actor instanceof NPC)) {
473
+ const rel = this._scene?.ownerGame?.contacts?.get(this.name);
474
+ let knownByRep = actor.notoriety >= 2 || actor.publicAwareness >= 2 || actor.streetCred >= 3;
475
+ const arrivedAtMySpot = spotOf(this) !== undefined
476
+ && (details ?? '').toLowerCase().includes(`(at the ${spotOf(this).toLowerCase()})`);
477
+ // ETIQUETTE, hook 1 -- walking in like you belong: reputation
478
+ // ALWAYS turned heads, so the social Sneak is the counter
479
+ // (p.141: "ease suspicions, so that people might trust you more
480
+ // than they would an outsider"). Win the contest and this
481
+ // observer reads you as just another regular; LOSE it and they
482
+ // clocked both the reputation and the attempt to duck it.
483
+ let blendFailed = false;
484
+ if (knownByRep && !(rel && rel.loyalty >= 3)) {
485
+ if (this.etiquetteContest(actor, 'blend in') >= 1) {
486
+ knownByRep = false;
487
+ }
488
+ else {
489
+ blendFailed = true;
490
+ }
491
+ }
492
+ if (spotsActive(this.currentLocation)
493
+ && !(rel && rel.loyalty >= 3) && !knownByRep && !arrivedAtMySpot) {
494
+ this.logger.write(`[DEBUG] ${this.name} quietly notes the arrival -- not warm enough to hail (loyalty ${rel?.loyalty ?? 'none'}).`);
495
+ return;
496
+ }
497
+ if (rel && rel.loyalty >= 3) {
498
+ arrivalNote = ` [System note: ${actor.name} is a genuine friend (Loyalty ${rel.loyalty}/6) -- seeing them walk in pleases you. Calling a greeting across the room fits; wave them over if you like.]`;
499
+ }
500
+ else if (rel) {
501
+ arrivalNote = ` [System note: you know ${actor.name} (Loyalty ${rel.loyalty}/6, a regular face) -- a nod or a short word of acknowledgment fits. Save the enthusiasm for friends.]`;
502
+ }
503
+ else if (knownByRep) {
504
+ arrivalNote = ` [System note: you know ${actor.name} only by REPUTATION (Street Cred ${actor.streetCred}, Notoriety ${actor.notoriety}) -- react to the reputation, not the person: wary, curious, or carefully polite. No warm greeting for someone you've never met.${blendFailed ? ` And they walked in TRYING to pass unnoticed -- you clocked the act, which makes it worse.` : ''}]`;
505
+ }
506
+ else {
507
+ arrivalNote = ` [System note: ${actor.name} is a stranger walking in -- strangers are background noise. Stay quiet unless your character has a working reason to hail them (you run the counter and they look like custom, say). A nod at most.]`;
508
+ }
509
+ }
510
+ // ETIQUETTE, hook 2 -- the walk-up (p.141): approaching someone's
511
+ // spot is an opposed test unless you're already friends. 3+ net
512
+ // hits is RAW's attitude-up-a-line; zero net is an outsider's
513
+ // step, received with reserve.
514
+ let approachNote = '';
515
+ if (myApproach && !(actor instanceof NPC)) {
516
+ const rel = this._scene?.ownerGame?.contacts?.get(this.name);
517
+ if (rel && rel.loyalty >= 3) {
518
+ approachNote = ` They're a friend -- no ceremony needed.`;
519
+ }
520
+ else {
521
+ const net = this.etiquetteContest(actor, 'walk-up');
522
+ approachNote = net >= 3
523
+ ? ` Their approach is PITCH-PERFECT (Etiquette): whatever your guard was, it drops a notch -- receive them a shade warmer than you otherwise would.`
524
+ : net >= 1
525
+ ? ` They carry themselves like they belong here -- receive them without suspicion.`
526
+ : ` The approach is CLUMSY -- an outsider's step. Receive them with the reserve you'd give someone who doesn't quite fit in here.`;
527
+ }
528
+ }
529
+ await this.respondTo(actor, myTheft
530
+ ? `${entry} [System note: that is YOUR property -- ${actor.name} just pocketed it right in front of you. React as ${this.name} would: call it out, demand it back, name a price, or answer it however fits your character. Do not ignore it.]`
531
+ : prizeTheft
532
+ ? `${entry} [System note: ${actor.name} just pocketed the thing this whole scene turns on, right in front of you. If ${this.name} would care -- a guard, the owner's crew, anyone paid to watch it -- STOP them NOW: challenge, threaten, or attack. A true bystander at least marks the face. Do not ignore it.]`
533
+ : myApproach
534
+ ? `${entry} [System note: ${actor.name} just walked up to the ${spotOf(this)} -- where YOU are. They're in front of you now; receive them as ${this.name} would.${approachNote}]`
535
+ : `${entry}${arrivalNote}`);
380
536
  }
381
537
  catch (error) {
382
538
  this.logger.error(`Error in see: ${error}`);
@@ -465,6 +621,11 @@ description text.`;
465
621
  .join(', ')
466
622
  : '';
467
623
  const exitsLine = exitsHere ? `Exits from ${this.currentLocation.name}: ${exitsHere}. "go" only works with these.` : '';
624
+ // Same rule as exitsLine: reflect must know the REAL options or the
625
+ // AI bounces off invented ones. "At" spots included when they exist.
626
+ const spotsLine = spotsActive(this.currentLocation)
627
+ ? `Places in ${this.currentLocation.name}: ${describeSpotRoster(this.currentLocation, this).join('; ')}. You are ${spotOf(this) ? `at the ${spotOf(this)}` : 'moving through'}. "move to <place>" crosses to one -- talking or trading requires sharing a place.`
628
+ : '';
468
629
  // A companion mid-fetch needs a target: where its master stands, and
469
630
  // that a handover is a "give", not a promise.
470
631
  const reflectMaster = this.allyOf ? this._scene?.getPlayer?.() : undefined;
@@ -480,6 +641,7 @@ ${masterLine}
480
641
  ${this.buildConditionSummary()}
481
642
  ${reflectGeography}
482
643
  ${exitsLine}
644
+ ${spotsLine}
483
645
 
484
646
  You just performed the action: "${commandString}"
485
647
  With the result: "${result}"
@@ -490,6 +652,10 @@ Based on this, what is the most logical next in-game command (from the following
490
652
  - Do not respond on behalf of another player or NPC
491
653
  - If there is nothing to do, respond with: wait
492
654
  - Only respond with one [COMMAND]
655
+ - READ the result above and report honestly: if it says an action failed, was refused,
656
+ or found nothing, then it FAILED -- never speak or act as if it succeeded (a beaten
657
+ sentry once announced a door "open" after his unlock bounced; the runner walked into
658
+ a locked hatch).
493
659
  - If you have already said your piece and are waiting on someone to answer, the logical next step is: wait
494
660
  ${this._spokeThisStimulus ? '- You have ALREADY spoken since the last thing that happened. Do NOT say or talk-to again -- choose a non-speech action, or respond with: wait' : ''}
495
661
 
@@ -624,6 +790,12 @@ ${worldEventsSummary}
624
790
  return;
625
791
  }
626
792
  const roomDesc = `They are currently in: "${room.name}" — ${room.description}`;
793
+ // "At" spots (utilities/spots.ts): WHERE everyone stands inside this
794
+ // room, so the AI greets an arrival at the door from across the room
795
+ // (or walks over) instead of assuming the newcomer is at its elbow.
796
+ const spotBlock = spotsActive(room)
797
+ ? `\nPlaces in this room: ${describeSpotRoster(room, this).join('; ')}. You are ${spotOf(this) ? `at the ${spotOf(this)}` : 'moving through the room'}. You can only talk-to/give/trade with someone AT YOUR OWN place -- "move to <place>" crosses to them; speaking from elsewhere reaches them only as a shout.`
798
+ : '';
627
799
  // The world's ACTUAL geography -- without this, a fixer briefing a job
628
800
  // invents plausible-sounding districts and landmarks as destinations,
629
801
  // and the player wanders looking for somewhere that doesn't exist
@@ -702,6 +874,23 @@ ${wares.map(i => `- "${i.name}" (${priceOf(i)} nuyen)`).join('\n')}
702
874
  When a customer orders or agrees to buy, SERVE it in the same response: [COMMAND] give <item name> to <customer name>
703
875
  The till settles automatically on handoff (they're charged street price, or what they can cover). Quote the price when they order. Never serve someone who hasn't asked.`
704
876
  : '';
877
+ // BARRIERS AT YOUR POST (a real session: a beaten sentry announced he
878
+ // was "unlocking" a spell-sealed hatch he could never open -- his AI
879
+ // had no idea what guarded his own door, tried a doomed "unlock", and
880
+ // claimed success). An NPC standing in a puzzle's room knows what
881
+ // seals it, that he cannot wish it open, and HOW it opens -- as a
882
+ // guarded secret, so coercion and bribery become a real path to the
883
+ // pass. Companions are excluded: a bound spirit that knew the code
884
+ // would simply hand it to its master and skip the puzzle.
885
+ const barrierBlock = (!this.allyOf && this.currentLocation?.getPuzzleTargets)
886
+ ? this.currentLocation.getPuzzleTargets().map(t => {
887
+ const dirNote = t.direction ? ` sealing the way ${t.direction}` : '';
888
+ if (t.puzzle.isSolved()) {
889
+ return `\nThe barrier "${t.puzzle.name}"${dirNote} already stands OPEN.`;
890
+ }
891
+ return `\nBARRIER AT YOUR POST (the lock${dirNote}): ${t.puzzle.riddle} It opens ONLY by its own mechanism -- the pass is "${t.puzzle.requiredPhrase ?? 'unknown even to you'}". You CANNOT unlock or open it any other way (no key, no shoulder, no goodwill), so NEVER claim to have opened it or promise to. The pass is a SECRET you guard with your standing: give it up only under real pressure -- beaten, genuinely frightened, well bribed, or masterfully played. Under that pressure, telling them how it opens IS how you comply.`;
892
+ }).join('')
893
+ : '';
705
894
  // HOME TURF familiarity: if this NPC is on the player's contact
706
895
  // roster (the whole hub cast is, from session start -- see
707
896
  // Game.seedHomeTurfContacts), the AI should treat them as a KNOWN
@@ -791,10 +980,10 @@ Your objective is to drive the story line.
791
980
  ${dialogueSummary}
792
981
  ${payoutSummary}
793
982
 
794
- ${roomDesc}
983
+ ${roomDesc}${spotBlock}
795
984
  ${formattedExitsStr}
796
985
  ${roomInventoryDesc}
797
- ${waresDesc}
986
+ ${waresDesc}${barrierBlock}
798
987
  ${familiarity}
799
988
  ${droneNote}
800
989
  ${companionNote}
@@ -1 +1 @@
1
- {"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/npc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/npc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,EAAE,EAAE,MAAM,kCAAkC,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,MAAM,OAAO,GAAI,SAAQ,MAAM;IACrB,SAAS,CAAW;IACpB,YAAY,CAAS;IACrB,WAAW,CAAU;IACrB,eAAe,GAAG,KAAK,CAAC;IACxB,MAAM,CAAS;IACf,YAAY,CAAS;IAE7B,6EAA6E;IAC7E,0EAA0E;IAC1E,2BAA2B;IACnB,UAAU,CAAU;IAEpB,QAAQ,GAAa,EAAE,CAAC;IACf,WAAW,GAAG,GAAG,CAAC;IAE3B,eAAe,CAAkB;IAEjC,gBAAgB,GAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,iBAAiB,GAAW,GAAG,CAAC,CAAC,kCAAkC;IAE1E,eAAe,GAAW,CAAC,CAAC;IAC5B,MAAM,CAAC,gBAAgB,GAAW,GAAG,CAAC,CAAC,gCAAgC;IAEvE,aAAa,GAAW,CAAC,CAAC;IAE1B,gBAAgB,GAAY,KAAK,CAAC;IAE1C,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,oEAAoE;IAC5D,kBAAkB,GAAG,KAAK,CAAC;IAEnC,yEAAyE;IACzE,qEAAqE;IACrE,sEAAsE;IACtE,yEAAyE;IACzE,mEAAmE;IACnE,uEAAuE;IAC/D,MAAM,CAAU,mBAAmB,GACzC,wGAAwG,CAAC;IAE3G,mFAAmF;IACnF,sEAAsE;IACtE,uEAAuE;IACvE,wEAAwE;IACxE,4DAA4D;IAC5D,gDAAgD;IACzC,MAAM,CAAU;IAChB,WAAW,CAAQ;IACnB,aAAa,CAAyC;IAE7D;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,aAAqB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,aAAqB;QACpC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,yBAAyB,aAAa,IAAI,CAAC;IAC3G,CAAC;IAED,uEAAuE;IACvE,0BAA0B;IAClB,MAAM,CAAU,UAAU,GAAqF;QACrH,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;QACvC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;QACrC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;QACnC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;KACrC,CAAC;IAEF;;;;;;;;;;OAUG;IACK,aAAa,CAAC,aAAqB,EAAE,MAAc;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;QACnD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAElF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAElE,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACvE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;gBAChD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,sBAAsB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,OAAO,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACpK,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;YAAE,OAAO;QAExF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,mDAAmD;YACnD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,KAAK,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjI,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,uEAAuE;IACvE,kDAAkD;IAClD,aAAa,CAAC,IAAI,GAAG,EAAE;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,OAAiB;QAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY,SAAgC,EAAE,eAAgC;QAC5E,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAGvC,IAAI,CAAC,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEvB,CAAC,IAAI,EAAE,CAAC;IACP,CAAC;IAED,IAAI,KAAK,CAAC,KAAY;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,WAAmB;QACjC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAClD,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;YAAE,OAAO;QAE/B,MAAM,MAAM,GAAG;;;;iBAIF,YAAY;;kBAEX,IAAI,CAAC,IAAI;;;;kBAIT,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,aAAqB;QAC7B,iEAAiE;QACjE,oEAAoE;QACpE,oEAAoE;QACpE,kEAAkE;QAClE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,sDAAsD,aAAa,IAAI,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,oCAAoC;YACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,sCAAsC,aAAa,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAe,EAAE,IAAiD;QAC1F,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO;QACvD,+DAA+D;QAC/D,sBAAsB;QACtB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,kDAAkD;QAClD,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAO;QAEvD,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,gEAAgE;QAChE,mEAAmE;QACnE,gEAAgE;QAChE,6DAA6D;QAC7D,oEAAoE;QACpE,6DAA6D;QAC7D,oCAAoC;QACpC,IAAI,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,OAAO,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,mCAAmC,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;YACvG,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;QAED,6EAA6E;QAC7E,IAAI,IAAI,CAAC,gBAAgB,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,6CAA6C,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;QAC/E,CAAC;QAED,gBAAgB;QAChB,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,WAAW,OAAO,GAAG,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,KAAa,EAAE,KAAa;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9H,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;QACvG,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,oBAAoB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,OAAgB;QACrD,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,OAAO;YACvD,8CAA8C;YAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBAAE,OAAO;YAErC,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;gBACxG,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,oDAAoD,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;YAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;oBAClE,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,mCAAmC,CAAC,CAAC;YAC7E,CAAC;YAED,oEAAoE;YACpE,+DAA+D;YAC/D,oEAAoE;YACpE,kEAAkE;YAClE,kEAAkE;YAClE,oEAAoE;YACpE,iEAAiE;YACjE,IAAI,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnE,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACjD,iEAAiE;gBACjE,4DAA4D;gBAC5D,4DAA4D;gBAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;gBACpL,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBACvG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvF,mEAAmE;gBACnE,0DAA0D;gBAC1D,iEAAiE;gBACjE,gEAAgE;gBAChE,mBAAmB;gBACnB,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;gBACtD,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3B,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBACtH,CAAC;oBACD,OAAO,CAAC,wBAAwB;gBAClC,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;oBACvH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,+CAA+C,EAAE,QAAQ,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,iEAAiE;YACjE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO;gBAClC,CAAC,CAAC,yBAAyB,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,gBAAgB,4BAA4B;gBAClG,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;YAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC;YAEhD,qEAAqE;YACrE,qEAAqE;YACrE,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC;YAC9E,gEAAgE;YAChE,+DAA+D;YAC/D,2DAA2D;YAC3D,gEAAgE;YAChE,gEAAgE;YAChE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CACtD,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;mBAC3C,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE;oBAChF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC/B,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC,CACH,CAAC;YACF,iEAAiE;YACjE,kEAAkE;YAClE,kEAAkE;YAClE,iEAAiE;YACjE,iEAAiE;YACjE,iBAAiB;YACjB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;mBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS;mBAC1B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,IAAI,CAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClF,mEAAmE;YACnE,+DAA+D;YAC/D,mEAAmE;YACnE,8DAA8D;YAC9D,8CAA8C;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,mBAAmB,KAAK,6BAA6B,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YACD,8DAA8D;YAC9D,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,8DAA8D;YAC9D,gEAAgE;YAChE,gEAAgE;YAChE,kEAAkE;YAClE,kDAAkD;YAClD,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;gBAC7F,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS;uBAC7C,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,MAAM,CAAC,IAAI,CAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACvF,8DAA8D;gBAC9D,0DAA0D;gBAC1D,gEAAgE;gBAChE,0DAA0D;gBAC1D,+DAA+D;gBAC/D,0DAA0D;gBAC1D,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,IAAI,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC7C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,UAAU,GAAG,KAAK,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;gBACH,CAAC;gBACD,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;uBAChC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,kEAAkE,GAAG,EAAE,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC;oBACpI,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;oBAC5B,WAAW,GAAG,kBAAkB,KAAK,CAAC,IAAI,iCAAiC,GAAG,CAAC,OAAO,+GAA+G,CAAC;gBACxM,CAAC;qBAAM,IAAI,GAAG,EAAE,CAAC;oBACf,WAAW,GAAG,2BAA2B,KAAK,CAAC,IAAI,aAAa,GAAG,CAAC,OAAO,wGAAwG,CAAC;gBACtL,CAAC;qBAAM,IAAI,UAAU,EAAE,CAAC;oBACtB,WAAW,GAAG,2BAA2B,KAAK,CAAC,IAAI,oCAAoC,KAAK,CAAC,UAAU,eAAe,KAAK,CAAC,SAAS,mIAAmI,WAAW,CAAC,CAAC,CAAC,4FAA4F,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC7X,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,kBAAkB,KAAK,CAAC,IAAI,uMAAuM,CAAC;gBACpP,CAAC;YACH,CAAC;YACD,kEAAkE;YAClE,gEAAgE;YAChE,8DAA8D;YAC9D,+BAA+B;YAC/B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;oBAC5B,YAAY,GAAG,0CAA0C,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACpD,YAAY,GAAG,GAAG,IAAI,CAAC;wBACrB,CAAC,CAAC,kJAAkJ;wBACpJ,CAAC,CAAC,GAAG,IAAI,CAAC;4BACR,CAAC,CAAC,iFAAiF;4BACnF,CAAC,CAAC,gIAAgI,CAAC;gBACzI,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO;gBACjC,CAAC,CAAC,GAAG,KAAK,2CAA2C,KAAK,CAAC,IAAI,qDAAqD,IAAI,CAAC,IAAI,iHAAiH;gBAC9O,CAAC,CAAC,UAAU;oBACV,CAAC,CAAC,GAAG,KAAK,kBAAkB,KAAK,CAAC,IAAI,iFAAiF,IAAI,CAAC,IAAI,kLAAkL;oBAClT,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,GAAG,KAAK,kBAAkB,KAAK,CAAC,IAAI,0BAA0B,MAAM,CAAC,IAAI,CAAC,mEAAmE,IAAI,CAAC,IAAI,UAAU,YAAY,GAAG;wBACjL,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,oUAAoU,CAAC;QAC9U,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,uRAAuR,CAAC;QACjS,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,2CAA2C,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,UAAU,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,aAAa,kCAAkC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE9P,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC7D,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,4BAA4B,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,+BAA+B,wTAAwT,CAAC,CAAC;QACnb,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;QACjH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gDAAgD,CAAC;QAExF,MAAM,OAAO,GAAG,qCAAqC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,KAAK,CAAC,OAAgB;QACpB,OAAO,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,aAAqB,EACrB,MAAc,EACd,iBAAyB,CAAC,EAC1B,eAAuB,IAAI,CAAC,aAAa;QAEzC,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,iEAAiE;QACjE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,gDAAgD,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,6CAA6C,CAAC;QACjH,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU;YACtC,CAAC,CAAC,2BAA2B,IAAI,CAAC,UAAU,EAAE;YAC9C,CAAC,CAAC,gDAAgD,CAAC;QACrD,oEAAoE;QACpE,6CAA6C;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;YAC9C,CAAC,CAAC,kCAAkC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C;YACzG,CAAC,CAAC,EAAE,CAAC;QACP,iEAAiE;QACjE,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe;YACpC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBACxC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;iBAClH,IAAI,CAAC,IAAI,CAAC;YACb,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,SAAS,+BAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;QACxH,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;YACjD,CAAC,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,oFAAoF;YACjQ,CAAC,CAAC,EAAE,CAAC;QACP,qEAAqE;QACrE,8CAA8C;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;YAC5B,CAAC,CAAC,aAAa,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,6BAA6B,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,gFAAgF,IAAI,CAAC,MAAM,EAAE;YACjO,CAAC,CAAC,EAAE,CAAC;QAEP,2BAA2B;QAC3B,MAAM,OAAO,GAAG;uBACG,IAAI,CAAC,IAAI;EAC9B,IAAI,CAAC,iBAAiB,EAAE;EACxB,gBAAgB;EAChB,UAAU;EACV,IAAI,CAAC,qBAAqB,EAAE;EAC5B,gBAAgB;EAChB,SAAS;EACT,SAAS;;kCAEuB,aAAa;oBAC3B,MAAM;;;MAGpB,IAAI,CAAC,YAAY;;;;;;;;;;EAUrB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,gJAAgJ,CAAC,CAAC,CAAC,EAAE;;;EAG/K,cAAc;;EAEd,kBAAkB;CACnB,CAAC;QAEE,qCAAqC;QACrC,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,kCAAkC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAExC,6DAA6D;YAC7D,kEAAkE;YAClE,kEAAkE;YAClE,gDAAgD;YAChD,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,iDAAiD,CAAC,CAAC;oBACjF,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;gBACD,8DAA8D;gBAC9D,+DAA+D;gBAC/D,0DAA0D;gBAC1D,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAe;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAE3C,uEAAuE;QACvE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,KAAK,GAAG,SAAS,EAAS,EAAE;YACvD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,KAAK,KAAK,8CAA8C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvH,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,CAAU,EAAY,EAAE;YACvC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,4CAA4C;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK;YAChC,CAAC,CAAC,4CAA4C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjE,CAAC,CAAC,qCAAqC,CAAC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,6CAA6C,CAAC;QACjH,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU;YACtC,CAAC,CAAC,2BAA2B,IAAI,CAAC,UAAU,EAAE;YAC9C,CAAC,CAAC,iFAAiF,CAAC;QAEtF,sEAAsE;QACtE,qEAAqE;QACrE,uEAAuE;QACvE,yCAAyC;QACzC,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;YACtE,CAAC,CAAC,4IAA4I,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1K,CAAC,CAAC,+CAA+C,CAAC;QAEpD,2DAA2D;QAC3D,oEAAoE;QACpE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM;YAC1B,CAAC,CAAC,oDAAoD,MAAM,0NAA0N;YACtR,CAAC,CAAC,EAAE,CAAC;QAEP,uEAAuE;QACvE,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;YACjD,CAAC,CAAC,mMAAmM;YACrM,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW;YACvC,CAAC,CAAC,+CAA+C,IAAI,CAAC,YAAY,EAAE;YACpE,CAAC,CAAC,2BAA2B,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAElC,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE;YACpC,CAAC,CAAC,2BAA2B,IAAI,CAAC,KAAK,qEAAqE;YAC5G,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACf,CAAC,CAAC,gGAAgG;gBAClG,CAAC,CAAC,oEAAoE,CAAC;QAE3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEtD,MAAM,gBAAgB,GACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACxE,CAAC,CAAC,yDAAyD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9F,CAAC,CAAC,gDAAgD,CAAC;QAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,8CAA8C,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,2BAA2B,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAE/E,qEAAqE;QACrE,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC,0BAA0B,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,8JAA8J;YACnT,CAAC,CAAC,EAAE,CAAC;QAEP,uEAAuE;QACvE,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC,gDAAgD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,6TAA6T;YACpY,CAAC,CAAC,EAAE,CAAC;QAEP,gDAAgD;QAChD,IAAI,SAAS,GAA6B,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,KAAK,IAAI,OAAQ,IAAI,CAAC,KAAa,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACpE,SAAS,GAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,0DAA0D,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,kCAAkC,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5D,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAE9C,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAE1C,IAAI,iBAAiB,GAAG,EAAE,CAAC;gBAC3B,IAAI,QAAQ;oBAAE,iBAAiB,GAAG,mBAAmB,IAAI,CAAC,oBAAoB,IAAI,CAAC;gBAEnF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1E,OAAO,GAAG,cAAc,MAAM,UAAU,GAAG,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC1E,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,GAAG,cAAc,MAAM,IAAI,EAAE,CAAC;YACvC,CAAC;YACD,OAAO,GAAG,cAAc,YAAY,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GACvB,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAChE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC;QAEL,4DAA4D;QAC5D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,cAAc,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,iCAAiC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAK,CAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAK,CAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9H,CAAC,CAAC,sCAAsC,CAAC;QAEzC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrF,MAAM,cAAc,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,iCAAiC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAK,CAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAK,CAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9H,CAAC,CAAC,sCAAsC,CAAC;QAEzC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjF,MAAM,gBAAgB,GACtB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,8CAA8C,QAAQ;iBACnD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,2BAA2B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,EAAE,CAAC;iBAC3F,IAAI,CAAC,IAAI,CAAC,EAAE;YACjB,CAAC,CAAC,oCAAoC,CAAC;QAEvC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,iBAAiB,GACvB,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,8BAA8B,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACpG,CAAC,CAAC,yCAAyC,CAAC;QAE5C,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,oEAAoE;QACpE,uCAAuC;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC;EACN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;yKAEuG;YACnK,CAAC,CAAC,EAAE,CAAC;QAEP,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,kEAAkE;QAClE,kEAAkE;QAClE,oEAAoE;QACpE,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC;YAC3E,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAChD,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACxB,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,uBAAuB,CAAC;gBAC3E,CAAC;gBACD,OAAO,mCAAmC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,uDAAuD,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,qBAAqB,iWAAiW,CAAC;YACjhB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,EAAE,CAAC;QAEP,gEAAgE;QAChE,2DAA2D;QAC3D,kEAAkE;QAClE,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,WAAW,EAAE,IAAI,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtF,iEAAiE;QACjE,oEAAoE;QACpE,8DAA8D;QAC9D,sEAAsE;QACtE,MAAM,SAAS,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO;eACzD,WAAW,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAChF,CAAC,CAAC,0BAA0B,WAAW,CAAC,IAAI,sEAAsE,WAAW,CAAC,WAAW,EAAE,IAAI,IAAI,gBAAgB,4XAA4X;YAC/hB,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,GAAG,IAAI,UAAU;YACnC,CAAC,CAAC,oBAAoB,UAAU,wDAAwD,GAAG,CAAC,OAAO,OACjG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,yDAAyD;gBAC1E,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,2DAA2D;oBAC9E,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,oDAAoD;wBACxE,CAAC,CAAC,yEAAyE,GAAG;YACtF,CAAC,CAAC,EAAE,CAAC;QAEP,gEAAgE;QAChE,oEAAoE;QACpE,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,KAAK,QAAQ;YACvD,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,QAAQ;YACzE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM;YAC/B,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,yBAAyB,IAAI,CAAC,aAAa,IAAI,WAAW,GAC/F,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,iBAAiB,WAAW,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,EAAE,GAAG;gBACpM,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,gDAAgD;oBACjF,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,4CAA4C;wBAC7E,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,MAAM,gKAAgK;YAClM,6DAA6D;YAC7D,gEAAgE;YAChE,+DAA+D;YAC/D,4DAA4D;YAC5D,IAAI,CAAC,aAAa,KAAK,OAAO;gBAC5B,CAAC,CAAC,uZAAuZ;gBACzZ,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO;oBAC9B,CAAC,CAAC,sCAAsC,IAAI,CAAC,iBAAiB,oIAAoI;oBAClM,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ;wBAC/B,CAAC,CAAC,qQAAqQ;wBACvQ,CAAC,CAAC,EAAE,2CAA2C,IAAI,CAAC,MAAM,iTAAiT;YACjX,iEAAiE;YACjE,iEAAiE;YACjE,wDAAwD;YACxD,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ;gBAC7E,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,mGAAmG;gBACpH,CAAC,CAAC,WAAW,EAAE,eAAe;oBAC5B,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,UAAU,WAAW,CAAC,eAAe,CAAC,IAAI,gGAAgG,IAAI,CAAC,MAAM,sGAAsG;oBACtR,CAAC,CAAC,EAAE,EAAE;YACZ,CAAC,CAAC,EAAE,CAAC;QAEP,+BAA+B;QAC/B,MAAM,MAAM,GAAG;uBACI,IAAI,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;MAuB1B,KAAK;MACL,iBAAiB;;MAEjB,IAAI,CAAC,YAAY;;MAEjB,cAAc;MACd,gBAAgB;MAChB,YAAY;MACZ,gBAAgB;MAChB,eAAe;MACf,aAAa;;MAEb,QAAQ,GAAG,SAAS;MACpB,iBAAiB;MACjB,iBAAiB;MACjB,SAAS,GAAG,YAAY;MACxB,WAAW;MACX,SAAS;MACT,aAAa;MACb,gBAAgB;;MAEhB,gBAAgB;MAChB,gBAAgB;;MAEhB,cAAc;MACd,cAAc;;MAEd,cAAc;;MAEd,kBAAkB;;IAEpB,KAAK,CAAC,IAAI,KAAK,OAAO;CACzB,CAAC,IAAI,EAAE,CAAC;QAEL,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAE1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,eAAe;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3E,mCAAmC;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAC/B,IAAI,CAAC,EAAE,CACP,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC5B,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gBACjC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CACtC,CAAC;YACF,8EAA8E;YAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5E,gDAAgD;YAChD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAE/G,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,YAAY,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,oEAAoE;YACpE,iEAAiE;YACjE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,WAAW,CAAC,MAAM,sCAAsC,CAAC,CAAC;YACvG,CAAC;YACD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,WAAW,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC;oBACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,WAAW,MAAM,GAAG,EAAE,CAAC,CAAC;oBACzE,0DAA0D;gBAC5D,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,kEAAkE;YAClE,mEAAmE;YACnE,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;gBACzC,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,yBAAyB,WAAW,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC;oBACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,+BAA+B,WAAW,MAAM,GAAG,EAAE,CAAC,CAAC;oBACrF,0DAA0D;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YACtD,oEAAoE;YACpE,MAAM,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC"}
@@ -26,7 +26,7 @@ export type SimMode = 'cold' | 'hot';
26
26
  * mechanics as they land -- perception drives search rolls today; the
27
27
  * rest are rated on the sheet and waiting for their verbs.
28
28
  */
29
- export type SkillName = 'firearms' | 'blades' | 'unarmed' | 'sneaking' | 'perception' | 'athletics' | 'hacking' | 'locksmith' | 'negotiation' | 'con' | 'intimidation' | 'first-aid' | 'assensing' | 'spellcasting' | 'piloting' | 'conjuring';
29
+ export type SkillName = 'firearms' | 'blades' | 'unarmed' | 'sneaking' | 'perception' | 'athletics' | 'hacking' | 'locksmith' | 'negotiation' | 'con' | 'intimidation' | 'etiquette' | 'first-aid' | 'assensing' | 'spellcasting' | 'piloting' | 'conjuring';
30
30
  export declare const SKILL_NAMES: SkillName[];
31
31
  /**
32
32
  * Skills that fall back to the legacy `combatSkill` attribute when no
@@ -104,6 +104,9 @@ export declare class Player extends AbstractPlayer {
104
104
  lastExchangeAt: number;
105
105
  inExchange: boolean;
106
106
  autoStance: FightStance;
107
+ grappledBy?: string;
108
+ grappleThreshold?: number;
109
+ grappling?: string;
107
110
  surrendered: boolean;
108
111
  archetypeName?: string;
109
112
  weaponDrawn: boolean;
@@ -249,6 +252,7 @@ export declare class Player extends AbstractPlayer {
249
252
  get name(): string;
250
253
  get currentLocation(): Room;
251
254
  set currentLocation(room: Room);
255
+ atSpot?: string;
252
256
  get inventory(): Inventory;
253
257
  get equipment(): PlayerEquipment;
254
258
  set equipment(newEquipment: PlayerEquipment);
@@ -268,7 +272,10 @@ export declare class Player extends AbstractPlayer {
268
272
  } | null;
269
273
  canEquip(item: Item): boolean;
270
274
  private unequipBySlot;
271
- hear(actor: Player, message: string): void | Promise<void>;
275
+ hear(actor: Player, message: string, _opts?: {
276
+ viaLink?: boolean;
277
+ broadcast?: boolean;
278
+ }): void | Promise<void>;
272
279
  see(actor: Player, verb: string, details?: string): void | Promise<void>;
273
280
  performAction(verb: string, details?: string): void;
274
281
  readonly _onSeenAction: ({ actor, verb, details }: {
@@ -378,6 +385,8 @@ export declare class Player extends AbstractPlayer {
378
385
  private _sleepFatigue;
379
386
  /** Stun boxes no recovery can touch until their need is met. */
380
387
  get lockedFatigue(): number;
388
+ get hungerFatigue(): number;
389
+ get sleepFatigue(): number;
381
390
  /** A real meal: hunger resets and hunger-fatigue unlocks (heals normally now). */
382
391
  markFed(): void;
383
392
  /** A real sleep (a bed, not a jobsite corner): sleep debt resets and unlocks. */
@@ -1,3 +1,4 @@
1
+ import { hint } from '../utilities/hints.js';
1
2
  import { Category } from '../types/shared/item-enum.js';
2
3
  import { Logger } from '../utilities/logger.js';
3
4
  import { Inventory } from './inventory.js';
@@ -11,7 +12,7 @@ export const SKILL_NAMES = [
11
12
  'firearms', 'blades', 'unarmed',
12
13
  'sneaking', 'perception', 'athletics',
13
14
  'hacking', 'locksmith',
14
- 'negotiation', 'con', 'intimidation',
15
+ 'negotiation', 'con', 'intimidation', 'etiquette',
15
16
  'first-aid',
16
17
  'assensing', 'spellcasting', 'piloting', 'conjuring',
17
18
  ];
@@ -64,6 +65,15 @@ export class Player extends AbstractPlayer {
64
65
  // if they surrender
65
66
  // aggressive -- fights until they're dead; surrender means nothing
66
67
  autoStance = 'manual';
68
+ // SUBDUING (RAW p.195, the "restrain" ask from a real session's runaway
69
+ // NPC): a grapple links two actors BY NAME -- grappledBy/grappling are
70
+ // the two ends, grappleThreshold the escape test's bar (the original
71
+ // net hits). Validity is checked lazily at every gate (see
72
+ // utilities/grapple.ts heldBy/holding): a dead, gone, or moved holder
73
+ // releases on the next look, so nothing needs cleanup hooks.
74
+ grappledBy;
75
+ grappleThreshold;
76
+ grappling;
67
77
  // Set by the "surrender" command: this actor has thrown their hands up.
68
78
  // Cleared the moment they initiate violence again (see
69
79
  // CombatExchange.beginExchange). Guarded auto-fight honors it;
@@ -527,11 +537,21 @@ export class Player extends AbstractPlayer {
527
537
  }
528
538
  set currentLocation(room) {
529
539
  if (this._currentLocation !== room) {
540
+ // A spot name is meaningless in another room -- clearing HERE (the
541
+ // one choke point every movement path funnels through: go, taxi,
542
+ // snap-backs, scene placement) is what keeps atSpot from ever
543
+ // dangling across rooms. Arrival positioning is the mover's job
544
+ // (go.ts assigns the entry spot after the move).
545
+ this.atSpot = undefined;
530
546
  this.leaveRoom();
531
547
  this.enterRoom(room);
532
548
  }
533
549
  this._currentLocation = room;
534
550
  }
551
+ // Where this actor stands WITHIN the room ("at" spots, see
552
+ // utilities/spots.ts). undefined = circulating (reaches everything,
553
+ // gets no cover) -- the compat default for everything un-migrated.
554
+ atSpot;
535
555
  get inventory() {
536
556
  return this._inventory;
537
557
  }
@@ -628,7 +648,7 @@ export class Player extends AbstractPlayer {
628
648
  // one was out: the moment of the exchange, both hands are busy.
629
649
  if (Player.isWeaponSlot(group, slot)) {
630
650
  this.weaponDrawn = false;
631
- return `You slide ${item.name} into your holster.${swapNotice} "brandish" when you want it in hand.`;
651
+ return `You slide ${item.name} into your holster.${swapNotice}${hint(` "brandish" when you want it in hand.`)}`;
632
652
  }
633
653
  return `You equipped ${item.name} in your ${group}.${slot} slot.${swapNotice}`;
634
654
  }
@@ -783,7 +803,7 @@ export class Player extends AbstractPlayer {
783
803
  this.weaponDrawn = false;
784
804
  return `You unequipped ${itemToUnequip.name} from your ${group}.${slot} slot.`;
785
805
  }
786
- hear(actor, message) {
806
+ hear(actor, message, _opts) {
787
807
  // Cross-plane silence: a Matrix persona's chatter never reaches meat
788
808
  // ears and vice versa; the astral hears the meat world it overlays.
789
809
  if (!this.canPerceive(actor))
@@ -1083,9 +1103,11 @@ export class Player extends AbstractPlayer {
1083
1103
  return Math.max(0, this.intuition + Math.floor(this.magic / 2) + this.woundModifier - this.sustainingPenalty);
1084
1104
  }
1085
1105
  // Combat sense: the adept's magic reads the fight before it happens.
1086
- // Wired reflexes read it faster still.
1106
+ // Wired reflexes read it faster still. Locked in someone's grapple
1107
+ // (p.195: a subdued character counts as PRONE against attacks): -2.
1087
1108
  const adeptBonus = this.adept ? Math.floor(this.magic / 2) : 0;
1088
- return Math.max(0, this.reaction + Math.floor(this.intuition / 2) + adeptBonus + this.augBonus('defense') + this.woundModifier - this.sustainingPenalty);
1109
+ const grappled = this.grappledBy ? 2 : 0;
1110
+ return Math.max(0, this.reaction + Math.floor(this.intuition / 2) + adeptBonus + this.augBonus('defense') + this.woundModifier - this.sustainingPenalty - grappled);
1089
1111
  }
1090
1112
  getSoakPool() {
1091
1113
  // Matrix: firewall -- Logic plus the DECK's quality (your deck is your
@@ -1182,6 +1204,14 @@ export class Player extends AbstractPlayer {
1182
1204
  get lockedFatigue() {
1183
1205
  return this._hungerFatigue + this._sleepFatigue;
1184
1206
  }
1207
+ // The per-kind splits, readable for persistence (the save must restore
1208
+ // hunger and sleep debt separately -- markFed clears only hunger).
1209
+ get hungerFatigue() {
1210
+ return this._hungerFatigue;
1211
+ }
1212
+ get sleepFatigue() {
1213
+ return this._sleepFatigue;
1214
+ }
1185
1215
  /** A real meal: hunger resets and hunger-fatigue unlocks (heals normally now). */
1186
1216
  markFed() {
1187
1217
  this.ateThisCycle = true;