@maka/maka-cli 5.3.17 → 5.4.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 +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +131 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +79 -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 +224 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.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 +149 -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 +378 -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 +60 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -0
- 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 +40 -0
- 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 +43 -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 +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +115 -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 +176 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.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 +39 -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 +35 -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/pick.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +18 -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 +23 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +20 -3
- 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 +49 -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/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 +65 -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 +80 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.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 +101 -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 +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
- 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 +138 -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 +119 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +816 -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 +70 -9
- package/bundle/typescript/src/commands/game/sideQuest/game.js +403 -164
- 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 +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +220 -47
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +213 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +525 -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 +174 -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 +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +39 -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 +69 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +175 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +80 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +7 -2
- 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 +34 -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 +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +5 -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 -5
- 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 +143 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +328 -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 +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +193 -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 +54 -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 +35 -0
- package/bundle/typescript/src/tools/ai/ai.class.js +112 -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 +2 -1
- package/bundle/typescript/src/tools/https/https.class.js +43 -0
- package/bundle/typescript/src/tools/https/https.class.js.map +1 -1
- package/bundle/typescript/src/tools/https/https.interface.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/player.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"player.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/player.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Logger } from '../utilities/logger.js';
|
|
2
2
|
import { Item } from './item.js';
|
|
3
3
|
import { Inventory } from './inventory.js';
|
|
4
|
+
import { PuzzleBypassType } from '../types/seed/puzzle-seed.js';
|
|
4
5
|
import { AbstractPuzzle } from '../types/shared/abstracts.js';
|
|
5
6
|
export interface IPuzzleConstructorConfig {
|
|
6
7
|
name: string;
|
|
@@ -11,24 +12,97 @@ export interface IPuzzleConstructorConfig {
|
|
|
11
12
|
successMessage?: string;
|
|
12
13
|
failureMessage?: string;
|
|
13
14
|
hobbyTags?: string[];
|
|
15
|
+
bypassType?: PuzzleBypassType;
|
|
14
16
|
}
|
|
15
17
|
export declare class Puzzle extends AbstractPuzzle {
|
|
16
18
|
protected logger: Logger;
|
|
17
19
|
protected solved: boolean;
|
|
20
|
+
private hasAIRiddle;
|
|
18
21
|
name: string;
|
|
19
22
|
requiredItem?: Item;
|
|
20
23
|
requiredPhrase?: string;
|
|
21
24
|
riddle?: string;
|
|
22
|
-
rewardItem
|
|
25
|
+
rewardItem?: Item;
|
|
23
26
|
successMessage: string;
|
|
24
27
|
failureMessage: string;
|
|
25
28
|
hobbyTags?: string[];
|
|
29
|
+
requiresPuzzle?: Puzzle;
|
|
30
|
+
lockedMessage: string;
|
|
31
|
+
bypassType?: PuzzleBypassType;
|
|
32
|
+
private static readonly BYPASS_SUCCESS_CHANCE;
|
|
26
33
|
constructor(config: IPuzzleConstructorConfig);
|
|
34
|
+
/**
|
|
35
|
+
* Player-facing hint that a risky bypass exists, without which nothing
|
|
36
|
+
* in the game ever tells the player "pick"/"hack"/"cast" is even an
|
|
37
|
+
* option here -- found via a real session where a player had no idea
|
|
38
|
+
* what they were supposed to "pick".
|
|
39
|
+
*/
|
|
40
|
+
getBypassHint(): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Wired in after all puzzles in a scene exist (scene-factory.ts), since
|
|
43
|
+
* a prerequisite may not have been constructed yet at this puzzle's own
|
|
44
|
+
* construction time.
|
|
45
|
+
*/
|
|
46
|
+
setRequiresPuzzle(prerequisite: Puzzle, lockedMessage?: string): void;
|
|
27
47
|
isSolved(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Rewrites the riddle's presentation once per scene load, while keeping
|
|
50
|
+
* `requiredPhrase` (the exact-match answer key used by `solve()`) fixed --
|
|
51
|
+
* so the correctness gate never drifts from what the player was actually
|
|
52
|
+
* asked.
|
|
53
|
+
*/
|
|
54
|
+
ensureAIRiddle(sceneContext: string, roomName?: string): Promise<void>;
|
|
28
55
|
hasRequiredItem(playerInventory: Inventory): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Clue items are only required to CONTAIN the answer somewhere in their
|
|
58
|
+
* text (e.g. "kill the power to bypass security" for a required phrase
|
|
59
|
+
* of "kill the power"), so a player who reasonably quotes the clue back
|
|
60
|
+
* verbatim types more words than the exact answer. Strict equality
|
|
61
|
+
* rejected that. Normalizing punctuation/whitespace and accepting the
|
|
62
|
+
* required phrase as a substring of the input (not just an exact match)
|
|
63
|
+
* fixes it without loosening things enough for a wrong guess to pass.
|
|
64
|
+
*/
|
|
29
65
|
matchesRequiredPhrase(inputPhrase: string): boolean;
|
|
30
66
|
solve(providedAnswer: string, playerInventory: Inventory): {
|
|
31
67
|
success: boolean;
|
|
32
68
|
message: string;
|
|
33
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* The risky alternate route never requires knowing requiredPhrase. Split
|
|
72
|
+
* into a gate check (run first, before any outcome is determined -- an
|
|
73
|
+
* already-solved, blocked, or type-mismatched puzzle should never make
|
|
74
|
+
* the player sit through an interactive minigame they were never going
|
|
75
|
+
* to be allowed to attempt) and applying an already-determined outcome.
|
|
76
|
+
* A failed attempt does NOT lock the player out of retrying (nothing
|
|
77
|
+
* here or elsewhere tracks attempt count), and none of this touches the
|
|
78
|
+
* safe solve() path -- finding the actual answer remains deterministic.
|
|
79
|
+
* The consequence for failure is left to the calling command (see
|
|
80
|
+
* commands/bypass-command.ts), expected to broadcast it as a world event
|
|
81
|
+
* so NPCs can react.
|
|
82
|
+
*/
|
|
83
|
+
checkBypassGate(type: PuzzleBypassType): {
|
|
84
|
+
allowed: boolean;
|
|
85
|
+
message?: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Applies an outcome already determined elsewhere (a coin flip, or a live
|
|
89
|
+
* minigame's win/loss) to this puzzle. Assumes checkBypassGate() already
|
|
90
|
+
* passed -- doesn't re-check it.
|
|
91
|
+
*/
|
|
92
|
+
resolveBypass(type: PuzzleBypassType, succeeded: boolean): {
|
|
93
|
+
success: boolean;
|
|
94
|
+
message: string;
|
|
95
|
+
alarmed: boolean;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Convenience wrapper: gate check + a flat coin-flip outcome. Used for
|
|
99
|
+
* any bypass type without its own interactive minigame yet -- see
|
|
100
|
+
* BypassCommand.determineOutcome(), which lockpicking overrides to run a
|
|
101
|
+
* real player-skill challenge instead of this coin flip.
|
|
102
|
+
*/
|
|
103
|
+
attemptBypass(type: PuzzleBypassType): {
|
|
104
|
+
success: boolean;
|
|
105
|
+
message: string;
|
|
106
|
+
alarmed: boolean;
|
|
107
|
+
};
|
|
34
108
|
}
|
|
@@ -1,16 +1,52 @@
|
|
|
1
1
|
import { Logger } from '../utilities/logger.js';
|
|
2
|
+
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
2
3
|
import { AbstractPuzzle } from '../types/shared/abstracts.js';
|
|
4
|
+
const BYPASS_FLAVOR = {
|
|
5
|
+
lockpick: {
|
|
6
|
+
verb: 'pick',
|
|
7
|
+
failureMessage: `Your pick snaps in the mechanism -- and the lock's alarm isn't silent anymore.`,
|
|
8
|
+
hint: `This looks pickable -- try "pick" to skip finding the code, but a failed pick is fatal: no second chances.`,
|
|
9
|
+
},
|
|
10
|
+
hack: {
|
|
11
|
+
verb: 'hack',
|
|
12
|
+
failureMessage: `Your intrusion trips a countermeasure -- the system logs the attempt and pings whoever's watching.`,
|
|
13
|
+
hint: `This looks hackable -- try "hack" to skip finding the code, but a failed hack is fatal: no second chances.`,
|
|
14
|
+
},
|
|
15
|
+
spell: {
|
|
16
|
+
verb: 'cast',
|
|
17
|
+
failureMessage: `The weave slips through your fingers -- backlash crackles outward, and something out there felt it.`,
|
|
18
|
+
hint: `This looks like it could be bypassed magically -- try "cast" to skip finding the code, but a failed cast is fatal: no second chances.`,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
3
21
|
export class Puzzle extends AbstractPuzzle {
|
|
4
22
|
logger = Logger.getInstance();
|
|
5
23
|
solved = false;
|
|
24
|
+
hasAIRiddle = false;
|
|
6
25
|
name;
|
|
7
26
|
requiredItem;
|
|
8
27
|
requiredPhrase;
|
|
9
28
|
riddle;
|
|
29
|
+
// Optional: a room-anchored puzzle typically grants one, but a door-
|
|
30
|
+
// guarding puzzle (see Door.puzzle) usually doesn't need one -- opening
|
|
31
|
+
// the door already IS the reward.
|
|
10
32
|
rewardItem;
|
|
11
33
|
successMessage;
|
|
12
34
|
failureMessage;
|
|
13
35
|
hobbyTags;
|
|
36
|
+
// Points only at this puzzle's immediate predecessor -- chains of any
|
|
37
|
+
// length fall out of that naturally, since a puzzle can't become solved
|
|
38
|
+
// until its own prerequisite is, which cascades transitively up the
|
|
39
|
+
// chain with no special traversal needed at solve() time.
|
|
40
|
+
requiresPuzzle;
|
|
41
|
+
lockedMessage;
|
|
42
|
+
// The riddle/requiredPhrase path above is the "first layer" -- a lock,
|
|
43
|
+
// code, or passphrase that exists to be found and always works once
|
|
44
|
+
// known. bypassType is a SEPARATE, optional route past that same barrier
|
|
45
|
+
// that never requires knowing the answer, matching the barrier's actual
|
|
46
|
+
// in-fiction nature (a lock, a terminal, a ward) -- but it's a coin flip,
|
|
47
|
+
// and failure isn't quiet. See attemptBypass().
|
|
48
|
+
bypassType;
|
|
49
|
+
static BYPASS_SUCCESS_CHANCE = 0.5;
|
|
14
50
|
constructor(config) {
|
|
15
51
|
super();
|
|
16
52
|
this.name = config.name;
|
|
@@ -20,24 +56,95 @@ export class Puzzle extends AbstractPuzzle {
|
|
|
20
56
|
this.successMessage = config.successMessage || 'You solved the puzzle!';
|
|
21
57
|
this.failureMessage = config.failureMessage || `You don't have the necessary item or the correct phrase to solve the puzzle.`;
|
|
22
58
|
this.hobbyTags = config.hobbyTags ?? [];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
59
|
+
this.lockedMessage = `Something else needs to happen first.`;
|
|
60
|
+
this.bypassType = config.bypassType;
|
|
61
|
+
this.rewardItem = config.rewardItem;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Player-facing hint that a risky bypass exists, without which nothing
|
|
65
|
+
* in the game ever tells the player "pick"/"hack"/"cast" is even an
|
|
66
|
+
* option here -- found via a real session where a player had no idea
|
|
67
|
+
* what they were supposed to "pick".
|
|
68
|
+
*/
|
|
69
|
+
getBypassHint() {
|
|
70
|
+
return this.bypassType ? BYPASS_FLAVOR[this.bypassType].hint : undefined;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Wired in after all puzzles in a scene exist (scene-factory.ts), since
|
|
74
|
+
* a prerequisite may not have been constructed yet at this puzzle's own
|
|
75
|
+
* construction time.
|
|
76
|
+
*/
|
|
77
|
+
setRequiresPuzzle(prerequisite, lockedMessage) {
|
|
78
|
+
this.requiresPuzzle = prerequisite;
|
|
79
|
+
if (lockedMessage) {
|
|
80
|
+
this.lockedMessage = lockedMessage;
|
|
28
81
|
}
|
|
29
82
|
}
|
|
30
83
|
isSolved() {
|
|
31
84
|
return this.solved;
|
|
32
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Rewrites the riddle's presentation once per scene load, while keeping
|
|
88
|
+
* `requiredPhrase` (the exact-match answer key used by `solve()`) fixed --
|
|
89
|
+
* so the correctness gate never drifts from what the player was actually
|
|
90
|
+
* asked.
|
|
91
|
+
*/
|
|
92
|
+
async ensureAIRiddle(sceneContext, roomName) {
|
|
93
|
+
if (this.hasAIRiddle)
|
|
94
|
+
return;
|
|
95
|
+
if (!AI.isConfigured())
|
|
96
|
+
return;
|
|
97
|
+
if (!this.riddle || !this.requiredPhrase)
|
|
98
|
+
return;
|
|
99
|
+
const prompt = `
|
|
100
|
+
You are a game narrator rewriting what a player sees when they search a room and find a
|
|
101
|
+
barrier (a lock, scanner, terminal, or ward) -- NOT a riddle or poem.
|
|
102
|
+
|
|
103
|
+
Scene context: ${sceneContext}
|
|
104
|
+
${roomName ? `This puzzle is found in: ${roomName}` : ''}
|
|
105
|
+
${this.bypassType ? `This barrier is physically a: ${this.bypassType === 'lockpick' ? 'mechanical lock or maglock' : this.bypassType === 'hack' ? 'electronic terminal, console, or scanner' : 'magical ward or sigil'}` : ''}
|
|
106
|
+
|
|
107
|
+
The exact credential that opens it MUST remain: "${this.requiredPhrase}"
|
|
108
|
+
The existing description is: "${this.riddle}"
|
|
109
|
+
|
|
110
|
+
Write a NEW version, evocative but PLAIN. Start with "You see", "You find", or similar,
|
|
111
|
+
and name the barrier concretely -- e.g. "You see a maglock safe." or "You see a biometric
|
|
112
|
+
scanner beside the door." -- then say what it demands (a code, a passphrase, a name, a
|
|
113
|
+
fingerprint), the way an NPC would actually describe it. Do not phrase it as a riddle,
|
|
114
|
+
wordplay, or puzzle to decode, and do not state the credential itself outright. No more
|
|
115
|
+
than 3 sentences. Respond with ONLY the description text.`;
|
|
116
|
+
try {
|
|
117
|
+
const reply = await AI.ask(prompt);
|
|
118
|
+
this.riddle = reply;
|
|
119
|
+
this.hasAIRiddle = true;
|
|
120
|
+
this.logger.write(`Generated AI riddle for puzzle "${this.name}"`);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
this.logger.write(`AI fallback for riddle (${this.name}): ${err}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
33
126
|
hasRequiredItem(playerInventory) {
|
|
34
127
|
if (this.requiredItem) {
|
|
35
128
|
return playerInventory.hasItem(this.requiredItem.name);
|
|
36
129
|
}
|
|
37
130
|
return false;
|
|
38
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Clue items are only required to CONTAIN the answer somewhere in their
|
|
134
|
+
* text (e.g. "kill the power to bypass security" for a required phrase
|
|
135
|
+
* of "kill the power"), so a player who reasonably quotes the clue back
|
|
136
|
+
* verbatim types more words than the exact answer. Strict equality
|
|
137
|
+
* rejected that. Normalizing punctuation/whitespace and accepting the
|
|
138
|
+
* required phrase as a substring of the input (not just an exact match)
|
|
139
|
+
* fixes it without loosening things enough for a wrong guess to pass.
|
|
140
|
+
*/
|
|
39
141
|
matchesRequiredPhrase(inputPhrase) {
|
|
40
|
-
|
|
142
|
+
if (!this.requiredPhrase)
|
|
143
|
+
return false;
|
|
144
|
+
const normalize = (s) => s.toLowerCase().replace(/[^\w\s]/g, '').replace(/\s+/g, ' ').trim();
|
|
145
|
+
const required = normalize(this.requiredPhrase);
|
|
146
|
+
const input = normalize(inputPhrase);
|
|
147
|
+
return required.length > 0 && input.includes(required);
|
|
41
148
|
}
|
|
42
149
|
solve(providedAnswer, playerInventory) {
|
|
43
150
|
if (this.solved) {
|
|
@@ -47,6 +154,13 @@ export class Puzzle extends AbstractPuzzle {
|
|
|
47
154
|
message: 'You have already solved this puzzle.',
|
|
48
155
|
};
|
|
49
156
|
}
|
|
157
|
+
if (this.requiresPuzzle && !this.requiresPuzzle.isSolved()) {
|
|
158
|
+
this.logger.write(`Puzzle: Attempted "${this.name}" before prerequisite "${this.requiresPuzzle.name}" was solved.`);
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
message: this.lockedMessage,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
50
164
|
if (this.hasRequiredItem(playerInventory) || this.matchesRequiredPhrase(providedAnswer)) {
|
|
51
165
|
this.solved = true;
|
|
52
166
|
this.logger.write('Puzzle: Correct solution provided.');
|
|
@@ -63,5 +177,59 @@ export class Puzzle extends AbstractPuzzle {
|
|
|
63
177
|
};
|
|
64
178
|
}
|
|
65
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The risky alternate route never requires knowing requiredPhrase. Split
|
|
182
|
+
* into a gate check (run first, before any outcome is determined -- an
|
|
183
|
+
* already-solved, blocked, or type-mismatched puzzle should never make
|
|
184
|
+
* the player sit through an interactive minigame they were never going
|
|
185
|
+
* to be allowed to attempt) and applying an already-determined outcome.
|
|
186
|
+
* A failed attempt does NOT lock the player out of retrying (nothing
|
|
187
|
+
* here or elsewhere tracks attempt count), and none of this touches the
|
|
188
|
+
* safe solve() path -- finding the actual answer remains deterministic.
|
|
189
|
+
* The consequence for failure is left to the calling command (see
|
|
190
|
+
* commands/bypass-command.ts), expected to broadcast it as a world event
|
|
191
|
+
* so NPCs can react.
|
|
192
|
+
*/
|
|
193
|
+
checkBypassGate(type) {
|
|
194
|
+
if (this.solved) {
|
|
195
|
+
this.logger.write('Puzzle: Attempted to bypass an already solved puzzle.');
|
|
196
|
+
return { allowed: false, message: 'You have already solved this puzzle.' };
|
|
197
|
+
}
|
|
198
|
+
if (this.requiresPuzzle && !this.requiresPuzzle.isSolved()) {
|
|
199
|
+
this.logger.write(`Puzzle: Attempted to bypass "${this.name}" before prerequisite "${this.requiresPuzzle.name}" was solved.`);
|
|
200
|
+
return { allowed: false, message: this.lockedMessage };
|
|
201
|
+
}
|
|
202
|
+
if (this.bypassType !== type) {
|
|
203
|
+
return { allowed: false, message: `This doesn't seem like something you can ${BYPASS_FLAVOR[type].verb} your way through.` };
|
|
204
|
+
}
|
|
205
|
+
return { allowed: true };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Applies an outcome already determined elsewhere (a coin flip, or a live
|
|
209
|
+
* minigame's win/loss) to this puzzle. Assumes checkBypassGate() already
|
|
210
|
+
* passed -- doesn't re-check it.
|
|
211
|
+
*/
|
|
212
|
+
resolveBypass(type, succeeded) {
|
|
213
|
+
if (succeeded) {
|
|
214
|
+
this.solved = true;
|
|
215
|
+
this.logger.write(`Puzzle: Successful ${type} bypass.`);
|
|
216
|
+
return { success: true, message: this.successMessage, alarmed: false };
|
|
217
|
+
}
|
|
218
|
+
this.logger.write(`Puzzle: Failed ${type} bypass -- alarmed.`);
|
|
219
|
+
return { success: false, message: BYPASS_FLAVOR[type].failureMessage, alarmed: true };
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Convenience wrapper: gate check + a flat coin-flip outcome. Used for
|
|
223
|
+
* any bypass type without its own interactive minigame yet -- see
|
|
224
|
+
* BypassCommand.determineOutcome(), which lockpicking overrides to run a
|
|
225
|
+
* real player-skill challenge instead of this coin flip.
|
|
226
|
+
*/
|
|
227
|
+
attemptBypass(type) {
|
|
228
|
+
const gate = this.checkBypassGate(type);
|
|
229
|
+
if (!gate.allowed) {
|
|
230
|
+
return { success: false, message: gate.message ?? 'You can\'t do that here.', alarmed: false };
|
|
231
|
+
}
|
|
232
|
+
return this.resolveBypass(type, Math.random() < Puzzle.BYPASS_SUCCESS_CHANCE);
|
|
233
|
+
}
|
|
66
234
|
}
|
|
67
235
|
//# sourceMappingURL=puzzle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puzzle.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/puzzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"puzzle.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/models/puzzle.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ import { Door } from './door.js';
|
|
|
6
6
|
import { Inventory } from './inventory.js';
|
|
7
7
|
import { Player } from './player.js';
|
|
8
8
|
import { AbstractRoom } from '../types/shared/abstracts.js';
|
|
9
|
+
export interface PuzzleTarget {
|
|
10
|
+
puzzle: Puzzle;
|
|
11
|
+
label: string;
|
|
12
|
+
direction?: Direction;
|
|
13
|
+
door?: Door;
|
|
14
|
+
}
|
|
9
15
|
export interface IRoomConstructorConfig {
|
|
10
16
|
name: string;
|
|
11
17
|
description: string;
|
|
@@ -16,6 +22,8 @@ export interface IRoomConstructorConfig {
|
|
|
16
22
|
puzzle?: Puzzle;
|
|
17
23
|
isStartRoom?: boolean;
|
|
18
24
|
tags?: string[];
|
|
25
|
+
hasNode?: boolean;
|
|
26
|
+
warded?: boolean;
|
|
19
27
|
supportedLifestyles?: {
|
|
20
28
|
residenceTypes?: ('Street' | 'Squatter' | 'Low' | 'Middle' | 'High' | 'Luxury')[];
|
|
21
29
|
employmentRoles?: string[];
|
|
@@ -40,7 +48,10 @@ export declare class Room extends AbstractRoom {
|
|
|
40
48
|
};
|
|
41
49
|
governsCurrency: boolean;
|
|
42
50
|
tags?: string[];
|
|
51
|
+
searchedBy: Set<string>;
|
|
43
52
|
private _currencyLedger;
|
|
53
|
+
hasNode: boolean;
|
|
54
|
+
warded: boolean;
|
|
44
55
|
constructor(config: IRoomConstructorConfig);
|
|
45
56
|
get owner(): string | undefined;
|
|
46
57
|
set owner(owner: string | undefined);
|
|
@@ -53,6 +64,15 @@ export declare class Room extends AbstractRoom {
|
|
|
53
64
|
attemptUnlockExit(direction: Direction, itemOrSolution: string): string;
|
|
54
65
|
getExit(direction: Direction): Door | string | undefined;
|
|
55
66
|
isExitLocked(direction: Direction): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Every unsolved barrier a player standing here could currently `solve`,
|
|
69
|
+
* `pick`, `hack`, or `cast` at: this room's own puzzle (if any), plus any
|
|
70
|
+
* still-locked exit whose door carries one (see Door.puzzle). A door
|
|
71
|
+
* target carries its direction and the Door itself, since succeeding
|
|
72
|
+
* against it unlocks the door rather than granting an item -- see
|
|
73
|
+
* solve.ts / bypass-command.ts.
|
|
74
|
+
*/
|
|
75
|
+
getPuzzleTargets(): PuzzleTarget[];
|
|
56
76
|
addItem(item: Item): void;
|
|
57
77
|
removeItem(item: Item): void;
|
|
58
78
|
setPuzzle(puzzle: Puzzle): void;
|
|
@@ -2,7 +2,7 @@ import { Logger } from '../utilities/logger.js';
|
|
|
2
2
|
import { Direction } from '../types/shared/direction-enum.js';
|
|
3
3
|
import { Door } from './door.js';
|
|
4
4
|
import { Inventory } from './inventory.js';
|
|
5
|
-
import {
|
|
5
|
+
import { AI } from '../../../../tools/ai/ai.class.js';
|
|
6
6
|
import { AbstractRoom } from '../types/shared/abstracts.js';
|
|
7
7
|
export class Room extends AbstractRoom {
|
|
8
8
|
logger = Logger.getInstance();
|
|
@@ -19,12 +19,22 @@ export class Room extends AbstractRoom {
|
|
|
19
19
|
supportedLifestyles;
|
|
20
20
|
governsCurrency = false;
|
|
21
21
|
tags;
|
|
22
|
+
// Who has actually cased this room ("search"): gates "take all" -- you
|
|
23
|
+
// can't sweep a room you haven't searched. Per-actor by name, and the
|
|
24
|
+
// designated future hook for perception checks: when those arrive, a
|
|
25
|
+
// search will record WHAT each actor's roll actually revealed here
|
|
26
|
+
// (per-item), not just that they looked.
|
|
27
|
+
searchedBy = new Set();
|
|
22
28
|
_currencyLedger = new Map(); // playerName → currency carrier items
|
|
29
|
+
hasNode = false;
|
|
30
|
+
warded = false;
|
|
23
31
|
constructor(config) {
|
|
24
32
|
super();
|
|
25
33
|
this.name = config.name;
|
|
26
34
|
this.description = config.description;
|
|
27
35
|
this.roomType = config.roomType;
|
|
36
|
+
this.hasNode = config.hasNode ?? false;
|
|
37
|
+
this.warded = config.warded ?? false;
|
|
28
38
|
this.exits = config.exits || new Map();
|
|
29
39
|
this.inventory = config.inventory || new Inventory();
|
|
30
40
|
this.puzzle = config.puzzle;
|
|
@@ -40,7 +50,7 @@ export class Room extends AbstractRoom {
|
|
|
40
50
|
this._owner = owner;
|
|
41
51
|
}
|
|
42
52
|
async ensureAIDescription(sceneContext) {
|
|
43
|
-
if (!this.hasAIDescription) {
|
|
53
|
+
if (!this.hasAIDescription && AI.isConfigured()) {
|
|
44
54
|
const prompt = `
|
|
45
55
|
You are a game narrator. Based on the following context, generate a rich, immersive description of the current room that enhances but does not repeat the existing description.
|
|
46
56
|
|
|
@@ -52,23 +62,13 @@ Room description: ${this.description}
|
|
|
52
62
|
Include any mood, atmosphere, or inferred meaning from the surroundings.
|
|
53
63
|
Keep it concise and dramatic.`;
|
|
54
64
|
try {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
60
|
-
if (JSON.parse(result.data).error) {
|
|
61
|
-
throw new Error(JSON.parse(result.data).error.message);
|
|
62
|
-
}
|
|
63
|
-
const reply = JSON.parse(result.data)?.choices?.[0]?.message?.content?.trim();
|
|
64
|
-
if (reply) {
|
|
65
|
-
this.details = reply;
|
|
66
|
-
this.hasAIDescription = true;
|
|
67
|
-
this.logger.write(`Generated AI description for ${this.name}`);
|
|
68
|
-
}
|
|
65
|
+
const reply = await AI.ask(prompt);
|
|
66
|
+
this.details = reply;
|
|
67
|
+
this.hasAIDescription = true;
|
|
68
|
+
this.logger.write(`Generated AI description for ${this.name}`);
|
|
69
69
|
}
|
|
70
70
|
catch (err) {
|
|
71
|
-
this.logger.write(`
|
|
71
|
+
this.logger.write(`AI fallback for description: ${err}`);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -130,7 +130,8 @@ Keep it concise and dramatic.`;
|
|
|
130
130
|
if (exit instanceof Door) {
|
|
131
131
|
const result = exit.attemptUnlock(itemOrSolution);
|
|
132
132
|
this.logger.write(`Attempted to unlock exit in direction ${direction}. Success: ${result}`);
|
|
133
|
-
|
|
133
|
+
const targetRoomName = exit.getOtherSide(this).name;
|
|
134
|
+
return result ? `You unlock the way to ${targetRoomName}.` : `The door to ${targetRoomName} remains locked.`;
|
|
134
135
|
}
|
|
135
136
|
this.logger.write(`No locked exit found in direction ${direction}`);
|
|
136
137
|
return `There's no locked exit in that direction.`;
|
|
@@ -145,6 +146,26 @@ Keep it concise and dramatic.`;
|
|
|
145
146
|
this.logger.write(`Checking if exit in direction ${direction} is locked. Result: ${isLocked}`);
|
|
146
147
|
return isLocked;
|
|
147
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Every unsolved barrier a player standing here could currently `solve`,
|
|
151
|
+
* `pick`, `hack`, or `cast` at: this room's own puzzle (if any), plus any
|
|
152
|
+
* still-locked exit whose door carries one (see Door.puzzle). A door
|
|
153
|
+
* target carries its direction and the Door itself, since succeeding
|
|
154
|
+
* against it unlocks the door rather than granting an item -- see
|
|
155
|
+
* solve.ts / bypass-command.ts.
|
|
156
|
+
*/
|
|
157
|
+
getPuzzleTargets() {
|
|
158
|
+
const targets = [];
|
|
159
|
+
if (this.puzzle && !this.puzzle.isSolved()) {
|
|
160
|
+
targets.push({ puzzle: this.puzzle, label: this.puzzle.name });
|
|
161
|
+
}
|
|
162
|
+
for (const [direction, exit] of this.exits.entries()) {
|
|
163
|
+
if (exit instanceof Door && exit.puzzle && exit.checkIfLocked() && !exit.puzzle.isSolved()) {
|
|
164
|
+
targets.push({ puzzle: exit.puzzle, label: exit.puzzle.name, direction, door: exit });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return targets;
|
|
168
|
+
}
|
|
148
169
|
addItem(item) {
|
|
149
170
|
this.inventory.addItem(item);
|
|
150
171
|
this.logger.write(`Item added to room ${this.name}: ${item.name}`);
|