@maka/maka-cli 5.3.17 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +62 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +196 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +122 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +243 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +39 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js +82 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +101 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +19 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +219 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +58 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +397 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/command-registry.d.ts +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/command-registry.js +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/command-registry.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/command.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/command.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +72 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/edge.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js +31 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js +27 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +59 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +147 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +199 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +75 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +64 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/kill.d.ts +10 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/kill.js +11 -33
- package/bundle/typescript/src/commands/game/sideQuest/commands/kill.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +47 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pan.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.d.ts +18 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +100 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +33 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.d.ts +19 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +54 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/read.js +6 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/read.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +40 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +59 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +31 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +71 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +58 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +35 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +32 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +86 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +41 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/subdue.d.ts +21 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/subdue.js +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/subdue.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +138 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js +6 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +102 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.js +7 -2
- package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +175 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +673 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.d.ts +8 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +139 -21
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +174 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +647 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +138 -9
- package/bundle/typescript/src/commands/game/sideQuest/game.js +757 -197
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/minigames/hack-minigame.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/minigames/hack-minigame.js +101 -0
- package/bundle/typescript/src/commands/game/sideQuest/minigames/hack-minigame.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/minigames/lockpick-minigame.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/minigames/lockpick-minigame.js +95 -0
- package/bundle/typescript/src/commands/game/sideQuest/minigames/lockpick-minigame.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js +54 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +41 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +106 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +27 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +312 -50
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +278 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +661 -9
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +75 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +199 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +53 -18
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +73 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +208 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +319 -70
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +661 -227
- package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/win-condition-seed.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/win-condition-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/win-condition-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +95 -6
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.d.ts +60 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +138 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +145 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +354 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +92 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +77 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +265 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pursuit.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pursuit.js +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pursuit.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +78 -7
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/set/global.sub.cmd.js +59 -5
- package/bundle/typescript/src/commands/set/global.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/tools/ai/ai.class.d.ts +42 -0
- package/bundle/typescript/src/tools/ai/ai.class.js +117 -0
- package/bundle/typescript/src/tools/ai/ai.class.js.map +1 -0
- package/bundle/typescript/src/tools/fsi/fsi.interfaces.d.ts +1 -0
- package/bundle/typescript/src/tools/fsi/fsi.interfaces.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.class.d.ts +3 -2
- package/bundle/typescript/src/tools/https/https.class.js +51 -2
- package/bundle/typescript/src/tools/https/https.class.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.interface.d.ts +10 -0
- package/package.json +1 -1
|
@@ -5,10 +5,87 @@ import { Room } from './room.js';
|
|
|
5
5
|
import { Item } from './item.js';
|
|
6
6
|
import { Inventory } from './inventory.js';
|
|
7
7
|
import { AbstractPlayer } from '../types/shared/abstracts.js';
|
|
8
|
+
/**
|
|
9
|
+
* Shadowrun-style combat attributes, deliberately trimmed to the four that
|
|
10
|
+
* drive dice pools here: Body (soak + condition monitor size), Agility
|
|
11
|
+
* (attack pool), Reaction (defense pool), and a single flat combat skill
|
|
12
|
+
* (attack pool). Everything else a real character sheet would carry is out
|
|
13
|
+
* of scope until something actually needs it.
|
|
14
|
+
*/
|
|
15
|
+
export type FightStance = 'manual' | 'guarded' | 'aggressive';
|
|
16
|
+
export declare const STANCE_CYCLE: FightStance[];
|
|
17
|
+
export type Plane = 'meat' | 'matrix' | 'astral';
|
|
18
|
+
export type SimMode = 'cold' | 'hot';
|
|
19
|
+
/**
|
|
20
|
+
* The SR5e-condensed active skill list. Every pool that used to lean on
|
|
21
|
+
* the single generic `combatSkill` attribute now draws the SPECIFIC
|
|
22
|
+
* skill (firearms for guns, blades for melee weapons, unarmed for fists
|
|
23
|
+
* and subdual, hacking for cybercombat). Non-combat skills back their own
|
|
24
|
+
* mechanics as they land -- perception drives search rolls today; the
|
|
25
|
+
* rest are rated on the sheet and waiting for their verbs.
|
|
26
|
+
*/
|
|
27
|
+
export type SkillName = 'firearms' | 'blades' | 'unarmed' | 'sneaking' | 'perception' | 'athletics' | 'hacking' | 'locksmith' | 'negotiation' | 'con' | 'intimidation' | 'first-aid' | 'assensing' | 'spellcasting' | 'piloting';
|
|
28
|
+
export declare const SKILL_NAMES: SkillName[];
|
|
29
|
+
/**
|
|
30
|
+
* Skills that fall back to the legacy `combatSkill` attribute when no
|
|
31
|
+
* explicit rating is given -- this is what keeps every existing NPC seed
|
|
32
|
+
* (which only carries combatSkill) rolling exactly the pools it always
|
|
33
|
+
* has, ice included (its Matrix strikes ride `hacking`).
|
|
34
|
+
*/
|
|
35
|
+
export declare const COMBAT_SKILL_FALLBACK: ReadonlySet<SkillName>;
|
|
36
|
+
export interface ICombatAttributes {
|
|
37
|
+
body?: number;
|
|
38
|
+
agility?: number;
|
|
39
|
+
reaction?: number;
|
|
40
|
+
combatSkill?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Per-skill ratings (1-8; see SkillName). Any skill omitted here
|
|
43
|
+
* defaults: combat skills to `combatSkill`, everything else to 0
|
|
44
|
+
* (unskilled -- rolled as the linked attribute MINUS ONE where a
|
|
45
|
+
* mechanic supports defaulting, e.g. perception on search).
|
|
46
|
+
*/
|
|
47
|
+
skills?: Partial<Record<SkillName, number>>;
|
|
48
|
+
/**
|
|
49
|
+
* Innate magical talent -- 0 (the default) is mundane, like most of the
|
|
50
|
+
* Sixth World. An Awakened actor (magic > 0) knows every spell innately
|
|
51
|
+
* and casts from this attribute instead of needing formulas; see the
|
|
52
|
+
* magic section below.
|
|
53
|
+
*/
|
|
54
|
+
magic?: number;
|
|
55
|
+
/** Melee/unarmed damage and carrying capacity. */
|
|
56
|
+
strength?: number;
|
|
57
|
+
/** Stun track size and drain resistance. */
|
|
58
|
+
willpower?: number;
|
|
59
|
+
/** First aid effectiveness; NPC hacking. */
|
|
60
|
+
logic?: number;
|
|
61
|
+
/** Defense pool (half, rounded down) and future perception checks. */
|
|
62
|
+
intuition?: number;
|
|
63
|
+
/** Social presence -- listed on the sheet now, mechanics to come. */
|
|
64
|
+
charisma?: number;
|
|
65
|
+
/** Luck: per-job pool of edge points, burned to push a strike (see edge.ts). */
|
|
66
|
+
edge?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Technomancer talent -- 0 (the default) for everyone else. A resonance
|
|
69
|
+
* actor is a LIVING PERSONA: they jack into the Matrix with no deck and
|
|
70
|
+
* no commlink (their brain is the hardware), resonance boosts every
|
|
71
|
+
* Matrix pool, and ALL Matrix damage lands on their real stun track --
|
|
72
|
+
* there's no deck to brick, only a mind to burn.
|
|
73
|
+
*/
|
|
74
|
+
resonance?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Physical adept: magic channeled into the body instead of spells.
|
|
77
|
+
* Counts as Awakened (auras read them, assensing works) but they cast
|
|
78
|
+
* NOTHING -- not even from formulas -- and cannot astrally project.
|
|
79
|
+
* Instead, half their magic (rounded down) is added to their meat-plane
|
|
80
|
+
* attack and defense pools: improved reflexes, killing hands.
|
|
81
|
+
*/
|
|
82
|
+
adept?: boolean;
|
|
83
|
+
}
|
|
8
84
|
export interface IPlayerConstructorConfig {
|
|
9
85
|
playerName: string;
|
|
10
86
|
startLocation: Room;
|
|
11
87
|
lifestyleChoices?: LifestyleChoices;
|
|
88
|
+
combat?: ICombatAttributes;
|
|
12
89
|
}
|
|
13
90
|
export declare class Player extends AbstractPlayer {
|
|
14
91
|
readonly _playerName: string;
|
|
@@ -19,7 +96,86 @@ export declare class Player extends AbstractPlayer {
|
|
|
19
96
|
protected _lifestyleChoices: LifestyleChoices;
|
|
20
97
|
protected logger: Logger;
|
|
21
98
|
private _currency;
|
|
99
|
+
activeCallPartner?: Player;
|
|
100
|
+
runningSilent: boolean;
|
|
101
|
+
combatOpponent?: Player;
|
|
102
|
+
lastExchangeAt: number;
|
|
103
|
+
inExchange: boolean;
|
|
104
|
+
autoStance: FightStance;
|
|
105
|
+
surrendered: boolean;
|
|
106
|
+
archetypeName?: string;
|
|
107
|
+
weaponDrawn: boolean;
|
|
108
|
+
plane: Plane;
|
|
109
|
+
bodyRoom?: Room;
|
|
110
|
+
simMode?: SimMode;
|
|
111
|
+
astralTicks: number;
|
|
112
|
+
activeDeck?: Item;
|
|
113
|
+
/** The best working cyberdeck carried (bricked ones don't count). */
|
|
114
|
+
getCyberdeck(): Item | undefined;
|
|
115
|
+
/** Any deck at all, bricked included -- for status displays and repair. */
|
|
116
|
+
getAnyCyberdeck(): Item | undefined;
|
|
117
|
+
arOffline: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The PAN's master device: your slaved gear defends behind its
|
|
120
|
+
* firewall (SR slaving, simplified). Best working deck beats the
|
|
121
|
+
* equipped commlink; no devices = no PAN (and nothing to hack).
|
|
122
|
+
*/
|
|
123
|
+
getPanMaster(): Item | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Defense against a PAN intrusion: Logic + the master's firewall
|
|
126
|
+
* (+2 while running silent -- a hidden PAN must be FOUND first).
|
|
127
|
+
*/
|
|
128
|
+
getPanDefensePool(): number;
|
|
129
|
+
get matrixTaken(): number;
|
|
130
|
+
get maxMatrixBoxes(): number;
|
|
131
|
+
/** Routes Matrix combat damage into the jacked-in deck's hardware track. */
|
|
132
|
+
takeMatrixDamage(boxes: number): number;
|
|
133
|
+
get matrixCrashed(): boolean;
|
|
134
|
+
/** The deck track, same rendering as conditionSummary(). */
|
|
135
|
+
matrixSummary(): string;
|
|
136
|
+
/**
|
|
137
|
+
* Cross-plane perception, the single rule everything filters through:
|
|
138
|
+
* same plane sees same plane; the astral perceives the meat world
|
|
139
|
+
* (shifted, not gone -- auras and movement, dimly); meat and Matrix see
|
|
140
|
+
* nothing beyond their own plane. Used by see/hear guards, targeting,
|
|
141
|
+
* and room listings.
|
|
142
|
+
*/
|
|
143
|
+
canPerceive(other: Player): boolean;
|
|
144
|
+
waitingForLull: boolean;
|
|
145
|
+
body: number;
|
|
146
|
+
agility: number;
|
|
147
|
+
reaction: number;
|
|
148
|
+
combatSkill: number;
|
|
149
|
+
magic: number;
|
|
150
|
+
strength: number;
|
|
151
|
+
willpower: number;
|
|
152
|
+
logic: number;
|
|
153
|
+
intuition: number;
|
|
154
|
+
charisma: number;
|
|
155
|
+
edge: number;
|
|
156
|
+
resonance: number;
|
|
157
|
+
adept: boolean;
|
|
158
|
+
edgeRemaining: number;
|
|
159
|
+
edgeBoostArmed: boolean;
|
|
160
|
+
private _damageTaken;
|
|
161
|
+
private _stunTaken;
|
|
22
162
|
constructor(config: IPlayerConstructorConfig);
|
|
163
|
+
/** Explicit per-skill ratings; anything absent resolves via skillRating(). */
|
|
164
|
+
skills: Partial<Record<SkillName, number>>;
|
|
165
|
+
karma: number;
|
|
166
|
+
/**
|
|
167
|
+
* The effective rating for a skill: explicit rating if set; otherwise
|
|
168
|
+
* combat skills fall back to the legacy `combatSkill` attribute (which
|
|
169
|
+
* keeps every skill-less NPC seed rolling its historical pools), and
|
|
170
|
+
* everything else is 0 (unskilled).
|
|
171
|
+
*/
|
|
172
|
+
skillRating(name: SkillName): number;
|
|
173
|
+
/**
|
|
174
|
+
* Which combat skill the current armament exercises: firearms for a
|
|
175
|
+
* drawn gun, blades for a drawn melee weapon, unarmed for empty hands
|
|
176
|
+
* (or anything holstered -- see weaponDrawn).
|
|
177
|
+
*/
|
|
178
|
+
activeCombatSkill(): SkillName;
|
|
23
179
|
private initializeEquipment;
|
|
24
180
|
get name(): string;
|
|
25
181
|
get currentLocation(): Room;
|
|
@@ -33,6 +189,8 @@ export declare class Player extends AbstractPlayer {
|
|
|
33
189
|
addInventory(item: Item): void;
|
|
34
190
|
removeInventory(item: Item): boolean;
|
|
35
191
|
equip(item: Item): string;
|
|
192
|
+
/** True for the hand slots that hold a wielded weapon. */
|
|
193
|
+
static isWeaponSlot(group: keyof PlayerEquipment, slot: string): boolean;
|
|
36
194
|
unequip(input: string): string;
|
|
37
195
|
determineEquipmentSlot(input: string): {
|
|
38
196
|
group: keyof PlayerEquipment;
|
|
@@ -50,6 +208,126 @@ export declare class Player extends AbstractPlayer {
|
|
|
50
208
|
}) => void;
|
|
51
209
|
enterRoom(room: Room): void;
|
|
52
210
|
leaveRoom(): void;
|
|
211
|
+
private static readonly ARMOR_CATEGORIES;
|
|
212
|
+
get maxConditionBoxes(): number;
|
|
213
|
+
get damageTaken(): number;
|
|
214
|
+
get maxStunBoxes(): number;
|
|
215
|
+
get stunTaken(): number;
|
|
216
|
+
/**
|
|
217
|
+
* SR5 wound modifier: -1 die on every pool per 3 full boxes of damage,
|
|
218
|
+
* and the two tracks STACK -- being shot and drained both make you worse
|
|
219
|
+
* at everything, including not getting shot.
|
|
220
|
+
*/
|
|
221
|
+
get woundModifier(): number;
|
|
222
|
+
/** Dead: the physical track is full. */
|
|
223
|
+
isDown(): boolean;
|
|
224
|
+
/** Out cold: the stun track is full (but not necessarily dead). */
|
|
225
|
+
isUnconscious(): boolean;
|
|
226
|
+
/** Out of the fight either way -- the gate every action should check. */
|
|
227
|
+
isIncapacitated(): boolean;
|
|
228
|
+
/** Applies damage boxes; returns the number actually taken. */
|
|
229
|
+
takeDamage(boxes: number): number;
|
|
230
|
+
/**
|
|
231
|
+
* Clears damage boxes; returns how many were actually healed (can be
|
|
232
|
+
* less than asked when the track is nearly clean). Healing also restores
|
|
233
|
+
* wound-modifier dice, since that's derived from damageTaken.
|
|
234
|
+
*/
|
|
235
|
+
healDamage(boxes: number): number;
|
|
236
|
+
/**
|
|
237
|
+
* Applies stun boxes; anything past a full stun track OVERFLOWS into the
|
|
238
|
+
* physical track (SR's rule -- enough drain doesn't just knock you out,
|
|
239
|
+
* it starts killing you). Returns what landed where.
|
|
240
|
+
*/
|
|
241
|
+
takeStun(boxes: number): {
|
|
242
|
+
stun: number;
|
|
243
|
+
overflow: number;
|
|
244
|
+
};
|
|
245
|
+
/** e.g. "■■■□□□□□□□ (3/10)" */
|
|
246
|
+
conditionSummary(): string;
|
|
247
|
+
/** Clears stun boxes; returns how many were actually recovered. */
|
|
248
|
+
healStun(boxes: number): number;
|
|
249
|
+
/** The stun track, same rendering as conditionSummary(). */
|
|
250
|
+
stunSummary(): string;
|
|
251
|
+
/**
|
|
252
|
+
* The weapon actually in hand (right hand first, then left), or bare
|
|
253
|
+
* fists. Damage value and the attack-pool bonus both come off the item's
|
|
254
|
+
* quality rating -- gear is the whole progression system in this game,
|
|
255
|
+
* so it has to be what combat power flows from.
|
|
256
|
+
*/
|
|
257
|
+
getWeaponProfile(): {
|
|
258
|
+
name: string;
|
|
259
|
+
damage: number;
|
|
260
|
+
poolBonus: number;
|
|
261
|
+
};
|
|
262
|
+
/** The weapon riding in a hand slot, drawn or holstered. */
|
|
263
|
+
getCarriedWeapon(): Item | null;
|
|
264
|
+
/** Draws the carried weapon; returns it, or null if nothing changed
|
|
265
|
+
* (unarmed, or already in hand). */
|
|
266
|
+
drawWeapon(): Item | null;
|
|
267
|
+
/** Stows the drawn weapon; returns it, or null if nothing changed. */
|
|
268
|
+
stowWeapon(): Item | null;
|
|
269
|
+
/** Total soak dice from every equipped armor-category item. */
|
|
270
|
+
getArmorValue(): number;
|
|
271
|
+
getAttackPool(): number;
|
|
272
|
+
/**
|
|
273
|
+
* The subdual pool: bare-hands work regardless of what's in the other
|
|
274
|
+
* fist -- Agility + unarmed (never the drawn weapon's skill or bonus).
|
|
275
|
+
* See subdue.ts.
|
|
276
|
+
*/
|
|
277
|
+
getUnarmedAttackPool(): number;
|
|
278
|
+
getDefensePool(): number;
|
|
279
|
+
getSoakPool(): number;
|
|
280
|
+
/**
|
|
281
|
+
* Initiative: Reaction + Intuition (straight SR), plus the AR edge from
|
|
282
|
+
* an equipped, ONLINE commlink -- the tactical overlay feeding you
|
|
283
|
+
* angles. Running silent kills the overlay along with the broadcast, so
|
|
284
|
+
* going dark costs you speed on the draw: the silent tradeoff grows
|
|
285
|
+
* teeth. Wounds and sustained spells slow you like everything else.
|
|
286
|
+
*/
|
|
287
|
+
getInitiativePool(): number;
|
|
288
|
+
/**
|
|
289
|
+
* If an edge boost is armed (see commands/edge.ts), consume it: returns
|
|
290
|
+
* the bonus dice for the strike being rolled right now and disarms.
|
|
291
|
+
* Called by the strike-profile builders, so the boost lands on the next
|
|
292
|
+
* attack/subdue/manabolt this actor initiates.
|
|
293
|
+
*/
|
|
294
|
+
consumeEdgeBoost(): number;
|
|
295
|
+
/** New job, fresh luck -- and a fresh seat at the negotiating table. */
|
|
296
|
+
refreshEdge(): void;
|
|
297
|
+
/** Base casting dice for a mundane casting from a formula/grimoire. */
|
|
298
|
+
private static readonly BASE_MAGIC_POOL;
|
|
299
|
+
/** Awakened: innate talent, no gear required. Adepts count -- their
|
|
300
|
+
* aura burns like any mage's, and assensing works -- but they channel
|
|
301
|
+
* magic into the body, not spells (see knowsSpell/isCaster). */
|
|
302
|
+
isAwakened(): boolean;
|
|
303
|
+
/** Technomancer: living persona -- the Matrix without a deck (see ICombatAttributes.resonance). */
|
|
304
|
+
isTechnomancer(): boolean;
|
|
305
|
+
private _sustainedArmor;
|
|
306
|
+
get sustainedArmor(): number;
|
|
307
|
+
setSustainedArmor(bonus: number): void;
|
|
308
|
+
get sustainingPenalty(): number;
|
|
309
|
+
astralPerceiving: boolean;
|
|
310
|
+
sneaking: boolean;
|
|
311
|
+
haggledThisJob: boolean;
|
|
312
|
+
cameFrom?: {
|
|
313
|
+
room: string;
|
|
314
|
+
back: string;
|
|
315
|
+
};
|
|
316
|
+
socialMarks: Set<string>;
|
|
317
|
+
/** The best Focus item on this actor, if any -- scales casting power. */
|
|
318
|
+
getBestFocus(): Item | undefined;
|
|
319
|
+
getMagicPool(): number;
|
|
320
|
+
/**
|
|
321
|
+
* Awakened actors know every spell innately. A mundane knows a spell if
|
|
322
|
+
* they carry its formula (item name must contain the spell's name) or
|
|
323
|
+
* any grimoire (a spellbook teaches everything).
|
|
324
|
+
*/
|
|
325
|
+
knowsSpell(spellName: string): boolean;
|
|
326
|
+
/**
|
|
327
|
+
* The gate for attempting magic at all (ward bypass included): innate
|
|
328
|
+
* talent, or any magic gear.
|
|
329
|
+
*/
|
|
330
|
+
isCaster(): boolean;
|
|
53
331
|
get lifestyleChoices(): LifestyleChoices;
|
|
54
332
|
set lifestyleChoices(choices: LifestyleChoices);
|
|
55
333
|
get currency(): number;
|