@maka/maka-cli 5.6.0 → 5.8.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 +2 -2
- package/bundle/typescript/src/commands/_index.d.ts +4 -0
- package/bundle/typescript/src/commands/_index.js +4 -0
- package/bundle/typescript/src/commands/_index.js.map +1 -1
- package/bundle/typescript/src/commands/debug.js +1 -7
- package/bundle/typescript/src/commands/debug.js.map +1 -1
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +33 -32
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/env/_index.d.ts +3 -0
- package/bundle/typescript/src/commands/env/_index.js +4 -0
- package/bundle/typescript/src/commands/env/_index.js.map +1 -0
- package/bundle/typescript/src/commands/env/env.command.d.ts +3 -0
- package/bundle/typescript/src/commands/env/env.command.js +22 -0
- package/bundle/typescript/src/commands/env/env.command.js.map +1 -0
- package/bundle/typescript/src/commands/env/get.sub.cmd.d.ts +1 -0
- package/bundle/typescript/src/commands/env/get.sub.cmd.js +46 -0
- package/bundle/typescript/src/commands/env/get.sub.cmd.js.map +1 -0
- package/bundle/typescript/src/commands/env/prompt-for-env.d.ts +10 -0
- package/bundle/typescript/src/commands/env/prompt-for-env.js +27 -0
- package/bundle/typescript/src/commands/env/prompt-for-env.js.map +1 -0
- package/bundle/typescript/src/commands/env/set.sub.cmd.d.ts +1 -0
- package/bundle/typescript/src/commands/env/set.sub.cmd.js +59 -0
- package/bundle/typescript/src/commands/env/set.sub.cmd.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +81 -2
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +31 -0
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +125 -0
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.d.ts +17 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +113 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +37 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +197 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +21 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +13 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +97 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +21 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +41 -27
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +6 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +54 -20
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +35 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +306 -55
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.d.ts +33 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +137 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +37 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drink.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drink.js +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drink.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/eat.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/eat.js +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/eat.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +101 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +6 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +67 -22
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +15 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +58 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +125 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/install.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/install.js +125 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +83 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +76 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +7 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.d.ts +19 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +151 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pay.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pay.js +39 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pay.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +6 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +60 -12
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +27 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +15 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +125 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +36 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +27 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.d.ts +19 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +112 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +67 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +29 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +118 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +132 -5
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +6 -2
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +10 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +196 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +828 -31
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +111 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +33 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +232 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +111 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +432 -41
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +38 -14
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +48 -8
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +155 -0
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +274 -5
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +82 -8
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.d.ts +13 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +28 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +15 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +207 -34
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.d.ts +56 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js +144 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +7 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js +49 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +107 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.js +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +51 -15
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +27 -1
- package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/run/run.command.js +1 -7
- package/bundle/typescript/src/commands/run/run.command.js.map +1 -1
- package/bundle/typescript/src/commands/ssl.js +10 -15
- package/bundle/typescript/src/commands/ssl.js.map +1 -1
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js +1 -6
- package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/generators/config.js +11 -10
- package/bundle/typescript/src/generators/config.js.map +1 -1
- package/bundle/typescript/src/templates/meteor/config/pm2.config.js +3 -3
- package/bundle/typescript/src/templates/meteor/project/gitignore +2 -1
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +3 -4
- package/bundle/typescript/src/tool.d.ts +2 -0
- package/bundle/typescript/src/tool.js +3 -0
- package/bundle/typescript/src/tool.js.map +1 -1
- package/bundle/typescript/src/tools/aws/aws.class.js +6 -4
- package/bundle/typescript/src/tools/aws/aws.class.js.map +1 -1
- package/bundle/typescript/src/tools/dotenvx/dotenvx.class.d.ts +24 -0
- package/bundle/typescript/src/tools/dotenvx/dotenvx.class.js +66 -0
- package/bundle/typescript/src/tools/dotenvx/dotenvx.class.js.map +1 -0
- package/bundle/typescript/src/tools/ssh/ssh.class.js +1 -1
- package/bundle/typescript/src/tools/ssh/ssh.class.js.map +1 -1
- package/bundle/typescript/src/tools/ssl/ssl.class.d.ts +8 -0
- package/bundle/typescript/src/tools/ssl/ssl.class.js +53 -0
- package/bundle/typescript/src/tools/ssl/ssl.class.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,16 +5,49 @@ import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
|
5
5
|
import { describeFledTarget } from '../utilities/pursuit.js';
|
|
6
6
|
import { crossPlaneRefusal } from '../utilities/planes.js';
|
|
7
7
|
const SPELLS = {
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
armor
|
|
8
|
+
// The direct trio (RAW p.283-284, drain F-3): mana spells slide past
|
|
9
|
+
// armor AND body to grip the mind (Willpower resists); powerbolt is
|
|
10
|
+
// the physical twin (Body resists, still no armor); stunbolt is the
|
|
11
|
+
// mercy setting -- same reach, knockout instead of kill. Damage base
|
|
12
|
+
// = Force - 2.
|
|
13
|
+
manabolt: { drainOffset: -3, soak: 'willpower' },
|
|
14
|
+
stunbolt: { drainOffset: -3, soak: 'willpower', stun: true },
|
|
15
|
+
powerbolt: { drainOffset: -3, soak: 'body' },
|
|
16
|
+
// Indirect elemental (p.283): thrown like a gun, soaked like one --
|
|
17
|
+
// full Body + armor minus AP floor(F/3) -- but damage base = FULL
|
|
18
|
+
// Force, and the drain is the worst (RAW F-1, softened to F-2).
|
|
19
|
+
fireball: { drainOffset: -2, soak: 'armor' },
|
|
20
|
+
// Magical healing (RAW p.288, drain F-4): hits restore boxes, capped
|
|
21
|
+
// at the Force -- a cheap low-Force heal can only knit so much.
|
|
22
|
+
heal: { drainOffset: -4 },
|
|
23
|
+
// Sustained mystic armor: +ceil(F/3) + focus soak while held, -2 dice
|
|
24
|
+
// to everything else. Cast again to release. (RAW F-2, softened.)
|
|
25
|
+
armor: { drainOffset: -4 },
|
|
26
|
+
// Sustained utility (RAW p.288/p.291, engine-scaled): invisibility
|
|
27
|
+
// bends light (+3 on sneak contests), increase reflexes runs the
|
|
28
|
+
// nerves hot (+2 initiative). Effects are flat; Force only prices the
|
|
29
|
+
// drain -- cast them low and cheap. (RAW F-2/F-1, softened.)
|
|
30
|
+
invisibility: { drainOffset: -4 },
|
|
31
|
+
reflexes: { drainOffset: -3 },
|
|
32
|
+
};
|
|
33
|
+
/** Per-combat-spell narration: the moment of the cast and the kill line. */
|
|
34
|
+
const COMBAT_SPELL_FLAVOR = {
|
|
35
|
+
manabolt: {
|
|
36
|
+
act: 'hurled a manabolt at',
|
|
37
|
+
fall: 'drops where they stand, eyes empty -- the manabolt left no mark at all.',
|
|
38
|
+
},
|
|
39
|
+
stunbolt: {
|
|
40
|
+
act: 'snapped a stunbolt at',
|
|
41
|
+
fall: 'folds like a cut puppet -- breathing, dreaming, done.',
|
|
42
|
+
},
|
|
43
|
+
powerbolt: {
|
|
44
|
+
act: 'drove a powerbolt into',
|
|
45
|
+
fall: 'is thrown back off their feet and does not get up.',
|
|
46
|
+
},
|
|
47
|
+
fireball: {
|
|
48
|
+
act: 'hurled a fireball at',
|
|
49
|
+
fall: 'goes down burning -- what the flame started, the fall finishes.',
|
|
50
|
+
},
|
|
18
51
|
};
|
|
19
52
|
/**
|
|
20
53
|
* Gear-driven spellcasting (see Player's magic section): you know a spell
|
|
@@ -26,15 +59,102 @@ const SPELLS = {
|
|
|
26
59
|
*/
|
|
27
60
|
export class CastCommand extends BypassCommand {
|
|
28
61
|
static verb = 'cast';
|
|
29
|
-
static description = 'Cast a spell you know: "cast manabolt at <target>"
|
|
62
|
+
static description = 'Cast a spell you know, at a FORCE you choose: "cast manabolt 8 at <target>" (default Force = your Magic; drain scales with it, and OVERCASTING past your talent makes the drain PHYSICAL). "spells" lists what you know. Bare "cast" tries to unweave a warded barrier.';
|
|
30
63
|
bypassType = 'spell';
|
|
31
64
|
noPuzzleMessage = "There's nothing here to cast at.";
|
|
65
|
+
/** Backlash drain when a ward-bypass fails -- resisted with Willpower,
|
|
66
|
+
* like any drain. The nastiest drain in the game: forcing a hostile
|
|
67
|
+
* ward is harder on the caster than any spell of their own. */
|
|
68
|
+
static BACKLASH_DRAIN = 4;
|
|
69
|
+
/**
|
|
70
|
+
* The ward-bypass outcome is a real SPELLCASTING test now, not the
|
|
71
|
+
* legacy coin flip (a real session died to a 50/50 that ignored Magic 6
|
|
72
|
+
* + spellcasting entirely): the full casting pool -- Magic +
|
|
73
|
+
* spellcasting (or the book-caster's base), best focus, wounds,
|
|
74
|
+
* sustaining -- needs 2 hits to unweave the barrier, same threshold as
|
|
75
|
+
* pick/hack/bluff.
|
|
76
|
+
*/
|
|
77
|
+
async determineOutcome() {
|
|
78
|
+
const pool = Math.max(1, this.actor.getMagicPool());
|
|
79
|
+
const roll = rollPool(pool);
|
|
80
|
+
if (this.actor === this.scene.getPlayer()) {
|
|
81
|
+
this.logger.meta(`Spellwork: ${formatRoll(roll)} (2+ to unweave)`);
|
|
82
|
+
}
|
|
83
|
+
return roll.hits >= 2;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A failed unweaving isn't quiet OR free: the ward's backlash is drain
|
|
87
|
+
* (BACKLASH_DRAIN, resisted with Willpower like any drain), landing on
|
|
88
|
+
* the real stun track with overflow into physical. Enough of it still
|
|
89
|
+
* knocks out or kills -- but through dice and the condition monitors,
|
|
90
|
+
* the same death any spell drain earns, not by fiat.
|
|
91
|
+
*/
|
|
92
|
+
async onBypassFailure() {
|
|
93
|
+
const actor = this.actor;
|
|
94
|
+
// Centering (metamagic, p.325): +grade dice on every drain resist --
|
|
95
|
+
// the chant that keeps the backlash outside the skull.
|
|
96
|
+
const resist = rollPool(actor.willpower + (actor.hasMetamagic('centering') ? actor.initiationGrade : 0));
|
|
97
|
+
const taken = Math.max(0, CastCommand.BACKLASH_DRAIN - resist.hits);
|
|
98
|
+
const lines = [
|
|
99
|
+
` The barrier's backlash arcs up your own weave:`,
|
|
100
|
+
];
|
|
101
|
+
// Roll anatomy to the ticker for the player; an NPC keeps it in the
|
|
102
|
+
// returned lines that feed its own AI history (readability pass).
|
|
103
|
+
const backlashRoll = `Backlash (${CastCommand.BACKLASH_DRAIN}): resist ${formatRoll(resist)}`;
|
|
104
|
+
if (actor === this.scene.getPlayer())
|
|
105
|
+
this.logger.meta(backlashRoll);
|
|
106
|
+
else
|
|
107
|
+
lines.push(` ${backlashRoll}`);
|
|
108
|
+
if (taken === 0) {
|
|
109
|
+
lines.push(` You ground it out through clenched teeth -- shaken, but standing.`);
|
|
110
|
+
return lines;
|
|
111
|
+
}
|
|
112
|
+
const { stun, overflow } = actor.takeStun(taken);
|
|
113
|
+
this.logger.write(`${actor.name} took ${taken} ward backlash (stun ${actor.stunTaken}/${actor.maxStunBoxes}, overflow ${overflow}).`);
|
|
114
|
+
lines.push(` It burns through you -- ${stun} stun: ${actor.stunSummary()}`);
|
|
115
|
+
if (overflow > 0) {
|
|
116
|
+
lines.push(` More than your mind can hold -- ${overflow} box${overflow === 1 ? '' : 'es'} spill into your body: ${actor.conditionSummary()}`);
|
|
117
|
+
}
|
|
118
|
+
// Backlash can still finish you -- through the tracks, same flows as
|
|
119
|
+
// spell drain (cast.ts drainCollapse) and the stim crash (use.ts).
|
|
120
|
+
if (actor.isIncapacitated()) {
|
|
121
|
+
const isPlayer = actor === this.scene.getPlayer();
|
|
122
|
+
const dead = actor.isDown();
|
|
123
|
+
this.scene.addWorldEvent(dead
|
|
124
|
+
? `${actor.name} was killed by a ward's backlash in ${actor.currentLocation.name}.`
|
|
125
|
+
: `${actor.name} was knocked cold by a ward's backlash in ${actor.currentLocation.name}.`);
|
|
126
|
+
if (isPlayer) {
|
|
127
|
+
void this.scene.endGame().then(() => {
|
|
128
|
+
this.logger.logWithColor(dead
|
|
129
|
+
? `💀 GAME OVER: the ward's backlash burned ${actor.name} out from the inside.`
|
|
130
|
+
: `💀 GAME OVER: ${actor.name} dropped cold at the ward's foot -- the street decides what happens to sleeping runners.`, 'red');
|
|
131
|
+
this.logger.logWithColor(`Press ctrl-c to quit.`, 'red');
|
|
132
|
+
});
|
|
133
|
+
lines.push('', dead
|
|
134
|
+
? `The weave snaps back through every nerve at once. The last thing you feel is the barrier holding.`
|
|
135
|
+
: `The world grays out -- the ward stands over you, humming, as everything goes dark.`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
if (dead)
|
|
139
|
+
this.scene.removeActor(actor.name);
|
|
140
|
+
lines.push('', `${actor.name} drops at the barrier's foot, ${dead ? 'dead before they land' : 'out cold'}.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return lines;
|
|
144
|
+
}
|
|
32
145
|
async execute(args = []) {
|
|
33
146
|
// Incantations carry -- casting ends a sneak (see sneak.ts).
|
|
34
147
|
this.actor.sneaking = false;
|
|
35
|
-
|
|
148
|
+
// "cast increase reflexes ..." -- the natural phrasing for the spell
|
|
149
|
+
// whose key is 'reflexes'; strip the qualifier before resolution or
|
|
150
|
+
// the whole phrase falls through to the ward-bypass path.
|
|
151
|
+
let words = args ?? [];
|
|
152
|
+
if (words[0]?.toLowerCase() === 'increase' && words[1]?.toLowerCase().startsWith('reflex')) {
|
|
153
|
+
words = words.slice(1);
|
|
154
|
+
}
|
|
155
|
+
const spellName = this.resolveSpellName(words?.[0]);
|
|
36
156
|
if (spellName) {
|
|
37
|
-
return this.castSpell(spellName,
|
|
157
|
+
return this.castSpell(spellName, words.slice(1));
|
|
38
158
|
}
|
|
39
159
|
// Ward-bypass path (BypassCommand). Now that casting is a real, gated
|
|
40
160
|
// ability, throwing magic at a ward requires the talent or the gear.
|
|
@@ -70,13 +190,50 @@ export class CastCommand extends BypassCommand {
|
|
|
70
190
|
if (this.actor.plane === 'matrix') {
|
|
71
191
|
return `Magic doesn't work in here -- the Matrix runs on code, not mana. Jack out first.`;
|
|
72
192
|
}
|
|
193
|
+
// Mana flows through the LIVING -- a rigger's drone is a machine, and
|
|
194
|
+
// the mage riding it left their magic with their body.
|
|
195
|
+
if (this.actor.plane === 'drone') {
|
|
196
|
+
return `Mana doesn't flow through rotors -- your magic is with your body. "jump" back first.`;
|
|
197
|
+
}
|
|
73
198
|
if (!this.actor.knowsSpell(spellName)) {
|
|
74
199
|
return `You don't know "${spellName}" -- you'd need its spell formula, or a grimoire.`;
|
|
75
200
|
}
|
|
201
|
+
// FORCE (RAW p.281): "cast manabolt 8 at ..." (or "... force 8 ...")
|
|
202
|
+
// sets the dial. DEFAULT is the drain-neutral point (player request):
|
|
203
|
+
// the Force that zeroes the spell's drain formula -- F3 for an F-3
|
|
204
|
+
// spell -- so an unhurried cast costs nothing and every point above
|
|
205
|
+
// it is a choice you pay for. Past your talent (Magic; book-taught
|
|
206
|
+
// mundanes work at 4) is OVERCASTING: the drain lands PHYSICAL.
|
|
207
|
+
// Twice the talent is where mages become smears.
|
|
208
|
+
const spellDef = SPELLS[spellName];
|
|
209
|
+
const safeForce = this.actor.magic > 0 ? this.actor.magic : 4;
|
|
210
|
+
let force = Math.max(1, -(spellDef?.drainOffset ?? -3));
|
|
211
|
+
if (rest[0]?.toLowerCase() === 'force' && /^\d+$/.test(rest[1] ?? '')) {
|
|
212
|
+
force = parseInt(rest[1], 10);
|
|
213
|
+
rest = rest.slice(2);
|
|
214
|
+
}
|
|
215
|
+
else if (/^\d+$/.test(rest[0] ?? '')) {
|
|
216
|
+
force = parseInt(rest[0], 10);
|
|
217
|
+
rest = rest.slice(1);
|
|
218
|
+
}
|
|
219
|
+
if (force < 1) {
|
|
220
|
+
return `Force below 1 isn't a spell, it's a wish.`;
|
|
221
|
+
}
|
|
222
|
+
if (force > safeForce * 2) {
|
|
223
|
+
return `Force ${force} would burn you to ash mid-syllable -- twice your talent (${safeForce * 2}) is the hard ceiling (SR5e p.281).`;
|
|
224
|
+
}
|
|
225
|
+
const overcast = force > safeForce;
|
|
76
226
|
switch (spellName) {
|
|
77
|
-
case 'manabolt':
|
|
78
|
-
case '
|
|
79
|
-
case '
|
|
227
|
+
case 'manabolt':
|
|
228
|
+
case 'stunbolt':
|
|
229
|
+
case 'powerbolt':
|
|
230
|
+
case 'fireball':
|
|
231
|
+
return this.castCombatSpell(spellName, force, overcast, rest);
|
|
232
|
+
case 'heal': return this.castHeal(force, overcast, rest);
|
|
233
|
+
case 'armor': return this.castArmor(force, overcast, rest);
|
|
234
|
+
case 'invisibility':
|
|
235
|
+
case 'reflexes':
|
|
236
|
+
return this.castSustainedUtility(spellName, force, overcast, rest);
|
|
80
237
|
default: return `You don't know "${spellName}".`;
|
|
81
238
|
}
|
|
82
239
|
}
|
|
@@ -123,16 +280,37 @@ export class CastCommand extends BypassCommand {
|
|
|
123
280
|
* physical track (enough drain doesn't just put you down, it starts
|
|
124
281
|
* killing you). Callers check drainCollapse() afterward.
|
|
125
282
|
*/
|
|
126
|
-
applyDrain(spell) {
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
283
|
+
applyDrain(spell, force, overcast) {
|
|
284
|
+
// The Force dial prices the cast: drain = F + offset (RAW p.281-282;
|
|
285
|
+
// the book floors drain at 2 -- this table floors it at 0 instead so
|
|
286
|
+
// the DEFAULT Force is a free baseline cast, player request).
|
|
287
|
+
// Willpower resists (plus Centering's grade dice for initiates,
|
|
288
|
+
// p.325) -- and an OVERCAST (Force past your talent) lands its drain
|
|
289
|
+
// PHYSICAL: the body pays what the mind couldn't hold.
|
|
290
|
+
const drainValue = Math.max(0, force + spell.drainOffset);
|
|
291
|
+
if (drainValue === 0) {
|
|
292
|
+
return [` Drain (0): at this Force, the weave costs you nothing.`];
|
|
293
|
+
}
|
|
294
|
+
const resist = rollPool(this.actor.willpower + (this.actor.hasMetamagic('centering') ? this.actor.initiationGrade : 0));
|
|
295
|
+
const taken = Math.max(0, drainValue - resist.hits);
|
|
296
|
+
const lines = [];
|
|
297
|
+
// Roll anatomy to the ticker for the player; an NPC caster keeps it
|
|
298
|
+
// in its returned lines (its AI history) -- readability pass.
|
|
299
|
+
const drainRoll = `Drain (${drainValue}${overcast ? ', OVERCAST -- physical' : ''}): resist ${formatRoll(resist)}`;
|
|
300
|
+
if (this.actor === this.scene.getPlayer())
|
|
301
|
+
this.logger.meta(drainRoll);
|
|
302
|
+
else
|
|
303
|
+
lines.push(` ${drainRoll}`);
|
|
132
304
|
if (taken === 0) {
|
|
133
305
|
lines.push(` You shake the drain off.`);
|
|
134
306
|
return lines;
|
|
135
307
|
}
|
|
308
|
+
if (overcast) {
|
|
309
|
+
this.actor.takeDamage(taken);
|
|
310
|
+
this.logger.write(`${this.actor.name} took ${taken} PHYSICAL drain (${this.actor.damageTaken}/${this.actor.maxConditionBoxes}).`);
|
|
311
|
+
lines.push(` The power tears something on the way through -- ${taken} PHYSICAL: ${this.actor.conditionSummary()}`);
|
|
312
|
+
return lines;
|
|
313
|
+
}
|
|
136
314
|
const { stun, overflow } = this.actor.takeStun(taken);
|
|
137
315
|
this.logger.write(`${this.actor.name} took ${taken} drain (stun ${this.actor.stunTaken}/${this.actor.maxStunBoxes}, overflow ${overflow}).`);
|
|
138
316
|
lines.push(` The drain bites -- ${stun} stun: ${this.actor.stunSummary()}`);
|
|
@@ -162,11 +340,17 @@ export class CastCommand extends BypassCommand {
|
|
|
162
340
|
}
|
|
163
341
|
return [];
|
|
164
342
|
}
|
|
165
|
-
|
|
343
|
+
/**
|
|
344
|
+
* The shared combat-spell engine (manabolt/stunbolt/powerbolt/
|
|
345
|
+
* fireball): one exchange flow, parameterized by what SOAKS the hit
|
|
346
|
+
* (SPELLS[key].soak -- the direct/indirect distinction, RAW p.283),
|
|
347
|
+
* whether damage is stun, and the spell's narration.
|
|
348
|
+
*/
|
|
349
|
+
async castCombatSpell(spellKey, force, overcast, targetArgs) {
|
|
166
350
|
if (targetArgs[0]?.toLowerCase() === 'at')
|
|
167
351
|
targetArgs = targetArgs.slice(1);
|
|
168
352
|
if (targetArgs.length === 0) {
|
|
169
|
-
return
|
|
353
|
+
return `Cast it at whom? Try: \`cast ${spellKey} at <name>\``;
|
|
170
354
|
}
|
|
171
355
|
// Same fuzzy matching "take" and "attack" use -- punctuation, case,
|
|
172
356
|
// typos, and partial names all resolve (see utilities/fuzzy-match.ts).
|
|
@@ -215,15 +399,16 @@ export class CastCommand extends BypassCommand {
|
|
|
215
399
|
if (this.actor.isIncapacitated()) {
|
|
216
400
|
return `You're down. The fight is over.`;
|
|
217
401
|
}
|
|
218
|
-
this.logger.write(`${this.actor.name}'s
|
|
219
|
-
return await this.
|
|
402
|
+
this.logger.write(`${this.actor.name}'s ${spellKey} waited out an exchange and now retries.`);
|
|
403
|
+
return await this.castCombatSpell(spellKey, force, overcast, targetArgs);
|
|
220
404
|
}
|
|
221
405
|
finally {
|
|
222
406
|
this.actor.waitingForLull = false;
|
|
223
407
|
}
|
|
224
408
|
}
|
|
225
409
|
const exchange = new CombatExchange(this.scene, this.logger, this.actor);
|
|
226
|
-
const spell = SPELLS
|
|
410
|
+
const spell = SPELLS[spellKey];
|
|
411
|
+
const flavor = COMBAT_SPELL_FLAVOR[spellKey];
|
|
227
412
|
const report = [];
|
|
228
413
|
// Movement locks while the exchange resolves, same as attack.ts. The
|
|
229
414
|
// caster's hands are shaping mana, not clearing leather (no
|
|
@@ -231,8 +416,8 @@ export class CastCommand extends BypassCommand {
|
|
|
231
416
|
// beginExchange still draws for them.
|
|
232
417
|
const drawLines = exchange.beginExchange(target, { aggressorDraws: false });
|
|
233
418
|
try {
|
|
234
|
-
this.actor.performAction(
|
|
235
|
-
this.scene.addWorldEvent(`${this.actor.name}
|
|
419
|
+
this.actor.performAction(`casts ${spellKey} at`, target.name);
|
|
420
|
+
this.scene.addWorldEvent(`${this.actor.name} ${flavor.act} ${target.name} in ${room.name}.`);
|
|
236
421
|
if (drawLines.length > 0) {
|
|
237
422
|
report.push(...drawLines);
|
|
238
423
|
await exchange.announce(drawLines);
|
|
@@ -241,8 +426,8 @@ export class CastCommand extends BypassCommand {
|
|
|
241
426
|
// target answers the incantation BEFORE the bolt flies -- and a
|
|
242
427
|
// downed caster never casts, never pays drain. ----
|
|
243
428
|
const init = exchange.rollInitiative(this.actor, target);
|
|
244
|
-
report.push(...init.lines);
|
|
245
|
-
await exchange.announce(init.lines);
|
|
429
|
+
report.push(...init.lines, ...init.metaLines);
|
|
430
|
+
await exchange.announce(init.lines, init.metaLines);
|
|
246
431
|
for (const striker of [init.first, init.second]) {
|
|
247
432
|
if (striker.isIncapacitated())
|
|
248
433
|
continue;
|
|
@@ -250,23 +435,36 @@ export class CastCommand extends BypassCommand {
|
|
|
250
435
|
if (defender.isIncapacitated())
|
|
251
436
|
break;
|
|
252
437
|
if (striker === this.actor) {
|
|
253
|
-
// ---- The
|
|
438
|
+
// ---- The spell: casting pool vs defense, soaked per its type
|
|
439
|
+
// (direct mana = Willpower; direct physical = Body; indirect
|
|
440
|
+
// elemental = the full soak pool minus AP floor(F/3)). The
|
|
441
|
+
// FORCE dial sets the damage: bolts hit at F-2, the elemental
|
|
442
|
+
// hits at full F for letting armor matter. ----
|
|
443
|
+
const spellAp = spell.soak === 'armor' ? Math.floor(force / 3) : 0;
|
|
444
|
+
const armorEaten = spellAp > 0
|
|
445
|
+
? Math.min(spellAp, target.plane === 'meat' ? target.getArmorValue() : 0)
|
|
446
|
+
: 0;
|
|
447
|
+
const soakPool = spell.soak === 'willpower' ? target.willpower
|
|
448
|
+
: spell.soak === 'body' ? target.body
|
|
449
|
+
: Math.max(0, target.getSoakPool() - armorEaten);
|
|
450
|
+
const damageBase = spell.soak === 'armor' ? force : Math.max(1, force - 2);
|
|
254
451
|
const strike = exchange.resolveStrike(this.actor, target, {
|
|
255
|
-
label: `with a
|
|
452
|
+
label: `with a Force ${force} ${spellKey}${overcast ? ' (OVERCAST)' : ''}, ${this.castingLabel()}${armorEaten > 0 ? ` (AP -${armorEaten})` : ''}`,
|
|
256
453
|
// An armed edge boost (see edge.ts) supercharges the bolt.
|
|
257
454
|
pool: this.actor.getMagicPool() + this.actor.consumeEdgeBoost(),
|
|
258
|
-
damageBase
|
|
259
|
-
soakPool
|
|
455
|
+
damageBase,
|
|
456
|
+
soakPool,
|
|
457
|
+
dealStun: spell.stun,
|
|
260
458
|
});
|
|
261
|
-
report.push('', ...strike);
|
|
262
|
-
await exchange.announce(strike);
|
|
459
|
+
report.push('', ...strike.world, ...strike.meta);
|
|
460
|
+
await exchange.announce(strike.world, strike.meta);
|
|
263
461
|
if (target.isDown()) {
|
|
264
462
|
report.push(...await exchange.resolveDeath(target, this.actor, {
|
|
265
|
-
fallLine: `${target.name}
|
|
463
|
+
fallLine: `${target.name} ${flavor.fall} Their gear scatters across ${room.name}.`,
|
|
266
464
|
}));
|
|
267
465
|
}
|
|
268
466
|
// Drain comes due the moment the bolt flies, kill or not.
|
|
269
|
-
const drain = this.applyDrain(spell);
|
|
467
|
+
const drain = this.applyDrain(spell, force, overcast);
|
|
270
468
|
report.push('', ...drain);
|
|
271
469
|
await exchange.announce(drain);
|
|
272
470
|
const collapse = await this.drainCollapse(exchange);
|
|
@@ -280,9 +478,9 @@ export class CastCommand extends BypassCommand {
|
|
|
280
478
|
}
|
|
281
479
|
else {
|
|
282
480
|
const prefix = striker === init.second ? [`${target.name} retaliates!`] : [`${target.name} moves before the incantation finishes!`];
|
|
283
|
-
const counter =
|
|
284
|
-
report.push('', ...counter);
|
|
285
|
-
await exchange.announce(counter);
|
|
481
|
+
const counter = exchange.resolveStrike(target, this.actor);
|
|
482
|
+
report.push('', ...prefix, ...counter.world, ...counter.meta);
|
|
483
|
+
await exchange.announce([...prefix, ...counter.world], counter.meta);
|
|
286
484
|
if (this.actor.isDown()) {
|
|
287
485
|
report.push(...await exchange.resolveDeath(this.actor, target));
|
|
288
486
|
return await exchange.finishExchange(report);
|
|
@@ -295,9 +493,10 @@ export class CastCommand extends BypassCommand {
|
|
|
295
493
|
if (init.extraStriker && !init.extraStriker.isIncapacitated()) {
|
|
296
494
|
const defender = init.extraStriker === this.actor ? target : this.actor;
|
|
297
495
|
if (!defender.isIncapacitated()) {
|
|
298
|
-
const strike =
|
|
299
|
-
|
|
300
|
-
|
|
496
|
+
const strike = exchange.resolveStrike(init.extraStriker, defender);
|
|
497
|
+
const pressLine = `${init.extraStriker.name} presses the advantage!`;
|
|
498
|
+
report.push('', pressLine, ...strike.world, ...strike.meta);
|
|
499
|
+
await exchange.announce([pressLine, ...strike.world], strike.meta);
|
|
301
500
|
if (defender.isDown()) {
|
|
302
501
|
report.push(...await exchange.resolveDeath(defender, init.extraStriker));
|
|
303
502
|
}
|
|
@@ -310,7 +509,7 @@ export class CastCommand extends BypassCommand {
|
|
|
310
509
|
exchange.releaseExchange();
|
|
311
510
|
}
|
|
312
511
|
}
|
|
313
|
-
async castHeal(rest = []) {
|
|
512
|
+
async castHeal(force, overcast, rest = []) {
|
|
314
513
|
const { target, error } = this.resolveAllyTarget(rest);
|
|
315
514
|
if (!target)
|
|
316
515
|
return error ?? `You don't see them here.`;
|
|
@@ -323,25 +522,32 @@ export class CastCommand extends BypassCommand {
|
|
|
323
522
|
? `You're not hurt -- no sense courting drain for nothing.`
|
|
324
523
|
: `${target.name} isn't hurt -- no sense courting drain for nothing.`;
|
|
325
524
|
}
|
|
525
|
+
// Force caps the healing (RAW p.288): a cheap low-Force heal can
|
|
526
|
+
// only knit so much.
|
|
326
527
|
const roll = rollPool(this.actor.getMagicPool());
|
|
327
|
-
const healed = target.healDamage(roll.hits);
|
|
528
|
+
const healed = target.healDamage(Math.min(roll.hits, force));
|
|
529
|
+
const capped = roll.hits > force;
|
|
328
530
|
const spell = SPELLS.heal;
|
|
329
531
|
this.actor.performAction('casts heal', self ? '' : `on ${target.name}`);
|
|
330
532
|
this.scene.addWorldEvent(`${this.actor.name} cast a healing spell${self ? '' : ` on ${target.name}`} in ${this.actor.currentLocation.name}.`);
|
|
533
|
+
// The casting roll is ticker material for the player (an NPC healer
|
|
534
|
+
// keeps it inline for its history) -- readability pass.
|
|
535
|
+
if (this.actor === this.scene.getPlayer())
|
|
536
|
+
this.logger.meta(`Heal casting: ${formatRoll(roll)}`);
|
|
331
537
|
const subject = self ? 'Your' : `${target.name}'s`;
|
|
332
538
|
const lines = [
|
|
333
|
-
`${this.actor.name} casts heal${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
|
|
334
|
-
` Casting: ${formatRoll(roll)}
|
|
539
|
+
`${this.actor.name} casts heal at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
|
|
540
|
+
...(this.actor === this.scene.getPlayer() ? [] : [` Casting: ${formatRoll(roll)}`]),
|
|
335
541
|
healed > 0
|
|
336
|
-
? ` ${subject} wounds knit closed -- ${healed} box${healed === 1 ? '' : 'es'} recovered: ${target.conditionSummary()}`
|
|
542
|
+
? ` ${subject} wounds knit closed -- ${healed} box${healed === 1 ? '' : 'es'} recovered${capped ? ` (capped by Force ${force})` : ''}: ${target.conditionSummary()}`
|
|
337
543
|
: ` The mana slips away -- nothing heals.`,
|
|
338
544
|
// The CASTER pays the drain, whoever the healing went to.
|
|
339
|
-
...this.applyDrain(spell),
|
|
545
|
+
...this.applyDrain(spell, force, overcast),
|
|
340
546
|
];
|
|
341
547
|
lines.push(...await this.drainCollapse(new CombatExchange(this.scene, this.logger, this.actor)));
|
|
342
548
|
return this.finishSpell(lines);
|
|
343
549
|
}
|
|
344
|
-
async castArmor(rest = []) {
|
|
550
|
+
async castArmor(force, overcast, rest = []) {
|
|
345
551
|
const { target, error } = this.resolveAllyTarget(rest);
|
|
346
552
|
if (!target)
|
|
347
553
|
return error ?? `You don't see them here.`;
|
|
@@ -360,8 +566,10 @@ export class CastCommand extends BypassCommand {
|
|
|
360
566
|
if (target.isIncapacitated()) {
|
|
361
567
|
return `${target.name} is down -- armor won't help now.`;
|
|
362
568
|
}
|
|
569
|
+
// Force scales the weave (RAW: armor = hits; here ceil(F/3), so the
|
|
570
|
+
// classic Force-6 cast is the familiar +2) plus the focus's quality.
|
|
363
571
|
const focus = this.actor.getBestFocus();
|
|
364
|
-
const bonus =
|
|
572
|
+
const bonus = Math.ceil(force / 3) + (focus ? focus.qualityBonus : 0);
|
|
365
573
|
const spell = SPELLS.armor;
|
|
366
574
|
// The weave taxes its BEARER: they get the soak and carry the -2
|
|
367
575
|
// sustaining burden. The caster pays only the drain.
|
|
@@ -370,10 +578,53 @@ export class CastCommand extends BypassCommand {
|
|
|
370
578
|
this.scene.addWorldEvent(`${this.actor.name} wrapped ${self ? 'themselves' : target.name} in a shimmering armor spell.`);
|
|
371
579
|
this.scene.updateStatus();
|
|
372
580
|
const lines = [
|
|
373
|
-
`${this.actor.name} casts armor${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
|
|
581
|
+
`${this.actor.name} casts armor at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
|
|
374
582
|
` The air hardens around ${self ? 'you' : target.name} -- +${bonus} soak dice while sustained, -2 dice to everything else ${self ? 'you do' : 'they do'}.`,
|
|
375
583
|
` (Cast armor${self ? '' : ` on ${target.name}`} again to release it.)`,
|
|
376
|
-
...this.applyDrain(spell),
|
|
584
|
+
...this.applyDrain(spell, force, overcast),
|
|
585
|
+
];
|
|
586
|
+
lines.push(...await this.drainCollapse(new CombatExchange(this.scene, this.logger, this.actor)));
|
|
587
|
+
return this.finishSpell(lines);
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* The sustained utility pair (invisibility / increase reflexes), same
|
|
591
|
+
* toggle shape as the armor spell: the BEARER carries the effect and
|
|
592
|
+
* its -2 sustaining burden, the caster pays the drain, and casting at
|
|
593
|
+
* the same bearer again releases it for free.
|
|
594
|
+
*/
|
|
595
|
+
async castSustainedUtility(spellKey, force, overcast, rest = []) {
|
|
596
|
+
const { target, error } = this.resolveAllyTarget(rest);
|
|
597
|
+
if (!target)
|
|
598
|
+
return error ?? `You don't see them here.`;
|
|
599
|
+
const self = target === this.actor;
|
|
600
|
+
const flag = spellKey === 'invisibility' ? 'sustainedInvisibility' : 'sustainedReflexes';
|
|
601
|
+
const label = spellKey === 'invisibility' ? 'invisibility' : 'increase reflexes';
|
|
602
|
+
if (target[flag]) {
|
|
603
|
+
target[flag] = false;
|
|
604
|
+
this.scene.updateStatus();
|
|
605
|
+
this.actor.performAction(`releases ${label}`, self ? '' : `on ${target.name}`);
|
|
606
|
+
return this.finishSpell([spellKey === 'invisibility'
|
|
607
|
+
? `${self ? 'You shimmer back into the world' : `${target.name} shimmers back into the world`} -- the light remembers ${self ? 'you' : 'them'}, and the sustaining burden lifts.`
|
|
608
|
+
: `${self ? 'Your' : `${target.name}'s`} nerves cool back to human speed. The sustaining burden lifts.`]);
|
|
609
|
+
}
|
|
610
|
+
if (target.isIncapacitated()) {
|
|
611
|
+
return `${target.name} is down -- ${label} won't help now.`;
|
|
612
|
+
}
|
|
613
|
+
const spell = SPELLS[spellKey];
|
|
614
|
+
target[flag] = true;
|
|
615
|
+
this.actor.performAction(`casts ${label}`, self ? '' : `on ${target.name}`);
|
|
616
|
+
this.scene.addWorldEvent(spellKey === 'invisibility'
|
|
617
|
+
? `${this.actor.name} wove an invisibility spell${self ? '' : ` over ${target.name}`}.`
|
|
618
|
+
: `${this.actor.name} cast increase reflexes${self ? '' : ` on ${target.name}`}.`);
|
|
619
|
+
this.scene.updateStatus();
|
|
620
|
+
const effectLine = spellKey === 'invisibility'
|
|
621
|
+
? ` The light slides around ${self ? 'you' : target.name} like water around a stone -- +3 dice on sneak contests while sustained, -2 dice to everything else ${self ? 'you do' : 'they do'}. Loud acts still announce ${self ? 'you' : 'them'}.`
|
|
622
|
+
: ` ${self ? 'Your' : `${target.name}'s`} nerves run HOT -- +2 initiative while sustained, -2 dice to everything else ${self ? 'you do' : 'they do'}.`;
|
|
623
|
+
const lines = [
|
|
624
|
+
`${this.actor.name} casts ${label} at Force ${force}${self ? '' : ` on ${target.name}`}, ${this.castingLabel()}:`,
|
|
625
|
+
effectLine,
|
|
626
|
+
` (Cast ${label}${self ? '' : ` on ${target.name}`} again to release it.)`,
|
|
627
|
+
...this.applyDrain(spell, force, overcast),
|
|
377
628
|
];
|
|
378
629
|
lines.push(...await this.drainCollapse(new CombatExchange(this.scene, this.logger, this.actor)));
|
|
379
630
|
return this.finishSpell(lines);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cast.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/cast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cast.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/cast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA8B3D,MAAM,MAAM,GAA2B;IACrC,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,eAAe;IACf,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;IAChD,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IAC5D,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,oEAAoE;IACpE,kEAAkE;IAClE,gEAAgE;IAChE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE;IACzB,sEAAsE;IACtE,kEAAkE;IAClE,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE;IAC1B,mEAAmE;IACnE,iEAAiE;IACjE,sEAAsE;IACtE,6DAA6D;IAC7D,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE;IACjC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE;CAC9B,CAAC;AAEF,4EAA4E;AAC5E,MAAM,mBAAmB,GAAkD;IACzE,QAAQ,EAAE;QACR,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,yEAAyE;KAChF;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,uDAAuD;KAC9D;IACD,SAAS,EAAE;QACT,GAAG,EAAE,wBAAwB;QAC7B,IAAI,EAAE,oDAAoD;KAC3D;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,iEAAiE;KACxE;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,aAAa;IAClC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,yQAAyQ,CAAC;IAC/R,UAAU,GAAqB,OAAO,CAAC;IACvC,eAAe,GAAG,kCAAkC,CAAC;IAE/D;;mEAE+D;IACvD,MAAM,CAAU,cAAc,GAAG,CAAC,CAAC;IAE3C;;;;;;;OAOG;IACO,KAAK,CAAC,gBAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,eAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,qEAAqE;QACrE,uDAAuD;QACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG;YACZ,kDAAkD;SACnD,CAAC;QACF,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,YAAY,GAAG,aAAa,WAAW,CAAC,cAAc,aAAa,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9F,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;YAChE,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;QAErC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,wBAAwB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,cAAc,QAAQ,IAAI,CAAC,CAAC;QACtI,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,UAAU,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,qCAAqC,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACjJ,CAAC;QAED,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI;gBAC3B,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,uCAAuC,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG;gBACnF,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,6CAA6C,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7F,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI;wBAC3B,CAAC,CAAC,4CAA4C,KAAK,CAAC,IAAI,uBAAuB;wBAC/E,CAAC,CAAC,iBAAiB,KAAK,CAAC,IAAI,0FAA0F,EAAE,KAAK,CAAC,CAAC;oBAClI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI;oBACjB,CAAC,CAAC,mGAAmG;oBACrG,CAAC,CAAC,oFAAoF,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI;oBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,iCAAiC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,6DAA6D;QAC7D,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAE5B,qEAAqE;QACrE,oEAAoE;QACpE,0DAA0D;QAC1D,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3F,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3B,OAAO,uHAAuH,CAAC;QACjI,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,GAAY;QACnC,MAAM,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,IAAc;QACvD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;YACjC,OAAO,6CAA6C,CAAC;QACvD,CAAC;QACD,iEAAiE;QACjE,uEAAuE;QACvE,0CAA0C;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,kFAAkF,CAAC;QAC5F,CAAC;QACD,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,sFAAsF,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,OAAO,mBAAmB,SAAS,mDAAmD,CAAC;QACzF,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,gEAAgE;QAChE,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACvC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,2CAA2C,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,KAAK,6DAA6D,SAAS,GAAG,CAAC,qCAAqC,CAAC;QACvI,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;QAEnC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,UAAU,CAAC;YAChB,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChE,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzD,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3D,KAAK,cAAc,CAAC;YACpB,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC,OAAO,mBAAmB,SAAS,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,IAAc;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YACzE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sEAAsE;QACrK,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACxF,IAAI,KAAK;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAEnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uDAAuD,EAAE,CAAC;YAC5G,OAAO,EAAE,KAAK,EAAE,+BAA+B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,6FAA6F;IACrF,YAAY;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxC,IAAI,KAAK;YAAE,OAAO,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,KAAa,EAAE,KAAa,EAAE,QAAiB;QAChE,qEAAqE;QACrE,qEAAqE;QACrE,8DAA8D;QAC9D,gEAAgE;QAChE,qEAAqE;QACrE,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,0DAA0D,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,SAAS,GAAG,UAAU,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,aAAa,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACnH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;YAClE,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,oBAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAClI,KAAK,CAAC,IAAI,CAAC,qDAAqD,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACpH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,gBAAgB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,cAAc,QAAQ,IAAI,CAAC,CAAC;QAC7I,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,0CAA0C,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,0BAA0B,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC3J,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,QAAwB;QAClD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBACnD,QAAQ,EAAE,oFAAoF;gBAC9F,YAAY,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,iDAAiD;aAChG,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBACnD,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,oFAAoF;gBAC9F,YAAY,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,0FAA0F;aACzI,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAiB,EAAE,UAAoB;QACpG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI;YAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,gCAAgC,QAAQ,cAAc,CAAC;QAChE,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClH,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,kEAAkE;YAClE,8DAA8D;YAC9D,kCAAkC;YAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACnF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,sEAAsE;YACtE,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YACnE,OAAO,+BAA+B,UAAU,oBAAoB,OAAO,GAAG,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC,IAAI,sCAAsC,CAAC;QAC9D,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;oBAC1B,CAAC,CAAC,gDAAgD;oBAClD,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,gEAAgE,CAAC;YACrF,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC9B,OAAO,8DAA8D,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,gDAAgD,CAAC;gBAC1D,CAAC;gBACD,gEAAgE;gBAChE,qDAAqD;gBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;oBACjC,OAAO,iCAAiC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,QAAQ,0CAA0C,CAAC,CAAC;gBAC9F,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC3E,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YACpC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,qEAAqE;QACrE,4DAA4D;QAC5D,kEAAkE;QAClE,sCAAsC;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,QAAQ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YAE7F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC1B,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YAED,oEAAoE;YACpE,gEAAgE;YAChE,oDAAoD;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEpD,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,IAAI,OAAO,CAAC,eAAe,EAAE;oBAAE,SAAS;gBACxC,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9D,IAAI,QAAQ,CAAC,eAAe,EAAE;oBAAE,MAAM;gBAEtC,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,+DAA+D;oBAC/D,6DAA6D;oBAC7D,2DAA2D;oBAC3D,8DAA8D;oBAC9D,gDAAgD;oBAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnE,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC;wBAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzE,CAAC,CAAC,CAAC,CAAC;oBACN,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;wBAC5D,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC;oBACrD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;wBACxD,KAAK,EAAE,gBAAgB,KAAK,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACjJ,2DAA2D;wBAC3D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;wBAC/D,UAAU;wBACV,QAAQ;wBACR,QAAQ,EAAE,KAAK,CAAC,IAAI;qBACrB,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBACjD,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAEnD,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;4BAC7D,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,+BAA+B,IAAI,CAAC,IAAI,GAAG;yBACnF,CAAC,CAAC,CAAC;oBACN,CAAC;oBAED,0DAA0D;oBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;oBACtD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;oBAC1B,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;wBACzB,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC/C,CAAC;oBACD,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;wBAC7B,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,yCAAyC,CAAC,CAAC;oBACpI,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC9D,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAErE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;wBAChE,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,gEAAgE;YAChE,4BAA4B;YAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;oBACnE,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,yBAAyB,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5D,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAEnE,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC/B,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAiB,EAAE,OAAiB,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,IAAI,0BAA0B,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC;QACnC,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,iCAAiC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI;gBACT,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,qDAAqD,CAAC;QAC1E,CAAC;QAED,iEAAiE;QACjE,qBAAqB;QACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QAE9I,oEAAoE;QACpE,wDAAwD;QACxD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;QACnD,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,wBAAwB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG;YAC7G,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,GAAG,CAAC;gBACR,CAAC,CAAC,KAAK,OAAO,0BAA0B,MAAM,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,MAAM,CAAC,CAAC,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,EAAE,EAAE;gBACrK,CAAC,CAAC,yCAAyC;YAC7C,0DAA0D;YAC1D,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;SAC3C,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAiB,EAAE,OAAiB,EAAE;QAC3E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,IAAI,0BAA0B,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC;QAEnC,qEAAqE;QACrE,qEAAqE;QACrE,2DAA2D;QAC3D,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI;oBAC3B,CAAC,CAAC,sFAAsF;oBACxF,CAAC,CAAC,sCAAsC,MAAM,CAAC,IAAI,yDAAyD,CAAC,CAAC,CAAC;QACnH,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC,IAAI,mCAAmC,CAAC;QAC3D,CAAC;QAED,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACzH,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,yBAAyB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG;YAC9G,4BAA4B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,KAAK,0DAA0D,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG;YAC3J,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,wBAAwB;YACxE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;SAC3C,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAAC,QAAqC,EAAE,KAAa,EAAE,QAAiB,EAAE,OAAiB,EAAE;QAC7H,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,IAAI,0BAA0B,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACzF,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAEjF,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,KAAK,cAAc;oBAClD,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,+BAA+B,2BAA2B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,oCAAoC;oBACjL,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,gEAAgE,CAAC,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC,IAAI,eAAe,KAAK,kBAAkB,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,KAAK,cAAc;YAClD,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,8BAA8B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,GAAG;YACvF,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,0BAA0B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,UAAU,GAAG,QAAQ,KAAK,cAAc;YAC5C,CAAC,CAAC,6BAA6B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,uGAAuG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8BAA8B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG;YACjP,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,gFAAgF,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC;QAE1J,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,aAAa,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG;YACjH,UAAU;YACV,WAAW,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,wBAAwB;YAC3E,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;SAC3C,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,KAAe;QACjC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YACvF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC"}
|