@maka/maka-cli 5.74.0 → 5.76.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 (97) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +7 -0
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +40 -5
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +3 -3
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +12 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +4 -4
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +42 -0
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +312 -46
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +8 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +20 -15
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +10 -2
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +9 -8
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +83 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +253 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +116 -3
  26. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +39 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/game.js +85 -14
  29. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/headless.js +5 -3
  31. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +28 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +33 -5
  34. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +35 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +46 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +184 -3
  39. package/bundle/typescript/src/commands/game/sideQuest/types/repro.js +51 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +38 -3
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +21 -5
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.d.ts +17 -2
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +30 -3
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +14 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +24 -0
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +31 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.d.ts +20 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js +21 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +16 -5
  57. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js +2 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +3 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js +13 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +71 -18
  64. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +109 -21
  65. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +38 -0
  67. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +46 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +31 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +41 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +29 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +33 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -0
  75. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +1 -1
  76. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +72 -8
  78. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  79. package/bundle/typescript/src/commands/set/global.sub.cmd.js +1 -20
  80. package/bundle/typescript/src/commands/set/global.sub.cmd.js.map +1 -1
  81. package/bundle/typescript/src/commands/update.js +6 -88
  82. package/bundle/typescript/src/commands/update.js.map +1 -1
  83. package/bundle/typescript/src/generator.js +1 -0
  84. package/bundle/typescript/src/generator.js.map +1 -1
  85. package/bundle/typescript/src/templates/meteor/collection/tests.js +1 -1
  86. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +1 -1
  87. package/bundle/typescript/src/templates/react/test/test.js.jsx +31 -29
  88. package/bundle/typescript/src/templates/react/test/test.js.tsx +31 -29
  89. package/bundle/typescript/src/tools/browser/open-browser.d.ts +7 -0
  90. package/bundle/typescript/src/tools/browser/open-browser.js +21 -0
  91. package/bundle/typescript/src/tools/browser/open-browser.js.map +1 -0
  92. package/bundle/typescript/src/tools/pkg/pkg.class.js +12 -1
  93. package/bundle/typescript/src/tools/pkg/pkg.class.js.map +1 -1
  94. package/bundle/typescript/src/tools/self-update/update-maka.d.ts +15 -0
  95. package/bundle/typescript/src/tools/self-update/update-maka.js +107 -0
  96. package/bundle/typescript/src/tools/self-update/update-maka.js.map +1 -0
  97. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { Command } from './command.js';
2
2
  import { hint } from '../utilities/hints.js';
3
3
  import { GoCommand } from './go.js';
4
4
  import { NPC } from '../models/npc.js';
5
+ import { Door } from '../models/door.js';
5
6
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
6
7
  import { heldBy, holding } from '../utilities/grapple.js';
7
8
  import { spotsActive, resolveSpot, spotOf, describeSpotRoster, OPEN_FLOOR, pathBetweenSpots, spotDistanceMeters, spotClimbSteps, blockingRegion, terrainRefusal, reseatOpenFloor, routeForMove, stepFrom, spotForCell, actorCell, standingRoomNear, furnitureCells, approachCellFor, } from '../utilities/spots.js';
@@ -9,7 +10,7 @@ import { spotsActive, resolveSpot, spotOf, describeSpotRoster, OPEN_FLOOR, pathB
9
10
  // you from where you GOT to, which is a distance in metres, not a whole
10
11
  // storey. The storey-based wrapper still exists for callers that really
11
12
  // do fall a level.
12
- import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, METERS_PER_CELL, METERS_PER_LEVEL, key } from '../utilities/room-grid.js';
13
+ import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, climbSurfaceModifier, METERS_PER_CELL, METERS_PER_LEVEL, key } from '../utilities/room-grid.js';
13
14
  import { rollPool, formatRoll } from '../utilities/dice.js';
14
15
  /**
15
16
  * "walk to <spot>" / "run to <spot>" / "sprint to <spot>" -- crossing
@@ -130,6 +131,15 @@ export class MoveCommand extends Command {
130
131
  const qualified = this.resolveQualifiedDoorway(room, words.join(' '));
131
132
  if (qualified !== undefined)
132
133
  return this.crossToDoorway(qualified);
134
+ // ...and the same courtesy for the OTHER qualifier the map prints.
135
+ // Checked here, beside its direction twin and ahead of the spot
136
+ // resolver, for exactly the reason the twin is: the wrong answer
137
+ // arrives first otherwise (TqKCyEZ23ppb4w5BP).
138
+ const byLock = this.resolveDoorwayByLockState(room, words.join(' '));
139
+ if (byLock?.kind === 'refusal')
140
+ return byLock.text;
141
+ if (byLock?.kind === 'doorway')
142
+ return this.crossToDoorway(byLock.dir);
133
143
  }
134
144
  // Spot names next (unchanged behavior); then PEOPLE (player
135
145
  // request: "move to Brick") -- walking to someone means walking to
@@ -216,6 +226,10 @@ export class MoveCommand extends Command {
216
226
  // AP -4, resisted with Body + Armor (Player.getSoakPool). A
217
227
  // successful climb still lands you at the spot; a failed one never
218
228
  // does -- you're back where you started, hurt.
229
+ // Narration from a descent that got away, carried out to the arrival
230
+ // line below -- a rushed rappel still LANDS you, so its story has to
231
+ // ride with the arrival rather than replace it.
232
+ let descentNote = '';
219
233
  const climbSteps = mine !== undefined ? spotClimbSteps(room, mine, spot.name) : undefined;
220
234
  if (climbSteps !== undefined) {
221
235
  // STRENGTH, NOT AGILITY (SR5 p.134, Climbing: the test is
@@ -230,58 +244,228 @@ export class MoveCommand extends Command {
230
244
  // Gymnastics is the Athletics group's climbing member. That is a
231
245
  // pre-existing, documented modelling choice, not something this
232
246
  // roll invented; the attribute was a straightforward error.
233
- const athleticsSkill = actor.skillRating('athletics');
234
- const pool = Math.max(1, actor.strength + (athleticsSkill > 0 ? athleticsSkill : -1) + actor.qualityBonus('athletics') + actor.augBonus('athletics') + actor.woundModifier - actor.sustainingPenalty);
235
- const climb = rollPool(pool);
236
- // HITS BUY DISTANCE -- there is no threshold (p.134, Climbing
237
- // Table: "Unassisted climbing upward, 1 meter per 2 hits"). This
238
- // used to be a flat "2 hits or you fall", which is a rule the book
239
- // does not have: it made a one-metre scramble and a three-storey
240
- // face equally hard, and it made a strong climber's extra hits
241
- // buy nothing.
242
- const meters = climbSteps * METERS_PER_LEVEL;
243
- const needed = climbHitsFor(meters);
244
- const gotUp = !climb.glitch && climb.hits >= needed;
245
- this.logger.meta(` Climb ${meters}m -- Gymnastics + Strength: ${formatRoll(climb)} (${needed} hits needed)`);
246
- if (!gotUp) {
247
- // A FAILED CLIMB IS NOT A FALL (p.134, Climbing Failures and
248
- // Glitches). Progress halts and you make a Reaction + Strength
249
- // test to HOLD ON; only failing THAT drops you. Falling
250
- // immediately was the engine's own invention, and it is the
251
- // half of this that made climbing feel arbitrary -- one bad
252
- // roll and gravity, with nothing in between.
253
- const hold = rollPool(Math.max(1, actor.reaction + actor.strength + actor.woundModifier - actor.sustainingPenalty));
254
- this.logger.meta(` Hold on -- Reaction + Strength: ${formatRoll(hold)} (1 hit holds)`);
255
- const reached = Math.min(meters, climbMetersFrom(climb.hits));
256
- if (hold.hits >= 1) {
257
- this.actor.performAction('climbs partway toward', `the ${spot.name}, and comes back down`);
258
- return `You get about ${reached < 1 ? 'a body length' : `${Math.round(reached)}m`} up and it stops going anywhere -- ${climb.glitch ? 'a hold shears away under your weight' : 'no purchase left within reach'}. You hang on, and climb back down.`;
247
+ // ASSISTED CLIMBING (p.134 Climbing Table: +2 dice, and 1 metre
248
+ // per hit instead of per two). The gear is the p.449 kit -- rope,
249
+ // harness, carabiners, crampons -- which this game has SOLD in the
250
+ // catalog all along (`climbing-gear`) while nothing read it. It
251
+ // was buyable and inert, the same shape as the hostility flag:
252
+ // wired at one end only.
253
+ //
254
+ // Carried, not worn: a kit in the pack is a kit you can rig.
255
+ // Narration from a rappel that got away, prepended to the arrival.
256
+ const assisted = actor.inventory.getAllItems().some(i => /climbing gear|climbing kit|\brope\b|harness|carabiner|crampon|grapple gun/i.test(`${i.name} ${i.description ?? ''}`));
257
+ // WHICH WAY. pathClimbSteps returns a magnitude, so direction is
258
+ // read off the cells: canon prices down differently from up
259
+ // (unassisted down is 1m per HIT, twice the rate of going up),
260
+ // and rappelling is a different test entirely.
261
+ const grid = room.ensureGrid();
262
+ const fromZ = mine !== undefined ? (grid?.spotCells.get(mine)?.z ?? 0) : 0;
263
+ const toZ = grid?.spotCells.get(spot.name)?.z ?? 0;
264
+ const down = toZ < fromZ;
265
+ // SURFACE AND CONDITION (p.134), read off the room's own prose and
266
+ // the level's name -- see climbSurfaceModifier. Zero unless the
267
+ // fiction says otherwise, which is why adding this could not
268
+ // re-break the scenes the banking fix just made climbable.
269
+ const surface = climbSurfaceModifier(`${room.name} ${room.description ?? ''} ${(room.levels ?? []).map(l => `${l.name} ${l.kind ?? ''}`).join(' ')} ${spot.name}`);
270
+ // RAPPELLING (p.134) IS ITS OWN ROW: "assisted climbing down" is
271
+ // not a scaled climb, it is Free-Fall + Body [Physical] (2) on a
272
+ // rope, descending 20 metres per Combat Turn. Routed here rather
273
+ // than folded into the climb rate, because folding it in would
274
+ // have made it a faster climb instead of a different act.
275
+ //
276
+ // THE CLOCK IS THE BOOK'S BOOKKEEPING, NOT THE RULE. Canon quotes
277
+ // the rate per Combat Turn and this engine has no combat-turn
278
+ // clock (the same gap named in getInitiativeDice and in the sprite
279
+ // sustain task). The RATE is what is canon: 20m per turn, +1m per
280
+ // net hit. Every vertical drop this engine can build is a handful
281
+ // of metres -- METERS_PER_LEVEL is 3 -- so a single turn covers
282
+ // any of them outright, and the honest translation is one test
283
+ // that either lands you or does not. No clock invented to host it.
284
+ if (down && assisted) {
285
+ // Free-Fall in canon; this engine carries `athletics` as the
286
+ // group and has no Free-Fall skill, the same documented
287
+ // collapse as Gymnastics above.
288
+ const ffSkill = actor.skillRating('athletics');
289
+ const ffPool = Math.max(1, actor.body + (ffSkill > 0 ? ffSkill : -1) + actor.qualityBonus('athletics') + surface.mod + actor.woundModifier - actor.sustainingPenalty);
290
+ const ff = rollPool(ffPool);
291
+ this.logger.meta(` Rappel ${climbSteps * METERS_PER_LEVEL}m -- Free-Fall + Body (2)${surface.label ? ` [${surface.label}]` : ''}: ${formatRoll(ff)}`);
292
+ if (ff.hits >= 2) {
293
+ actor.climbProgress = undefined;
294
+ this.actor.performAction('rappels down to', spot.name);
295
+ // Falls through to the normal arrival below.
259
296
  }
260
- // Fall from where you ACTUALLY got to, not from the top. Canon
261
- // buys distance with hits whether or not you finish, so a
262
- // runner who barely left the floor does not take a storey's
263
- // worth of landing.
264
- const dv = fallDamageDVMeters(reached);
265
- let fallNote = `Your grip goes, and there's nothing to catch -- you come off the wall about ${reached < 1 ? 'a body length' : `${Math.round(reached)}m`} up.`;
266
- if (dv > 0) {
267
- const soak = rollPool(actor.getSoakPool());
268
- const dealt = Math.max(0, dv - soak.hits);
269
- this.logger.meta(` Fall damage: DV ${dv} (${Math.round(reached)}m, AP -4), Soak: ${formatRoll(soak)}`);
270
- if (dealt > 0) {
271
- actor.takeDamage(dealt);
272
- fallNote += ` The landing costs you ${dealt} box${dealt === 1 ? '' : 'es'}: ${actor.conditionSummary()}`;
297
+ else {
298
+ // "On an unsuccessful test you don't slow down" (p.134): the
299
+ // rope runs and you arrive hard rather than not at all.
300
+ const dv = fallDamageDVMeters(climbSteps * METERS_PER_LEVEL);
301
+ descentNote = `You kick off and the line runs faster than you meant -- you come down the rope in a rush.`;
302
+ // Carried out to the arrival line below: a rushed rappel still
303
+ // lands you, so the story of it has to ride WITH the arrival
304
+ // rather than replacing it. Lint caught this built-and-dropped
305
+ // -- the player would have taken the damage and been told
306
+ // nothing about where it came from.
307
+ if (dv > 0) {
308
+ const soak = rollPool(actor.getSoakPool());
309
+ const dealt = Math.max(0, dv - soak.hits);
310
+ this.logger.meta(` Hard landing: DV ${dv}, Soak: ${formatRoll(soak)}`);
311
+ if (dealt > 0) {
312
+ actor.takeDamage(dealt);
313
+ descentNote += ` The landing costs you ${dealt} box${dealt === 1 ? '' : 'es'}: ${actor.conditionSummary()}`;
314
+ }
315
+ else {
316
+ descentNote += ` You hit hard and the armor eats it.`;
317
+ }
273
318
  }
274
319
  else {
275
- fallNote += ` You hit hard but the armor eats it.`;
320
+ descentNote += ` It is not far enough to hurt.`;
276
321
  }
322
+ actor.climbProgress = undefined;
323
+ this.actor.performAction('rappels down to', spot.name);
324
+ // A rushed rappel still ARRIVES -- you are down either way.
277
325
  }
278
- else {
279
- fallNote += ` It's a short drop -- you land badly and nothing breaks.`;
326
+ // A RAPPEL IS NOT A CLIMB, so it does not run one. Everything
327
+ // below belongs to going UP, or to going down the hard way.
328
+ }
329
+ else {
330
+ const athleticsSkill = actor.skillRating('athletics');
331
+ const pool = Math.max(1, actor.strength + (athleticsSkill > 0 ? athleticsSkill : -1) + actor.qualityBonus('athletics') + actor.augBonus('athletics') + (assisted ? 2 : 0) + surface.mod + actor.woundModifier - actor.sustainingPenalty);
332
+ const climb = rollPool(pool);
333
+ // HITS BUY DISTANCE -- there is no threshold (p.134, Climbing
334
+ // Table: "Unassisted climbing upward, 1 meter per 2 hits"). This
335
+ // used to be a flat "2 hits or you fall", which is a rule the book
336
+ // does not have: it made a one-metre scramble and a three-storey
337
+ // face equally hard, and it made a strong climber's extra hits
338
+ // buy nothing.
339
+ const meters = climbSteps * METERS_PER_LEVEL;
340
+ // BANKED PROGRESS (p.134): hits buy metres per TEST, and a wall is
341
+ // climbed over successive actions. Anything already banked toward
342
+ // THIS spot counts; progress toward a different one does not
343
+ // transfer, or a player could bank a metre on one wall and cash it
344
+ // in across the room.
345
+ const banked = actor.climbProgress?.target === spot.name ? actor.climbProgress.meters : 0;
346
+ const remaining = Math.max(0, meters - banked);
347
+ // DOWN IS TWICE AS FAST (p.134: "Unassisted climbing down, 1 metre
348
+ // per hit"). The engine climbed down at the upward rate, so a
349
+ // runner picking their way off a catwalk paid the same toll as
350
+ // getting onto it -- the item's third gap.
351
+ const needed = climbHitsFor(remaining, assisted, down);
352
+ const gained = climbMetersFrom(climb.hits, assisted, down);
353
+ const reachedTotal = Math.min(meters, banked + gained);
354
+ // ARRIVAL IS DECIDED IN METRES, not in hits, because metres are
355
+ // what the rule buys. The two agree almost always and diverged on
356
+ // the rounding: `needed` is a CEILING, so a roll could carry you
357
+ // the full remaining distance and still fall a fraction short of
358
+ // the integer threshold. On a bench that printed "you get about
359
+ // 3m up" on a 3m wall and then, next attempt, "3m already banked,
360
+ // 1m to go" -- arrived and not arrived at once.
361
+ //
362
+ // `needed` stays for the ticker, where a whole number of hits is
363
+ // the useful thing to read.
364
+ const gotUp = !climb.glitch && (banked + gained) >= meters;
365
+ // Same one-rounding rule as the prose below: round the banked
366
+ // figure once and derive the remainder from it, or the ticker
367
+ // says "2m banked, 2m to go" on a 3m wall.
368
+ const shownBanked = Math.round(banked);
369
+ this.logger.meta(` ${down ? 'Descend' : 'Climb'} ${meters}m${banked > 0 ? ` (${shownBanked}m already banked, ${Math.max(0, meters - shownBanked)}m to go)` : ''}${assisted ? ' -- ASSISTED (+2, 1m/hit)' : ''}${down && !assisted ? ' -- DOWN (1m/hit)' : ''}${surface.label ? ` [${surface.label}]` : ''} -- Gymnastics + Strength: ${formatRoll(climb)} (${needed} hits needed)`);
370
+ if (gotUp) {
371
+ // Over the lip: the wall is done with you.
372
+ actor.climbProgress = undefined;
373
+ }
374
+ if (!gotUp) {
375
+ // A FAILED CLIMB IS NOT A FALL (p.134, Climbing Failures and
376
+ // Glitches). Progress halts and you make a Reaction + Strength
377
+ // test to HOLD ON; only failing THAT drops you. Falling
378
+ // immediately was the engine's own invention, and it is the
379
+ // half of this that made climbing feel arbitrary -- one bad
380
+ // roll and gravity, with nothing in between.
381
+ const hold = rollPool(Math.max(1, actor.reaction + actor.strength + actor.woundModifier - actor.sustainingPenalty));
382
+ this.logger.meta(` Hold on -- Reaction + Strength: ${formatRoll(hold)} (1 hit holds)`);
383
+ const reached = reachedTotal;
384
+ if (hold.hits >= 1) {
385
+ // YOU KEEP THE METRES. This used to end "and climb back down",
386
+ // throwing the whole attempt away -- which is what made a tall
387
+ // wall unclimbable rather than merely slow. Hanging on with
388
+ // progress banked is the book's own shape: another Complex
389
+ // Action, from where you got to.
390
+ actor.climbProgress = { target: spot.name, meters: reached };
391
+ // THE TWO FIGURES HAVE TO ADD UP. Rounding each independently
392
+ // printed "about 2m up" and "about 2m still above you" on a
393
+ // 3m wall -- both are honest roundings of 1.5, and together
394
+ // they describe a 4m climb. Caught on a repro bench, where a
395
+ // reviewer would rightly have filed it as a maths bug.
396
+ //
397
+ // So the SHOWN height is rounded once and the remainder is
398
+ // derived from it. The banked progress keeps the exact value:
399
+ // the display is where the rounding belongs, not the state.
400
+ const shownUp = Math.round(reached);
401
+ const left = Math.max(0, meters - shownUp);
402
+ this.actor.performAction('climbs partway toward', `the ${spot.name}, and holds there`);
403
+ return `You get about ${reached < 1 ? 'a body length' : `${shownUp}m`} up and it stops going anywhere -- ${climb.glitch ? 'a hold shears away under your weight' : 'no purchase left within reach'}. You hang on, boots wedged, ${left < 1 ? 'the lip within reach' : `about ${left}m still above you`}.${hint(` (Climb again to keep going${assisted ? '' : '; rope and a harness would double your rate'}.)`)}`;
404
+ }
405
+ // THE SECOND CHANCE (p.134 Climbing Failures and Glitches;
406
+ // 6SmvvRRtn9eEMZSbF). Canon: the hold-on fails, you start to
407
+ // fall, "and during the next Action Phase the character may
408
+ // attempt to stop with a Reaction + Strength Test at a -2 dice
409
+ // pool modifier". Two tests, not one, and this engine only ever
410
+ // rolled the first.
411
+ //
412
+ // COMPRESSED, AND SAYING SO. The book puts a phase between them
413
+ // because a fall takes time -- 20m per Combat Turn. Every drop
414
+ // this engine can build is a few metres (METERS_PER_LEVEL is 3),
415
+ // so there is no phase to wait for: the catch resolves in the
416
+ // same breath as the slip. The MECHANIC is canon -- a second
417
+ // attempt, at -2 -- and only the gap between them is missing,
418
+ // which is the same translation the rappel makes above.
419
+ //
420
+ // THE FILED ITEM'S FRAMING WAS WRONG and the correction belongs
421
+ // here: there is no general "arrest any fall" rule in SR5. The
422
+ // RAG is explicit that a mid-fall save exists in exactly two
423
+ // places, this one and a failed rappel. A character who walks
424
+ // off a roof does not get it, and giving them one would be
425
+ // inventing a rule the book does not have.
426
+ const catchIt = rollPool(Math.max(1, actor.reaction + actor.strength - 2 + actor.woundModifier - actor.sustainingPenalty));
427
+ this.logger.meta(` Catch yourself -- Reaction + Strength -2: ${formatRoll(catchIt)} (1 hit stops the fall)`);
428
+ if (catchIt.hits >= 1) {
429
+ actor.climbProgress = { target: spot.name, meters: reached };
430
+ this.actor.performAction('slips on', `the ${spot.name} climb, and catches themselves`);
431
+ return `You come off -- and catch yourself a body length down, fingers screaming. You are still on the wall, about ${reached < 1 ? 'a body length' : `${Math.round(reached)}m`} up.${hint(` (Climb again to keep going.)`)}`;
432
+ }
433
+ // The grip goes: the wall takes back everything it gave.
434
+ actor.climbProgress = undefined;
435
+ // Fall from where you ACTUALLY got to, not from the top. Canon
436
+ // buys distance with hits whether or not you finish, so a
437
+ // runner who barely left the floor does not take a storey's
438
+ // worth of landing.
439
+ const dv = fallDamageDVMeters(reached);
440
+ let fallNote = `Your grip goes, and there's nothing to catch -- you come off the wall about ${reached < 1 ? 'a body length' : `${Math.round(reached)}m`} up.`;
441
+ if (dv > 0) {
442
+ const soak = rollPool(actor.getSoakPool());
443
+ const dealt = Math.max(0, dv - soak.hits);
444
+ this.logger.meta(` Fall damage: DV ${dv} (${Math.round(reached)}m, AP -4), Soak: ${formatRoll(soak)}`);
445
+ if (dealt > 0) {
446
+ actor.takeDamage(dealt);
447
+ fallNote += ` The landing costs you ${dealt} box${dealt === 1 ? '' : 'es'}: ${actor.conditionSummary()}`;
448
+ }
449
+ else {
450
+ fallNote += ` You hit hard but the armor eats it.`;
451
+ }
452
+ }
453
+ else {
454
+ fallNote += ` It's a short drop -- you land badly and nothing breaks.`;
455
+ }
456
+ this.actor.performAction('falls from', `a climb toward the ${spot.name}`);
457
+ return fallNote;
280
458
  }
281
- this.actor.performAction('falls from', `a climb toward the ${spot.name}`);
282
- return fallNote;
283
459
  }
284
460
  }
461
+ // BANKED CLIMB PROGRESS BELONGS TO ONE WALL. Anything that gets the
462
+ // actor to a spot -- this move, a step, a walk across the floor --
463
+ // ends whatever climb they were part-way up. Without this the metres
464
+ // would wait indefinitely and a player could bank a body length,
465
+ // wander off, and come back to a wall that had helpfully remembered.
466
+ if (actor.climbProgress && actor.climbProgress.target !== spot.name) {
467
+ actor.climbProgress = undefined;
468
+ }
285
469
  // "Away" is wherever the room's empty ground currently IS -- re-seat
286
470
  // it on the loneliest reachable cell before measuring the crossing
287
471
  // or committing the move (see spots.ts reseatOpenFloor).
@@ -344,7 +528,7 @@ export class MoveCommand extends Command {
344
528
  const company = toWhom
345
529
  ? `, coming up beside ${toWhom}.`
346
530
  : '.';
347
- return `You ${pace} the ${spot.name}${crossNote}${company}${spotDesc}${here.length > 0 ? ` Here: ${here.join(', ')}.` : ''}`;
531
+ return `${descentNote ? `${descentNote} ` : ''}You ${pace} the ${spot.name}${crossNote}${company}${spotDesc}${here.length > 0 ? ` Here: ${here.join(', ')}.` : ''}`;
348
532
  }
349
533
  /**
350
534
  * "move south 2" -- a tactical step across the room's own grid, as
@@ -453,6 +637,88 @@ export class MoveCommand extends Command {
453
637
  return undefined;
454
638
  return MoveCommand.directionIn(room, q);
455
639
  }
640
+ /**
641
+ * "locked" and "unlocked" -- whole words, and NOT each other.
642
+ * `\blocked\b` cannot match inside "unlocked" (there is no word
643
+ * boundary between "un" and "locked"), which is what lets these two be
644
+ * tested independently in either order.
645
+ */
646
+ static LOCKED_WORD = /\blocked\b/i;
647
+ static UNLOCKED_WORD = /\bunlocked\b/i;
648
+ /** The ways out in a given lock state, as the MAP reports it -- same
649
+ * two predicates commands/map.ts prints "(locked)"/"(unlocked)" from,
650
+ * so the words a player reads there mean the same thing when they
651
+ * type them back. */
652
+ static exitsByLockState(room, wantLocked) {
653
+ const out = [];
654
+ for (const [dir, exit] of room.exits) {
655
+ // A bare string exit is a destination with no door on it, so it
656
+ // has no lock state to name -- the same narrowing commands/map.ts
657
+ // does before it prints "(locked)".
658
+ if (!(exit instanceof Door))
659
+ continue;
660
+ const locked = exit.checkIfLocked();
661
+ const lockable = exit.checkIfLockable();
662
+ if (wantLocked ? locked : (lockable && !locked))
663
+ out.push(dir);
664
+ }
665
+ return out;
666
+ }
667
+ /** "south (to Redmond Safehouse), east (locked)" -- for a refusal that
668
+ * has to show the player what there actually is. */
669
+ static describeExits(room) {
670
+ const parts = [];
671
+ for (const [dir, exit] of room.exits) {
672
+ const state = exit instanceof Door
673
+ ? (exit.checkIfLocked() ? ' (locked)' : exit.checkIfLockable() ? ' (unlocked)' : '')
674
+ : '';
675
+ parts.push(`${String(dir)}${state}`);
676
+ }
677
+ return parts.join(', ');
678
+ }
679
+ /**
680
+ * A DOOR NAMED BY ITS LOCK STATE (TqKCyEZ23ppb4w5BP: "there's no
681
+ * location in Krow's Den in Seattle Undergroud to move to the locked
682
+ * door").
683
+ *
684
+ * The direction half of this was fixed at 28973218 and works. The
685
+ * qualifier the player ACTUALLY read off the map did not: `map` prints
686
+ * "East: To Lucky Chummer (locked)", they typed "move to locked door",
687
+ * and resolveSpot's substring branch matched the spot literally called
688
+ * "door" -- bound to the SOUTH exit -- because "locked door" contains
689
+ * "door". Same silent qualifier as the original report, one word over,
690
+ * and the same two answers: walked to the wrong door, then told they
691
+ * were already at it.
692
+ *
693
+ * SCOPED TO THE WORDS THE GAME ITSELF PRINTS. "locked" and "unlocked"
694
+ * are map vocabulary, so a player typing them is quoting the interface
695
+ * back at it and means something precise. "steel door" is NOT handled
696
+ * here and deliberately still falls through to the spot resolver --
697
+ * inventing a general adjective matcher would start refusing phrases
698
+ * that work today for no report's sake.
699
+ *
700
+ * A qualifier that names no door, or more than one, REFUSES and shows
701
+ * the ways out rather than silently picking one. Guessing is what
702
+ * produced both halves of the original report.
703
+ */
704
+ resolveDoorwayByLockState(room, query) {
705
+ const q = query.trim().toLowerCase();
706
+ if (!q || !MoveCommand.DOORISH.test(q))
707
+ return undefined;
708
+ const wantsUnlocked = MoveCommand.UNLOCKED_WORD.test(q);
709
+ const wantsLocked = !wantsUnlocked && MoveCommand.LOCKED_WORD.test(q);
710
+ if (!wantsLocked && !wantsUnlocked)
711
+ return undefined;
712
+ const matches = MoveCommand.exitsByLockState(room, wantsLocked);
713
+ if (matches.length === 1)
714
+ return { kind: 'doorway', dir: matches[0] };
715
+ const word = wantsLocked ? 'locked' : 'unlocked';
716
+ const ways = MoveCommand.describeExits(room);
717
+ if (matches.length === 0) {
718
+ return { kind: 'refusal', text: `Nothing here is ${word}.${ways ? ` The ways out: ${ways}.` : ''}` };
719
+ }
720
+ return { kind: 'refusal', text: `Which ${word} one? ${matches.map(d => String(d)).join(' or ')}.` };
721
+ }
456
722
  resolveDoorTarget(room, query) {
457
723
  const q = query.trim().toLowerCase();
458
724
  if (!q)
@@ -1 +1 @@
1
- {"version":3,"file":"move.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/move.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAChE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EACpF,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EACjF,cAAc,EAAE,eAAe,GAChC,MAAM,uBAAuB,CAAC;AAC/B,sEAAsE;AACtE,wEAAwE;AACxE,wEAAwE;AACxE,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AACtI,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,uVAAuV,CAAC;IAEvX,yEAAyE;IAC/D,IAAI;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QAEnC,gEAAgE;QAChE,gCAAgC;QAChC,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjE,+DAA+D;QAC/D,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,iEAAiE;QACjE,oEAAoE;QACpE,gEAAgE;QAChE,+DAA+D;QAC/D,gEAAgE;QAChE,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,kEAAkE;QAClE,wDAAwD;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;eAC9B,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,+DAA+D;QAC/D,6DAA6D;QAC7D,0CAA0C;QAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;eAC9D,CAAC,UAAU;eACX,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAe,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,wFAAwF,CAAC;YAClG,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBACvB,OAAO,sCAAsC,IAAI,CAAC,SAAS,SAAS,cAAc,CAAC,EAAE,CAAC;YACxF,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,UAAU,CAAC,IAAI,uDAAuD,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,kBAAkB,QAAQ,CAAC,IAAI,oCAAoC,CAAC;QAC7E,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,wFAAwF,CAAC;QAClG,CAAC;QAED,mEAAmE;QACnE,mEAAmE;QACnE,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;oBACpB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,8CAA8C,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClF,CAAC,CAAC,8CAA8C,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClH,CAAC;QAED,sDAAsD;QACtD,mEAAmE;QACnE,wBAAwB;QACxB,EAAE;QACF,gEAAgE;QAChE,+DAA+D;QAC/D,8DAA8D;QAC9D,kEAAkE;QAClE,kEAAkE;QAClE,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,2CAA2C;QAC3C,EAAE;QACF,gEAAgE;QAChE,+DAA+D;QAC/D,wBAAwB;QACxB,EAAE;QACF,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,+DAA+D;QAC/D,yBAAyB;QACzB,CAAC;YACC,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtE,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,4DAA4D;QAC5D,mEAAmE;QACnE,6DAA6D;QAC7D,kDAAkD;QAClD,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,0DAA0D;oBAC1D,wDAAwD;oBACxD,OAAO,GAAG,MAAM,CAAC,IAAI,kEAAkE,CAAC;gBAC1F,CAAC;gBACD,uDAAuD;gBACvD,wDAAwD;gBACxD,+DAA+D;gBAC/D,8DAA8D;gBAC9D,8DAA8D;gBAC9D,0CAA0C;gBAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,GAAG,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC1E,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QACD,oEAAoE;QACpE,kEAAkE;QAClE,8DAA8D;QAC9D,yBAAyB;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,mEAAmE;QACnE,6DAA6D;QAC7D,mEAAmE;QACnE,iEAAiE;QACjE,gEAAgE;QAChE,wDAAwD;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACzE,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,MAAM;gBACX,CAAC,CAAC,yBAAyB,IAAI,CAAC,IAAI,SAAS,MAAM,GAAG;gBACtD,CAAC,CAAC,yBAAyB,IAAI,CAAC,IAAI,GAAG,CAAC;QAC5C,CAAC;QAED,kEAAkE;QAClE,gEAAgE;QAChE,qEAAqE;QACrE,2DAA2D;QAC3D,6DAA6D;QAC7D,8BAA8B;QAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,OAAO;gBAAE,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChF,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,8DAA8D;QAC9D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QAED,mEAAmE;QACnE,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,4DAA4D;QAC5D,mEAAmE;QACnE,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,0DAA0D;YAC1D,kEAAkE;YAClE,gEAAgE;YAChE,kEAAkE;YAClE,qDAAqD;YACrD,EAAE;YACF,gEAAgE;YAChE,iEAAiE;YACjE,+DAA+D;YAC/D,iEAAiE;YACjE,gEAAgE;YAChE,4DAA4D;YAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACtM,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE7B,8DAA8D;YAC9D,iEAAiE;YACjE,mEAAmE;YACnE,iEAAiE;YACjE,+DAA+D;YAC/D,eAAe;YACf,MAAM,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,+BAA+B,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,eAAe,CAAC,CAAC;YAE9G,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,6DAA6D;gBAC7D,+DAA+D;gBAC/D,wDAAwD;gBACxD,4DAA4D;gBAC5D,4DAA4D;gBAC5D,6CAA6C;gBAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACpH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACxF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9D,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,uBAAuB,EAAE,OAAO,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;oBAC3F,OAAO,iBAAiB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,sCAAsC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,+BAA+B,qCAAqC,CAAC;gBACtP,CAAC;gBAED,+DAA+D;gBAC/D,0DAA0D;gBAC1D,4DAA4D;gBAC5D,oBAAoB;gBACpB,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,QAAQ,GAAG,+EAA+E,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;gBAC9J,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACd,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;wBACxB,QAAQ,IAAI,0BAA0B,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC;oBAC3G,CAAC;yBAAM,CAAC;wBACN,QAAQ,IAAI,sCAAsC,CAAC;oBACrD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,IAAI,0DAA0D,CAAC;gBACzE,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,mEAAmE;QACnE,yDAAyD;QACzD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3D,8DAA8D;QAC9D,+DAA+D;QAC/D,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAE9F,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACtD,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;QAEd,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,mEAAmE;QACnE,6DAA6D;QAC7D,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,kEAAkE;QAClE,6DAA6D;QAC7D,oEAAoE;QACpE,qEAAqE;QACrE,+BAA+B;QAC/B,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAEjG,qEAAqE;QACrE,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBACzF,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,mEAAmE;QACnE,iEAAiE;QACjE,gBAAgB;QAChB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,CAAC,IAAI,iBAAiB,IAAI,CAAC,IAAI,GAAG,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5D,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,qBAAqB;gBACrC,CAAC,CAAC,qBAAqB,CAAC;cACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,gEAAgE;QAChE,qCAAqC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,0CAA0C,MAAM,UAAU,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/I,CAAC;YACD,OAAO,iCAAiC,SAAS,qCAAqC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3J,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM;YACpB,CAAC,CAAC,sBAAsB,MAAM,GAAG;YACjC,CAAC,CAAC,GAAG,CAAC;QACR,OAAO,OAAO,IAAI,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/H,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU,CAAC,SAAoB,EAAE,KAAa;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QAEnC,oEAAoE;QACpE,+DAA+D;QAC/D,mEAAmE;QACnE,8DAA8D;QAC9D,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,gCAAgC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;YACxG,OAAO,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,+DAA+D;QAC/D,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QAC3D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB;gBAC1D,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,8BAA8B;oBAC1D,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB;wBAC9C,CAAC,CAAC,gBAAgB,CAAC;YACzB,OAAO,kBAAkB,SAAS,OAAO,GAAG,GAAG,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;QACvC,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;YAC7B,CAAC,CAAC,6BAA6B,MAAM,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B;gBAC/F,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,0BAA0B;oBACtD,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE;YACnE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,UAAU;YACvC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,YAAY,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,GAAG,SAAS,eAAe,KAAK,OAAO,CAAC;IACrH,CAAC;IAED;sEACkE;IAC1D,YAAY,CAAC,MAAc;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnH,OAAO,gCAAgC,MAAM,CAAC,IAAI,GAAG,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,+CAA+C,MAAM,CAAC,IAAI,GAAG,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAU,OAAO,GAAG,0DAA0D,CAAC;IAE7F,mEAAmE;IAC3D,MAAM,CAAC,WAAW,CAAC,IAAU,EAAE,CAAS;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC3E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,uBAAuB,CAAC,IAAU,EAAE,KAAa;QACvD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzD,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAEO,iBAAiB,CAAC,IAAU,EAAE,KAAa;QACjD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED;0EACsE;IAC9D,cAAc,CAAC,SAAoB;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,kBAAkB,SAAS,aAAa,CAAC;QACpE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,mCAAmC,SAAS,WAAW,CAAC;QAC1E,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,SAAS,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,oBAAoB,SAAS,YAAY,IAAI,CAAC,SAAS,SAAS,qBAAqB,CAAC,EAAE,CAAC;IAClG,CAAC;IAED,kEAAkE;IAC1D,iBAAiB,CAAC,IAAU,EAAE,KAAa;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACzF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAED;qDACiD;IACzC,WAAW,CAAC,IAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI;YAAE,OAAO,iCAAiC,IAAI,CAAC,IAAI,GAAG,CAAC;QAChE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACpD,OAAO,gBAAgB,IAAI,CAAC,IAAI,WAAW,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACvI,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,IAAU,EAAE,KAAa;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;;AAGH,8EAA8E;AAC9E,MAAM,OAAO,UAAW,SAAQ,WAAW;IAC/B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,WAAW,GAAG,yGAAyG,CAAC;IAC/H,IAAI;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;;AAGH,oEAAoE;AACpE,MAAM,OAAO,aAAc,SAAQ,WAAW;IAClC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,WAAW,GAAG,6DAA6D,CAAC;IACnF,IAAI;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC"}
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/move.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,14 @@ export class RestCommand extends Command {
59
59
  : `You find a corner, close your eyes, and let the static drain out.`];
60
60
  if (sleptNow)
61
61
  lines.push(` A real night's sleep, in a bed that's yours. It counts.`);
62
+ // Concentration doesn't survive sleep (p.251) -- every working this
63
+ // character personally sustains drops the moment they actually rest.
64
+ // Sits HERE, after every early return, so a refused rest ("too
65
+ // exposed", mid-firefight) never costs the threads.
66
+ const dropped = actor.releaseSustainedWorkings();
67
+ if (dropped > 0) {
68
+ lines.push(` The ${dropped === 1 ? 'working you were holding unravels' : `${dropped} workings you were holding unravel`} as your focus lets go -- the strain lifts with ${dropped === 1 ? 'it' : 'them'}.`);
69
+ }
62
70
  if (actor.stunTaken > 0) {
63
71
  // Home comfort is dice: the lifestyle tier adds (or, on the Street,
64
72
  // subtracts) from the recovery roll -- but only AT HOME. A corner of
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/rest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/rest.ts"],"names":[],"mappings":"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"}