@maka/maka-cli 5.122.1 → 5.123.1
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 +14 -10
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
- 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 +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +40 -14
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -10
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +155 -72
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +15 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +33 -33
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- 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/go.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +4 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +7 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -3
- 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 +10 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +95 -0
- 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 +443 -443
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +45 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +120 -9
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +86 -0
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +214 -208
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +215 -18
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +548 -117
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +96 -4
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +290 -11
- 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/skill-groups.d.ts +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +13 -1
- package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/skills.js +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +76 -3
- package/bundle/typescript/src/commands/game/sideQuest/spells.js +48 -21
- 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/utilities/catalog-data.d.ts +90 -82
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +277 -10
- 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 +121 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +342 -18
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +65 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +74 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +248 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +22 -12
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.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 +33 -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/login.js +19 -1
- package/bundle/typescript/src/commands/login.js.map +1 -1
- package/bundle/typescript/src/commands/logout.js +16 -1
- package/bundle/typescript/src/commands/logout.js.map +1 -1
- 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/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/tools/guarded-file/guarded-file.class.d.ts +59 -0
- package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js +120 -0
- package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +1 -0
- package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +16 -0
- package/bundle/typescript/src/tools/mpi/mpi.class.js +25 -7
- package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
- package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
- package/package.json +120 -120
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SkillName } from './
|
|
1
|
+
import { type SkillName } from './skills.js';
|
|
2
2
|
/**
|
|
3
3
|
* SR5e SKILL GROUPS (core p.90) as chargen vocabulary.
|
|
4
4
|
*
|
|
@@ -118,3 +118,13 @@ export declare const UNAVAILABLE_SKILL_GROUPS: {
|
|
|
118
118
|
kept: string[];
|
|
119
119
|
reason: string;
|
|
120
120
|
}[];
|
|
121
|
+
/**
|
|
122
|
+
* The member skills of one group, by key -- empty for a name that is not
|
|
123
|
+
* a group.
|
|
124
|
+
*
|
|
125
|
+
* Incompetent (p.81) is taken per GROUP and bars every skill in it, so a
|
|
126
|
+
* pick naming `stealth` has to reach palming, sneaking and disguise. This
|
|
127
|
+
* is the one place that expansion happens; Player.isForbidden calls it
|
|
128
|
+
* rather than carrying its own copy of the table.
|
|
129
|
+
*/
|
|
130
|
+
export declare function skillsInGroup(group: string): SkillName[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SKILL_NAMES } from './
|
|
1
|
+
import { SKILL_NAMES } from './skills.js';
|
|
2
2
|
/**
|
|
3
3
|
* The highest rating a group may be bought at during creation (p.88 Step
|
|
4
4
|
* Five; p.131 names 6 "the maximum skill level for starting player
|
|
@@ -132,4 +132,16 @@ export const SKILL_GROUPS = DERIVED.exposed;
|
|
|
132
132
|
* rather than inferring it.
|
|
133
133
|
*/
|
|
134
134
|
export const UNAVAILABLE_SKILL_GROUPS = DERIVED.unavailable;
|
|
135
|
+
/**
|
|
136
|
+
* The member skills of one group, by key -- empty for a name that is not
|
|
137
|
+
* a group.
|
|
138
|
+
*
|
|
139
|
+
* Incompetent (p.81) is taken per GROUP and bars every skill in it, so a
|
|
140
|
+
* pick naming `stealth` has to reach palming, sneaking and disguise. This
|
|
141
|
+
* is the one place that expansion happens; Player.isForbidden calls it
|
|
142
|
+
* rather than carrying its own copy of the table.
|
|
143
|
+
*/
|
|
144
|
+
export function skillsInGroup(group) {
|
|
145
|
+
return SKILL_GROUPS.find(g => g.key === group)?.skills ?? [];
|
|
146
|
+
}
|
|
135
147
|
//# sourceMappingURL=skill-groups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-groups.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/skill-groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"skill-groups.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/skill-groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE SKILL VOCABULARY, in a module with no imports of its own.
|
|
3
|
+
*
|
|
4
|
+
* It lived in models/player.ts until 2026-09-04, which was fine until
|
|
5
|
+
* Player needed to ask skill-groups.ts which skills a GROUP holds --
|
|
6
|
+
* Incompetent (p.81) bars a whole group. skill-groups.ts imports
|
|
7
|
+
* SKILL_NAMES to derive its table AT MODULE LOAD, so that import closed
|
|
8
|
+
* a runtime cycle and 232 suites stopped loading with "Cannot access
|
|
9
|
+
* SKILL_NAMES before initialization".
|
|
10
|
+
*
|
|
11
|
+
* Moving the vocabulary DOWN is the fix rather than deferring the
|
|
12
|
+
* table: both modules need these names and neither needs the other for
|
|
13
|
+
* them. models/player.ts re-exports both, so every existing importer is
|
|
14
|
+
* untouched.
|
|
15
|
+
*/
|
|
16
|
+
export type SkillName = 'blades' | 'clubs' | 'unarmed' | 'gunnery' | 'astral-combat' | 'cybercombat' | 'sneaking' | 'perception' | 'palming' | 'escape-artist' | 'disguise' | 'hacking' | 'locksmith' | 'computer' | 'electronic-warfare' | 'hardware' | 'negotiation' | 'con' | 'intimidation' | 'etiquette' | 'leadership' | 'performance' | 'instruction' | 'first-aid' | 'medicine' | 'assensing' | 'spellcasting' | 'counterspelling' | 'piloting' | 'conjuring' | 'compiling' | 'decompiling' | 'registering' | 'software' | 'impersonation' | 'ritual-spellcasting' | 'gymnastics' | 'running' | 'swimming' | 'automatics' | 'pistols' | 'longarms' | 'banishing' | 'summoning' | 'binding' | 'cybertechnology' | 'alchemy' | 'disenchanting' | 'artificing' | 'aeronautics-mechanic' | 'industrial-mechanic' | 'automotive-mechanic' | 'nautical-mechanic' | 'navigation' | 'tracking' | 'survival' | 'archery' | 'free-fall' | 'heavy-weapons' | 'throwing-weapons' | 'exotic-melee' | 'exotic-ranged';
|
|
17
|
+
export declare const SKILL_NAMES: SkillName[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const SKILL_NAMES = [
|
|
2
|
+
'blades', 'clubs', 'unarmed', 'archery', 'free-fall',
|
|
3
|
+
'gunnery', 'astral-combat', 'cybercombat',
|
|
4
|
+
'sneaking', 'perception',
|
|
5
|
+
'palming', 'escape-artist', 'disguise',
|
|
6
|
+
'hacking', 'locksmith', 'computer', 'electronic-warfare', 'hardware',
|
|
7
|
+
'negotiation', 'con', 'intimidation', 'etiquette', 'leadership',
|
|
8
|
+
'performance', 'instruction',
|
|
9
|
+
'first-aid', 'medicine',
|
|
10
|
+
'assensing', 'spellcasting', 'counterspelling',
|
|
11
|
+
'piloting', 'conjuring', 'compiling', 'decompiling', 'registering', 'software',
|
|
12
|
+
// Stage 2 additions -- see the union above for why these twenty-three.
|
|
13
|
+
'impersonation', 'ritual-spellcasting',
|
|
14
|
+
'gymnastics', 'running', 'swimming',
|
|
15
|
+
'automatics', 'pistols', 'longarms',
|
|
16
|
+
'banishing', 'summoning', 'binding',
|
|
17
|
+
'cybertechnology',
|
|
18
|
+
'alchemy', 'disenchanting', 'artificing',
|
|
19
|
+
'aeronautics-mechanic', 'industrial-mechanic', 'automotive-mechanic', 'nautical-mechanic',
|
|
20
|
+
'navigation', 'tracking', 'survival',
|
|
21
|
+
'heavy-weapons', 'throwing-weapons', 'exotic-melee', 'exotic-ranged',
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/skills.ts"],"names":[],"mappings":"AAyGA,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW;IACpD,SAAS,EAAE,eAAe,EAAE,aAAa;IACzC,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,eAAe,EAAE,UAAU;IACtC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU;IACpE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY;IAC/D,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,cAAc,EAAE,iBAAiB;IAC9C,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU;IAC9E,uEAAuE;IACvE,eAAe,EAAE,qBAAqB;IACtC,YAAY,EAAE,SAAS,EAAE,UAAU;IACnC,YAAY,EAAE,SAAS,EAAE,UAAU;IACnC,WAAW,EAAE,WAAW,EAAE,SAAS;IACnC,iBAAiB;IACjB,SAAS,EAAE,eAAe,EAAE,YAAY;IACxC,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB;IACzF,YAAY,EAAE,UAAU,EAAE,UAAU;IACpC,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe;CACrE,CAAC"}
|
|
@@ -19,16 +19,47 @@
|
|
|
19
19
|
* drainOffset) (p.281). The catalog carries the offset so the picker can
|
|
20
20
|
* show the book's drain formula; the Force dial itself is chosen at cast.
|
|
21
21
|
*/
|
|
22
|
+
import type { ICatalogEffect } from './utilities/effects.js';
|
|
22
23
|
export type SpellCategory = 'Combat' | 'Detection' | 'Health' | 'Illusion' | 'Manipulation';
|
|
23
24
|
export interface ISpell {
|
|
24
25
|
key: string;
|
|
25
26
|
/** Display name, the book's. */
|
|
26
27
|
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* TYPE, RANGE AND DURATION -- the book's own three lines, which this
|
|
30
|
+
* engine did not store until 2026-09-04 and which are the reason spells
|
|
31
|
+
* were kept out of the catalog ("I don't see any spells, or qualities
|
|
32
|
+
* there. The catalog should cover ALL things that can be obtained in
|
|
33
|
+
* the game, backed by canon" -- user, 2026-09-04).
|
|
34
|
+
*
|
|
35
|
+
* Every value below was read off the spell's own stat block, verified
|
|
36
|
+
* against the RAG where it would answer and against the rulebook PDF
|
|
37
|
+
* where it would not. None is inferred from a sibling: Acid Stream,
|
|
38
|
+
* Flamethrower, Knockout, Shatter and Clout all had to come from the
|
|
39
|
+
* page, because the retrieval kept describing them through whichever
|
|
40
|
+
* spell they were printed beside.
|
|
41
|
+
*
|
|
42
|
+
* MANA spells affect the mind and are resisted with Willpower; PHYSICAL
|
|
43
|
+
* ones affect the body. 'LOS(A)' is line-of-sight AREA, 'touch' means
|
|
44
|
+
* the cast walks you onto their spot first. Duration 'I'nstantaneous,
|
|
45
|
+
* 'S'ustained (it bills you until you drop it), 'P'ermanent.
|
|
46
|
+
*/
|
|
47
|
+
type: 'mana' | 'physical';
|
|
48
|
+
range: 'LOS' | 'LOS(A)' | 'touch';
|
|
49
|
+
duration: 'I' | 'S' | 'P';
|
|
27
50
|
category: SpellCategory;
|
|
28
51
|
/**
|
|
29
52
|
* RAW drain formula offset: drain = max(2, Force + offset). Tuned so the
|
|
30
|
-
* DEFAULT Force (the caster's Magic) reproduces the pre-Force numbers
|
|
31
|
-
*
|
|
53
|
+
* DEFAULT Force (the caster's Magic) reproduces the pre-Force numbers.
|
|
54
|
+
*
|
|
55
|
+
* SOFTER THAN THE BOOK, AND BY MORE THAN THIS USED TO CLAIM. It said "a
|
|
56
|
+
* couple are a point softer"; measured against the printed Drain values
|
|
57
|
+
* while cataloguing the spells (2026-09-04) it is five of them, by two
|
|
58
|
+
* or three points each: Increase Reflexes (book F, here F-3), Armor
|
|
59
|
+
* (F-2 / F-4), Physical Barrier (F-1 / F-3), Invisibility (F-2 / F-4)
|
|
60
|
+
* and Fireball (F-1 / F-2). The tuning is a deliberate house choice and
|
|
61
|
+
* is left alone here -- but a comment that undercounts its own
|
|
62
|
+
* deviations is worse than no comment, so this one now names them.
|
|
32
63
|
*/
|
|
33
64
|
drainOffset: number;
|
|
34
65
|
/**
|
|
@@ -39,11 +70,53 @@ export interface ISpell {
|
|
|
39
70
|
soak?: 'willpower' | 'body' | 'armor';
|
|
40
71
|
/** Damage lands on the STUN track. */
|
|
41
72
|
stun?: boolean;
|
|
42
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* AREA spell: resolves against the named target, then splashes the room.
|
|
75
|
+
*
|
|
76
|
+
* NOT simply `range === 'LOS(A)'`, which is why both fields exist. This
|
|
77
|
+
* one is a DAMAGE mechanic -- who else in the room takes the hit -- and
|
|
78
|
+
* the two barrier spells are printed at LOS (A) while splashing nobody:
|
|
79
|
+
* their area is the wall they raise, not a blast. So a spell may be
|
|
80
|
+
* area-ranged without this flag, but never the reverse.
|
|
81
|
+
*/
|
|
43
82
|
area?: boolean;
|
|
44
83
|
/** TOUCH range: the cast walks you onto their spot first. */
|
|
45
84
|
touch?: boolean;
|
|
46
85
|
page: string;
|
|
86
|
+
/**
|
|
87
|
+
* WHICH ROUTINE CASTS IT.
|
|
88
|
+
*
|
|
89
|
+
* commands/cast.ts dispatched on a hand-written switch listing all
|
|
90
|
+
* twenty-one keys by name, so a spell added to this file did nothing
|
|
91
|
+
* at all until somebody remembered to edit that switch too -- data at
|
|
92
|
+
* one end, a hand-written consumer at the other, which is the shape
|
|
93
|
+
* this codebase has spent the week removing.
|
|
94
|
+
*
|
|
95
|
+
* Naming the routine here makes a new Combat spell PURE DATA: fifteen
|
|
96
|
+
* of them already share one implementation, and the sixteenth needs
|
|
97
|
+
* no code. The other four routines are genuinely different acts --
|
|
98
|
+
* mending someone, hardening them, holding an effect up, raising a
|
|
99
|
+
* wall -- and each is named rather than guessed at from the category,
|
|
100
|
+
* because Health holds both Heal and Increase Reflexes and they are
|
|
101
|
+
* not cast the same way.
|
|
102
|
+
*/
|
|
103
|
+
cast: 'combat' | 'heal' | 'armor' | 'sustained-utility' | 'barrier';
|
|
104
|
+
/**
|
|
105
|
+
* WHAT IT DOES TO ITS TARGET WHILE SUSTAINED, in the shared effects
|
|
106
|
+
* vocabulary. `when: 'sustained'` is the state it applies in, and
|
|
107
|
+
* `scaleBy: 'hits'` multiplies by the hits the cast landed -- the
|
|
108
|
+
* Armor spell grants a point of soak per hit, so the number is not
|
|
109
|
+
* in the row.
|
|
110
|
+
*
|
|
111
|
+
* ONLY FOR SPELLS WHOSE EFFECT IS A MODIFIER ON SOMEBODY. The two
|
|
112
|
+
* barrier spells raise a wall in a room: that is world state, read
|
|
113
|
+
* by models/scene.ts, and the lane could not carry it without
|
|
114
|
+
* pretending a wall is a dice pool.
|
|
115
|
+
*
|
|
116
|
+
* Every Combat spell is Instantaneous and carries none of this --
|
|
117
|
+
* its damage is resolved at cast time by commands/cast.ts.
|
|
118
|
+
*/
|
|
119
|
+
effects?: ICatalogEffect[];
|
|
47
120
|
}
|
|
48
121
|
/**
|
|
49
122
|
* THE CATALOG -- every spell the engine casts, categorised for the picker.
|
|
@@ -27,33 +27,60 @@
|
|
|
27
27
|
*/
|
|
28
28
|
export const SPELL_CATALOG = [
|
|
29
29
|
// ---- Combat: DIRECT (soak with the single named attribute, no armor) --
|
|
30
|
-
{ key: 'manabolt', name: 'Manabolt', category: 'Combat', drainOffset: -3, soak: 'willpower', page: 'p.284' },
|
|
31
|
-
{ key: 'stunbolt', name: 'Stunbolt', category: 'Combat', drainOffset: -3, soak: 'willpower', stun: true, page: 'p.284' },
|
|
32
|
-
{ key: 'powerbolt', name: 'Powerbolt', category: 'Combat', drainOffset: -3, soak: 'body', page: 'p.284' },
|
|
30
|
+
{ key: 'manabolt', cast: 'combat', name: 'Manabolt', category: 'Combat', type: 'mana', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'willpower', page: 'p.284' },
|
|
31
|
+
{ key: 'stunbolt', cast: 'combat', name: 'Stunbolt', category: 'Combat', type: 'mana', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'willpower', stun: true, page: 'p.284' },
|
|
32
|
+
{ key: 'powerbolt', cast: 'combat', name: 'Powerbolt', category: 'Combat', type: 'physical', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'body', page: 'p.284' },
|
|
33
33
|
// ---- Combat: INDIRECT elemental (thrown like a gun, full soak minus AP) --
|
|
34
|
-
{ key: 'fireball', name: 'Fireball', category: 'Combat', drainOffset: -2, soak: 'armor', page: 'p.284' },
|
|
35
|
-
{ key: 'lightning-bolt', name: 'Lightning Bolt', category: 'Combat', drainOffset: -3, soak: 'armor', page: 'p.284' },
|
|
36
|
-
{ key: 'acid-stream', name: 'Acid Stream', category: 'Combat', drainOffset: -3, soak: 'armor', page: 'p.284' },
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
{ key: 'fireball', cast: 'combat', name: 'Fireball', category: 'Combat', type: 'physical', range: 'LOS(A)', duration: 'I', drainOffset: -2, soak: 'armor', area: true, page: 'p.284' },
|
|
35
|
+
{ key: 'lightning-bolt', cast: 'combat', name: 'Lightning Bolt', category: 'Combat', type: 'physical', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'armor', page: 'p.284' },
|
|
36
|
+
{ key: 'acid-stream', cast: 'combat', name: 'Acid Stream', category: 'Combat', type: 'physical', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'armor', page: 'p.284' },
|
|
37
|
+
// THE THREE ADDED 2026-09-04, and the point of them is that they are
|
|
38
|
+
// DATA ONLY -- no cast.ts edit, because the row now names its own
|
|
39
|
+
// routine. Each stat line is RAG-checked against p.283-284.
|
|
40
|
+
//
|
|
41
|
+
// Toxic Wave is Acid Stream's area twin (F-1 against F-3: an area
|
|
42
|
+
// version costs two more Drain, which is the pattern across the
|
|
43
|
+
// whole family -- Fireball/Flamethrower, Manaball/Manabolt).
|
|
44
|
+
{ key: 'toxic-wave', cast: 'combat', name: 'Toxic Wave', category: 'Combat', type: 'physical', range: 'LOS(A)', duration: 'I', drainOffset: -1, soak: 'armor', area: true, page: 'p.284' },
|
|
45
|
+
{ key: 'flamethrower', cast: 'combat', name: 'Flamethrower', category: 'Combat', type: 'physical', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'armor', page: 'p.284' },
|
|
46
|
+
{ key: 'clout', cast: 'combat', name: 'Clout', category: 'Combat', type: 'physical', range: 'LOS', duration: 'I', drainOffset: -3, soak: 'armor', stun: true, page: 'p.284' },
|
|
39
47
|
// ---- Combat: TOUCH (the cheapest drain, paid for by reaching them) ----
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
// Clout has both a touch version and an area one, and neither was
|
|
49
|
+
// here. Punch F-6 is the touch discount the direct spells show too
|
|
50
|
+
// (Death Touch F-6 against Manabolt F-3); Blast F-0 is the area
|
|
51
|
+
// premium on Clout F-3.
|
|
52
|
+
{ key: 'punch', cast: 'combat', name: 'Punch', category: 'Combat', type: 'physical', range: 'touch', duration: 'I', drainOffset: -6, soak: 'armor', stun: true, touch: true, page: 'p.284' },
|
|
53
|
+
{ key: 'blast', cast: 'combat', name: 'Blast', category: 'Combat', type: 'physical', range: 'LOS(A)', duration: 'I', drainOffset: 0, soak: 'armor', stun: true, area: true, page: 'p.284' },
|
|
54
|
+
{ key: 'death-touch', cast: 'combat', name: 'Death Touch', category: 'Combat', type: 'mana', range: 'touch', duration: 'I', drainOffset: -6, soak: 'willpower', touch: true, page: 'p.284' },
|
|
55
|
+
{ key: 'knockout', cast: 'combat', name: 'Knockout', category: 'Combat', type: 'mana', range: 'touch', duration: 'I', drainOffset: -6, soak: 'willpower', stun: true, touch: true, page: 'p.284' },
|
|
56
|
+
{ key: 'shatter', cast: 'combat', name: 'Shatter', category: 'Combat', type: 'physical', range: 'touch', duration: 'I', drainOffset: -6, soak: 'body', touch: true, page: 'p.284' },
|
|
43
57
|
// ---- Combat: AREA (the named target takes it, the room eats the blast) -
|
|
44
|
-
{ key: 'manaball', name: 'Manaball', category: 'Combat', drainOffset: 0, soak: 'willpower', area: true, page: 'p.284' },
|
|
45
|
-
{ key: 'stunball', name: 'Stunball', category: 'Combat', drainOffset: 0, soak: 'willpower', stun: true, area: true, page: 'p.284' },
|
|
46
|
-
{ key: 'powerball', name: 'Powerball', category: 'Combat', drainOffset: 0, soak: 'body', area: true, page: 'p.284' },
|
|
47
|
-
{ key: 'ball-lightning', name: 'Ball Lightning', category: 'Combat', drainOffset: -1, soak: 'armor', area: true, page: 'p.284' },
|
|
58
|
+
{ key: 'manaball', cast: 'combat', name: 'Manaball', category: 'Combat', type: 'mana', range: 'LOS(A)', duration: 'I', drainOffset: 0, soak: 'willpower', area: true, page: 'p.284' },
|
|
59
|
+
{ key: 'stunball', cast: 'combat', name: 'Stunball', category: 'Combat', type: 'mana', range: 'LOS(A)', duration: 'I', drainOffset: 0, soak: 'willpower', stun: true, area: true, page: 'p.284' },
|
|
60
|
+
{ key: 'powerball', cast: 'combat', name: 'Powerball', category: 'Combat', type: 'physical', range: 'LOS(A)', duration: 'I', drainOffset: 0, soak: 'body', area: true, page: 'p.284' },
|
|
61
|
+
{ key: 'ball-lightning', cast: 'combat', name: 'Ball Lightning', category: 'Combat', type: 'physical', range: 'LOS(A)', duration: 'I', drainOffset: -1, soak: 'armor', area: true, page: 'p.284' },
|
|
48
62
|
// ---- Health --------------------------------------------------------
|
|
49
|
-
{ key: 'heal', name: 'Heal', category: 'Health', drainOffset: -4, page: 'p.287' },
|
|
50
|
-
{
|
|
63
|
+
{ key: 'heal', cast: 'heal', name: 'Heal', category: 'Health', type: 'mana', range: 'touch', duration: 'P', drainOffset: -4, touch: true, page: 'p.287' },
|
|
64
|
+
{
|
|
65
|
+
// separate `initiative` arm: `bonus('initiative')` is the DICE pool
|
|
66
|
+
// chrome and Improved Reflexes add to, and this spell moves the
|
|
67
|
+
// number you roll against instead. One word, two things.
|
|
68
|
+
//
|
|
69
|
+
// The flat 2 is the standing stand-in the engine already used:
|
|
70
|
+
// cast.ts stores no hit count for this spell, so the canon grant
|
|
71
|
+
// (+1 Initiative per hit, a die per two) cannot be computed from
|
|
72
|
+
// what is saved. Carried across unchanged rather than invented.
|
|
73
|
+
key: 'reflexes', cast: 'sustained-utility', name: 'Increase Reflexes', category: 'Health', type: 'physical', range: 'touch', duration: 'S', drainOffset: -3, touch: true,
|
|
74
|
+
effects: [{ type: 'initiative', category: 'pools', property: 'score', value: 2, when: 'sustained' }], page: 'p.287'
|
|
75
|
+
},
|
|
51
76
|
// ---- Illusion ------------------------------------------------------
|
|
52
|
-
{ key: 'invisibility', name: 'Invisibility', category: 'Illusion',
|
|
77
|
+
{ key: 'invisibility', cast: 'sustained-utility', name: 'Invisibility', category: 'Illusion', type: 'mana', range: 'LOS', duration: 'S', drainOffset: -4,
|
|
78
|
+
effects: [{ type: 'dice', category: 'pools', property: 'sneak', value: 3, when: 'sustained' }], page: 'p.291' },
|
|
53
79
|
// ---- Manipulation --------------------------------------------------
|
|
54
|
-
{ key: 'armor', name: 'Armor', category: 'Manipulation',
|
|
55
|
-
|
|
56
|
-
{ key: '
|
|
80
|
+
{ key: 'armor', cast: 'armor', name: 'Armor', category: 'Manipulation', type: 'physical', range: 'LOS', duration: 'S', drainOffset: -4,
|
|
81
|
+
effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 1, scaleBy: 'hits', when: 'sustained' }], page: 'p.293' },
|
|
82
|
+
{ key: 'barrier', cast: 'barrier', name: 'Physical Barrier', category: 'Manipulation', type: 'physical', range: 'LOS(A)', duration: 'S', drainOffset: -3, page: 'p.294' },
|
|
83
|
+
{ key: 'manabarrier', cast: 'barrier', name: 'Mana Barrier', category: 'Manipulation', type: 'mana', range: 'LOS(A)', duration: 'S', drainOffset: -2, page: 'p.294' },
|
|
57
84
|
];
|
|
58
85
|
/** Keyed lookup -- cast.ts's mechanics source (replaces its local record). */
|
|
59
86
|
export const SPELLS = Object.fromEntries(SPELL_CATALOG.map((s) => [s.key, s]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spells.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/spells.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"spells.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/spells.ts"],"names":[],"mappings":"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"}
|
|
@@ -163,6 +163,14 @@ export interface ISavedPlayer {
|
|
|
163
163
|
qualities: string[];
|
|
164
164
|
/** Rating per rated quality key (qualities.ts maxRating); absent = 1. Contract 2026-09-02. */
|
|
165
165
|
qualityRatings?: [string, number][];
|
|
166
|
+
/**
|
|
167
|
+
* The pick each choosing quality was given (IQualityChoice) -- the
|
|
168
|
+
* skill Aptitude names, the attribute Exceptional Attribute names.
|
|
169
|
+
* Absent on every save written before 2026-09-04, and absent is
|
|
170
|
+
* correct for them: those characters were never asked, so their
|
|
171
|
+
* quality lifts no ceiling until they answer.
|
|
172
|
+
*/
|
|
173
|
+
qualityChoices?: [string, string][];
|
|
166
174
|
/** Which fake SIN the runner chose to present (Player.activeSin).
|
|
167
175
|
* Absent = no choice made; bestFakeSin falls back to best rating. */
|
|
168
176
|
activeSin?: string;
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
* gear -- these strings are what the player reads, and what an NPC's
|
|
21
21
|
* swag briefing quotes.
|
|
22
22
|
*/
|
|
23
|
-
import type {
|
|
24
|
-
import type {
|
|
25
|
-
|
|
26
|
-
export
|
|
23
|
+
import type { IQuality } from '../qualities.js';
|
|
24
|
+
import type { ICatalogChoice, ICatalogRestrictions } from './effects.js';
|
|
25
|
+
import type { ICatalogEffect } from './effects.js';
|
|
26
|
+
export declare const CATALOG_VERSION = 14;
|
|
27
|
+
export type CatalogKind = 'gear' | 'quality' | 'spell' | 'augmentation' | 'metatype' | 'adept-power' | 'metamagic';
|
|
27
28
|
/** The skill a weapon is fired or swung with. The last four have no engine
|
|
28
29
|
* skill yet (SkillName); the engine falls back per models/player.ts. */
|
|
29
30
|
export type WeaponSkill = 'pistols' | 'automatics' | 'longarms' | 'archery' | 'blades' | 'clubs' | 'unarmed' | 'heavy-weapons' | 'throwing-weapons' | 'exotic-melee' | 'exotic-ranged';
|
|
@@ -136,80 +137,7 @@ export interface ICatalogMod {
|
|
|
136
137
|
/** Weapon classes it refuses: a silencer fits no revolver or shotgun (p.432). */
|
|
137
138
|
excludes?: ('shotgun' | 'revolver')[];
|
|
138
139
|
}
|
|
139
|
-
export type EffectPool
|
|
140
|
-
export type EffectLimit = 'physical' | 'mental' | 'social' | 'accuracy';
|
|
141
|
-
export type EffectAttribute = 'body' | 'agility' | 'reaction' | 'strength' | 'willpower' | 'logic' | 'intuition' | 'charisma' | 'edge' | 'magic' | 'resonance' | 'reach' | 'armor-bonus';
|
|
142
|
-
export type EffectMatrixAttribute = 'attack' | 'sleaze' | 'dataProcessing' | 'firewall' | 'damage';
|
|
143
|
-
/** A capability is a flag the engine asks for by key (Player.hasCapability). */
|
|
144
|
-
export type EffectCapability = 'dni' | 'smartlink' | 'smartgun' | 'low-light' | 'thermographic' | 'no-fog' | 'silenced' | 'full-body' | 'autopicker' | 'maglock-opposed';
|
|
145
|
-
/**
|
|
146
|
-
* A modifier the row grants while it applies. `value` is a NUMBER, never a
|
|
147
|
-
* string: every reader adds it, and a string would need parsing at each
|
|
148
|
-
* one and would drift in the web's seed. `scaleBy` multiplies it by the
|
|
149
|
-
* row's `ratingValue` (rating), the cast Force (force) or the hits of a
|
|
150
|
-
* sustained spell (hits). `when` defaults by kind: a wearable's effects
|
|
151
|
-
* apply worn, a weapon's held, a program's running, a data soft's stored,
|
|
152
|
-
* a mod's fitted, an augmentation's installed, a quality's held.
|
|
153
|
-
*/
|
|
154
|
-
export type ICatalogEffect = {
|
|
155
|
-
type: 'dice';
|
|
156
|
-
category: 'skills';
|
|
157
|
-
property: SkillName;
|
|
158
|
-
value: number;
|
|
159
|
-
scaleBy?: EffectScale;
|
|
160
|
-
when?: EffectWhen;
|
|
161
|
-
only?: string;
|
|
162
|
-
} | {
|
|
163
|
-
type: 'dice';
|
|
164
|
-
category: 'pools';
|
|
165
|
-
property: EffectPool;
|
|
166
|
-
value: number;
|
|
167
|
-
scaleBy?: EffectScale;
|
|
168
|
-
when?: EffectWhen;
|
|
169
|
-
only?: string;
|
|
170
|
-
} | {
|
|
171
|
-
type: 'limit';
|
|
172
|
-
category: 'limits';
|
|
173
|
-
property: EffectLimit;
|
|
174
|
-
value: number;
|
|
175
|
-
scaleBy?: EffectScale;
|
|
176
|
-
when?: EffectWhen;
|
|
177
|
-
only?: string;
|
|
178
|
-
} | {
|
|
179
|
-
type: 'attribute';
|
|
180
|
-
category: 'attributes';
|
|
181
|
-
property: EffectAttribute;
|
|
182
|
-
value: number;
|
|
183
|
-
scaleBy?: EffectScale;
|
|
184
|
-
when?: EffectWhen;
|
|
185
|
-
only?: string;
|
|
186
|
-
} | {
|
|
187
|
-
type: 'attribute';
|
|
188
|
-
category: 'matrix';
|
|
189
|
-
property: EffectMatrixAttribute;
|
|
190
|
-
value: number;
|
|
191
|
-
scaleBy?: EffectScale;
|
|
192
|
-
when?: EffectWhen;
|
|
193
|
-
only?: string;
|
|
194
|
-
} | {
|
|
195
|
-
type: 'initiative';
|
|
196
|
-
category: 'pools';
|
|
197
|
-
property: 'dice' | 'score';
|
|
198
|
-
value: number;
|
|
199
|
-
scaleBy?: EffectScale;
|
|
200
|
-
when?: EffectWhen;
|
|
201
|
-
only?: string;
|
|
202
|
-
} | {
|
|
203
|
-
type: 'flag';
|
|
204
|
-
category: 'capability';
|
|
205
|
-
property: EffectCapability;
|
|
206
|
-
value: number;
|
|
207
|
-
scaleBy?: EffectScale;
|
|
208
|
-
when?: EffectWhen;
|
|
209
|
-
only?: string;
|
|
210
|
-
};
|
|
211
|
-
export type EffectScale = 'rating' | 'force' | 'hits';
|
|
212
|
-
export type EffectWhen = 'worn' | 'held' | 'carried' | 'running' | 'stored' | 'fitted' | 'installed' | 'held-quality' | 'sustained';
|
|
140
|
+
export type { EffectPool, EffectLimit, EffectAttribute, EffectMatrixAttribute, EffectCapability, ICatalogEffect, EffectScale, EffectWhen, } from './effects.js';
|
|
213
141
|
/** Every kind shares this. */
|
|
214
142
|
export interface ICatalogBase {
|
|
215
143
|
/** Absent = 'gear'. */
|
|
@@ -222,6 +150,34 @@ export interface ICatalogBase {
|
|
|
222
150
|
page?: string;
|
|
223
151
|
approx?: boolean;
|
|
224
152
|
effects?: ICatalogEffect[];
|
|
153
|
+
/**
|
|
154
|
+
* THE SPELL A FORMULA TEACHES, by spells.ts key.
|
|
155
|
+
*
|
|
156
|
+
* A spell formula is written for ONE spell (p.461, p.299: "the spell
|
|
157
|
+
* you want"), and its PRICE is set by that spell's category. The
|
|
158
|
+
* five rows here used to be the categories themselves -- "Combat
|
|
159
|
+
* Spell Formula" -- and Player.knowsSpell matched them by looking
|
|
160
|
+
* for the spell's name inside the item's name. No category name
|
|
161
|
+
* ever contains a spell name, so the match could never fire: every
|
|
162
|
+
* one of them was 500 to 2,000 nuyen for a scroll that taught
|
|
163
|
+
* nothing.
|
|
164
|
+
*/
|
|
165
|
+
teaches?: string;
|
|
166
|
+
/**
|
|
167
|
+
* A pick this row cannot work without (ICatalogChoice). ON THE BASE,
|
|
168
|
+
* so a quality, an augmentation, a spell or an adept power all declare
|
|
169
|
+
* one the same way -- a Hardwire naming a skill is the same question
|
|
170
|
+
* Aptitude asks, and asking it twice in two shapes is how the picker
|
|
171
|
+
* ends up rebuilt per kind.
|
|
172
|
+
*/
|
|
173
|
+
choice?: ICatalogChoice;
|
|
174
|
+
/**
|
|
175
|
+
* What this row refuses to be held with (ICatalogRestrictions), in the
|
|
176
|
+
* same one shape for every kind. Assembled from each source's own
|
|
177
|
+
* per-kind fields, so one enforcement pass covers all 69 rather than
|
|
178
|
+
* one hand-written gate covering one.
|
|
179
|
+
*/
|
|
180
|
+
restrictions?: ICatalogRestrictions;
|
|
225
181
|
}
|
|
226
182
|
export interface ICatalogItem extends ICatalogBase {
|
|
227
183
|
kind?: 'gear';
|
|
@@ -266,11 +222,41 @@ export interface ICatalogQuality extends ICatalogBase {
|
|
|
266
222
|
requires?: 'awakened' | 'mundane' | 'caster-or-technomancer';
|
|
267
223
|
requiresQuality?: string;
|
|
268
224
|
requiresMetatype?: Metatype[];
|
|
225
|
+
/**
|
|
226
|
+
* THE FOUR FIELDS qualityRows() writes and this interface did not
|
|
227
|
+
* declare (found by maka-cli-com-c3 reading the commit, 2026-09-04).
|
|
228
|
+
*
|
|
229
|
+
* They were invisible to the compiler because the object literal
|
|
230
|
+
* carrying them contains conditional spreads, and a literal with a
|
|
231
|
+
* spread is no longer FRESH -- excess-property checking does not
|
|
232
|
+
* apply to it. So the row shipped four fields the published .d.ts
|
|
233
|
+
* denied existed, and the web's mirror would have needed a cast to
|
|
234
|
+
* read `row.quality.choice` -- the sort of cast that later gets
|
|
235
|
+
* tidied away by someone who trusts the type.
|
|
236
|
+
*
|
|
237
|
+
* DERIVED FROM IQuality, not retyped. `family`'s union and the shape
|
|
238
|
+
* of a choice live in qualities.ts, and indexing them here means the
|
|
239
|
+
* catalog cannot fall behind the source the way it just did. It also
|
|
240
|
+
* answers the question c3 asked -- "tell me if the names or the
|
|
241
|
+
* family union move" -- with "they cannot, if you index them too".
|
|
242
|
+
*/
|
|
243
|
+
family: IQuality['family'];
|
|
244
|
+
inert?: string;
|
|
245
|
+
choice?: ICatalogChoice;
|
|
246
|
+
excludesQuality?: string;
|
|
269
247
|
};
|
|
270
248
|
}
|
|
271
249
|
export interface ICatalogSpell extends ICatalogBase {
|
|
272
250
|
kind: 'spell';
|
|
273
251
|
spell: {
|
|
252
|
+
/**
|
|
253
|
+
* WHICH ROUTINE CASTS IT. The one field a row could not supply,
|
|
254
|
+
* and so the one thing stopping a spell from being sourced from
|
|
255
|
+
* the catalog rather than compiled in -- which is where the
|
|
256
|
+
* rules are headed (mjmcee, 2026-09-04: "the engine rule comes
|
|
257
|
+
* from the catalog. We shouldn't be hard coding the rules").
|
|
258
|
+
*/
|
|
259
|
+
cast: 'combat' | 'heal' | 'armor' | 'sustained-utility' | 'barrier';
|
|
274
260
|
category: 'Combat' | 'Detection' | 'Health' | 'Illusion' | 'Manipulation';
|
|
275
261
|
type: 'mana' | 'physical';
|
|
276
262
|
range: 'LOS' | 'LOS(A)' | 'touch';
|
|
@@ -296,6 +282,31 @@ export interface ICatalogAugmentation extends ICatalogBase {
|
|
|
296
282
|
canonEssence?: number;
|
|
297
283
|
};
|
|
298
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* AN ADEPT POWER (p.308-310). Bought with Power Points rather than nuyen
|
|
287
|
+
* or karma, which is why it carries no price: `levelCosts` is the PP to
|
|
288
|
+
* HOLD it at each level, and a magic-capped power extends linearly to the
|
|
289
|
+
* character's Magic.
|
|
290
|
+
*/
|
|
291
|
+
export interface ICatalogAdeptPower extends ICatalogBase {
|
|
292
|
+
kind: 'adept-power';
|
|
293
|
+
adeptPower: {
|
|
294
|
+
levelCosts: number[];
|
|
295
|
+
magicCapped: boolean;
|
|
296
|
+
costPerLevel?: number;
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* A METAMAGIC (p.325-326) or a technomancer's echo (p.258). Bought with an
|
|
301
|
+
* initiation or submersion grade, so it has no price either; `path` is who
|
|
302
|
+
* may take it.
|
|
303
|
+
*/
|
|
304
|
+
export interface ICatalogMetamagic extends ICatalogBase {
|
|
305
|
+
kind: 'metamagic';
|
|
306
|
+
metamagic: {
|
|
307
|
+
path: 'caster' | 'adept' | 'techno';
|
|
308
|
+
};
|
|
309
|
+
}
|
|
299
310
|
export interface ICatalogMetatype extends ICatalogBase {
|
|
300
311
|
kind: 'metatype';
|
|
301
312
|
metatype: {
|
|
@@ -307,11 +318,8 @@ export interface ICatalogMetatype extends ICatalogBase {
|
|
|
307
318
|
lifestyleCostMult?: number;
|
|
308
319
|
};
|
|
309
320
|
}
|
|
310
|
-
export type ICatalogRow = ICatalogItem | ICatalogQuality | ICatalogSpell | ICatalogAugmentation | ICatalogMetatype;
|
|
321
|
+
export type ICatalogRow = ICatalogItem | ICatalogQuality | ICatalogSpell | ICatalogAugmentation | ICatalogMetatype | ICatalogAdeptPower | ICatalogMetamagic;
|
|
311
322
|
/** Gear or not -- the discriminator every consumer of the gear list uses. */
|
|
312
323
|
export declare function isGearRow(r: ICatalogRow): r is ICatalogItem;
|
|
313
324
|
export declare const CATALOG_ITEMS: ICatalogItem[];
|
|
314
|
-
/** THE WHOLE SEED, every kind. Gear today; qualities, spells, augmentations
|
|
315
|
-
* and metatypes join it in v14. The loader (utilities/catalog.ts) weighs
|
|
316
|
-
* THIS against the server and the cache. */
|
|
317
325
|
export declare const CATALOG_ROWS: ICatalogRow[];
|