@maka/maka-cli 5.7.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 (178) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +16 -31
  3. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +6 -4
  5. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +3 -2
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +19 -7
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -2
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +35 -9
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +2 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +31 -4
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +16 -2
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +118 -29
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.d.ts +33 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +138 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +2 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +5 -4
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +5 -0
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +6 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +138 -19
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.d.ts +38 -0
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +178 -0
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +14 -5
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +7 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.d.ts +10 -0
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js +24 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js.map +1 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +2 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +2 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +25 -3
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +2 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +53 -8
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +3 -2
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +41 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +160 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/order.d.ts +19 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +152 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -0
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
  71. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +2 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -1
  73. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +2 -1
  74. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -2
  76. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +24 -6
  80. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  81. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +7 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
  83. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +2 -1
  84. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +3 -2
  86. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +11 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +24 -13
  90. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.d.ts +19 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +113 -0
  93. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -0
  94. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js +4 -0
  95. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +1 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +37 -4
  97. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  98. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +6 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
  100. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +5 -0
  101. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -1
  102. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +9 -2
  103. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  104. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +2 -1
  105. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -1
  106. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
  107. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
  108. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +2 -1
  109. package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +5 -0
  111. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
  112. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +11 -0
  113. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +138 -23
  114. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  115. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +12 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  117. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +91 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/game.js +501 -23
  119. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  120. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +2 -0
  121. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +3 -0
  122. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  123. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +44 -1
  124. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +349 -9
  125. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +10 -2
  127. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +36 -7
  128. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  129. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +2 -0
  130. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +9 -1
  131. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  132. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +13 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +57 -4
  134. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  135. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +28 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +172 -4
  137. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  138. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +76 -20
  139. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +157 -34
  140. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +1 -0
  141. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
  142. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +1 -0
  143. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +1 -0
  144. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
  145. package/bundle/typescript/src/commands/game/sideQuest/ui.js +81 -5
  146. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  147. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +21 -5
  148. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  149. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +25 -3
  150. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +128 -28
  151. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  152. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +7 -4
  153. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +8 -5
  154. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  155. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +36 -0
  156. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js +57 -0
  157. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +1 -0
  158. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
  159. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +55 -0
  160. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -0
  161. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +14 -0
  162. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +15 -0
  163. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -0
  164. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +16 -0
  165. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js +49 -4
  166. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +1 -1
  167. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +31 -7
  168. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  169. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +121 -0
  170. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +315 -0
  171. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -0
  172. package/bundle/typescript/src/commands/ssl.js +10 -15
  173. package/bundle/typescript/src/commands/ssl.js.map +1 -1
  174. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +3 -4
  175. package/bundle/typescript/src/tools/ssl/ssl.class.d.ts +8 -0
  176. package/bundle/typescript/src/tools/ssl/ssl.class.js +53 -0
  177. package/bundle/typescript/src/tools/ssl/ssl.class.js.map +1 -1
  178. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { BypassCommand } from './bypass-command.js';
2
+ import { hint } from '../utilities/hints.js';
2
3
  import { CombatExchange } from '../utilities/combat-exchange.js';
3
4
  import { rollPool, formatRoll } from '../utilities/dice.js';
4
5
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
@@ -78,7 +79,7 @@ export class CastCommand extends BypassCommand {
78
79
  const pool = Math.max(1, this.actor.getMagicPool());
79
80
  const roll = rollPool(pool);
80
81
  if (this.actor === this.scene.getPlayer()) {
81
- this.logger.log(`Spellwork: ${formatRoll(roll)} (2+ to unweave)`);
82
+ this.logger.meta(`Spellwork: ${formatRoll(roll)} (2+ to unweave)`);
82
83
  }
83
84
  return roll.hits >= 2;
84
85
  }
@@ -97,8 +98,14 @@ export class CastCommand extends BypassCommand {
97
98
  const taken = Math.max(0, CastCommand.BACKLASH_DRAIN - resist.hits);
98
99
  const lines = [
99
100
  ` The barrier's backlash arcs up your own weave:`,
100
- ` Backlash (${CastCommand.BACKLASH_DRAIN}): resist ${formatRoll(resist)}`,
101
101
  ];
102
+ // Roll anatomy to the ticker for the player; an NPC keeps it in the
103
+ // returned lines that feed its own AI history (readability pass).
104
+ const backlashRoll = `Backlash (${CastCommand.BACKLASH_DRAIN}): resist ${formatRoll(resist)}`;
105
+ if (actor === this.scene.getPlayer())
106
+ this.logger.meta(backlashRoll);
107
+ else
108
+ lines.push(` ${backlashRoll}`);
102
109
  if (taken === 0) {
103
110
  lines.push(` You ground it out through clenched teeth -- shaken, but standing.`);
104
111
  return lines;
@@ -118,15 +125,21 @@ export class CastCommand extends BypassCommand {
118
125
  ? `${actor.name} was killed by a ward's backlash in ${actor.currentLocation.name}.`
119
126
  : `${actor.name} was knocked cold by a ward's backlash in ${actor.currentLocation.name}.`);
120
127
  if (isPlayer) {
121
- void this.scene.endGame().then(() => {
122
- this.logger.logWithColor(dead
123
- ? `💀 GAME OVER: the ward's backlash burned ${actor.name} out from the inside.`
124
- : `💀 GAME OVER: ${actor.name} dropped cold at the ward's foot -- the street decides what happens to sleeping runners.`, 'red');
125
- this.logger.logWithColor(`Press ctrl-c to quit.`, 'red');
126
- });
127
- lines.push('', dead
128
- ? `The weave snaps back through every nerve at once. The last thing you feel is the barrier holding.`
129
- : `The world grays out -- the ward stands over you, humming, as everything goes dark.`);
128
+ if (dead) {
129
+ void this.scene.endGame().then(() => {
130
+ this.logger.logWithColor(`💀 GAME OVER: the ward's backlash burned ${actor.name} out from the inside.`, 'red');
131
+ this.logger.logWithColor(`Press ctrl-c to quit.`, 'red');
132
+ });
133
+ lines.push('', `The weave snaps back through every nerve at once. The last thing you feel is the barrier holding.`);
134
+ }
135
+ else {
136
+ // A stun KO defers to the room (RAW p.379/p.207, see
137
+ // Scene.beginPlayerKnockout): a ward has no legs -- alone, the
138
+ // player simply comes to at its foot; with hostiles about, the
139
+ // street still gets its say.
140
+ lines.push('', `The world grays out -- the ward stands over you, humming, as everything goes dark.`);
141
+ this.scene.beginPlayerKnockout([]);
142
+ }
130
143
  }
131
144
  else {
132
145
  if (dead)
@@ -260,6 +273,31 @@ export class CastCommand extends BypassCommand {
260
273
  }
261
274
  return { target };
262
275
  }
276
+ /**
277
+ * Does this string name a spell-keyed barrier in the room? Checked only
278
+ * AFTER actor matching fails, so a person's name always wins. Matches
279
+ * the exit direction, the puzzle title, a noun from its riddle, or --
280
+ * with exactly one spell-barrier here -- a generic barrier word.
281
+ */
282
+ findSpellBarrier(rawInput) {
283
+ const raw = rawInput.trim().toLowerCase();
284
+ const room = this.actor.currentLocation;
285
+ const targets = (room?.getPuzzleTargets() ?? []).filter(t => t.puzzle.bypassType === 'spell');
286
+ if (targets.length === 0)
287
+ return undefined;
288
+ if (this.isValidDirection(raw))
289
+ return targets.find(t => t.direction === raw);
290
+ if (raw.length < 3)
291
+ return undefined;
292
+ const named = targets.filter(t => t.label.toLowerCase().includes(raw)
293
+ || (t.puzzle.riddle ?? '').toLowerCase().includes(raw));
294
+ if (named.length === 1)
295
+ return named[0];
296
+ if (targets.length === 1 && /^(the )?(lock|door|ward|barrier|seal|gate|hatch|glyph|field|sigil|way)$/.test(raw)) {
297
+ return targets[0];
298
+ }
299
+ return undefined;
300
+ }
263
301
  /** How the caster's pool reads in narration: focus-assisted, raw talent, or book-learned. */
264
302
  castingLabel() {
265
303
  const focus = this.actor.getBestFocus();
@@ -287,7 +325,14 @@ export class CastCommand extends BypassCommand {
287
325
  }
288
326
  const resist = rollPool(this.actor.willpower + (this.actor.hasMetamagic('centering') ? this.actor.initiationGrade : 0));
289
327
  const taken = Math.max(0, drainValue - resist.hits);
290
- const lines = [` Drain (${drainValue}${overcast ? ', OVERCAST -- physical' : ''}): resist ${formatRoll(resist)}`];
328
+ const lines = [];
329
+ // Roll anatomy to the ticker for the player; an NPC caster keeps it
330
+ // in its returned lines (its AI history) -- readability pass.
331
+ const drainRoll = `Drain (${drainValue}${overcast ? ', OVERCAST -- physical' : ''}): resist ${formatRoll(resist)}`;
332
+ if (this.actor === this.scene.getPlayer())
333
+ this.logger.meta(drainRoll);
334
+ else
335
+ lines.push(` ${drainRoll}`);
291
336
  if (taken === 0) {
292
337
  lines.push(` You shake the drain off.`);
293
338
  return lines;
@@ -311,7 +356,7 @@ export class CastCommand extends BypassCommand {
311
356
  * the physical track is a burnout DEATH; a full stun track alone is a
312
357
  * knockout -- out of the run, but honestly narrated as unconsciousness.
313
358
  */
314
- async drainCollapse(exchange) {
359
+ async drainCollapse(exchange, hostile) {
315
360
  if (this.actor.isDown()) {
316
361
  return exchange.resolveDeath(this.actor, this.actor, {
317
362
  fallLine: `The drain overwhelms you -- the spell takes everything you had, and then the rest.`,
@@ -319,10 +364,19 @@ export class CastCommand extends BypassCommand {
319
364
  });
320
365
  }
321
366
  if (this.actor.isUnconscious()) {
367
+ // A stun-full collapse is a KNOCKOUT, not a game over (RAW p.379/
368
+ // p.207) -- the player's fate defers to the room settling. Mid-
369
+ // fight, whoever they were casting at stands over them; a quiet
370
+ // over-drained summoning has nobody to fear and they just come to.
371
+ if (this.actor === this.scene.getPlayer()) {
372
+ const lines = [`The world grays out mid-syllable -- the drain drops you where you stand, out cold.`];
373
+ await exchange.announce(lines);
374
+ this.scene.beginPlayerKnockout(hostile && !hostile.isIncapacitated() && !hostile.surrendered ? [hostile.name] : []);
375
+ return ['', ...lines];
376
+ }
322
377
  return exchange.resolveDeath(this.actor, this.actor, {
323
378
  fatal: false,
324
- fallLine: `The world grays out mid-syllable -- the drain drops you where you stand, out cold.`,
325
- gameOverLine: `💀 GAME OVER: ${this.actor.name} knocked out cold by spell drain -- the street decides what happens to sleeping runners.`,
379
+ fallLine: `The world grays out mid-syllable -- the drain drops ${this.actor.name} where they stand, out cold.`,
326
380
  });
327
381
  }
328
382
  return [];
@@ -347,6 +401,17 @@ export class CastCommand extends BypassCommand {
347
401
  const pickedName = fuzzyPickName(targetName, candidates.map(a => a.name));
348
402
  const target = pickedName ? candidates.find(a => a.name === pickedName) : undefined;
349
403
  if (!target) {
404
+ // A WARDED BARRIER is a legal target (a real session tried "cast
405
+ // manabolt at hatch", "at lock", "at down" and bounced on all
406
+ // three): when the words name no person but DO name a spell-keyed
407
+ // barrier here -- by direction, title, or a noun from its own
408
+ // riddle -- the cast routes to the ward-bypass test. The specific
409
+ // spell doesn't matter: "show us your spark" wants spellwork, and
410
+ // the bypass rolls the full casting pool.
411
+ const barrier = this.findSpellBarrier(targetName);
412
+ if (barrier) {
413
+ return super.execute([barrier.direction ?? barrier.label]);
414
+ }
350
415
  // Visible on another plane beats "no one" -- an astral caster CAN
351
416
  // see the meat target they're aiming at; name the actual rule
352
417
  // (see planes.crossPlaneRefusal).
@@ -413,8 +478,8 @@ export class CastCommand extends BypassCommand {
413
478
  // target answers the incantation BEFORE the bolt flies -- and a
414
479
  // downed caster never casts, never pays drain. ----
415
480
  const init = exchange.rollInitiative(this.actor, target);
416
- report.push(...init.lines);
417
- await exchange.announce(init.lines);
481
+ report.push(...init.lines, ...init.metaLines);
482
+ await exchange.announce(init.lines, init.metaLines);
418
483
  for (const striker of [init.first, init.second]) {
419
484
  if (striker.isIncapacitated())
420
485
  continue;
@@ -443,8 +508,8 @@ export class CastCommand extends BypassCommand {
443
508
  soakPool,
444
509
  dealStun: spell.stun,
445
510
  });
446
- report.push('', ...strike);
447
- await exchange.announce(strike);
511
+ report.push('', ...strike.world, ...strike.meta);
512
+ await exchange.announce(strike.world, strike.meta);
448
513
  if (target.isDown()) {
449
514
  report.push(...await exchange.resolveDeath(target, this.actor, {
450
515
  fallLine: `${target.name} ${flavor.fall} Their gear scatters across ${room.name}.`,
@@ -454,7 +519,7 @@ export class CastCommand extends BypassCommand {
454
519
  const drain = this.applyDrain(spell, force, overcast);
455
520
  report.push('', ...drain);
456
521
  await exchange.announce(drain);
457
- const collapse = await this.drainCollapse(exchange);
522
+ const collapse = await this.drainCollapse(exchange, target);
458
523
  if (collapse.length > 0) {
459
524
  report.push(...collapse);
460
525
  return await exchange.finishExchange(report);
@@ -465,13 +530,24 @@ export class CastCommand extends BypassCommand {
465
530
  }
466
531
  else {
467
532
  const prefix = striker === init.second ? [`${target.name} retaliates!`] : [`${target.name} moves before the incantation finishes!`];
468
- const counter = [...prefix, ...exchange.resolveStrike(target, this.actor)];
469
- report.push('', ...counter);
470
- await exchange.announce(counter);
533
+ const counter = exchange.resolveStrike(target, this.actor);
534
+ report.push('', ...prefix, ...counter.world, ...counter.meta);
535
+ await exchange.announce([...prefix, ...counter.world], counter.meta);
471
536
  if (this.actor.isDown()) {
472
537
  report.push(...await exchange.resolveDeath(this.actor, target));
473
538
  return await exchange.finishExchange(report);
474
539
  }
540
+ if (this.actor.isUnconscious()) {
541
+ // Stun KO of the caster: the player defers to the room (see
542
+ // Scene.beginPlayerKnockout); an NPC caster is a live capture.
543
+ report.push(...(this.actor === this.scene.getPlayer()
544
+ ? await exchange.resolvePlayerKnockout(target)
545
+ : await exchange.resolveDeath(this.actor, target, {
546
+ fatal: false,
547
+ fallLine: `${this.actor.name} sags and drops -- out cold, breathing. Their gear scatters across ${this.actor.currentLocation.name}.`,
548
+ })));
549
+ return await exchange.finishExchange(report);
550
+ }
475
551
  }
476
552
  }
477
553
  // ---- The initiative pass: the decisive winner follows up with
@@ -480,12 +556,21 @@ export class CastCommand extends BypassCommand {
480
556
  if (init.extraStriker && !init.extraStriker.isIncapacitated()) {
481
557
  const defender = init.extraStriker === this.actor ? target : this.actor;
482
558
  if (!defender.isIncapacitated()) {
483
- const strike = [`${init.extraStriker.name} presses the advantage!`, ...exchange.resolveStrike(init.extraStriker, defender)];
484
- report.push('', ...strike);
485
- await exchange.announce(strike);
559
+ const strike = exchange.resolveStrike(init.extraStriker, defender);
560
+ const pressLine = `${init.extraStriker.name} presses the advantage!`;
561
+ report.push('', pressLine, ...strike.world, ...strike.meta);
562
+ await exchange.announce([pressLine, ...strike.world], strike.meta);
486
563
  if (defender.isDown()) {
487
564
  report.push(...await exchange.resolveDeath(defender, init.extraStriker));
488
565
  }
566
+ else if (defender.isUnconscious()) {
567
+ report.push(...(defender === this.scene.getPlayer()
568
+ ? await exchange.resolvePlayerKnockout(init.extraStriker)
569
+ : await exchange.resolveDeath(defender, init.extraStriker, {
570
+ fatal: false,
571
+ fallLine: `${defender.name} sags and drops -- out cold, breathing. Their gear scatters across ${defender.currentLocation.name}.`,
572
+ })));
573
+ }
489
574
  }
490
575
  }
491
576
  return await exchange.finishExchange(report);
@@ -516,10 +601,14 @@ export class CastCommand extends BypassCommand {
516
601
  const spell = SPELLS.heal;
517
602
  this.actor.performAction('casts heal', self ? '' : `on ${target.name}`);
518
603
  this.scene.addWorldEvent(`${this.actor.name} cast a healing spell${self ? '' : ` on ${target.name}`} in ${this.actor.currentLocation.name}.`);
604
+ // The casting roll is ticker material for the player (an NPC healer
605
+ // keeps it inline for its history) -- readability pass.
606
+ if (this.actor === this.scene.getPlayer())
607
+ this.logger.meta(`Heal casting: ${formatRoll(roll)}`);
519
608
  const subject = self ? 'Your' : `${target.name}'s`;
520
609
  const lines = [
521
610
  `${this.actor.name} casts heal at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
522
- ` Casting: ${formatRoll(roll)}`,
611
+ ...(this.actor === this.scene.getPlayer() ? [] : [` Casting: ${formatRoll(roll)}`]),
523
612
  healed > 0
524
613
  ? ` ${subject} wounds knit closed -- ${healed} box${healed === 1 ? '' : 'es'} recovered${capped ? ` (capped by Force ${force})` : ''}: ${target.conditionSummary()}`
525
614
  : ` The mana slips away -- nothing heals.`,
@@ -562,7 +651,7 @@ export class CastCommand extends BypassCommand {
562
651
  const lines = [
563
652
  `${this.actor.name} casts armor at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
564
653
  ` The air hardens around ${self ? 'you' : target.name} -- +${bonus} soak dice while sustained, -2 dice to everything else ${self ? 'you do' : 'they do'}.`,
565
- ` (Cast armor${self ? '' : ` on ${target.name}`} again to release it.)`,
654
+ hint(` (Cast armor${self ? '' : ` on ${target.name}`} again to release it.)`),
566
655
  ...this.applyDrain(spell, force, overcast),
567
656
  ];
568
657
  lines.push(...await this.drainCollapse(new CombatExchange(this.scene, this.logger, this.actor)));
@@ -605,7 +694,7 @@ export class CastCommand extends BypassCommand {
605
694
  const lines = [
606
695
  `${this.actor.name} casts ${label} at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
607
696
  effectLine,
608
- ` (Cast ${label}${self ? '' : ` on ${target.name}`} again to release it.)`,
697
+ hint(` (Cast ${label}${self ? '' : ` on ${target.name}`} again to release it.)`),
609
698
  ...this.applyDrain(spell, force, overcast),
610
699
  ];
611
700
  lines.push(...await this.drainCollapse(new CombatExchange(this.scene, this.logger, this.actor)));
@@ -1 +1 @@
1
- {"version":3,"file":"cast.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/cast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cast.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/cast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Command, ICommand } from './command.js';
2
+ /**
3
+ * The rigger's autonomous frames (SR5e p.269-271): "deploy <drone>" puts
4
+ * a carried frame in the air under its own DOG-BRAIN -- no control rig
5
+ * needed, Pilot (2 + quality) standing in for every attribute it lacks.
6
+ * It follows you, watches, and (armed frames only) shoots what threatens
7
+ * you; damage lands on the HULL and a wreck is a wreck (rest to repair).
8
+ * "recall" folds it back to your hand, and "jump" (jump.ts) seizes the
9
+ * stick from the dog-brain wherever the frame flies.
10
+ */
11
+ export declare class DeployCommand extends Command implements ICommand {
12
+ protected static verb: string;
13
+ protected static description: string;
14
+ execute(args?: string[]): Promise<string>;
15
+ }
16
+ /**
17
+ * "agent" (SR5e p.246): a decker's autonomous program, deployed while
18
+ * jacked in. It runs ON the deck -- attacks against it damage the DECK
19
+ * (shared condition monitor, RAW), and a brick derezzes it. Rating
20
+ * follows the deck's quality. Toggles: "agent" again folds it back in.
21
+ */
22
+ export declare class AgentCommand extends Command implements ICommand {
23
+ protected static verb: string;
24
+ protected static description: string;
25
+ execute(_args?: string[]): Promise<string>;
26
+ }
27
+ /** "recall": fold a deployed autonomous drone back to hand (or, with
28
+ * nothing in the air, spin a remote agent down into its deck). */
29
+ export declare class RecallCommand extends Command implements ICommand {
30
+ protected static verb: string;
31
+ protected static description: string;
32
+ execute(_args?: string[]): Promise<string>;
33
+ }
@@ -0,0 +1,138 @@
1
+ import { Command } from './command.js';
2
+ import { hint } from '../utilities/hints.js';
3
+ import { fuzzyPickName } from '../utilities/fuzzy-match.js';
4
+ /**
5
+ * The rigger's autonomous frames (SR5e p.269-271): "deploy <drone>" puts
6
+ * a carried frame in the air under its own DOG-BRAIN -- no control rig
7
+ * needed, Pilot (2 + quality) standing in for every attribute it lacks.
8
+ * It follows you, watches, and (armed frames only) shoots what threatens
9
+ * you; damage lands on the HULL and a wreck is a wreck (rest to repair).
10
+ * "recall" folds it back to your hand, and "jump" (jump.ts) seizes the
11
+ * stick from the dog-brain wherever the frame flies.
12
+ */
13
+ export class DeployCommand extends Command {
14
+ static verb = 'deploy';
15
+ static description = 'Launch a carried drone on its own dog-brain autopilot (no rig needed): it follows and, if armed, fights for you. "recall" brings it back to hand.';
16
+ async execute(args = []) {
17
+ const actor = this.actor;
18
+ const game = this.game;
19
+ if (!game)
20
+ return `The autopilot has nothing to report to.`;
21
+ if (actor.plane !== 'meat') {
22
+ return `Deploying is a hands job -- come back to your body.`;
23
+ }
24
+ const drones = actor.inventory.getAllItems().filter(i => i.isDrone());
25
+ if (drones.length === 0) {
26
+ return `No drone in your pack to deploy.${hint(` (Ratchet's Circuit Bazaar stocks airframes.)`)}`;
27
+ }
28
+ let drone = drones.length === 1 ? drones[0] : undefined;
29
+ if (args.length > 0) {
30
+ const picked = fuzzyPickName(args.join(' '), drones.map(d => d.name));
31
+ drone = picked ? drones.find(d => d.name === picked) : undefined;
32
+ if (!drone)
33
+ return `No drone by that name in your pack. Carried: ${drones.map(d => d.name).join(', ')}.`;
34
+ }
35
+ if (!drone)
36
+ return `Which frame? Carried: ${drones.map(d => d.name).join(', ')}. ("deploy <name>")`;
37
+ if (drone.isWrecked)
38
+ return `The ${drone.name} is a wreck -- it deploys nowhere until you rest and true the rotors.`;
39
+ if (game.companions.some(c => c.boundDevice === drone)) {
40
+ return `The ${drone.name} is already in the air.`;
41
+ }
42
+ const shell = game.deployDroneShell(drone, actor.currentLocation);
43
+ if (!shell)
44
+ return `The autopilot stutters -- something already answers to that designation here.`;
45
+ actor.performAction('deploys', `${drone.name} -- rotors spinning up to a hover`);
46
+ this.logger.write(`DeployCommand: ${actor.name} deployed ${drone.name} on autopilot.`);
47
+ this.scene.updateStatus();
48
+ const armed = shell.skillRating('firearms') > 0;
49
+ return [
50
+ `The ${drone.name} lifts off your hand and settles into a watchful hover -- dog-brain running, Pilot ${2 + drone.qualityBonus}.`,
51
+ ` It follows where you walk${armed ? ` and its mount tracks what threatens you` : ` -- cameras only; it will not fight`}. Hull ${drone.droneSummary()}.${hint(` ("order ${drone.name.toLowerCase()} ..." to direct it, "recall" to bring it home, "jump" to take the stick yourself, wherever it flies.)`)}`,
52
+ ].join('\n');
53
+ }
54
+ }
55
+ /**
56
+ * "agent" (SR5e p.246): a decker's autonomous program, deployed while
57
+ * jacked in. It runs ON the deck -- attacks against it damage the DECK
58
+ * (shared condition monitor, RAW), and a brick derezzes it. Rating
59
+ * follows the deck's quality. Toggles: "agent" again folds it back in.
60
+ */
61
+ export class AgentCommand extends Command {
62
+ static verb = 'agent';
63
+ static description = 'Deploy your deck\'s agent while jacked in (RAW: it shares the deck\'s condition monitor). It fights ice at your side. "agent" again folds it back into the deck.';
64
+ async execute(_args = []) {
65
+ const actor = this.actor;
66
+ const game = this.game;
67
+ if (!game)
68
+ return `The agent has nothing to report to.`;
69
+ const standing = game.companions.find(c => c.kind === 'agent');
70
+ if (standing) {
71
+ game.dismissCompanion(standing, 'folded back into the deck');
72
+ this.scene.updateStatus();
73
+ return `You fold the agent back into the deck -- its icon collapses into your persona.`;
74
+ }
75
+ if (actor.plane !== 'matrix') {
76
+ return `Agents live on the grid -- "jack in" first, then deploy it.`;
77
+ }
78
+ const deck = actor.activeDeck ?? actor.getCyberdeck();
79
+ if (!deck) {
80
+ return actor.isTechnomancer()
81
+ ? `Your living persona runs alone -- agents are DECK software, and you never needed a deck.`
82
+ : `No deck, no agent -- it needs hardware to run on.`;
83
+ }
84
+ if (deck.isBricked) {
85
+ return `The ${deck.name} is bricked -- nothing runs on dead boards.`;
86
+ }
87
+ const rating = 3 + deck.qualityBonus;
88
+ const shell = game.spawnCompanionShell({
89
+ name: `Agent (${deck.name})`,
90
+ description: `${actor.name}'s autonomous agent program, running on their ${deck.name}: a sharp-edged icon that guards their persona and cuts at whatever ice engages them. Attacks against it damage the deck it runs on.`,
91
+ kind: 'agent',
92
+ combat: { logic: rating, intuition: rating, willpower: rating, reaction: rating, body: 1, agility: 1, strength: 1, charisma: 1, skills: { hacking: rating, perception: rating } },
93
+ room: actor.currentLocation,
94
+ plane: 'matrix',
95
+ force: rating,
96
+ boundDevice: deck,
97
+ });
98
+ if (!shell)
99
+ return `The agent stalls on load -- its process name is already taken here.`;
100
+ actor.performAction('spins up an agent', `a second icon unfolding beside their persona`);
101
+ this.logger.write(`AgentCommand: ${actor.name} deployed agent rating ${rating} on ${deck.name}.`);
102
+ this.scene.updateStatus();
103
+ return [
104
+ `A second icon unfolds beside your persona -- your agent, rating ${rating}, running hot off the ${deck.name}.`,
105
+ ` It rides the grid with you and fights the ice at your side -- but every hit it takes lands on YOUR deck (${deck.deckSummary()}).${hint(` ("order agent ..." to direct it; "agent" again to fold it away; it folds on jack-out.)`)}`,
106
+ ].join('\n');
107
+ }
108
+ }
109
+ /** "recall": fold a deployed autonomous drone back to hand (or, with
110
+ * nothing in the air, spin a remote agent down into its deck). */
111
+ export class RecallCommand extends Command {
112
+ static verb = 'recall';
113
+ static description = 'Recall your deployed drone to your hand (or fold a running agent back into its deck).';
114
+ async execute(_args = []) {
115
+ const game = this.game;
116
+ const entry = game?.companions.find(c => c.kind === 'drone');
117
+ if (!entry) {
118
+ // No drone aloft -- but an agent on the grid answers to the same
119
+ // word (a real session tried every phrasing but the bare "agent"
120
+ // toggle and couldn't bring it home).
121
+ const agent = game?.companions.find(c => c.kind === 'agent');
122
+ if (agent) {
123
+ game.dismissCompanion(agent, 'recalled');
124
+ this.scene.updateStatus();
125
+ return this.actor.plane === 'matrix'
126
+ ? `Your agent's icon collapses back into your persona -- folded into the deck.`
127
+ : `The deck spins its agent down -- the DECK IN AR light dies as the icon folds home.`;
128
+ }
129
+ return `Nothing of yours is in the air.`;
130
+ }
131
+ const name = entry.boundDevice?.name ?? entry.npc.name;
132
+ game.dismissCompanion(entry, 'recalled');
133
+ this.actor.performAction('recalls', name);
134
+ this.scene.updateStatus();
135
+ return `The ${name} banks once and settles back onto your hand, rotors folding.${entry.boundDevice && entry.boundDevice.droneDamage > 0 ? ` The airframe carries its dents (${entry.boundDevice.droneSummary()})${hint(' -- rest repairs it')}.` : ''}`;
136
+ }
137
+ }
138
+ //# sourceMappingURL=companions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companions.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/companions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Command } from './command.js';
2
+ import { hint } from '../utilities/hints.js';
2
3
  /**
3
4
  * The roster: who talks to you, how plugged-in they are, and how deep
4
5
  * the relationship runs. Contacts are EARNED (see Game.touchContact) --
@@ -15,7 +16,7 @@ export class ContactsCommand extends Command {
15
16
  return `Contacts are a home-turf thing -- out here there's just the job and whoever's pointing what at you.`;
16
17
  }
17
18
  if (!roster || roster.size === 0) {
18
- return `Nobody owes you their attention yet. Relationships on this street start with TRANSACTIONS -- buy a bowl, fence a score, get stitched, deliver a package. Then "contacts" has names in it.`;
19
+ return `Nobody owes you their attention yet.${hint(` Relationships on this street start with TRANSACTIONS -- buy a bowl, fence a score, get stitched, deliver a package. Then "contacts" has names in it.`)}`;
19
20
  }
20
21
  const lines = [`=== CONTACTS ===`];
21
22
  for (const [name, c] of roster) {
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAChC,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,gJAAgJ,CAAC;IAEhL,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACvB,OAAO,qGAAqG,CAAC;QAC/G,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,2LAA2L,CAAC;QACrM,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;gBACxD,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;oBAC5C,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;wBACpC,CAAC,CAAC,iBAAiB,CAAC;YAC1B,MAAM,MAAM,GAAG;gBACb,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,4BAA4B,CAAC,CAAC,CAAC,EAAE;gBACzD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;aAChE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,OAAO,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjM,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,oOAAoO,CAAC,CAAC;QACjP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAChC,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,gJAAgJ,CAAC;IAEhL,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACvB,OAAO,qGAAqG,CAAC;QAC/G,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,uCAAuC,IAAI,CAAC,uJAAuJ,CAAC,EAAE,CAAC;QAChN,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;gBACxD,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;oBAC5C,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;wBACpC,CAAC,CAAC,iBAAiB,CAAC;YAC1B,MAAM,MAAM,GAAG;gBACb,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,4BAA4B,CAAC,CAAC,CAAC,EAAE;gBACzD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;aAChE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,OAAO,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjM,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,oOAAoO,CAAC,CAAC;QACjP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}