@maka/maka-cli 5.8.0 → 5.9.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 (154) 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 +3 -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 +10 -0
  109. package/bundle/typescript/src/commands/game/sideQuest/game.js +144 -24
  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 +11 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +187 -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 +9 -2
  118. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +27 -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 +2 -0
  121. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +9 -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 +28 -0
  127. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +165 -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/seed/exit-seed.d.ts +1 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +1 -0
  134. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +1 -0
  135. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/ui.js +52 -3
  137. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  138. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +18 -4
  139. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  140. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +10 -0
  141. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +17 -0
  142. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  143. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +36 -0
  144. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js +57 -0
  145. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +1 -0
  146. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
  147. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +55 -0
  148. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -0
  149. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +8 -7
  150. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  151. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +121 -0
  152. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +315 -0
  153. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -0
  154. 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);
@@ -133,6 +134,15 @@ export class NPC extends Player {
133
134
  Available in-game commands (use with [COMMAND] prefix):
134
135
 
135
136
  - go <direction> — move in a direction like north, south, east, west
137
+ - move to <spot> — cross THIS room to one of its named places (bar, door, booths...),
138
+ when the room has them. You must share a place with someone to talk-to or trade
139
+ with them; speech from another place reaches them only as a shout everyone hears.
140
+ "move away" steps to the OPEN FLOOR -- the neutral ground between the places; to
141
+ reach someone standing there, move to the open floor yourself. "move to <name>"
142
+ also works: it walks you to wherever that person is standing.
143
+ - grapple <name> — seize and RESTRAIN someone without hurting them; held, they cannot
144
+ move, flee, or fight until they break your grip. Your hands are full while you hold
145
+ them ("release" lets go). If YOU are ever held: "struggle" is the only way out.
136
146
  - say <message> — speak a message
137
147
  - 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
148
  - drop <item name> — drop an item
@@ -272,6 +282,21 @@ description text.`;
272
282
  // in AR must still reach their agent on the grid.
273
283
  if (!opts?.viaLink && !this.canPerceive(actor))
274
284
  return;
285
+ // AT HEEL, NOT AT THE TABLE (player ruling: companions don't jockey
286
+ // for their master). Broadcast room-speech -- ANYONE's, the master's
287
+ // included -- never wakes a companion shell's AI: the sentry mouthing
288
+ // off at the runner gets answered by the RUNNER, with the bound
289
+ // spirit standing silent at their shoulder (a real session had the
290
+ // spirit negotiating the door). It still LISTENS (history feeds
291
+ // later orders), and it still speaks when addressed directly
292
+ // ("talk"/"order"/viaLink -- those channels never set broadcast) or
293
+ // while running a standing directive (order.ts setObjective:
294
+ // autonomy was explicitly granted).
295
+ if (opts?.broadcast && this.companionKind && !this.objective) {
296
+ this._addToHistory(`${actor.name} says: "${message}"`);
297
+ this.logger.write(`${this.name} (companion, at heel) overheard ${actor.name} -- staying silent.`);
298
+ return;
299
+ }
275
300
  // Player wakes us up
276
301
  if (!(actor instanceof NPC)) {
277
302
  if (this.waitingForPlayer)
@@ -300,6 +325,27 @@ description text.`;
300
325
  this.logger.write(`${this.name} heard from ${actor.name}`);
301
326
  await this.respondTo(actor, message);
302
327
  }
328
+ /**
329
+ * ETIQUETTE (RAW p.138/141): "a social version of Sneak" -- the
330
+ * opposed test that lets someone move through a social space
331
+ * unremarked. Actor's Etiquette + Charisma vs THIS observer's
332
+ * Perception + Charisma; net hits >= 1 means they're accepted, >= 3
333
+ * improves the observer's attitude a line (p.141). Rolled per
334
+ * observer, like the physical sneak contest above. Player-visible
335
+ * dice tick in Mechanics (the established roll convention).
336
+ */
337
+ etiquetteContest(actor, label) {
338
+ const skill = actor.skillRating('etiquette');
339
+ const mine = rollPool(Math.max(1, actor.charisma + (skill > 0 ? skill : -1) + actor.woundModifier - actor.sustainingPenalty));
340
+ const perception = this.skillRating('perception');
341
+ const theirs = rollPool(Math.max(1, this.charisma + (perception > 0 ? perception : -1) + this.woundModifier));
342
+ this.logger.write(`[ETIQUETTE] ${actor.name} ${mine.hits} vs ${this.name} ${theirs.hits} (${label}).`);
343
+ if (actor === this._scene?.getPlayer?.()) {
344
+ this.logger.meta(`Etiquette (${label}): ${formatRoll(mine)}`);
345
+ this.logger.meta(` ${this.name} reads the room: ${formatRoll(theirs)}`);
346
+ }
347
+ return mine.hits - theirs.hits;
348
+ }
303
349
  async see(actor, verb, details) {
304
350
  try {
305
351
  if (actor === this || actor.name === this.name)
@@ -368,15 +414,117 @@ description text.`;
368
414
  this._addToHistory(entry);
369
415
  this.logger.write(`${this.name} sees ${entry}`);
370
416
  // Mundane actions are noted, not answered (see RESPOND_WORTHY_VERB).
371
- // Exception: MY opponent walking out mid-fight is never mundane --
417
+ // Exception 1: MY opponent walking out mid-fight is never mundane --
372
418
  // seeing that "exits" is what triggers pursuit, so it must keep
373
419
  // waking the AI even though an idle departure stays quiet.
374
420
  const fleeingMyFight = verb.includes('exit') && this.combatOpponent === actor;
375
- if (!NPC.RESPOND_WORTHY_VERB.test(verb) && !fleeingMyFight) {
421
+ // Exception 2: THEFT. "take" is mundane -- unless what left the
422
+ // room is MINE (a real session: the player pocketed Mr. Krow's
423
+ // credstick at his own desk and Krow quietly noted it like
424
+ // weather). take.ts marks owned goods "(Owner's)" in the event;
425
+ // the ownership ledger backs it up with tolerant name matching,
426
+ // since the details may carry the player's typed shorthand.
427
+ const det = (details ?? '').toLowerCase();
428
+ const myTheft = /take/i.test(verb) && det.length > 0 && (det.includes(`(${this.name.toLowerCase()}'s)`)
429
+ || (this._scene?.getOwnedItemsBy?.(this.name) ?? []).some((i) => {
430
+ const n = i.name.toLowerCase();
431
+ return det.includes(n) || n.includes(det);
432
+ }));
433
+ // Exception 3: an APPROACH that ends at MY OWN spot ("at" spots,
434
+ // utilities/spots.ts). Crossing a room is deliberately mundane --
435
+ // waking every NPC per move is the wall-of-attention this feature
436
+ // removes -- but someone walking up to where I stand is a social
437
+ // event for ME: the bartender greets you when you reach the bar,
438
+ // and only then.
439
+ const myApproach = /moves to/i.test(verb)
440
+ && spotOf(this) !== undefined
441
+ && (details ?? '').toLowerCase().includes(`the ${spotOf(this).toLowerCase()}`);
442
+ // Exception 4: THE PRIZE. The win-condition item is what the whole
443
+ // scene turns on -- watching it get pocketed is never mundane,
444
+ // owner or no owner (a real generated run: the Encrypted Blackmail
445
+ // File sat ownerless in the Dragons' cache, and the stationed
446
+ // enforcer watched it walk out unchallenged).
447
+ const prize = this._scene?.getWinCondition?.()?.item;
448
+ const prizeTheft = /take/i.test(verb) && !!prize && det.includes(prize.toLowerCase());
449
+ if (!NPC.RESPOND_WORTHY_VERB.test(verb) && !fleeingMyFight && !myTheft && !prizeTheft && !myApproach) {
376
450
  this.logger.write(`[DEBUG] ${this.name} quietly notes "${entry}" -- no immediate response.`);
377
451
  return;
378
452
  }
379
- await this.respondTo(actor, entry);
453
+ // Arrival WARMTH follows the relationship (playtest note: the
454
+ // called-out-across-the-room greeting felt right for a friend --
455
+ // "this level of excitement goes with Loyalty" -- and a stranger's
456
+ // arrival shouldn't earn it; reputation covers non-contacts). In a
457
+ // SPOTTED room this is a hard gate, not prompt-pleading: telling a
458
+ // woken AI "a nod fits" still produced two Loyalty-1 barflies
459
+ // shouting greetings across the bar (real session) -- so anyone
460
+ // below the warmth bar quietly NOTES the arrival (their history
461
+ // keeps it for when you walk up) and never wakes. Unspotted rooms
462
+ // keep the old everyone-greets behavior (compat).
463
+ let arrivalNote = '';
464
+ if (/enter/i.test(verb) && !(actor instanceof NPC)) {
465
+ const rel = this._scene?.ownerGame?.contacts?.get(this.name);
466
+ let knownByRep = actor.notoriety >= 2 || actor.publicAwareness >= 2 || actor.streetCred >= 3;
467
+ const arrivedAtMySpot = spotOf(this) !== undefined
468
+ && (details ?? '').toLowerCase().includes(`(at the ${spotOf(this).toLowerCase()})`);
469
+ // ETIQUETTE, hook 1 -- walking in like you belong: reputation
470
+ // ALWAYS turned heads, so the social Sneak is the counter
471
+ // (p.141: "ease suspicions, so that people might trust you more
472
+ // than they would an outsider"). Win the contest and this
473
+ // observer reads you as just another regular; LOSE it and they
474
+ // clocked both the reputation and the attempt to duck it.
475
+ let blendFailed = false;
476
+ if (knownByRep && !(rel && rel.loyalty >= 3)) {
477
+ if (this.etiquetteContest(actor, 'blend in') >= 1) {
478
+ knownByRep = false;
479
+ }
480
+ else {
481
+ blendFailed = true;
482
+ }
483
+ }
484
+ if (spotsActive(this.currentLocation)
485
+ && !(rel && rel.loyalty >= 3) && !knownByRep && !arrivedAtMySpot) {
486
+ this.logger.write(`[DEBUG] ${this.name} quietly notes the arrival -- not warm enough to hail (loyalty ${rel?.loyalty ?? 'none'}).`);
487
+ return;
488
+ }
489
+ if (rel && rel.loyalty >= 3) {
490
+ 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.]`;
491
+ }
492
+ else if (rel) {
493
+ 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.]`;
494
+ }
495
+ else if (knownByRep) {
496
+ 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.` : ''}]`;
497
+ }
498
+ else {
499
+ 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.]`;
500
+ }
501
+ }
502
+ // ETIQUETTE, hook 2 -- the walk-up (p.141): approaching someone's
503
+ // spot is an opposed test unless you're already friends. 3+ net
504
+ // hits is RAW's attitude-up-a-line; zero net is an outsider's
505
+ // step, received with reserve.
506
+ let approachNote = '';
507
+ if (myApproach && !(actor instanceof NPC)) {
508
+ const rel = this._scene?.ownerGame?.contacts?.get(this.name);
509
+ if (rel && rel.loyalty >= 3) {
510
+ approachNote = ` They're a friend -- no ceremony needed.`;
511
+ }
512
+ else {
513
+ const net = this.etiquetteContest(actor, 'walk-up');
514
+ approachNote = net >= 3
515
+ ? ` Their approach is PITCH-PERFECT (Etiquette): whatever your guard was, it drops a notch -- receive them a shade warmer than you otherwise would.`
516
+ : net >= 1
517
+ ? ` They carry themselves like they belong here -- receive them without suspicion.`
518
+ : ` The approach is CLUMSY -- an outsider's step. Receive them with the reserve you'd give someone who doesn't quite fit in here.`;
519
+ }
520
+ }
521
+ await this.respondTo(actor, myTheft
522
+ ? `${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.]`
523
+ : prizeTheft
524
+ ? `${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.]`
525
+ : myApproach
526
+ ? `${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}]`
527
+ : `${entry}${arrivalNote}`);
380
528
  }
381
529
  catch (error) {
382
530
  this.logger.error(`Error in see: ${error}`);
@@ -465,6 +613,11 @@ description text.`;
465
613
  .join(', ')
466
614
  : '';
467
615
  const exitsLine = exitsHere ? `Exits from ${this.currentLocation.name}: ${exitsHere}. "go" only works with these.` : '';
616
+ // Same rule as exitsLine: reflect must know the REAL options or the
617
+ // AI bounces off invented ones. "At" spots included when they exist.
618
+ const spotsLine = spotsActive(this.currentLocation)
619
+ ? `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.`
620
+ : '';
468
621
  // A companion mid-fetch needs a target: where its master stands, and
469
622
  // that a handover is a "give", not a promise.
470
623
  const reflectMaster = this.allyOf ? this._scene?.getPlayer?.() : undefined;
@@ -480,6 +633,7 @@ ${masterLine}
480
633
  ${this.buildConditionSummary()}
481
634
  ${reflectGeography}
482
635
  ${exitsLine}
636
+ ${spotsLine}
483
637
 
484
638
  You just performed the action: "${commandString}"
485
639
  With the result: "${result}"
@@ -490,6 +644,10 @@ Based on this, what is the most logical next in-game command (from the following
490
644
  - Do not respond on behalf of another player or NPC
491
645
  - If there is nothing to do, respond with: wait
492
646
  - Only respond with one [COMMAND]
647
+ - READ the result above and report honestly: if it says an action failed, was refused,
648
+ or found nothing, then it FAILED -- never speak or act as if it succeeded (a beaten
649
+ sentry once announced a door "open" after his unlock bounced; the runner walked into
650
+ a locked hatch).
493
651
  - If you have already said your piece and are waiting on someone to answer, the logical next step is: wait
494
652
  ${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
653
 
@@ -624,6 +782,12 @@ ${worldEventsSummary}
624
782
  return;
625
783
  }
626
784
  const roomDesc = `They are currently in: "${room.name}" — ${room.description}`;
785
+ // "At" spots (utilities/spots.ts): WHERE everyone stands inside this
786
+ // room, so the AI greets an arrival at the door from across the room
787
+ // (or walks over) instead of assuming the newcomer is at its elbow.
788
+ const spotBlock = spotsActive(room)
789
+ ? `\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.`
790
+ : '';
627
791
  // The world's ACTUAL geography -- without this, a fixer briefing a job
628
792
  // invents plausible-sounding districts and landmarks as destinations,
629
793
  // and the player wanders looking for somewhere that doesn't exist
@@ -702,6 +866,23 @@ ${wares.map(i => `- "${i.name}" (${priceOf(i)} nuyen)`).join('\n')}
702
866
  When a customer orders or agrees to buy, SERVE it in the same response: [COMMAND] give <item name> to <customer name>
703
867
  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
868
  : '';
869
+ // BARRIERS AT YOUR POST (a real session: a beaten sentry announced he
870
+ // was "unlocking" a spell-sealed hatch he could never open -- his AI
871
+ // had no idea what guarded his own door, tried a doomed "unlock", and
872
+ // claimed success). An NPC standing in a puzzle's room knows what
873
+ // seals it, that he cannot wish it open, and HOW it opens -- as a
874
+ // guarded secret, so coercion and bribery become a real path to the
875
+ // pass. Companions are excluded: a bound spirit that knew the code
876
+ // would simply hand it to its master and skip the puzzle.
877
+ const barrierBlock = (!this.allyOf && this.currentLocation?.getPuzzleTargets)
878
+ ? this.currentLocation.getPuzzleTargets().map(t => {
879
+ const dirNote = t.direction ? ` sealing the way ${t.direction}` : '';
880
+ if (t.puzzle.isSolved()) {
881
+ return `\nThe barrier "${t.puzzle.name}"${dirNote} already stands OPEN.`;
882
+ }
883
+ 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.`;
884
+ }).join('')
885
+ : '';
705
886
  // HOME TURF familiarity: if this NPC is on the player's contact
706
887
  // roster (the whole hub cast is, from session start -- see
707
888
  // Game.seedHomeTurfContacts), the AI should treat them as a KNOWN
@@ -791,10 +972,10 @@ Your objective is to drive the story line.
791
972
  ${dialogueSummary}
792
973
  ${payoutSummary}
793
974
 
794
- ${roomDesc}
975
+ ${roomDesc}${spotBlock}
795
976
  ${formattedExitsStr}
796
977
  ${roomInventoryDesc}
797
- ${waresDesc}
978
+ ${waresDesc}${barrierBlock}
798
979
  ${familiarity}
799
980
  ${droneNote}
800
981
  ${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,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 }: {
@@ -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