@maka/maka-cli 5.123.1 → 5.125.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/README.md +64 -64
- package/bundle/typescript/package.json +120 -120
- package/bundle/typescript/src/README.md +64 -64
- package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
- package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
- package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/build/build.js +16 -16
- package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
- package/bundle/typescript/src/commands/create.js +36 -36
- package/bundle/typescript/src/commands/debug.js +4 -4
- package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
- package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/env/env.command.js +8 -8
- package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +0 -8
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +6 -50
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +0 -4
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +0 -1342
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js +5 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +13 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +5 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +0 -38
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +11 -45
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/install.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +10 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +58 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +10 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +12 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +8 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +22 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +24 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +39 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +110 -35
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +445 -445
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +42 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +118 -43
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/metamagics.d.ts +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/metamagics.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/metamagics.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +6 -4
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +3 -83
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/home-containers.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/home-containers.js +62 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/home-containers.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +206 -206
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +5 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +10 -14
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +24 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +3 -7
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +15 -715
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
- package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +5 -7
- package/bundle/typescript/src/commands/game/sideQuest/spells.js +5 -63
- package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +36 -20
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +24 -658
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +100 -20
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +314 -57
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.d.ts +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js +45 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/owned-drones.d.ts +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/owned-drones.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/owned-drones.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +66 -29
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +28 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/generate.js +2 -2
- package/bundle/typescript/src/commands/lint.js +10 -10
- package/bundle/typescript/src/commands/maka.cmd.js +26 -26
- package/bundle/typescript/src/commands/murder.js +14 -14
- package/bundle/typescript/src/commands/proxy.js +13 -13
- package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
- package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/run/run.command.js +24 -24
- package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/set/set.command.js +3 -3
- package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
- package/bundle/typescript/src/error.js +1 -1
- package/bundle/typescript/src/error.js.map +1 -1
- package/bundle/typescript/src/exec.js +0 -0
- package/bundle/typescript/src/generators/api.js +11 -11
- package/bundle/typescript/src/generators/collection.js +6 -6
- package/bundle/typescript/src/generators/hook.js +10 -10
- package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
- package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
- package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
- package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
- package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
- package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
- package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
- package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
- package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
- package/bundle/typescript/src/generators/services/translation.js +5 -5
- package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
- package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
- package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
- package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
- package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
- package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
- package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
- package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
- package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
- package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
- package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
- package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
- package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
- package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
- package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
- package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
- package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
- package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
- package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
- package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
- package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
- package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
- package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
- package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
- package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
- package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
- package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
- package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
- package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
- package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
- package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
- package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
- package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
- package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
- package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
- package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
- package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
- package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
- package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
- package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
- package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
- package/bundle/typescript/src/templates/react/component/component.css +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
- package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
- package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
- package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
- package/bundle/typescript/src/templates/react/route/route.js +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
- package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
- package/bundle/typescript/src/templates/react/test/test.js +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
- package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
- package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
- package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
- package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
- package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
- package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
- package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
- package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
- package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
- package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
- package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
- package/bundle/typescript/src/tool.d.ts +2 -0
- package/bundle/typescript/src/tool.js +5 -2
- package/bundle/typescript/src/tool.js.map +1 -1
- package/package.json +120 -120
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
|
-
import {
|
|
3
|
+
import { WARE_GRADES, getGrade, gradedAug, STANDARD_GRADE, formatEssence, } from '../augmentations.js';
|
|
4
|
+
import { catalogAugmentations, findAug } from '../utilities/catalog.js';
|
|
4
5
|
import { venueSinCheck, venueBustResponse } from '../utilities/sin.js';
|
|
5
6
|
import { Category } from '../types/shared/item-enum.js';
|
|
6
7
|
/**
|
|
@@ -45,7 +46,7 @@ export class InstallCommand extends Command {
|
|
|
45
46
|
}
|
|
46
47
|
const aug = findAug(words.join(' '));
|
|
47
48
|
if (!aug) {
|
|
48
|
-
return `The doc squints. "Never heard of it." The board lists: ${
|
|
49
|
+
return `The doc squints. "Never heard of it." The board lists: ${catalogAugmentations().map(a => a.name).join(', ')}.`;
|
|
49
50
|
}
|
|
50
51
|
// Street clinics cut used, standard and alpha. Beta and delta are
|
|
51
52
|
// not a money problem -- they need a clinic this isn't (p.451; the
|
|
@@ -78,7 +79,7 @@ export class InstallCommand extends Command {
|
|
|
78
79
|
`Essence ${formatEssence(actor.essence)}/6.0 | Nuyen ${actor.currency}`,
|
|
79
80
|
'',
|
|
80
81
|
];
|
|
81
|
-
for (const aug of
|
|
82
|
+
for (const aug of catalogAugmentations()) {
|
|
82
83
|
const installed = actor.hasAug(aug.key);
|
|
83
84
|
const part = installed ? undefined : this.findCarriedPart(aug);
|
|
84
85
|
const price = part ? `part in hand -- fee waived` : `${aug.cost} nuyen`;
|
|
@@ -116,7 +117,7 @@ export class InstallCommand extends Command {
|
|
|
116
117
|
if (aug.key === 'wired-reflexes-1' && actor.hasAug('wired-reflexes-2')) {
|
|
117
118
|
return `You're already running Wired Reflexes II -- there's no downgrade surgery, and no reason to want one.`;
|
|
118
119
|
}
|
|
119
|
-
const conflict =
|
|
120
|
+
const conflict = catalogAugmentations().find(other => actor.hasAug(other.key) &&
|
|
120
121
|
((aug.excludes ?? []).includes(other.key) || (other.excludes ?? []).includes(aug.key)));
|
|
121
122
|
if (conflict) {
|
|
122
123
|
return `The doc shakes their head. "${aug.name} on top of your ${conflict.name}? The two systems would tear each other apart. Pick a nervous system and commit."`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Command } from './command.js';
|
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
3
|
import { enterDrone, leaveDrone } from '../utilities/planes.js';
|
|
4
4
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
|
+
import { ownedDrones, describeDroneList } from '../utilities/owned-drones.js';
|
|
5
6
|
/**
|
|
6
7
|
* Jumped-in rigging (SR5e p.266): "jump" pours the rigger into a carried
|
|
7
8
|
* drone -- full VR through an IMPLANTED CONTROL RIG (the book's hard
|
|
@@ -32,9 +33,14 @@ export class JumpCommand extends Command {
|
|
|
32
33
|
if (actor.inExchange) {
|
|
33
34
|
return `Going limp in a firefight is called being a target. Let the exchange settle.`;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
// The pack, and the Garage while standing in the hideout
|
|
37
|
+
// (utilities/owned-drones.ts): a frame parked at home jumps from
|
|
38
|
+
// home and stays parked while you ride it.
|
|
39
|
+
const owned = ownedDrones(actor, this.game?.homeRoom, { reach: 'here' });
|
|
40
|
+
const drones = owned.map(d => d.item);
|
|
41
|
+
const atHome = this.game?.homeRoom !== undefined && actor.currentLocation === this.game.homeRoom;
|
|
36
42
|
if (drones.length === 0) {
|
|
37
|
-
return `Nothing to jump into -- no drone in your pack.${hint(` (Ratchet's Circuit Bazaar stocks airframes.)`)}`;
|
|
43
|
+
return `Nothing to jump into -- no drone in your pack${atHome ? ' or your garage' : ''}.${hint(` (Ratchet's Circuit Bazaar stocks airframes.)`)}`;
|
|
38
44
|
}
|
|
39
45
|
// "jump hot" / "jump <drone> hot": strip the mode word, pick the frame.
|
|
40
46
|
const words = args.map(w => w.toLowerCase());
|
|
@@ -45,11 +51,11 @@ export class JumpCommand extends Command {
|
|
|
45
51
|
const picked = fuzzyPickName(nameWords.join(' '), drones.map(d => d.name));
|
|
46
52
|
drone = picked ? drones.find(d => d.name === picked) : undefined;
|
|
47
53
|
if (!drone) {
|
|
48
|
-
return `No drone by that name in
|
|
54
|
+
return `No drone by that name in reach. Yours: ${describeDroneList(owned)}.`;
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
if (!drone) {
|
|
52
|
-
return `Which airframe?
|
|
58
|
+
return `Which airframe? Yours: ${describeDroneList(owned)}. ("jump <name>")`;
|
|
53
59
|
}
|
|
54
60
|
if (drone.isWrecked) {
|
|
55
61
|
return `The ${drone.name} is a wreck -- bent rotors and dead boards jump nowhere. It repairs while you rest somewhere safe.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/jump.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"jump.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/jump.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,17 @@ import { Command, ICommand } from './command.js';
|
|
|
7
7
|
* in the door at High. Can't pay? You slide down a tier and the
|
|
8
8
|
* shortfall becomes debt. "lifestyle" views the board anywhere; changing
|
|
9
9
|
* tiers happens at home.
|
|
10
|
+
*
|
|
11
|
+
* OPTIONS (SR5 p.370, 2026-09-05): riders on the tier -- today the
|
|
12
|
+
* garage (Special Work Area), the bay a rigger's frames park in and
|
|
13
|
+
* deploy from. "lifestyle garage" toggles it at home; a slide to Street
|
|
14
|
+
* drops it (the book bars every option there) and the frames land on the
|
|
15
|
+
* floor.
|
|
10
16
|
*/
|
|
11
17
|
export declare class LifestyleCommand extends Command implements ICommand {
|
|
12
18
|
protected static verb: string;
|
|
13
19
|
protected static description: string;
|
|
14
20
|
execute(args?: string[]): Promise<string>;
|
|
21
|
+
private toggleOption;
|
|
15
22
|
private listTiers;
|
|
16
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
|
-
import { LIFESTYLE_TIERS } from '../utilities/commerce.js';
|
|
3
|
+
import { LIFESTYLE_TIERS, LIFESTYLE_OPTIONS, canonicalLifestyleOption, lifestyleOptionAllowed } from '../utilities/commerce.js';
|
|
4
4
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
5
|
/**
|
|
6
6
|
* The bills half of downtime, SR5e p.369 scaled to per-job-cycle: your
|
|
@@ -10,10 +10,16 @@ import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
|
10
10
|
* in the door at High. Can't pay? You slide down a tier and the
|
|
11
11
|
* shortfall becomes debt. "lifestyle" views the board anywhere; changing
|
|
12
12
|
* tiers happens at home.
|
|
13
|
+
*
|
|
14
|
+
* OPTIONS (SR5 p.370, 2026-09-05): riders on the tier -- today the
|
|
15
|
+
* garage (Special Work Area), the bay a rigger's frames park in and
|
|
16
|
+
* deploy from. "lifestyle garage" toggles it at home; a slide to Street
|
|
17
|
+
* drops it (the book bars every option there) and the frames land on the
|
|
18
|
+
* floor.
|
|
13
19
|
*/
|
|
14
20
|
export class LifestyleCommand extends Command {
|
|
15
21
|
static verb = 'lifestyle';
|
|
16
|
-
static description = 'View or change your hideout\'s lifestyle tier (upkeep per job, rest quality, edge perks). "lifestyle" lists; "lifestyle <tier>" moves -- at home.';
|
|
22
|
+
static description = 'View or change your hideout\'s lifestyle tier (upkeep per job, rest quality, edge perks) and options. "lifestyle" lists; "lifestyle <tier>" moves; "lifestyle garage" toggles the bay -- at home.';
|
|
17
23
|
async execute(args = []) {
|
|
18
24
|
if (!this.game?.hasHub) {
|
|
19
25
|
return `Lifestyle is a home thing, and out here there's only the job.`;
|
|
@@ -25,9 +31,13 @@ export class LifestyleCommand extends Command {
|
|
|
25
31
|
if (actor.currentLocation?.roomType !== 'Residence') {
|
|
26
32
|
return `Rearranging how you live happens AT home -- head back to your hideout first.`;
|
|
27
33
|
}
|
|
34
|
+
// An OPTION first: "lifestyle garage" toggles the rider.
|
|
35
|
+
const optionKey = canonicalLifestyleOption(args.join(' '));
|
|
36
|
+
if (optionKey)
|
|
37
|
+
return this.toggleOption(optionKey);
|
|
28
38
|
const picked = fuzzyPickName(args.join(' '), LIFESTYLE_TIERS.map(t => t.name));
|
|
29
39
|
if (!picked) {
|
|
30
|
-
return `That's not a way to live. Tiers: ${LIFESTYLE_TIERS.map(t => t.name).join(', ')}.`;
|
|
40
|
+
return `That's not a way to live. Tiers: ${LIFESTYLE_TIERS.map(t => t.name).join(', ')}. Options: ${LIFESTYLE_OPTIONS.map(o => o.key).join(', ')}.`;
|
|
31
41
|
}
|
|
32
42
|
if (picked === this.game.lifestyleTier) {
|
|
33
43
|
return `You're already living ${picked}.`;
|
|
@@ -38,11 +48,14 @@ export class LifestyleCommand extends Command {
|
|
|
38
48
|
const from = this.game.lifestyleTier;
|
|
39
49
|
this.game.lifestyleTier = picked;
|
|
40
50
|
actor.lifestyleEdgeBonus = this.game.lifestyle.edgeBonus;
|
|
51
|
+
// A rider the new tier bars lapses with the move (p.370: none on
|
|
52
|
+
// Street); its frames land on the floor, still yours.
|
|
53
|
+
const dropped = this.game.dropBarredLifestyleOptions();
|
|
41
54
|
// The hideout's description follows the rent -- the move is visible
|
|
42
55
|
// the next time you look around.
|
|
43
|
-
this.game.syncHomeToLifestyle();
|
|
56
|
+
const spilled = this.game.syncHomeToLifestyle();
|
|
44
57
|
actor.performAction('changes lifestyle', `${from} -> ${picked}`);
|
|
45
|
-
this.logger.write(`Lifestyle: ${from} -> ${picked} (upkeep ${this.game.
|
|
58
|
+
this.logger.write(`Lifestyle: ${from} -> ${picked} (upkeep ${this.game.lifestyleUpkeep}/job${dropped.length ? `, dropped ${dropped.join(', ')}` : ''}).`);
|
|
46
59
|
this.scene.updateStatus();
|
|
47
60
|
const tier = this.game.lifestyle;
|
|
48
61
|
const up = LIFESTYLE_TIERS.findIndex(t => t.name === picked) > LIFESTYLE_TIERS.findIndex(t => t.name === from);
|
|
@@ -50,17 +63,47 @@ export class LifestyleCommand extends Command {
|
|
|
50
63
|
up
|
|
51
64
|
? `You move up: ${picked}. ${tier.blurb.charAt(0).toUpperCase()}${tier.blurb.slice(1)}.`
|
|
52
65
|
: `You cut back: ${picked}. ${tier.blurb.charAt(0).toUpperCase()}${tier.blurb.slice(1)}.`,
|
|
53
|
-
` Upkeep: ${
|
|
66
|
+
` Upkeep: ${this.game.lifestyleUpkeep} nuyen per job, collected when you come home.`,
|
|
54
67
|
...(tier.restDice !== 0 ? [` Rest at home: ${tier.restDice > 0 ? '+' : ''}${tier.restDice} dice.`] : []),
|
|
55
68
|
...(tier.edgeBonus > 0 ? [` +${tier.edgeBonus} edge banked every job.`] : []),
|
|
56
69
|
...(tier.clearStunOnReturn ? [` Coming home clears your stun track entirely.`] : []),
|
|
70
|
+
...(dropped.length > 0 ? [` The garage lease lapses with the move${spilled.length > 0 ? ` -- ${spilled.join(', ')} sit${spilled.length === 1 ? 's' : ''} on the floor now` : ''}.`] : []),
|
|
57
71
|
hint(` The place already reads different -- "look" around.`),
|
|
58
72
|
].join('\n');
|
|
59
73
|
}
|
|
74
|
+
toggleOption(key) {
|
|
75
|
+
const game = this.game;
|
|
76
|
+
const option = LIFESTYLE_OPTIONS.find(o => o.key === key);
|
|
77
|
+
if (game.hasLifestyleOption(key)) {
|
|
78
|
+
game.lifestyleOptions = game.lifestyleOptions.filter(o => o !== key);
|
|
79
|
+
const spilled = game.syncHomeToLifestyle();
|
|
80
|
+
this.actor.performAction('gives up', option.name);
|
|
81
|
+
this.logger.write(`Lifestyle: dropped ${key} (upkeep ${game.lifestyleUpkeep}/job).`);
|
|
82
|
+
this.scene.updateStatus();
|
|
83
|
+
return `You let the ${option.name} go: -${option.upkeep} nuyen per job.${spilled.length > 0 ? ` ${spilled.join(', ')} sit${spilled.length === 1 ? 's' : ''} on the hideout floor now.` : ''}`;
|
|
84
|
+
}
|
|
85
|
+
if (!lifestyleOptionAllowed(key, game.lifestyleTier)) {
|
|
86
|
+
return `A ${option.name} isn't on offer at ${game.lifestyleTier} -- lifestyle options are for any lifestyle except Street${hint(' (SR5 p.370)')}. "lifestyle squatter" or better first.`;
|
|
87
|
+
}
|
|
88
|
+
if (game.rentDebt > 0) {
|
|
89
|
+
return `The landlord won't add to the lease with ${game.rentDebt} nuyen on the tab -- "pay" it off first.`;
|
|
90
|
+
}
|
|
91
|
+
game.lifestyleOptions = [...game.lifestyleOptions, key];
|
|
92
|
+
game.syncHomeToLifestyle();
|
|
93
|
+
this.actor.performAction('adds to the lease', option.name);
|
|
94
|
+
this.logger.write(`Lifestyle: added ${key} (upkeep ${game.lifestyleUpkeep}/job).`);
|
|
95
|
+
this.scene.updateStatus();
|
|
96
|
+
return [
|
|
97
|
+
`A roll-down door and a bay you can call yours: ${option.name}, +${option.upkeep} nuyen per job.`,
|
|
98
|
+
` Park frames with "store <drone>"; they deploy and jump from here, and "take <drone> from garage" carries the small ones along.`,
|
|
99
|
+
hint(` ${option.page}. "look" around.`),
|
|
100
|
+
].join('\n');
|
|
101
|
+
}
|
|
60
102
|
listTiers() {
|
|
61
|
-
const
|
|
103
|
+
const game = this.game;
|
|
104
|
+
const lines = [`=== LIFESTYLE (currently ${game.lifestyleTier}${game.rentDebt > 0 ? `, ${game.rentDebt} nuyen owed` : ''}) ===`];
|
|
62
105
|
for (const tier of LIFESTYLE_TIERS) {
|
|
63
|
-
const marker = tier.name ===
|
|
106
|
+
const marker = tier.name === game.lifestyleTier ? '>' : ' ';
|
|
64
107
|
const perks = [
|
|
65
108
|
tier.restDice !== 0 ? `rest ${tier.restDice > 0 ? '+' : ''}${tier.restDice}d at home` : 'baseline rest',
|
|
66
109
|
...(tier.edgeBonus > 0 ? [`+${tier.edgeBonus} edge/job`] : []),
|
|
@@ -70,7 +113,13 @@ export class LifestyleCommand extends Command {
|
|
|
70
113
|
lines.push(` ${tier.blurb}`);
|
|
71
114
|
}
|
|
72
115
|
lines.push('');
|
|
73
|
-
lines.push(`
|
|
116
|
+
lines.push(`Options${hint(' (SR5 p.370, any lifestyle but Street)')}:`);
|
|
117
|
+
for (const option of LIFESTYLE_OPTIONS) {
|
|
118
|
+
const held = game.hasLifestyleOption(option.key);
|
|
119
|
+
lines.push(`${held ? '>' : ' '} ${option.key.padEnd(9)} ${String(`+${option.upkeep}`).padStart(5)}/job ${option.name} -- ${option.blurb}${held ? '' : ` ("lifestyle ${option.key}" to add)`}`);
|
|
120
|
+
}
|
|
121
|
+
lines.push('');
|
|
122
|
+
lines.push(`Upkeep now: ${game.lifestyleUpkeep} nuyen per job. You're carrying ${this.actor.currency} nuyen. "lifestyle <tier>" at your hideout to move. Upkeep collects each homecoming; shortfalls slide you down and go on the tab.`);
|
|
74
123
|
return lines.join('\n');
|
|
75
124
|
}
|
|
76
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifestyle.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/lifestyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"lifestyle.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/lifestyle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
|
-
import {
|
|
3
|
+
import { catalogQualities } from '../utilities/catalog.js';
|
|
4
4
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
|
+
/** The qualities on sale: every row that is not retired (a retired one
|
|
6
|
+
* is dormant on its holder's sheet, never on the board). */
|
|
7
|
+
const onSale = () => catalogQualities().filter(q => !q.retired);
|
|
5
8
|
/**
|
|
6
9
|
* Quality trading in play, at the book's own rates (SR5e p.106-107):
|
|
7
10
|
* gain a positive quality at listed karma x2; buy OFF a negative at its
|
|
@@ -35,9 +38,9 @@ export class QualityTradeCommand extends Command {
|
|
|
35
38
|
// fuzzy over display names ONLY -- names and keys together made every
|
|
36
39
|
// single-word quality ambiguous with its own key.
|
|
37
40
|
const input = args.join(' ');
|
|
38
|
-
const byKey =
|
|
39
|
-
const picked = byKey?.name ?? fuzzyPickName(input,
|
|
40
|
-
const quality =
|
|
41
|
+
const byKey = onSale().find(q => q.key === input.toLowerCase().replace(/\s+/g, '-'));
|
|
42
|
+
const picked = byKey?.name ?? fuzzyPickName(input, onSale().map(q => q.name));
|
|
43
|
+
const quality = onSale().find(q => q.name === picked);
|
|
41
44
|
if (!quality) {
|
|
42
45
|
return `That's not a quality this street knows. "qualities" lists the board.`;
|
|
43
46
|
}
|
|
@@ -98,8 +101,8 @@ export class QualityTradeCommand extends Command {
|
|
|
98
101
|
// BANNER RAILS REMOVED (playtest 2026-08-26, on the crew panel:
|
|
99
102
|
// "headers like that are too cluttery"). The heading itself stays --
|
|
100
103
|
// it carries what the panel divider can't say for it.
|
|
101
|
-
const lines = [`
|
|
102
|
-
const owned =
|
|
104
|
+
const lines = [`onSale() (karma: ${actor.karma}${hint(' -- SR5e in-play rates, p.106-107')})`];
|
|
105
|
+
const owned = onSale().filter(q => actor.hasQuality(q.key));
|
|
103
106
|
if (owned.length > 0) {
|
|
104
107
|
lines.push(`Yours:`);
|
|
105
108
|
for (const q of owned) {
|
|
@@ -109,7 +112,7 @@ export class QualityTradeCommand extends Command {
|
|
|
109
112
|
lines.push(` ${(q.kind === 'positive' ? '+ ' : '- ') + q.name.padEnd(24)} ${q.effect}${trade}`);
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
|
-
const buyable =
|
|
115
|
+
const buyable = onSale().filter(q => q.kind === 'positive' && !actor.hasQuality(q.key));
|
|
113
116
|
if (buyable.length > 0) {
|
|
114
117
|
lines.push(`On the board${hint(' (listed x2 to learn in play)')}:`);
|
|
115
118
|
for (const q of buyable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-trade.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/quality-trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-trade.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/quality-trade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;6DAC6D;AAC7D,MAAM,MAAM,GAAG,GAAe,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAoB,SAAQ,OAAO;IACpC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,MAAM,CAAC,WAAW,GAAG,2IAA2I,CAAC;IAE3K,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,qDAAqD,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpD,OAAO,0EAA0E,CAAC;QACpF,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,uDAAuD,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,kDAAkD;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,KAAK,EAAE,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,sEAAsE,CAAC;QAChF,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,WAAW,CAAC,OAAiB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,CAAC,IAAI,kCAAkC,CAAC;QAC3D,CAAC;QACD,mEAAmE;QACnE,sDAAsD;QACtD,IAAI,OAAO,CAAC,GAAG,KAAK,qBAAqB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACzE,OAAO,yGAAyG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAC1I,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,IAAI,UAAU,IAAI,iBAAiB,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,IAAI,GAAG,CAAC,gBAAgB,KAAK,CAAC,KAAK,GAAG,CAAC;QAC5I,CAAC;QAED,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACpB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,mBAAmB,OAAO,CAAC,GAAG,KAAK,IAAI,WAAW,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QACvG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,4DAA4D,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,MAAM,IAAI,iBAAiB,KAAK,CAAC,KAAK,SAAS,CAAC;IACpJ,CAAC;IAEO,cAAc,CAAC,OAAiB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,IAAI,iDAAiD,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;YACvB,OAAO,YAAY,OAAO,CAAC,IAAI,UAAU,IAAI,SAAS,IAAI,CAAC,WAAW,OAAO,CAAC,KAAK,kBAAkB,CAAC,gBAAgB,KAAK,CAAC,KAAK,GAAG,CAAC;QACvI,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC;QACxC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QACpB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,uBAAuB,OAAO,CAAC,GAAG,KAAK,IAAI,WAAW,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QAC3G,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,kEAAkE;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,oGAAoG;YACtG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;gBACrC,CAAC,CAAC,yEAAyE,IAAI,CAAC,cAAc,CAAC,GAAG;gBAClG,CAAC,CAAC,oGAAoG,CAAC;QAC3G,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,eAAe;YAC/C,CAAC,CAAC,eAAe,eAAe,OAAO,KAAK,CAAC,SAAS,oCAAoC;YAC1F,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,oBAAoB,IAAI,iBAAiB,KAAK,CAAC,KAAK,UAAU,OAAO,EAAE,CAAC;IAC1G,CAAC;IAEO,SAAS;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,gEAAgE;QAChE,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,KAAK,GAAG,CAAC,oBAAoB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAC;QAE/F,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU;oBACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;oBACrF,CAAC,CAAC,kBAAkB,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,qBAAqB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC/E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAClK,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,oKAAoK,CAAC,CAAC;QAC1L,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { hint } from '../utilities/hints.js';
|
|
3
3
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
4
|
+
import { ownedDrones } from '../utilities/owned-drones.js';
|
|
4
5
|
/**
|
|
5
6
|
* The free road to STUN recovery (stim patches are the fast, risky one --
|
|
6
7
|
* see use.ts): catch your breath somewhere safe. "Safe" means a
|
|
@@ -26,7 +27,12 @@ export class RestCommand extends Command {
|
|
|
26
27
|
// carried gets repaired alongside the nap (Logic roll -- soldering
|
|
27
28
|
// and rotor-truing are both brainwork; Juryrigger helps both).
|
|
28
29
|
const damagedDecks = actor.inventory.getAllItems().filter(i => i.isCyberdeck() && i.deckDamage > 0);
|
|
29
|
-
|
|
30
|
+
// Bench work reaches the Garage when you rest at home
|
|
31
|
+
// (utilities/owned-drones.ts): a frame parked in the bay is on the
|
|
32
|
+
// bench too.
|
|
33
|
+
const damagedDrones = ownedDrones(actor, this.game?.homeRoom, { reach: 'here' })
|
|
34
|
+
.map(d => d.item)
|
|
35
|
+
.filter(i => i.droneDamage > 0);
|
|
30
36
|
const othersHere = this.scene.getActorsInRoom(room).filter(a => a !== actor);
|
|
31
37
|
const isResidence = room.roomType?.toLowerCase() === 'residence';
|
|
32
38
|
if (actor.stunTaken === 0 && damagedDecks.length === 0 && damagedDrones.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,17 +93,17 @@ function describeBarriers(room, actor) {
|
|
|
93
93
|
// had to rediscover. One copy, one place to be right.
|
|
94
94
|
const sealed = sealedRouteTo(room, actor, anchor);
|
|
95
95
|
const advice = sealed ?? `Too far to work from here -- "move to ${anchor}" for a proper look.`;
|
|
96
|
-
out += `
|
|
97
|
-
|
|
98
|
-
${header}
|
|
96
|
+
out += `
|
|
97
|
+
|
|
98
|
+
${header}
|
|
99
99
|
${advice}`;
|
|
100
100
|
continue;
|
|
101
101
|
}
|
|
102
102
|
const made = device.barrierSummary();
|
|
103
|
-
out += `
|
|
104
|
-
|
|
105
|
-
${header}
|
|
106
|
-
${device.description}${made ? `
|
|
103
|
+
out += `
|
|
104
|
+
|
|
105
|
+
${header}
|
|
106
|
+
${device.description}${made ? `
|
|
107
107
|
${made}` : ''}`;
|
|
108
108
|
// EXACTLY WHAT TO TYPE, and it is NOT coaching -- it stands with
|
|
109
109
|
// hints off. Every verb that works this device, not just the
|
|
@@ -120,13 +120,13 @@ ${device.description}${made ? `
|
|
|
120
120
|
...(device.code ? [`"use ${device.name.toLowerCase()} <the code>"`] : []),
|
|
121
121
|
...(device.keyItem ? [`"unlock" with ${device.keyItem.name}`] : []),
|
|
122
122
|
];
|
|
123
|
-
out += `
|
|
123
|
+
out += `
|
|
124
124
|
Work it: ${ways.join(' / ')}`;
|
|
125
125
|
if (device.opensExit)
|
|
126
126
|
out += ` (or "${device.verbs()[0]} ${device.opensExit}")`;
|
|
127
127
|
const coach = device.getHint();
|
|
128
128
|
if (coach)
|
|
129
|
-
out += `
|
|
129
|
+
out += `
|
|
130
130
|
${coach}`;
|
|
131
131
|
}
|
|
132
132
|
return out;
|
|
@@ -2,12 +2,12 @@ import { Command } from './command.js';
|
|
|
2
2
|
import { homeGrid } from '../utilities/grids.js';
|
|
3
3
|
import { getAspect } from '../aspects.js';
|
|
4
4
|
import { SKILL_NAMES, Player } from '../models/player.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { METAMAGICS } from './initiate.js';
|
|
5
|
+
import { gradedAug, getGrade, STANDARD_GRADE, formatEssence } from '../augmentations.js';
|
|
6
|
+
import { catalogAugmentations, catalogQualities, catalogMetamagics } from '../utilities/catalog.js';
|
|
8
7
|
import { hint, hintsEnabled } from '../utilities/hints.js';
|
|
9
8
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
10
9
|
import { restoreItem } from '../utilities/persistence.js';
|
|
10
|
+
import { ownedDrones } from '../utilities/owned-drones.js';
|
|
11
11
|
/**
|
|
12
12
|
* The character sheet, basics-first (player direction: the old sheet
|
|
13
13
|
* doubled as an inline rules reference and read as clutter in the
|
|
@@ -130,13 +130,15 @@ export class SheetCommand extends Command {
|
|
|
130
130
|
...(a.baseResonance > 0 ? [` Resonance ${a.resonance}${a.baseResonance > a.resonance ? ` (was ${a.baseResonance})` : ''}${hint(' -- the Matrix without a deck; Matrix damage is REAL stun')}`] : []),
|
|
131
131
|
` Edge ${edgeMax} (${a.edgeRemaining} left)${edgeSource}${a.edgeBoostArmed ? ' -- boost BURNING' : ''}${edgeShortfall}${hint(' ("edge" to burn one; refills at the next job if fed and slept)')}`,
|
|
132
132
|
` Essence ${formatEssence(a.essence)}${hint(' -- what chrome hasn\'t claimed')}`,
|
|
133
|
-
|
|
133
|
+
// The upkeep is the whole lease -- tier plus options (the garage,
|
|
134
|
+
// SR5 p.370) -- the same number returnToHub collects.
|
|
135
|
+
...(this.game?.hasHub ? [` Lifestyle ${this.game.lifestyleTier}${this.game.hasLifestyleOption('garage') ? ' + garage' : ''} (${this.game.lifestyleUpkeep}/job)${this.game.rentDebt > 0 ? ` -- ${this.game.rentDebt} OWED ("pay")` : ''} -- your grid: ${homeGrid(this.game.lifestyleTier, this.scene.localGrid, this.game.gridProvider).name} (p.222)`] : []),
|
|
134
136
|
'',
|
|
135
137
|
...(a.augmentations.size > 0 ? [
|
|
136
138
|
`'WARE`,
|
|
137
139
|
// Grade is worth a word here: it is what the essence figure in
|
|
138
140
|
// front of it actually cost to get that low.
|
|
139
|
-
...
|
|
141
|
+
...catalogAugmentations().filter(w => a.hasAug(w.key)).map(w => {
|
|
140
142
|
const g = a.augGrades.get(w.key);
|
|
141
143
|
const ess = gradedAug(w, getGrade(g) ?? STANDARD_GRADE).essence;
|
|
142
144
|
return ` ${w.name} -${formatEssence(ess)}${g ? ` (${g})` : ''}${hint(` -- ${w.effect}`)}`;
|
|
@@ -145,7 +147,7 @@ export class SheetCommand extends Command {
|
|
|
145
147
|
] : []),
|
|
146
148
|
...(a.qualities.size > 0 ? [
|
|
147
149
|
`QUALITIES`,
|
|
148
|
-
...
|
|
150
|
+
...catalogQualities().filter(q => a.hasQuality(q.key)).map(q => ` ${q.kind === 'positive' ? '+' : '-'} ${q.name}${q.maxRating ? ` (Rating ${a.qualityRating(q.key)})` : ''}${q.retired ? ' -- dormant' : ''}${hint(` -- ${q.effect} (${q.page})`)}`),
|
|
149
151
|
'',
|
|
150
152
|
] : []),
|
|
151
153
|
`SKILLS (karma ${a.karma}${hint(' -- "advance" to train')})`,
|
|
@@ -161,11 +163,13 @@ export class SheetCommand extends Command {
|
|
|
161
163
|
row('Physical', a.conditionSummary()),
|
|
162
164
|
row('Stun', a.stunSummary()),
|
|
163
165
|
...(a.getAnyCyberdeck() ? [row('Deck', `${a.getAnyCyberdeck().name} ${a.matrixSummary()}${a.getAnyCyberdeck().isBricked ? ' -- BRICKED' : ''}${hint(' ("deck" for the full panel)')}`)] : []),
|
|
164
|
-
|
|
166
|
+
// Every frame the runner owns, the garaged ones tagged
|
|
167
|
+
// (utilities/owned-drones.ts).
|
|
168
|
+
...ownedDrones(a, this.game?.homeRoom, { reach: 'owned' }).map(({ item: d, where }) => row('Drone', `${d.name} ${d.droneSummary()}${d.isWrecked ? ' -- WRECKED' : a.riggedDrone === d ? ' -- JUMPED IN' : ''}${where === 'garage' ? ' -- GARAGE' : ''}`)),
|
|
165
169
|
row('Needs', `${a.ateThisCycle ? 'fed' : 'HUNGRY'}, ${a.sleptThisCycle ? 'slept' : 'SHORT ON SLEEP'}${a.ateThisCycle && a.sleptThisCycle ? '' : ' -- edge will NOT refill'}`),
|
|
166
170
|
row('Rep', `Cred ${a.streetCred} / Notoriety ${a.notoriety} / Awareness ${a.publicAwareness}${hint(`${a.socialRep > 0 ? ` -- +${a.socialRep} dice haggle/persuade` : ''}${a.notoriety > 0 ? `; threats +${Math.min(3, a.notoriety)}` : ''}${a.publicAwareness > 0 ? `; cons -${Math.min(2, a.publicAwareness)}` : ''}`)}`),
|
|
167
171
|
...(a.notorietyReasons.length > 0 ? [row('Stains', a.notorietyReasons.join('; '))] : []),
|
|
168
|
-
...(a.initiationGrade > 0 ? [row(a.isTechnomancer() ? 'Submersion' : 'Initiation', `grade ${a.initiationGrade} -- ${
|
|
172
|
+
...(a.initiationGrade > 0 ? [row(a.isTechnomancer() ? 'Submersion' : 'Initiation', `grade ${a.initiationGrade} -- ${catalogMetamagics().filter(m => a.hasMetamagic(m.key)).map(m => m.name).join(', ')}`)] : []),
|
|
169
173
|
...(a.lockedFatigue > 0 ? [row('Fatigue', `${a.lockedFatigue} stun LOCKED until the need is met`)] : []),
|
|
170
174
|
...(a.woundModifier < 0 ? [row('Wounds', `${a.woundModifier} dice on everything`)] : []),
|
|
171
175
|
...(a.sustainedArmor > 0 ? [row('Sustained', `armor +${a.sustainedArmor} soak (-2 dice)`)] : []),
|