@maka/maka-cli 5.17.16 → 5.17.18

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 (55) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +1 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +2 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +35 -0
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/command.d.ts +16 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js +10 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +1 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.d.ts +27 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +8 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.d.ts +12 -2
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js +69 -79
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js +4 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/players.d.ts +4 -6
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +6 -9
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/register.d.ts +16 -0
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/register.js +74 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/register.js.map +1 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +18 -9
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +17 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +165 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +19 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +22 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +19 -4
  33. package/bundle/typescript/src/commands/game/sideQuest/game.js +149 -49
  34. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +10 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +20 -4
  37. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +15 -0
  39. package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +6 -0
  40. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +4 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +13 -0
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-telemetry.js +9 -0
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-telemetry.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +12 -7
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +29 -17
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.d.ts +1 -30
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.js +4 -89
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.js.map +1 -1
  52. package/package.json +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.d.ts +0 -21
  54. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.js +0 -25
  55. package/bundle/typescript/src/commands/game/sideQuest/utilities/crew-ledger.js.map +0 -1
@@ -3,24 +3,44 @@ import { hint } from '../utilities/hints.js';
3
3
  import { rollPool, formatRoll } from '../utilities/dice.js';
4
4
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
5
5
  import { SKILL_NAMES } from '../models/player.js';
6
- import { fetchPlayers, fetchGhost, ghostHireable, setGhostHireable } from '../utilities/social.js';
6
+ import { fetchPlayers } from '../utilities/social.js';
7
7
  import { authToken } from '../utilities/cloud-saves.js';
8
8
  /**
9
9
  * THE CREW (the party system): persistent teammates who ride every run
10
10
  * for a cut of the take. Slots hold hired runners (the for-hire board),
11
11
  * deep-loyalty contacts (Leadership's "command" recruit, lead.ts), and
12
- * -- Phase B -- other players' characters riding as ghosts. The hub
12
+ * LIVE seats -- real players who accepted a party invite. The hub
13
13
  * stays solo (player ruling): the crew is FOR the job, spawned at the
14
14
  * jobsite curb (Game.spawnCrew) and settled at homecoming
15
15
  * (settleCrewAfterRun). Changing the crew scraps any pending job -- the
16
- * quote was for a different team.
16
+ * quote was for a different team. (AI "ghost" copies of away players
17
+ * were removed 2026-08-23 -- invites only, one table at a time.)
17
18
  *
18
19
  * "crew" = the roster + for-hire board (reference -> Mechanics panel);
19
20
  * hire/dismiss/train act, so they render in the game log (menu split).
20
21
  */
21
22
  export class CrewCommand extends Command {
22
23
  static verb = 'crew';
23
- static description = 'Your crew roster and the for-hire board ("party" works too). "crew players" lists the real runners on the street; "hire <name>" fills the table -- board faces sign on, REAL runners get the party invite (they answer with "crew accept" / "crew decline" from their own terminal; "crew leave" walks from a table you ride); "crew hireable on|off" opts your runner in as an AI ghost while away. "dismiss", "train" act on the roster; Leadership caps the table.';
24
+ // "help crew" renders these as a tidy table; "help crew <sub>" drills
25
+ // into one (player ruling: structure, not paragraphs).
26
+ static subcommands = [
27
+ { usage: 'crew', short: 'the roster and the for-hire board' },
28
+ { usage: 'crew players', short: 'real runners on the street',
29
+ long: 'Everyone on the street by street name, with your own beacon\'s status. Online = commlink equipped and broadcasting.' },
30
+ { usage: 'hire <name>', short: 'fill a seat -- real runners get the invite',
31
+ long: 'Board faces sign on (your Negotiation trims their cut, once). A REAL runner gets the party invite instead -- live if online, waiting on their link if not. One table at a time: no hiring while you ride.' },
32
+ { usage: 'crew invite <runner>', short: 'offer a friend a seat (explicit form)',
33
+ long: 'The server holds the offer; their terminal shows it and their answer comes back here. The accepted seat IS the membership.' },
34
+ { usage: 'crew accept|decline', short: 'answer a waiting party invite',
35
+ long: 'Accepting requires your own table empty (one table at a time) -- dismiss your crew first. Bare "accept"/"decline" also work when no job offer is on the line.' },
36
+ { usage: 'crew leave', short: 'walk from a table you ride',
37
+ long: 'Ends your seat at another leader\'s table. Your runner rides for you alone again.' },
38
+ { usage: 'dismiss <name>', short: 'cut a crew member loose',
39
+ long: 'Frees the slot (their gear leaves with them); dismissing a live seat revokes it on both terminals. Scraps any pending job.' },
40
+ { usage: 'train <name> <skill>', short: 'spend karma on their craft',
41
+ long: 'Your Instruction skill teaches a crew member: karma spent here raises THEIR skill for every future run.' },
42
+ ];
43
+ static description = 'Your crew roster and the for-hire board ("party" works too). "crew players" lists the real runners on the street; "hire <name>" fills the table -- board faces sign on, REAL runners get the party invite (they answer with "crew accept" / "crew decline" from their own terminal; "crew leave" walks from a table you ride). "dismiss", "train" act on the roster; Leadership caps the table -- and it\'s ONE table at a time: no riding while your own crew stands.';
24
44
  async execute(args = []) {
25
45
  const game = this.game;
26
46
  if (!game?.hasHub) {
@@ -119,6 +139,13 @@ export class CrewCommand extends Command {
119
139
  ? `No party invite from anyone matching "${filter}".`
120
140
  : `No party invite waiting on your answer.`;
121
141
  }
142
+ // ONE TABLE AT A TIME, the other half (playtest: a rider with a
143
+ // hired NPC stacked two tables): accepting a seat requires YOUR
144
+ // table empty -- dismiss your own crew first.
145
+ if (sub === 'accept' && game.crew.some(m => !m.ghost?.liveOnly)) {
146
+ const names = game.crew.filter(m => !m.ghost?.liveOnly).map(m => m.name).join(', ');
147
+ return `Your own table is set (${names} ride with you) -- one table at a time. "dismiss" them first, then accept.`;
148
+ }
122
149
  try {
123
150
  await sr.HubLink.call('sideQuest.partyRespond', { seatID: inv.seatID, accept: sub === 'accept' });
124
151
  }
@@ -150,21 +177,10 @@ export class CrewCommand extends Command {
150
177
  }
151
178
  return `You push back from ${resolved.seat.leaderRunner}'s table. Your runner rides for you alone again.`;
152
179
  }
153
- // "crew hireable on|off": the ghost opt-in (consent lives with YOU).
180
+ // ("crew hireable" retired with the ghost mechanic, 2026-08-23 --
181
+ // real players are INVITED live, never copied as AI.)
154
182
  if (sub === 'hireable') {
155
- const flag = args[1]?.toLowerCase();
156
- if (flag !== 'on' && flag !== 'off') {
157
- return `Ghost hiring is ${ghostHireable() ? 'ON -- your runner can be hired while you\'re away' : 'OFF'}. ("crew hireable on|off")`;
158
- }
159
- setGhostHireable(flag === 'on');
160
- // Publish IMMEDIATELY -- the regular heartbeat is up to 60s
161
- // behind, which read as "the toggle didn't work" to two players
162
- // watching each other's lists.
163
- const beat = await game.pushPresenceNow();
164
- const beatNote = beat === 'ok' ? ' The street hears it now.' : beat === 'logged-out' ? ` (Not published -- \`maka login\` first.)` : ` (Not published -- the grid isn't answering.)`;
165
- return flag === 'on'
166
- ? `Opt-in set: while you're away, other players can hire ${this.actor.name} as a ghost -- the engine plays your sheet, and your cut lands here as earnings.${beatNote}`
167
- : `Opt-out set: your runner rides for nobody but you.${beatNote}`;
183
+ return `Ghost hiring is gone -- real runners get invited live now. ("hire <name>" does it.)`;
168
184
  }
169
185
  // ONE TABLE SHAPE everywhere (player ruling: "too many concepts --
170
186
  // treat them all the same"): [icon marks a real player] Name,
@@ -196,27 +212,13 @@ export class CrewCommand extends Command {
196
212
  else {
197
213
  lines.push(` Nobody rides with you yet.`);
198
214
  }
199
- // Live party state (M4.5): offers out, invites in, tables I ride.
200
- try {
201
- const sr = await import('../utilities/shared-run.js');
202
- const seats = sr.HubLink.seatLines();
203
- for (const s of seats.waitingOn) {
204
- lines.push(` {yellow-fg}WAITING ON ${s.memberRunner} -- invite sent, no answer yet.{/yellow-fg}`);
205
- }
206
- for (const s of seats.invitesForMe) {
207
- lines.push(` {green-fg}INVITE from ${s.leaderRunner} -- "crew accept" / "crew decline".{/green-fg}`);
208
- }
209
- for (const s of seats.ridingWith) {
210
- lines.push(` {green-fg}RIDING WITH ${s.leaderRunner}'s table -- their jobs buzz you. ("crew leave" walks.){/green-fg}`);
211
- }
212
- }
213
- catch { /* link down -- the panel stays local */ }
214
215
  lines.push('');
215
216
  lines.push(`FOR HIRE:`);
216
- // Real runners not already at (or invited to) the table ride in the
217
- // SAME list as board faces -- "hire" does the right thing for both.
217
+ // ONLINE runners only (player ruling: no ghosts, no offline
218
+ // listings -- the board shows who can actually take a seat NOW),
219
+ // riding in the SAME list as board faces; "hire" routes each right.
218
220
  const seated = new Set(game.crew.map(m => m.name));
219
- const streetRows = street.filter(p => !seated.has(p.playerName));
221
+ const streetRows = street.filter(p => p.online && !seated.has(p.playerName));
220
222
  if (game.crewForHire.length > 0 || streetRows.length > 0) {
221
223
  lines.push(header);
222
224
  for (const p of streetRows) {
@@ -229,7 +231,26 @@ export class CrewCommand extends Command {
229
231
  else {
230
232
  lines.push(` The boards are quiet tonight.`);
231
233
  }
232
- const footer = hint(`"hire <name>" fills the table: board faces sign on (Negotiation trims the cut, once), and a REAL runner gets the party invite instead -- live if they're online, waiting on their link if not. "command <contact>" recruits a loyal local at family rates; "dismiss <name>" cuts one loose; "train <name> <skill>" spends your karma on THEIR craft. Any crew change scraps a pending job.`);
234
+ // Live party state LAST (player note: the RIDING line mid-panel
235
+ // read as part of the roster) -- offers out, invites in, tables I
236
+ // ride, all below the tables.
237
+ try {
238
+ const sr = await import('../utilities/shared-run.js');
239
+ const seats = sr.HubLink.seatLines();
240
+ if (seats.waitingOn.length + seats.invitesForMe.length + seats.ridingWith.length > 0)
241
+ lines.push('');
242
+ for (const s of seats.waitingOn) {
243
+ lines.push(` {yellow-fg}WAITING ON ${s.memberRunner} -- invite sent, no answer yet.{/yellow-fg}`);
244
+ }
245
+ for (const s of seats.invitesForMe) {
246
+ lines.push(` {green-fg}INVITE from ${s.leaderRunner} -- "crew accept" / "crew decline".{/green-fg}`);
247
+ }
248
+ for (const s of seats.ridingWith) {
249
+ lines.push(` {green-fg}RIDING WITH ${s.leaderRunner}'s table -- their jobs buzz you. ("crew leave" walks.){/green-fg}`);
250
+ }
251
+ }
252
+ catch { /* link down -- the panel stays local */ }
253
+ const footer = hint(`"hire <name>" fills the table (a REAL runner gets the party invite); "help crew" lists every subcommand. Any crew change scraps a pending job.`);
233
254
  if (footer)
234
255
  lines.push('', footer);
235
256
  return lines.join('\n');
@@ -239,7 +260,7 @@ export class CrewCommand extends Command {
239
260
  * roll trims their asking cut (the haggle school, ±); crew cap gated. */
240
261
  export class HireCommand extends Command {
241
262
  static verb = 'hire';
242
- static description = 'Fill a crew seat ("crew" shows the board): local faces sign on (Negotiation trims their cut once), and a REAL runner from the street gets the party invite instead -- live when online, waiting on their link when not. Away-but-hireable runners ride as AI ghosts. Leadership caps the crew.';
263
+ static description = 'Fill a crew seat ("crew" shows the board): local faces sign on (Negotiation trims their cut once), and a REAL runner from the street gets the party invite instead -- live when online, waiting on their link when not. Leadership caps the crew; one table at a time.';
243
264
  async execute(args = []) {
244
265
  const game = this.game;
245
266
  if (!game?.hasHub || !this.scene.isHub) {
@@ -260,50 +281,23 @@ export class HireCommand extends Command {
260
281
  catch { /* link down -- solo hiring stays local */ }
261
282
  const query = args.join(' ');
262
283
  const picked = fuzzyPickName(query, game.crewForHire.map(c => c.name));
263
- let candidate = picked ? game.crewForHire.find(c => c.name === picked) : undefined;
264
- // Not on the local board? Try THE STREET. One verb for the whole
265
- // table (playtest ruling: hire-vs-invite was cumbersome to teach):
266
- // - the runner is a REAL PLAYER who's ONLINE -> this IS an
267
- // invite (a live friend beats an AI copy every time);
268
- // - away but ghost-hireable -> ghost hire (the standing opt-in's
269
- // whole purpose: their saved sheet rides AI-driven, their cut
270
- // goes home via the earnings ledger);
271
- // - away and NOT hireable -> the invite goes out anyway and
272
- // waits as a pending seat for their next session.
273
- // "crew invite" stays as the explicit form.
274
- let ghostHire = false;
284
+ const candidate = picked ? game.crewForHire.find(c => c.name === picked) : undefined;
285
+ // Not on the local board? Try THE STREET: a REAL player match IS
286
+ // the party invite -- live if they're online, waiting on their link
287
+ // if not. (The ghost mechanic -- AI copies of away players -- was
288
+ // removed 2026-08-23 by player ruling.) "crew invite" stays as the
289
+ // explicit form.
275
290
  if (!candidate && authToken()) {
276
291
  const players = await fetchPlayers();
277
292
  const anyPick = fuzzyPickName(query, (players ?? []).map(p => p.playerName));
278
293
  const anyStreet = anyPick ? (players ?? []).find(p => p.playerName === anyPick) : undefined;
279
- if (anyStreet && (anyStreet.online || !anyStreet.ghostHireable)) {
294
+ if (anyStreet) {
280
295
  const routed = await game.handleInput(`crew invite ${anyStreet.playerName}`);
281
296
  const liveNote = anyStreet.online
282
297
  ? `${anyStreet.playerName} is a LIVE runner -- that's an invite, not a hire:`
283
- : `${anyStreet.playerName} is off the street and not ghost-hireable -- the invite will wait on their link:`;
298
+ : `${anyStreet.playerName} is off the street -- the invite will wait on their link:`;
284
299
  return `${liveNote}\n${routed ?? ''}`;
285
300
  }
286
- const hireable = (players ?? []).filter(p => p.ghostHireable);
287
- const ghostPick = fuzzyPickName(query, hireable.map(p => p.playerName));
288
- const street = ghostPick ? hireable.find(p => p.playerName === ghostPick) : undefined;
289
- if (street) {
290
- const sheet = await fetchGhost(street.handle, street.slug);
291
- if (!sheet) {
292
- return `${street.playerName}'s sheet isn't answering -- their save may not be synced. Try again later.`;
293
- }
294
- ghostHire = true;
295
- candidate = {
296
- name: sheet.playerName,
297
- source: 'ghost',
298
- archetypeName: sheet.archetypeName,
299
- description: `${sheet.playerName}, ${sheet.archetypeName ?? 'a runner'} -- ${sheet.owner}'s character, riding as a ghost while they're away.`,
300
- combat: { ...sheet.attributes, skills: { ...sheet.skills } },
301
- gear: sheet.gear,
302
- cutPct: 20,
303
- jobsRun: 0,
304
- ghost: { slug: sheet.slug, owner: sheet.owner },
305
- };
306
- }
307
301
  }
308
302
  if (!candidate) {
309
303
  return `Nobody by that name on the boards or the street.${hint(` ("crew" lists the local board; "crew players" lists real runners.)`)}`;
@@ -335,20 +329,16 @@ export class HireCommand extends Command {
335
329
  game.crew.push(candidate);
336
330
  const scrapLine = game.scrapPendingRunForCrewChange();
337
331
  actor.performAction('hires', `${candidate.name} onto the crew`);
338
- this.logger.write(`Hired ${candidate.name} (${candidate.archetypeName}${ghostHire ? `, ghost of ${candidate.ghost?.owner}` : ''}) at ${candidate.cutPct}% (asked ${askingCut}%).`);
332
+ this.logger.write(`Hired ${candidate.name} (${candidate.archetypeName}) at ${candidate.cutPct}% (asked ${askingCut}%).`);
339
333
  const cutNote = candidate.cutPct < askingCut
340
334
  ? `talked down from ${askingCut}% to ${candidate.cutPct}%`
341
335
  : candidate.cutPct > askingCut
342
336
  ? `talked UP to ${candidate.cutPct}% -- they didn't like your tone`
343
337
  : `at their asking ${candidate.cutPct}%`;
344
- // A ghost is a real player's character: say so, always-on.
345
- const ghostNote = ghostHire
346
- ? ` A GHOST rides with you -- ${candidate.ghost?.owner}'s runner, played by the street itself; their cut goes home.`
347
- : '';
348
338
  // Where they ARE is expectation-setting, not teaching (a real
349
339
  // session hired Jax and went looking for him in the hub) -- the
350
340
  // crew doesn't loiter in your solo hub; they meet you on the job.
351
- return `${candidate.name} pings back a single word: "In." Crew, ${cutNote} of the take (${game.crew.length}/${game.crewCap} slots).${ghostNote}${scrapLine}${hint(` (They meet you at the jobsite curb every run until you cut them loose; "crew" shows the roster.)`)}`;
341
+ return `${candidate.name} pings back a single word: "In." Crew, ${cutNote} of the take (${game.crew.length}/${game.crewCap} slots).${scrapLine}${hint(` (They meet you at the jobsite curb every run until you cut them loose; "crew" shows the roster.)`)}`;
352
342
  }
353
343
  }
354
344
  /** "dismiss <name>": cut a crew member loose. Their gear goes with them. */
@@ -1 +1 @@
1
- {"version":3,"file":"crew.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/crew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crew.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/crew.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAa,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IAC/B,sEAAsE;IACtE,uDAAuD;IAC7C,MAAM,CAAC,WAAW,GAAG;QAC7B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mCAAmC,EAAE;QAC7D,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,4BAA4B;YAC1D,IAAI,EAAE,qHAAqH,EAAE;QAC/H,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,4CAA4C;YACzE,IAAI,EAAE,2MAA2M,EAAE;QACrN,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,uCAAuC;YAC7E,IAAI,EAAE,4HAA4H,EAAE;QACtI,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,+BAA+B;YACpE,IAAI,EAAE,+JAA+J,EAAE;QACzK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,4BAA4B;YACxD,IAAI,EAAE,mFAAmF,EAAE;QAC7F,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,yBAAyB;YACzD,IAAI,EAAE,4HAA4H,EAAE;QACtI,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,4BAA4B;YAClE,IAAI,EAAE,yGAAyG,EAAE;KACpH,CAAC;IACQ,MAAM,CAAC,WAAW,GAAG,wcAAwc,CAAC;IAExe,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO,2EAA2E,CAAC;QACrF,CAAC;QAED,8DAA8D;QAC9D,iEAAiE;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAEnC,oEAAoE;QACpE,gEAAgE;QAChE,6DAA6D;QAC7D,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,CAAC;QACD,kEAAkE;QAClE,8DAA8D;QAC9D,yBAAyB;QACzB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,MAAM,IAAI,CAAC,IAAK,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;QAED,kEAAkE;QAClE,mEAAmE;QACnE,4DAA4D;QAC5D,mEAAmE;QACnE,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACjB,OAAO,mEAAmE,CAAC;YAC7E,CAAC;YACD,8DAA8D;YAC9D,+DAA+D;YAC/D,uCAAuC;YACvC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,eAAe,MAAM,CAAC,YAAY,qDAAqD,CAAC;gBACjG,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAO,+CAA+C,CAAC;YACnE,6DAA6D;YAC7D,CAAC;gBACC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACtD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;wBAClC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,8CAA8C;wBACxE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,0BAA0B,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,OAAO,sBAAsB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,mDAAmD,CAAC;YACnH,CAAC;YACD,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,+DAA+D,CAAC;YACzE,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,QAAQ;mBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;mBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,oCAAoC,KAAK,sFAAsF,CAAC;YACzI,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACtD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAA4C,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjI,OAAO,oEAAoE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,6CAA6C,gCAAgC,CAAC;YACrN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,GAA4D,CAAC;gBACvE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,gBAAgB;oBAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;gBACpF,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa;oBAAE,OAAO,4DAA4D,CAAC;gBAC9H,OAAO,iCAAiC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,IAAI,CAAC;YAClF,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,yDAAyD;QACzD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,MAAM;oBACX,CAAC,CAAC,yCAAyC,MAAM,IAAI;oBACrD,CAAC,CAAC,yCAAyC,CAAC;YAChD,CAAC;YACD,gEAAgE;YAChE,gEAAgE;YAChE,8CAA8C;YAC9C,IAAI,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpF,OAAO,0BAA0B,KAAK,4EAA4E,CAAC;YACrH,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC,CAAC;YACpG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,kCAAmC,GAA2B,CAAC,MAAM,IAAI,UAAU,iBAAiB,CAAC;YAC9G,CAAC;YACD,OAAO,GAAG,KAAK,QAAQ;gBACrB,CAAC,CAAC,wBAAwB,GAAG,CAAC,IAAI,CAAC,YAAY,yGAAyG,IAAI,CAAC,mCAAmC,CAAC,EAAE;gBACnM,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,YAAY,oDAAoD,CAAC;QAC/F,CAAC;QAED,oDAAoD;QACpD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,mCAAmC,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM;gBACrB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;gBACzC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ;gBAAE,OAAO,yCAAyC,MAAM,IAAI,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,qCAAsC,GAA2B,CAAC,MAAM,IAAI,UAAU,iBAAiB,CAAC;YACjH,CAAC;YACD,OAAO,sBAAsB,QAAQ,CAAC,IAAI,CAAC,YAAY,kDAAkD,CAAC;QAC5G,CAAC;QAED,kEAAkE;QAClE,sDAAsD;QACtD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,OAAO,qFAAqF,CAAC;QAC/F,CAAC;QACD,mEAAmE;QACnE,8DAA8D;QAC9D,iEAAiE;QACjE,kEAAkE;QAClE,mEAAmE;QACnE,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,QAAiB,EAAE,IAAY,EAAE,SAA6B,EAAE,MAAc,EAAE,EAAE,CAC7F,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAChH,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAE1F,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,MAAM,GAAsE,EAAE,CAAC;QACnF,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,aAAa,CAAC;QAE7F,MAAM,KAAK,GAAG,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,sCAAsC,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC1H,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,iFAAiF,CAAC,CAAC;YAC1G,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,4DAA4D;QAC5D,iEAAiE;QACjE,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;QACD,gEAAgE;QAChE,kEAAkE;QAClE,8BAA8B;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrG,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,YAAY,6CAA6C,CAAC,CAAC;YACrG,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,YAAY,gDAAgD,CAAC,CAAC;YACxG,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,YAAY,mEAAmE,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,gJAAgJ,CAAC,CAAC;QACtK,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;;AAGH;0EAC0E;AAC1E,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,wQAAwQ,CAAC;IAExS,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,0CAA0C,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,oCAAoC,CAAC;QACnE,+DAA+D;QAC/D,+DAA+D;QAC/D,0CAA0C;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,eAAe,MAAM,CAAC,YAAY,oDAAoD,CAAC;YAChG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAErF,iEAAiE;QACjE,oEAAoE;QACpE,kEAAkE;QAClE,mEAAmE;QACnE,iBAAiB;QACjB,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM;oBAC/B,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,oDAAoD;oBAC7E,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,2DAA2D,CAAC;gBACvF,OAAO,GAAG,QAAQ,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,mDAAmD,IAAI,CAAC,qEAAqE,CAAC,EAAE,CAAC;QAC1I,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,GAAG,SAAS,CAAC,IAAI,0BAA0B,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,qBAAqB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,kCAAkC,IAAI,CAAC,uEAAuE,CAAC,EAAE,CAAC;QAChL,CAAC;QAED,+DAA+D;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACxH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAE,SAAS,CAAC,MAAgC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,IAAI,GAAG,GAAG,CAAC;YAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;aAC/D,IAAI,IAAI,CAAC,cAAc;YAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEpF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAU,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtD,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,gBAAgB,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,QAAQ,SAAS,CAAC,MAAM,YAAY,SAAS,KAAK,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS;YAC1C,CAAC,CAAC,oBAAoB,SAAS,QAAQ,SAAS,CAAC,MAAM,GAAG;YAC1D,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS;gBAC5B,CAAC,CAAC,gBAAgB,SAAS,CAAC,MAAM,iCAAiC;gBACnE,CAAC,CAAC,mBAAmB,SAAS,CAAC,MAAM,GAAG,CAAC;QAC7C,8DAA8D;QAC9D,gEAAgE;QAChE,kEAAkE;QAClE,OAAO,GAAG,SAAS,CAAC,IAAI,0CAA0C,OAAO,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,WAAW,SAAS,GAAG,IAAI,CAAC,mGAAmG,CAAC,EAAE,CAAC;IAC/P,CAAC;;AAGH,4EAA4E;AAC5E,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,8FAA8F,CAAC;IAE9H,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,gEAAgE,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,wCAAwC,CAAC;QACvE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,CAAC,MAAM;YAAE,OAAO,kCAAkC,CAAC;QAEvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,gEAAgE;QAChE,iBAAiB;QACjB,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAClD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAClE,IAAI,IAAI;oBAAE,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;QAC9F,OAAO,GAAG,MAAM,CAAC,IAAI,iDAAiD,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,uCAAuC,SAAS,EAAE,CAAC;IACzN,CAAC;;AAGH;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IAC7B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,MAAM,CAAC,WAAW,GAAG,0MAA0M,CAAC;IAE1O,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,uCAAuC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,8CAA8C,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,CAAC,MAAM;YAAE,OAAO,kCAAkC,CAAC;QACvD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,OAAO,GAAG,MAAM,CAAC,IAAI,wEAAwE,CAAC;QAChG,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAA0B,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,QAAQ,6BAA6B,IAAI,CAAC,gDAAgD,CAAC,EAAE,CAAC;QAErH,MAAM,MAAM,GAAG,MAAM,CAAC,MAA6C,CAAC;QACpE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;QAC9B,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,GAAG,MAAM,CAAC,IAAI,MAAM,KAAK,sCAAsC,CAAC;QAC1F,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,aAAa,GAAG,SAAS,EAAE,CAAC;YAC9B,OAAO,yDAAyD,aAAa,gBAAgB,MAAM,CAAC,IAAI,OAAO,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC;QACjL,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;YAC5B,OAAO,WAAW,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,SAAS,UAAU,IAAI,sBAAsB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;QAClH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,OAAO,SAAS,KAAK,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QAC5H,OAAO,aAAa,MAAM,CAAC,IAAI,2BAA2B,KAAK,IAAI,OAAO,OAAO,SAAS,KAAK,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC;IAClJ,CAAC"}
@@ -10,11 +10,14 @@ export class EndCallCommand extends Command {
10
10
  // A PLAYER call hangs up for EVERYONE (player ruling): the game
11
11
  // signals the far side over the pages rail, so their "On a call"
12
12
  // status drops too -- live, or as backlog at their next session.
13
+ const wasParty = this.actor.crewChannel?.party === true;
13
14
  const farName = this.game?.hangUpCrewChannel(this.actor);
14
15
  if (farName) {
15
16
  this.actor.performAction('ends call', farName);
16
17
  this.scene.updateStatus();
17
- return `{${CALL_COLOR}-fg}${CALL_ICON} You end the call with ${farName}.{/${CALL_COLOR}-fg}`;
18
+ return wasParty
19
+ ? `{${CALL_COLOR}-fg}${CALL_ICON} You drop off the party line. The others talk on without you.{/${CALL_COLOR}-fg}`
20
+ : `{${CALL_COLOR}-fg}${CALL_ICON} You end the call with ${farName}.{/${CALL_COLOR}-fg}`;
18
21
  }
19
22
  return `You're not on a call.`;
20
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"end-call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/end-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,qCAAqC,CAAC;IAErE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,gEAAgE;YAChE,iEAAiE;YACjE,iEAAiE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,MAAM,UAAU,MAAM,CAAC;YAC/F,CAAC;YACD,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACzC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAE5E,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,OAAO,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,CAAC,IAAI,MAAM,UAAU,MAAM,CAAC;IACpG,CAAC"}
1
+ {"version":3,"file":"end-call.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/end-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,qCAAqC,CAAC;IAErE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,gEAAgE;YAChE,iEAAiE;YACjE,iEAAiE;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO,QAAQ;oBACb,CAAC,CAAC,IAAI,UAAU,OAAO,SAAS,kEAAkE,UAAU,MAAM;oBAClH,CAAC,CAAC,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,MAAM,UAAU,MAAM,CAAC;YAC5F,CAAC;YACD,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACzC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,uBAAuB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAE5E,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACzF,CAAC;QAED,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,OAAO,IAAI,UAAU,OAAO,SAAS,0BAA0B,OAAO,CAAC,IAAI,MAAM,UAAU,MAAM,CAAC;IACpG,CAAC"}
@@ -1,11 +1,9 @@
1
1
  import { Command, ICommand } from './command.js';
2
2
  /**
3
- * THE STREET (split out of "crew" -- player ruling: the crew is YOUR
4
- * table, the street is everyone's). Real players' runners, shown by
5
- * STREET NAME only -- no account handles, no emails. A runner is
6
- * "online" only while their link broadcasts: commlink equipped and not
7
- * running silent (pull the link or go silent and you drop off the
8
- * list); "away, hireable" rows are the standing ghost opt-in.
3
+ * THE STREET ("crew players"). Real players' runners, shown by STREET
4
+ * NAME only -- no account handles, no emails. A runner is "online" only
5
+ * while their link broadcasts: commlink equipped and not running silent
6
+ * (pull the link or go silent and you drop off the list).
9
7
  */
10
8
  export declare class PlayersCommand extends Command implements ICommand {
11
9
  protected static verb: string;
@@ -3,12 +3,10 @@ import { hint } from '../utilities/hints.js';
3
3
  import { fetchPlayers } from '../utilities/social.js';
4
4
  import { authToken } from '../utilities/cloud-saves.js';
5
5
  /**
6
- * THE STREET (split out of "crew" -- player ruling: the crew is YOUR
7
- * table, the street is everyone's). Real players' runners, shown by
8
- * STREET NAME only -- no account handles, no emails. A runner is
9
- * "online" only while their link broadcasts: commlink equipped and not
10
- * running silent (pull the link or go silent and you drop off the
11
- * list); "away, hireable" rows are the standing ghost opt-in.
6
+ * THE STREET ("crew players"). Real players' runners, shown by STREET
7
+ * NAME only -- no account handles, no emails. A runner is "online" only
8
+ * while their link broadcasts: commlink equipped and not running silent
9
+ * (pull the link or go silent and you drop off the list).
12
10
  */
13
11
  export class PlayersCommand extends Command {
14
12
  static verb = 'players';
@@ -44,11 +42,10 @@ export class PlayersCommand extends Command {
44
42
  else {
45
43
  lines.push(` ${'Runner'.padEnd(18)} ${'Archetype'.padEnd(16)} Karma Status`);
46
44
  for (const p of players) {
47
- const status = `${p.online ? 'online' : 'away'}${p.ghostHireable ? ', hireable' : ''}`;
48
- lines.push(` ${p.playerName.padEnd(18)} ${(p.archetypeName ?? '?').padEnd(16)} ${String(p.karma).padStart(5)} ${status}`);
45
+ lines.push(` ${p.playerName.padEnd(18)} ${(p.archetypeName ?? '?').padEnd(16)} ${String(p.karma).padStart(5)} ${p.online ? 'online' : 'away'}`);
49
46
  }
50
47
  }
51
- const footer = hint(`"hire <runner>" seats one at your table -- online runners get the party invite (they accept from their own terminal), away-but-hireable ones ride as AI ghosts; "call <runner>" rings them on the crew channel -- then "say" talks, "end-call" hangs up.`);
48
+ const footer = hint(`"hire <runner>" seats one at your table (they accept the invite from their own terminal); "call <runner>" rings them on the crew channel -- then "say" talks, "end-call" hangs up.`);
52
49
  if (footer)
53
50
  lines.push('', footer);
54
51
  return lines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,kRAAkR,CAAC;IAElT,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO,wEAAwE,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,0EAA0E,CAAC;QACpF,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,mEAAmE,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;YACtB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;gBACzE,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,6BAA6B;YACxI,CAAC,CAAC,IAAI,KAAK,YAAY;gBACrB,CAAC,CAAC,oEAAoE;gBACtE,CAAC,CAAC,2EAA2E,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAC/E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACpJ,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,oLAAoL,CAAC,CAAC;QAC1M,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Command, ICommand } from './command.js';
2
+ /**
3
+ * Registering (SR5e p.254-256, engine-adapted): make a compiled sprite
4
+ * PERMANENT. An opposed Resonance + compiling test against TWICE the
5
+ * sprite's Level -- net hits add tasks, and the sprite becomes
6
+ * REGISTERED: it survives travel (folds into your PAN and re-shells at
7
+ * the curb) and rides your save file across sessions. Fading is 2x the
8
+ * sprite's hits (min 2), resisted with Resonance + Willpower --
9
+ * PHYSICAL past your Resonance, the usual overreach law. One sprite at
10
+ * a time either way; decompiling releases a registered sprite too.
11
+ */
12
+ export declare class RegisterCommand extends Command implements ICommand {
13
+ protected static verb: string;
14
+ protected static description: string;
15
+ execute(_args?: string[]): Promise<string>;
16
+ }
@@ -0,0 +1,74 @@
1
+ import { Command } from './command.js';
2
+ import { rollPool, formatRoll } from '../utilities/dice.js';
3
+ import { hint } from '../utilities/hints.js';
4
+ /**
5
+ * Registering (SR5e p.254-256, engine-adapted): make a compiled sprite
6
+ * PERMANENT. An opposed Resonance + compiling test against TWICE the
7
+ * sprite's Level -- net hits add tasks, and the sprite becomes
8
+ * REGISTERED: it survives travel (folds into your PAN and re-shells at
9
+ * the curb) and rides your save file across sessions. Fading is 2x the
10
+ * sprite's hits (min 2), resisted with Resonance + Willpower --
11
+ * PHYSICAL past your Resonance, the usual overreach law. One sprite at
12
+ * a time either way; decompiling releases a registered sprite too.
13
+ */
14
+ export class RegisterCommand extends Command {
15
+ static verb = 'register';
16
+ static description = 'Register your compiled sprite (technomancers): Resonance + compiling vs twice its Level -- net hits ADD tasks, and the sprite becomes permanent (survives travel, rides your save). Fading 2x its hits (PHYSICAL past your Resonance).';
17
+ async execute(_args = []) {
18
+ const actor = this.actor;
19
+ const game = this.game;
20
+ if (!actor.isTechnomancer()) {
21
+ return `The Resonance doesn't know your voice. Registering is technomancer work.`;
22
+ }
23
+ const entry = game?.companions.find(c => c.kind === 'sprite');
24
+ if (!entry) {
25
+ return `No sprite rides with you -- "compile" one first.`;
26
+ }
27
+ if (entry.registered) {
28
+ return `${entry.npc.name} is already registered -- it isn't going anywhere.${hint(` ("compile" decompiles it when you're done.)`)}`;
29
+ }
30
+ if (actor.inExchange) {
31
+ return `Registering takes more focus than the fight will give you.`;
32
+ }
33
+ const level = entry.force;
34
+ const compiling = actor.skillRating('compiling');
35
+ const mine = rollPool(Math.max(1, actor.resonance + (compiling > 0 ? compiling : -1) + actor.woundModifier - actor.sustainingPenalty));
36
+ const sprite = rollPool(level * 2);
37
+ const net = Math.max(0, mine.hits - sprite.hits);
38
+ const fadingValue = Math.max(2, sprite.hits * 2);
39
+ const resist = rollPool(Math.max(1, actor.willpower + actor.resonance));
40
+ const fadingTaken = Math.max(0, fadingValue - resist.hits);
41
+ const overreach = level > actor.resonance;
42
+ actor.performAction('weaves a registration', `around ${entry.npc.name}`);
43
+ this.logger.write(`RegisterCommand: ${actor.name} vs ${entry.npc.name} (L${level}) -- ${mine.hits} vs ${sprite.hits}, net ${net}, fading ${fadingValue} (took ${fadingTaken}${overreach ? ' physical' : ''}).`);
44
+ this.logger.meta(`Registering (Resonance ${actor.resonance}${compiling > 0 ? `, compiling ${compiling}` : ', no compiling -1'}): ${formatRoll(mine)}`);
45
+ this.logger.meta(` the sprite resists (Level x2): ${formatRoll(sprite)}`);
46
+ const lines = [];
47
+ if (net === 0) {
48
+ lines.push(`The sprite slips the weave -- it stays compiled, but it will not be OWNED tonight. (Still ${entry.services ?? 0} task${(entry.services ?? 0) === 1 ? '' : 's'}.)`);
49
+ }
50
+ else {
51
+ entry.registered = true;
52
+ entry.services = (entry.services ?? 0) + net;
53
+ lines.push(`The weave settles and HOLDS -- ${entry.npc.name} is REGISTERED: ${net} task${net === 1 ? '' : 's'} added (${entry.services} standing). It survives travel now, folded into your PAN, and rides your save.`);
54
+ }
55
+ this.logger.meta(`Fading (${fadingValue}${overreach ? ', OVERREACH -- physical' : ''}): resist ${formatRoll(resist)}`);
56
+ if (fadingTaken === 0) {
57
+ lines.push(` You shake the fading off.`);
58
+ }
59
+ else if (overreach) {
60
+ actor.takeDamage(fadingTaken);
61
+ lines.push(` The registration tears something on the way through -- ${fadingTaken} PHYSICAL: ${actor.conditionSummary()}`);
62
+ }
63
+ else {
64
+ const { stun, overflow } = actor.takeStun(fadingTaken);
65
+ lines.push(` The fading bites -- ${stun} stun: ${actor.stunSummary()}`);
66
+ if (overflow > 0) {
67
+ lines.push(` It's more than your mind can hold -- ${overflow} box${overflow === 1 ? '' : 'es'} spill into your body: ${actor.conditionSummary()}`);
68
+ }
69
+ }
70
+ this.scene.updateStatus();
71
+ return lines.join('\n');
72
+ }
73
+ }
74
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/register.ts"],"names":[],"mappings":"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"}
@@ -79,15 +79,24 @@ export class SayCommand extends Command {
79
79
  // like partner delivery: the send is a network round trip and the
80
80
  // local echo already printed above.
81
81
  const channel = currentPlayer.crewChannel;
82
- void this.game?.streetTransport().then(async (transport) => {
83
- if (!transport) {
84
- this.logger.logWithColor(`The crew channel is dead air -- your words go nowhere.`, 'yellow', { actor: currentPlayer.name });
85
- return;
86
- }
82
+ void (async () => {
87
83
  try {
88
- const res = await transport.send({ from: currentPlayer.name, handle: channel.handle, text: message });
89
- if (!res.online) {
90
- this.logger.logWithColor(`(${res.toRunner} is off the street -- it'll be waiting on their link.)`, 'yellow', { actor: currentPlayer.name });
84
+ if (channel.party) {
85
+ // THE PARTY LINE: one say, every accepted seat hears it.
86
+ const sr = await import('../utilities/shared-run.js');
87
+ await sr.HubLink.call('sideQuest.partyPage', { text: message });
88
+ }
89
+ else {
90
+ const transport = await this.game?.streetTransport();
91
+ if (!transport) {
92
+ this.logger.logWithColor(`The crew channel is dead air -- your words go nowhere.`, 'yellow', { actor: currentPlayer.name });
93
+ this.game?.screenRender?.();
94
+ return;
95
+ }
96
+ const res = await transport.send({ from: currentPlayer.name, handle: channel.handle, text: message });
97
+ if (!res.online) {
98
+ this.logger.logWithColor(`(${res.toRunner} is off the street -- it'll be waiting on their link.)`, 'yellow', { actor: currentPlayer.name });
99
+ }
91
100
  }
92
101
  }
93
102
  catch (err) {
@@ -95,7 +104,7 @@ export class SayCommand extends Command {
95
104
  this.logger.logWithColor(`The crew channel chokes (${e.reason ?? e.message ?? 'dead air'}).`, 'yellow', { actor: currentPlayer.name });
96
105
  }
97
106
  this.game?.screenRender?.();
98
- }).catch(() => undefined);
107
+ })();
99
108
  // Bystanders overhear one side of the call, same as an in-scene
100
109
  // call (see the partner branch above).
101
110
  const overheard = `${message} [System note: ${currentPlayer.name} is speaking into their commlink -- you're overhearing ONE SIDE of someone else's call, not being addressed. It's not your conversation: stay silent unless what you overheard genuinely concerns you.]`;
@@ -1 +1 @@
1
- {"version":3,"file":"say.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/say.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"say.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/say.ts"],"names":[],"mappings":"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"}