@maka/maka-cli 5.88.0 → 5.90.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.
- package/bundle/typescript/package.json +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +12 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.d.ts +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +10 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +20 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +28 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +29 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +82 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +140 -43
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js +66 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +11 -3
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +71 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +88 -16
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +89 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +161 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js +2 -12
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +73 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +210 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +75 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +20 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +19 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +29 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js +2 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +1 -1
- package/package.json +1 -4
|
@@ -2,26 +2,32 @@ 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 { Player } from '../models/player.js';
|
|
5
6
|
import { Door } from '../models/door.js';
|
|
6
7
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
7
|
-
import { heldBy, holding } from '../utilities/grapple.js';
|
|
8
|
+
import { heldBy, holding, physicalLimit } from '../utilities/grapple.js';
|
|
8
9
|
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
10
|
// fallDamageDVMeters, not fallDamageDV: a climb that fell short drops
|
|
10
11
|
// you from where you GOT to, which is a distance in metres, not a whole
|
|
11
12
|
// storey. The storey-based wrapper still exists for callers that really
|
|
12
13
|
// do fall a level.
|
|
13
|
-
import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, climbSurfaceModifier, METERS_PER_CELL, METERS_PER_LEVEL, key } from '../utilities/room-grid.js';
|
|
14
|
+
import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, climbSurfaceModifier, METERS_PER_CELL, METERS_PER_LEVEL, key, distanceMeters } from '../utilities/room-grid.js';
|
|
14
15
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
15
16
|
/**
|
|
16
17
|
* "walk to <spot>" / "run to <spot>" / "sprint to <spot>" -- crossing
|
|
17
18
|
* the CURRENT room to one of its "at" spots (see utilities/spots.ts;
|
|
18
19
|
* player request: rooms felt like everything stood at your elbow). The
|
|
19
20
|
* three verbs are SR5e's movement modes (p.161-162); out of combat all
|
|
20
|
-
* three are free narration and differ only in flavor.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* three are free narration and differ only in flavor.
|
|
22
|
+
*
|
|
23
|
+
* IN COMBAT THEY COST GROUND (2QpCcKFKCynk9jYoX, second half of the
|
|
24
|
+
* coordinates ruling: the gap closes "either immediately out of combat,
|
|
25
|
+
* or with actions in combat"). A Combat Turn carries a budget -- Walk
|
|
26
|
+
* Rate Agility x 2 m, Run Rate Agility x 4 m, both whole-turn totals
|
|
27
|
+
* (p.161) -- crossing spends from it, exceeding the Walk Rate makes you
|
|
28
|
+
* RUNNING at -2 dice for the rest of the turn (p.162), and "sprint"
|
|
29
|
+
* rolls the Complex Action that buys more ground. See spendMovement.
|
|
30
|
+
* This replaced a flat refusal to move mid-exchange at all.
|
|
25
31
|
*
|
|
26
32
|
* "move" and "approach" alias walk. A Direction argument is a STEP
|
|
27
33
|
* across this room's grid ("move south 2"), never a room change -- on a
|
|
@@ -687,6 +693,66 @@ export class MoveCommand extends Command {
|
|
|
687
693
|
: `the ${actor.atSpot}`;
|
|
688
694
|
return `You step ${taken * 1} ${taken === 1 ? 'pace' : 'paces'} ${direction}${shortNote}. You're at ${place} now.`;
|
|
689
695
|
}
|
|
696
|
+
/**
|
|
697
|
+
* IS THIS ACTOR IN A COMBAT TURN AT ALL?
|
|
698
|
+
*
|
|
699
|
+
* `inExchange` is only true while an exchange is being resolved, so it
|
|
700
|
+
* cannot answer "am I in a fight" between commands. `lastExchangeAt`
|
|
701
|
+
* can, and it is the predicate resolvePartingShot already uses for
|
|
702
|
+
* "engaged" -- reusing it keeps one definition of being in a fight
|
|
703
|
+
* rather than minting a second that can drift from it.
|
|
704
|
+
*/
|
|
705
|
+
static FIGHT_WINDOW_MS = 60_000;
|
|
706
|
+
inCombatTurn(actor) {
|
|
707
|
+
return !!actor.combatOpponent && Date.now() - actor.lastExchangeAt < MoveCommand.FIGHT_WINDOW_MS;
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Bills a crossing against the Combat Turn's movement rate, or returns
|
|
711
|
+
* the refusal when there is not enough left (SR5 p.161-162).
|
|
712
|
+
*
|
|
713
|
+
* Returns undefined -- meaning "go ahead" -- whenever this is not a
|
|
714
|
+
* combat turn, which is every ordinary walk across a bar.
|
|
715
|
+
*/
|
|
716
|
+
spendMovement(actor, to) {
|
|
717
|
+
if (!this.inCombatTurn(actor))
|
|
718
|
+
return undefined;
|
|
719
|
+
const room = actor.currentLocation;
|
|
720
|
+
const from = actorCell(room, actor);
|
|
721
|
+
if (!from)
|
|
722
|
+
return undefined;
|
|
723
|
+
const cost = distanceMeters(from, to);
|
|
724
|
+
if (cost <= 0)
|
|
725
|
+
return undefined;
|
|
726
|
+
// THE SPRINT ACTION (p.162), and this is where the engine's existing
|
|
727
|
+
// "sprint to <x>" verb finally means something mechanical. Canon
|
|
728
|
+
// makes it a Complex Action -- Running + Strength [Physical], each
|
|
729
|
+
// hit buying more ground -- so it is rolled when the player asks for
|
|
730
|
+
// it, not applied automatically to cover a shortfall.
|
|
731
|
+
//
|
|
732
|
+
// ATHLETICS, NOT RUNNING: this engine's skill list has no Running
|
|
733
|
+
// (nor Gymnastics); it collapses both into `athletics`, which
|
|
734
|
+
// resolvePartingShot already rolls for exactly this -- breaking away
|
|
735
|
+
// at a dead run. Mapping canon's skill onto the one this game has is
|
|
736
|
+
// better than inventing a skill nobody can raise.
|
|
737
|
+
if (this.mode() === 'sprint' && actor.sprintMetersThisTurn === 0) {
|
|
738
|
+
const skill = actor.skillRating('athletics');
|
|
739
|
+
const roll = rollPool(Math.max(1, skill + actor.strength + actor.qualityBonus('athletics') + actor.augBonus('athletics') + actor.woundModifier), physicalLimit(actor));
|
|
740
|
+
const bought = roll.hits * Player.SPRINT_METERS_PER_HIT;
|
|
741
|
+
actor.sprintMetersThisTurn = bought;
|
|
742
|
+
this.logger.meta(`Sprint (Athletics + Strength [Physical]): ${formatRoll(roll)} -- +${bought} m this turn`);
|
|
743
|
+
}
|
|
744
|
+
if (cost > actor.movementLeftMeters) {
|
|
745
|
+
const left = actor.movementLeftMeters;
|
|
746
|
+
// Name the numbers. A refusal that says only "you can't" in a
|
|
747
|
+
// system the player cannot see is the kind of wall that gets
|
|
748
|
+
// reported as a bug.
|
|
749
|
+
return left <= 0
|
|
750
|
+
? `You've already covered your ground this turn (${actor.runRateMeters} m at a dead run). Nothing left in the legs until the next exchange.`
|
|
751
|
+
: `That's ${cost.toFixed(1)} m and you have ${left.toFixed(1)} m left this turn (Run Rate ${actor.runRateMeters} m).${hint(` ("sprint" buys more ground -- Athletics + Strength, ${Player.SPRINT_METERS_PER_HIT} m a hit.)`)}`;
|
|
752
|
+
}
|
|
753
|
+
actor.movedMetersThisTurn += cost;
|
|
754
|
+
return undefined;
|
|
755
|
+
}
|
|
690
756
|
/** Closes the last few paces to someone already at your own spot --
|
|
691
757
|
* you end up beside them rather than merely in the same zone. */
|
|
692
758
|
crossToActor(target) {
|
|
@@ -700,12 +766,20 @@ export class MoveCommand extends Command {
|
|
|
700
766
|
if (!cell || (actor.atCell && actor.atCell.x === cell.x && actor.atCell.y === cell.y && actor.atCell.z === cell.z)) {
|
|
701
767
|
return `You're already standing with ${target.name}.`;
|
|
702
768
|
}
|
|
769
|
+
// GROUND COSTS IN A FIGHT (2QpCcKFKCynk9jYoX, second half of the
|
|
770
|
+
// ruling: the gap closes "either immediately out of combat, or with
|
|
771
|
+
// actions in combat"). Out of a fight this whole block is skipped
|
|
772
|
+
// and you simply walk -- that is the "immediately" half.
|
|
773
|
+
const spend = this.spendMovement(actor, cell);
|
|
774
|
+
if (spend)
|
|
775
|
+
return spend;
|
|
703
776
|
actor.atCell = cell;
|
|
704
777
|
actor.atSpot = spotForCell(room, cell);
|
|
705
778
|
actor.performAction('steps up beside', target.name);
|
|
706
779
|
this.scene.updateStatus();
|
|
707
780
|
this.scene.updateExits(room);
|
|
708
|
-
|
|
781
|
+
const pace = actor.isRunningThisTurn ? ` You're running now -- everything else this turn is at -2.` : '';
|
|
782
|
+
return `You close the last few paces and stand with ${target.name}.${pace}`;
|
|
709
783
|
}
|
|
710
784
|
/**
|
|
711
785
|
* "move to north door" / "move to the east exit" / "move to door".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/move.ts"],"names":[],"mappings":"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"}
|
|
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;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AASzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,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,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE5K,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;GAoBG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACO,mBAAmB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO;gBACL,0EAA0E;gBAC1E,wMAAwM;aACzM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,oGAAoG,CAAC;QAC9G,CAAC;QACD,OAAO,+HAA+H,CAAC;IACzI,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,oEAAoE;QACpE,gDAAgD;QAEhD,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,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpC,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,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpC,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;YACnE,mEAAmE;YACnE,gEAAgE;YAChE,iEAAiE;YACjE,+CAA+C;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC;YACnD,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,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,+DAA+D;oBAC/D,2DAA2D;oBAC3D,UAAU;oBACV,EAAE;oBACF,+DAA+D;oBAC/D,yDAAyD;oBACzD,8DAA8D;oBAC9D,4DAA4D;oBAC5D,+DAA+D;oBAC/D,2DAA2D;oBAC3D,qDAAqD;oBACrD,EAAE;oBACF,+DAA+D;oBAC/D,mEAAmE;oBACnE,0DAA0D;oBAC1D,sDAAsD;oBACtD,8DAA8D;oBAC9D,8DAA8D;oBAC9D,kBAAkB;oBAClB,EAAE;oBACF,+DAA+D;oBAC/D,wBAAwB;oBACxB,4DAA4D;oBAC5D,+DAA+D;oBAC/D,+DAA+D;oBAC/D,0DAA0D;oBAC1D,SAAS;oBACT,EAAE;oBACF,6DAA6D;oBAC7D,2DAA2D;oBAC3D,2DAA2D;oBAC3D,6DAA6D;oBAC7D,8DAA8D;oBAC9D,4DAA4D;oBAC5D,EAAE;oBACF,4DAA4D;oBAC5D,6DAA6D;oBAC7D,qDAAqD;oBACrD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACnC,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,qEAAqE;QACrE,qEAAqE;QACrE,gDAAgD;QAChD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,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,gEAAgE;YAChE,kEAAkE;YAClE,mEAAmE;YACnE,gEAAgE;YAChE,+DAA+D;YAC/D,yBAAyB;YACzB,EAAE;YACF,6DAA6D;YAC7D,mEAAmE;YACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACtD,4EAA4E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAEzH,iEAAiE;YACjE,4DAA4D;YAC5D,+DAA+D;YAC/D,+CAA+C;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;YAEzB,mEAAmE;YACnE,gEAAgE;YAChE,6DAA6D;YAC7D,2DAA2D;YAC3D,MAAM,OAAO,GAAG,oBAAoB,CAClC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAEhI,iEAAiE;YACjE,iEAAiE;YACjE,iEAAiE;YACjE,+DAA+D;YAC/D,0DAA0D;YAC1D,EAAE;YACF,kEAAkE;YAClE,8DAA8D;YAC9D,mEAAmE;YACnE,kEAAkE;YAClE,kEAAkE;YAClE,gEAAgE;YAChE,+DAA+D;YAC/D,mEAAmE;YACnE,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACrB,6DAA6D;gBAC7D,wDAAwD;gBACxD,gCAAgC;gBAChC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACtK,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,UAAU,GAAG,gBAAgB,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvJ,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;oBACjB,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;oBAChC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvD,6CAA6C;gBAC/C,CAAC;qBAAM,CAAC;oBACN,6DAA6D;oBAC7D,wDAAwD;oBACxD,MAAM,EAAE,GAAG,kBAAkB,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC;oBAC7D,WAAW,GAAG,2FAA2F,CAAC;oBAC1G,+DAA+D;oBAC/D,6DAA6D;oBAC7D,+DAA+D;oBAC/D,0DAA0D;oBAC1D,oCAAoC;oBACpC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;wBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;4BACxB,WAAW,IAAI,0BAA0B,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC;wBAC9G,CAAC;6BAAM,CAAC;4BACN,WAAW,IAAI,sCAAsC,CAAC;wBACxD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,WAAW,IAAI,gCAAgC,CAAC;oBAClD,CAAC;oBACD,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;oBAChC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvD,4DAA4D;gBAC9D,CAAC;gBAEH,8DAA8D;gBAC9D,4DAA4D;YAC5D,CAAC;iBAAM,CAAC;gBACR,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACtD,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,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACzO,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE7B,8DAA8D;gBAC9D,iEAAiE;gBACjE,mEAAmE;gBACnE,iEAAiE;gBACjE,+DAA+D;gBAC/D,eAAe;gBACf,MAAM,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC;gBAC7C,mEAAmE;gBACnE,kEAAkE;gBAClE,6DAA6D;gBAC7D,mEAAmE;gBACnE,sBAAsB;gBACtB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;gBAC/C,mEAAmE;gBACnE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,2CAA2C;gBAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;gBACvD,gEAAgE;gBAChE,kEAAkE;gBAClE,iEAAiE;gBACjE,iEAAiE;gBACjE,gEAAgE;gBAChE,kEAAkE;gBAClE,gDAAgD;gBAChD,EAAE;gBACF,iEAAiE;gBACjE,4BAA4B;gBAC5B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC;gBAC3D,8DAA8D;gBAC9D,8DAA8D;gBAC9D,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,qBAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,8BAA8B,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,eAAe,CAAC,CAAC;gBAErX,IAAI,KAAK,EAAE,CAAC;oBACV,2CAA2C;oBAC3C,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;gBAClC,CAAC;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,6DAA6D;oBAC7D,+DAA+D;oBAC/D,wDAAwD;oBACxD,4DAA4D;oBAC5D,4DAA4D;oBAC5D,6CAA6C;oBAC7C,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;oBACpH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACxF,MAAM,OAAO,GAAG,YAAY,CAAC;oBAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;wBACnB,+DAA+D;wBAC/D,+DAA+D;wBAC/D,4DAA4D;wBAC5D,2DAA2D;wBAC3D,iCAAiC;wBACjC,KAAK,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7D,8DAA8D;wBAC9D,4DAA4D;wBAC5D,4DAA4D;wBAC5D,6DAA6D;wBAC7D,uDAAuD;wBACvD,EAAE;wBACF,2DAA2D;wBAC3D,8DAA8D;wBAC9D,4DAA4D;wBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;wBAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,uBAAuB,EAAE,OAAO,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;wBACvF,OAAO,iBAAiB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,sCAAsC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,+BAA+B,gCAAgC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,IAAI,mBAAmB,IAAI,IAAI,CAAC,8BAA8B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6CAA6C,IAAI,CAAC,EAAE,CAAC;oBACpZ,CAAC;oBAED,2DAA2D;oBAC3D,6DAA6D;oBAC7D,4DAA4D;oBAC5D,+DAA+D;oBAC/D,gEAAgE;oBAChE,oBAAoB;oBACpB,EAAE;oBACF,gEAAgE;oBAChE,+DAA+D;oBAC/D,iEAAiE;oBACjE,8DAA8D;oBAC9D,6DAA6D;oBAC7D,8DAA8D;oBAC9D,wDAAwD;oBACxD,EAAE;oBACF,gEAAgE;oBAChE,+DAA+D;oBAC/D,6DAA6D;oBAC7D,8DAA8D;oBAC9D,2DAA2D;oBAC3D,2CAA2C;oBAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC3H,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;oBAC9G,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;wBACtB,KAAK,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,gCAAgC,CAAC,CAAC;wBACvF,OAAO,8GAA8G,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAC/N,CAAC;oBAED,yDAAyD;oBACzD,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;oBAEhC,+DAA+D;oBAC/D,0DAA0D;oBAC1D,4DAA4D;oBAC5D,oBAAoB;oBACpB,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACvC,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;oBAC9J,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;wBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;4BACxB,QAAQ,IAAI,0BAA0B,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC;wBAC3G,CAAC;6BAAM,CAAC;4BACN,QAAQ,IAAI,sCAAsC,CAAC;wBACrD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,QAAQ,IAAI,0DAA0D,CAAC;oBACzE,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1E,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACD,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,iEAAiE;QACjE,qEAAqE;QACrE,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;QAClC,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,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,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;IACtK,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;;;;;;;;OAQG;IACK,MAAM,CAAU,eAAe,GAAG,MAAM,CAAC;IAEzC,YAAY,CAAC,KAAa;QAChC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC;IACnG,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,KAAa,EAAE,EAAa;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAEhC,qEAAqE;QACrE,iEAAiE;QACjE,mEAAmE;QACnE,qEAAqE;QACrE,sDAAsD;QACtD,EAAE;QACF,kEAAkE;QAClE,8DAA8D;QAC9D,qEAAqE;QACrE,qEAAqE;QACrE,kDAAkD;QAClD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CACnB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,EACzH,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;YACxD,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,UAAU,CAAC,IAAI,CAAC,QAAQ,MAAM,cAAc,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC;YACtC,8DAA8D;YAC9D,6DAA6D;YAC7D,qBAAqB;YACrB,OAAO,IAAI,IAAI,CAAC;gBACd,CAAC,CAAC,iDAAiD,KAAK,CAAC,aAAa,sEAAsE;gBAC5I,CAAC,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,KAAK,CAAC,aAAa,OAAO,IAAI,CAAC,wDAAwD,MAAM,CAAC,qBAAqB,YAAY,CAAC,EAAE,CAAC;QACnO,CAAC;QACD,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,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;QAED,iEAAiE;QACjE,oEAAoE;QACpE,kEAAkE;QAClE,yDAAyD;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,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,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,+CAA+C,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAC9E,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;IAED;;;;;OAKG;IACK,MAAM,CAAU,WAAW,GAAG,aAAa,CAAC;IAC5C,MAAM,CAAU,aAAa,GAAG,eAAe,CAAC;IAExD;;;0BAGsB;IACd,MAAM,CAAC,gBAAgB,CAAC,IAAU,EAAE,UAAmB;QAC7D,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,gEAAgE;YAChE,kEAAkE;YAClE,oCAAoC;YACpC,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC;gBAAE,SAAS;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;yDACqD;IAC7C,MAAM,CAAC,aAAa,CAAC,IAAU;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,YAAY,IAAI;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACK,yBAAyB,CAAC,IAAU,EAAE,KAAa;QACzD,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,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErD,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACvG,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,SAAS,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACtG,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"}
|
|
@@ -24,6 +24,26 @@ export interface IComplexForm {
|
|
|
24
24
|
/** Fading value = level + delta (min 2). */
|
|
25
25
|
fvDelta: number;
|
|
26
26
|
kind: 'instant' | 'sustained';
|
|
27
|
+
/**
|
|
28
|
+
* WHAT THE FORM AIMS AT -- the engine's read of canon's Target line,
|
|
29
|
+
* and the reason a form does or does not demand `at <name>`.
|
|
30
|
+
*
|
|
31
|
+
* 'icon' -- Target: Device (p.252 also allows a persona). Named, or
|
|
32
|
+
* the action does not happen.
|
|
33
|
+
* 'sprite' -- Target: Sprite (p.253 Stitches). Named among your own.
|
|
34
|
+
* 'none' -- the weave settles on YOUR persona and nothing else is
|
|
35
|
+
* chosen, so there is nothing to name.
|
|
36
|
+
*
|
|
37
|
+
* The rule this encodes, checked against the books rather than
|
|
38
|
+
* remembered: a complex form's Target line says what may be chosen,
|
|
39
|
+
* threading itself restricts the choice to icons you have SPOTTED
|
|
40
|
+
* (p.251), and spells make the same step explicit ("Step 2: Choose
|
|
41
|
+
* the Target", p.281). The target is part of the action. Deditri
|
|
42
|
+
* filed exactly that -- "Threads and Spells that require targets need
|
|
43
|
+
* to be part of the action. It can't just default" -- and the engine
|
|
44
|
+
* now agrees for every form that takes one.
|
|
45
|
+
*/
|
|
46
|
+
aim: 'none' | 'icon' | 'sprite';
|
|
27
47
|
}
|
|
28
48
|
export declare const FORMS: IComplexForm[];
|
|
29
49
|
export declare class ThreadCommand extends Command implements ICommand {
|
|
@@ -39,6 +59,31 @@ export declare class ThreadCommand extends Command implements ICommand {
|
|
|
39
59
|
long: string;
|
|
40
60
|
})[];
|
|
41
61
|
execute(args?: string[]): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* WHAT THIS WEAVE IS AIMED AT, decided before a single die is rolled.
|
|
64
|
+
*
|
|
65
|
+
* ONE PLACE, EVERY FORM. The old code asked this question inside each
|
|
66
|
+
* form's own resolution, so `resonance-spike` grew a targeting rule
|
|
67
|
+
* and `stitches` -- which canon also gives a Target line (p.253:
|
|
68
|
+
* "Target: Sprite") -- kept picking the first sprite in the list. That
|
|
69
|
+
* is the same defect Deditri filed, one case down the switch, and
|
|
70
|
+
* fixing the one they happened to hit would have reproduced their
|
|
71
|
+
* report the first time a technomancer held two sprites.
|
|
72
|
+
*
|
|
73
|
+
* NOTHING IS EVER CHOSEN FOR YOU. Not the lone hostile in the room,
|
|
74
|
+
* not whoever you are already fighting, not your only sprite. That is
|
|
75
|
+
* cast.ts's rule, arrived at from the same books ("Step 2: Choose the
|
|
76
|
+
* Target", p.281), and the reason the two verbs now agree is that
|
|
77
|
+
* they are answering one question the books ask once.
|
|
78
|
+
*
|
|
79
|
+
* DELIBERATELY NOT sustain.ts's RULE, and the difference is worth
|
|
80
|
+
* stating because the two look alike. `sustain` picks silently when
|
|
81
|
+
* you hold one registered sprite, and its comment explains why: p.256
|
|
82
|
+
* gives the hand-off and says nothing about designating one sprite
|
|
83
|
+
* among several, so that is UI, and UI may be convenient. A form's
|
|
84
|
+
* Target line is not UI. Do not "harmonize" these.
|
|
85
|
+
*/
|
|
86
|
+
private resolveAim;
|
|
42
87
|
/** Per-form resolution once the weave holds (hits >= 1). */
|
|
43
88
|
private resolveForm;
|
|
44
89
|
}
|
|
@@ -3,11 +3,26 @@ import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
|
3
3
|
import { hint } from '../utilities/hints.js';
|
|
4
4
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
5
|
import { NPC } from '../models/npc.js';
|
|
6
|
+
import { sameHostSide } from '../models/player.js';
|
|
6
7
|
export const FORMS = [
|
|
7
|
-
{ key: 'resonance-spike', name: 'Resonance Spike', blurb: 'raw Resonance as a weapon -- boxes of Matrix damage, no marks, no mercy', fvDelta: -1, kind: 'instant' },
|
|
8
|
-
{ key: 'stitches', name: 'Stitches', blurb: 'rethread a damaged sprite -- repairs its condition monitor', fvDelta: 0, kind: 'instant' },
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
{ key: 'resonance-spike', name: 'Resonance Spike', blurb: 'raw Resonance as a weapon -- boxes of Matrix damage, no marks, no mercy', fvDelta: -1, kind: 'instant', aim: 'icon' },
|
|
9
|
+
{ key: 'stitches', name: 'Stitches', blurb: 'rethread a damaged sprite -- repairs its condition monitor', fvDelta: 0, kind: 'instant', aim: 'sprite' },
|
|
10
|
+
// AIM 'none' IS A STATEMENT ABOUT THIS ENGINE, NOT ABOUT CANON.
|
|
11
|
+
//
|
|
12
|
+
// Asked directly, the rules return Infusion of [Matrix Attribute] --
|
|
13
|
+
// Target: Device, Duration S, FV L+1 (p.252) -- which is what these
|
|
14
|
+
// two are, renamed and flattened: a sustained boost to a Matrix
|
|
15
|
+
// attribute. Canon lets an Infusion be aimed at another icon, and
|
|
16
|
+
// this engine only ever applies it to the threader's own persona.
|
|
17
|
+
//
|
|
18
|
+
// So the honest label is 'none': nothing is being chosen FOR you
|
|
19
|
+
// here, which is the defect this sweep is about. Aiming a buff at
|
|
20
|
+
// somebody else is a capability the engine does not have, and adding
|
|
21
|
+
// a target prompt for a target the code cannot use would be the
|
|
22
|
+
// worse failure -- a syntax that refuses everything you type.
|
|
23
|
+
// Reported rather than invented; see the note on the sweep.
|
|
24
|
+
{ key: 'diagnostics', name: 'Diagnostics', blurb: 'the code shows you its seams -- +2 to your Matrix pools while held', fvDelta: -1, kind: 'sustained', aim: 'none' },
|
|
25
|
+
{ key: 'static-veil', name: 'Static Veil', blurb: 'you read as background noise -- +2 Matrix defense while held', fvDelta: -1, kind: 'sustained', aim: 'none' },
|
|
11
26
|
];
|
|
12
27
|
export class ThreadCommand extends Command {
|
|
13
28
|
static verb = 'thread';
|
|
@@ -67,7 +82,7 @@ export class ThreadCommand extends Command {
|
|
|
67
82
|
// must not fuzzy-match a form called something with "hammer" in it.
|
|
68
83
|
// Everything after "at" is the target and nothing else looks at it.
|
|
69
84
|
const atIdx = words.findIndex(w => w.toLowerCase() === 'at');
|
|
70
|
-
const
|
|
85
|
+
const namedTarget = atIdx >= 0 ? words.slice(atIdx + 1).join(' ').trim() : '';
|
|
71
86
|
if (atIdx >= 0)
|
|
72
87
|
words = words.slice(0, atIdx);
|
|
73
88
|
const numArg = words.find(w => /^\d+$/.test(w));
|
|
@@ -88,6 +103,24 @@ export class ThreadCommand extends Command {
|
|
|
88
103
|
return `${form.name} is already woven and held. ("thread drop ${form.key}" releases it first.)`;
|
|
89
104
|
}
|
|
90
105
|
const overreach = level > actor.resonance;
|
|
106
|
+
// AIM BEFORE YOU ROLL -- the half of this that is not about
|
|
107
|
+
// targeting at all.
|
|
108
|
+
//
|
|
109
|
+
// The refusals used to live inside resolveForm, which runs AFTER
|
|
110
|
+
// the threading test and after Fading is computed. That was
|
|
111
|
+
// survivable while a refusal was a rare ambiguity; it is not
|
|
112
|
+
// survivable now that naming no target refuses every time, because
|
|
113
|
+
// then a typo costs a Complex Action AND a stun box. Measured, not
|
|
114
|
+
// supposed: a targetless spike printed "the spike arcs and grounds
|
|
115
|
+
// out" and "The fading bites -- 1 stun" in the same breath.
|
|
116
|
+
//
|
|
117
|
+
// cast.ts has always refused at the door -- `cast manabolt` with no
|
|
118
|
+
// target answers "Cast it at whom?" and rolls nothing. Threads now
|
|
119
|
+
// do the same. A refusal is the game saying the action did not
|
|
120
|
+
// happen; charging for it says the opposite.
|
|
121
|
+
const aim = this.resolveAim(form, namedTarget);
|
|
122
|
+
if (aim.refusal)
|
|
123
|
+
return aim.refusal;
|
|
91
124
|
// The threading test: Resonance + software [Level] -- hits capped
|
|
92
125
|
// by the Level, unskilled defaults at -1 (the conjuring school).
|
|
93
126
|
const software = actor.skillRating('software');
|
|
@@ -113,7 +146,7 @@ export class ThreadCommand extends Command {
|
|
|
113
146
|
lines.push(` The weave slips through your fingers -- nothing holds.`);
|
|
114
147
|
}
|
|
115
148
|
else {
|
|
116
|
-
lines.push(...this.resolveForm(form, level, hits,
|
|
149
|
+
lines.push(...this.resolveForm(form, level, hits, aim));
|
|
117
150
|
}
|
|
118
151
|
this.logger.meta(`Fading (${fadingValue}${overreach ? ', OVERREACH -- physical' : ''}): resist ${formatRoll(resist)}`);
|
|
119
152
|
if (fadingTaken === 0) {
|
|
@@ -133,8 +166,99 @@ export class ThreadCommand extends Command {
|
|
|
133
166
|
this.scene.updateStatus();
|
|
134
167
|
return lines.join('\n');
|
|
135
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* WHAT THIS WEAVE IS AIMED AT, decided before a single die is rolled.
|
|
171
|
+
*
|
|
172
|
+
* ONE PLACE, EVERY FORM. The old code asked this question inside each
|
|
173
|
+
* form's own resolution, so `resonance-spike` grew a targeting rule
|
|
174
|
+
* and `stitches` -- which canon also gives a Target line (p.253:
|
|
175
|
+
* "Target: Sprite") -- kept picking the first sprite in the list. That
|
|
176
|
+
* is the same defect Deditri filed, one case down the switch, and
|
|
177
|
+
* fixing the one they happened to hit would have reproduced their
|
|
178
|
+
* report the first time a technomancer held two sprites.
|
|
179
|
+
*
|
|
180
|
+
* NOTHING IS EVER CHOSEN FOR YOU. Not the lone hostile in the room,
|
|
181
|
+
* not whoever you are already fighting, not your only sprite. That is
|
|
182
|
+
* cast.ts's rule, arrived at from the same books ("Step 2: Choose the
|
|
183
|
+
* Target", p.281), and the reason the two verbs now agree is that
|
|
184
|
+
* they are answering one question the books ask once.
|
|
185
|
+
*
|
|
186
|
+
* DELIBERATELY NOT sustain.ts's RULE, and the difference is worth
|
|
187
|
+
* stating because the two look alike. `sustain` picks silently when
|
|
188
|
+
* you hold one registered sprite, and its comment explains why: p.256
|
|
189
|
+
* gives the hand-off and says nothing about designating one sprite
|
|
190
|
+
* among several, so that is UI, and UI may be convenient. A form's
|
|
191
|
+
* Target line is not UI. Do not "harmonize" these.
|
|
192
|
+
*/
|
|
193
|
+
resolveAim(form, query) {
|
|
194
|
+
const actor = this.actor;
|
|
195
|
+
if (form.aim === 'none') {
|
|
196
|
+
if (query.length > 0) {
|
|
197
|
+
return { refusal: `${form.name} settles on your own persona -- there is nothing to aim it at.` };
|
|
198
|
+
}
|
|
199
|
+
return {};
|
|
200
|
+
}
|
|
201
|
+
if (form.aim === 'sprite') {
|
|
202
|
+
const sprites = this.game?.companions.filter(c => c.kind === 'sprite') ?? [];
|
|
203
|
+
if (sprites.length === 0) {
|
|
204
|
+
return { refusal: `Stitches finds nothing to mend -- no sprite rides with you.${hint(` ("compile <type> <level>" threads one.)`)}` };
|
|
205
|
+
}
|
|
206
|
+
const roster = sprites.map(s => `"${s.npc.name}"`).join(', ');
|
|
207
|
+
if (query.length === 0) {
|
|
208
|
+
return { refusal: `Stitch WHICH sprite? Yours: ${roster}.${hint(` ("thread stitches <level> at <name>")`)}` };
|
|
209
|
+
}
|
|
210
|
+
const picked = fuzzyPickName(query, sprites.map(s => s.npc.name));
|
|
211
|
+
if (!picked) {
|
|
212
|
+
return { refusal: `No sprite of yours answers to "${query}". Yours: ${roster}.` };
|
|
213
|
+
}
|
|
214
|
+
return { sprite: sprites.find(s => s.npc.name === picked) };
|
|
215
|
+
}
|
|
216
|
+
// form.aim === 'icon'
|
|
217
|
+
if (actor.plane !== 'matrix') {
|
|
218
|
+
return { refusal: `The spike has nowhere to earth itself out here.${hint(` ("jack in" -- the Resonance strikes on the grid.)`)}` };
|
|
219
|
+
}
|
|
220
|
+
// ONLY WHAT IS ON YOUR SIDE OF THE WALL (p.246, and p.251: "You can
|
|
221
|
+
// only use complex forms on icons you've spotted"). Without
|
|
222
|
+
// sameHostSide this was the room's raw actor roll, so a persona
|
|
223
|
+
// inside a host could spike icons standing out on the street -- and
|
|
224
|
+
// a persona on the street could spike ice the grid view had just
|
|
225
|
+
// refused to name.
|
|
226
|
+
//
|
|
227
|
+
// THE REFUSALS DELIBERATELY DO NOT SAY WHAT IS ON THE OTHER SIDE.
|
|
228
|
+
// "Nothing in reach" is the whole truth a persona is entitled to:
|
|
229
|
+
// naming the ice behind the wall would leak exactly what the wall
|
|
230
|
+
// exists to hide.
|
|
231
|
+
const icons = actor.currentLocation.getActors()
|
|
232
|
+
.filter((a) => a instanceof NPC && a.plane === 'matrix' && !a.deathClaimed && a !== actor
|
|
233
|
+
&& sameHostSide(actor, a));
|
|
234
|
+
const foes = icons.filter(a => !a.allyOf);
|
|
235
|
+
if (query.length === 0) {
|
|
236
|
+
// NAMING NOTHING IS NOW A REFUSAL EVERY TIME, not only when the
|
|
237
|
+
// room was ambiguous. The lone-foe and combatOpponent fallbacks
|
|
238
|
+
// that used to sit here were the rest of what Deditri filed: they
|
|
239
|
+
// stopped choosing your SPRITE, and went on choosing.
|
|
240
|
+
//
|
|
241
|
+
// The two answers are different events and read differently. With
|
|
242
|
+
// something to aim at, the question is which; with nothing, the
|
|
243
|
+
// fact is that the grid is empty of enemies -- and your own icons
|
|
244
|
+
// are named there, because "your sprite is standing right here
|
|
245
|
+
// and is not a candidate" is the whole point of the fix.
|
|
246
|
+
return foes.length > 0
|
|
247
|
+
? { refusal: `Spike WHAT? Name it: ${foes.map(f => f.name).join(', ')}.${hint(` ("thread resonance-spike <level> at <name>")`)}` }
|
|
248
|
+
: { refusal: `Spike WHAT? Nothing hostile rides this grid.${icons.length > 0 ? ` Only your own: ${icons.map(i => i.name).join(', ')}.` : ''}` };
|
|
249
|
+
}
|
|
250
|
+
// AN ALLY CAN STILL BE NAMED OUT LOUD -- there are reasons to burn
|
|
251
|
+
// your own construct -- so the match runs against every icon in
|
|
252
|
+
// reach, not just the hostile ones. What changed is that nothing
|
|
253
|
+
// picks one for you.
|
|
254
|
+
const named = fuzzyPickName(query, icons.map(i => i.name));
|
|
255
|
+
if (!named) {
|
|
256
|
+
return { refusal: `Nothing on this grid answers to "${query}".${icons.length > 0 ? ` In reach: ${icons.map(i => i.name).join(', ')}.` : ''}` };
|
|
257
|
+
}
|
|
258
|
+
return { icon: icons.find(i => i.name === named) };
|
|
259
|
+
}
|
|
136
260
|
/** Per-form resolution once the weave holds (hits >= 1). */
|
|
137
|
-
resolveForm(form, level, hits,
|
|
261
|
+
resolveForm(form, level, hits, aim) {
|
|
138
262
|
const actor = this.actor;
|
|
139
263
|
switch (form.key) {
|
|
140
264
|
case 'resonance-spike': {
|
|
@@ -143,39 +267,9 @@ export class ThreadCommand extends Command {
|
|
|
143
267
|
// targets need to be part of the action. It can't just
|
|
144
268
|
// default").
|
|
145
269
|
//
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
// all -- while the comment above it claimed "nearest hostile
|
|
150
|
-
// icon". Your own sprite is an NPC standing on the grid beside
|
|
151
|
-
// you, so it was usually first in the list. The engine shot the
|
|
152
|
-
// runner's own construct and called it an enemy.
|
|
153
|
-
//
|
|
154
|
-
// YOUR OWN NEVER GET PICKED FOR YOU. An ally can still be named
|
|
155
|
-
// out loud -- there are reasons to burn your own sprite -- but
|
|
156
|
-
// nothing chooses one on your behalf.
|
|
157
|
-
if (actor.plane !== 'matrix') {
|
|
158
|
-
return [` The spike has nowhere to earth itself out here.${hint(` ("jack in" -- the Resonance strikes on the grid.)`)}`];
|
|
159
|
-
}
|
|
160
|
-
const icons = actor.currentLocation.getActors()
|
|
161
|
-
.filter((a) => a instanceof NPC && a.plane === 'matrix' && !a.deathClaimed && a !== actor);
|
|
162
|
-
const foes = icons.filter(a => !a.allyOf);
|
|
163
|
-
const named = spikeTarget.length > 0 ? fuzzyPickName(spikeTarget, icons.map(i => i.name)) : undefined;
|
|
164
|
-
if (spikeTarget.length > 0 && !named) {
|
|
165
|
-
return [` Nothing on this grid answers to "${spikeTarget}".${icons.length > 0 ? ` In reach: ${icons.map(i => i.name).join(', ')}.` : ''}`];
|
|
166
|
-
}
|
|
167
|
-
const target = named
|
|
168
|
-
? icons.find(i => i.name === named)
|
|
169
|
-
: (actor.combatOpponent instanceof NPC && actor.combatOpponent.plane === 'matrix' && !actor.combatOpponent.allyOf
|
|
170
|
-
? actor.combatOpponent
|
|
171
|
-
: foes.length === 1 ? foes[0] : undefined);
|
|
172
|
-
if (!target) {
|
|
173
|
-
// Refuse rather than guess, and SAY what the choices are --
|
|
174
|
-
// the house pattern for an ambiguous target.
|
|
175
|
-
return foes.length > 1
|
|
176
|
-
? [` Spike WHAT? More than one icon is in reach: ${foes.map(f => f.name).join(', ')}.${hint(` ("thread resonance-spike <level> at <name>")`)}`]
|
|
177
|
-
: [` The spike arcs and grounds out -- no hostile icon in reach.${icons.length > 0 ? ` Only your own ride the grid here: ${icons.map(i => i.name).join(', ')}.` : ''}`];
|
|
178
|
-
}
|
|
270
|
+
// The choosing happens in resolveAim, before the dice. What is
|
|
271
|
+
// left here is what canon does once a named icon is struck.
|
|
272
|
+
const target = aim.icon;
|
|
179
273
|
// CANON'S OWN TEST (p.253): Resonance Spike is Software +
|
|
180
274
|
// Resonance [Level] v. WILLPOWER + FIREWALL, and it deals ONE
|
|
181
275
|
// BOX PER NET HIT with no chance to resist. The threading roll
|
|
@@ -197,9 +291,12 @@ export class ThreadCommand extends Command {
|
|
|
197
291
|
return [` The spike lands SQUARE on ${target.name} -- ${net} box${net === 1 ? '' : 'es'} of raw Resonance${fell ? `, and its code shears apart` : ` (${target.conditionSummary()})`}.`];
|
|
198
292
|
}
|
|
199
293
|
case 'stitches': {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
294
|
+
// TARGET: SPRITE (p.253), and the sprite is named. This used to
|
|
295
|
+
// read `companions.find(c => c.kind === 'sprite')` -- the first
|
|
296
|
+
// one in the list, whichever that happened to be, with a second
|
|
297
|
+
// registered sprite silently unreachable. Same defect as the
|
|
298
|
+
// spike's, one case down the switch; resolveAim owns it now.
|
|
299
|
+
const sprite = aim.sprite;
|
|
203
300
|
const before = sprite.npc.damageTaken;
|
|
204
301
|
sprite.npc.healDamage(hits);
|
|
205
302
|
const healed = before - sprite.npc.damageTaken;
|