@maka/maka-cli 5.64.0 → 5.65.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/commands/backlog.d.ts +29 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +146 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +40 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +107 -25
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +11 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +13 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +30 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +40 -49
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +121 -160
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +13 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +25 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +58 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js +115 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +35 -24
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +136 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +82 -43
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +419 -263
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +82 -84
- 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 +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +95 -79
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js +176 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +11 -5
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js +145 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +27 -8
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +81 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +132 -21
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +102 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +32 -46
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +38 -63
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +0 -22
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +78 -109
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -101
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +63 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
- 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 +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +2 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +1 -14
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +67 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +56 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +57 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +46 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +18 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +68 -38
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +36 -12
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +101 -27
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +88 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js +113 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +54 -5
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/maka.js +1 -1
- package/bundle/typescript/src/maka.js.map +1 -1
- package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +19 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js +22 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
- package/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +0 -72
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +0 -26
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +0 -152
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +0 -393
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +0 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +0 -1
|
@@ -32,7 +32,15 @@ export interface ISkeletonExit {
|
|
|
32
32
|
direction: string;
|
|
33
33
|
targetRoom: string;
|
|
34
34
|
keyRequired?: string;
|
|
35
|
-
|
|
35
|
+
/** A devices[].name that holds this door shut. That device lives in
|
|
36
|
+
* THIS room -- the one you must stand in to reach it. */
|
|
37
|
+
device?: string;
|
|
38
|
+
/** An npcs[].name who STANDS in this doorway and will not move.
|
|
39
|
+
* Mutually exclusive with `device`: an exit is gated by a person or
|
|
40
|
+
* by a mechanism, never both. The guard's position is DERIVED from
|
|
41
|
+
* the exit they hold (see assembleScene), so the two cannot disagree
|
|
42
|
+
* about where they are standing. */
|
|
43
|
+
guard?: string;
|
|
36
44
|
}
|
|
37
45
|
export interface ISkeletonRoom {
|
|
38
46
|
name: string;
|
|
@@ -53,14 +61,21 @@ export interface ISkeletonNpc {
|
|
|
53
61
|
plane?: 'meat' | 'matrix' | 'astral';
|
|
54
62
|
startLocation: string;
|
|
55
63
|
}
|
|
56
|
-
export interface
|
|
64
|
+
export interface ISkeletonDevice {
|
|
57
65
|
name: string;
|
|
58
|
-
/**
|
|
59
|
-
|
|
66
|
+
/** REQUIRED. A device is always room-owned -- a keypad beside a grate
|
|
67
|
+
* physically stands in one room, the one you must be in to reach it.
|
|
68
|
+
* An exit it holds is declared FROM that same room. */
|
|
69
|
+
room: string;
|
|
60
70
|
concept: string;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
/** lock (a mechanism -- picked, breached, or opened by its key),
|
|
72
|
+
* panel (an interface -- a code, or hacked), ward (a working -- cast
|
|
73
|
+
* at or dispelled). Anything unrecognised CLAMPS to 'panel' rather
|
|
74
|
+
* than throwing: a device whose kind we cannot read is still a
|
|
75
|
+
* device, and rejecting a whole draft over one word is a worse
|
|
76
|
+
* outcome than a keypad where the model meant something else. */
|
|
77
|
+
kind?: 'lock' | 'panel' | 'ward';
|
|
78
|
+
grantsItem?: string;
|
|
64
79
|
}
|
|
65
80
|
export type SkeletonItemRole = 'winCondition' | 'reward' | 'key' | 'clue' | 'loot' | 'starting';
|
|
66
81
|
export interface ISkeletonItem {
|
|
@@ -70,8 +85,8 @@ export interface ISkeletonItem {
|
|
|
70
85
|
room?: string;
|
|
71
86
|
heldBy?: string;
|
|
72
87
|
plane?: 'meat' | 'matrix';
|
|
73
|
-
/** clue items only: which
|
|
74
|
-
|
|
88
|
+
/** clue items only: which device's code this clue reveals. */
|
|
89
|
+
forDevice?: string;
|
|
75
90
|
}
|
|
76
91
|
export interface ISceneSkeleton {
|
|
77
92
|
name: string;
|
|
@@ -79,7 +94,7 @@ export interface ISceneSkeleton {
|
|
|
79
94
|
completionMessage: string;
|
|
80
95
|
rooms: ISkeletonRoom[];
|
|
81
96
|
npcs: ISkeletonNpc[];
|
|
82
|
-
|
|
97
|
+
devices: ISkeletonDevice[];
|
|
83
98
|
items: ISkeletonItem[];
|
|
84
99
|
winCondition: {
|
|
85
100
|
item: string;
|
|
@@ -123,13 +138,15 @@ export interface INpcDetail {
|
|
|
123
138
|
dialogue: string[];
|
|
124
139
|
combat?: Record<string, unknown>;
|
|
125
140
|
}
|
|
126
|
-
export interface
|
|
141
|
+
export interface IDeviceDetail {
|
|
127
142
|
name: string;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
143
|
+
description: string;
|
|
144
|
+
/** ONLY meaningful on a 'panel'. You cannot talk at a mechanical
|
|
145
|
+
* lock, and a ward answers to the Art -- neither has anything to
|
|
146
|
+
* hear a phrase with. */
|
|
147
|
+
code?: string;
|
|
148
|
+
openMessage: string;
|
|
149
|
+
refuseMessage: string;
|
|
133
150
|
guardsExit?: string;
|
|
134
151
|
footprint?: 'small' | 'medium' | 'large';
|
|
135
152
|
}
|
|
@@ -150,7 +167,7 @@ export interface IItemDetail {
|
|
|
150
167
|
export interface ISceneDetails {
|
|
151
168
|
rooms: IRoomDetail[];
|
|
152
169
|
npcs: INpcDetail[];
|
|
153
|
-
|
|
170
|
+
devices: IDeviceDetail[];
|
|
154
171
|
items: IItemDetail[];
|
|
155
172
|
}
|
|
156
173
|
/**
|
|
@@ -159,20 +176,21 @@ export interface ISceneDetails {
|
|
|
159
176
|
* Returns '' when no player is available.
|
|
160
177
|
*/
|
|
161
178
|
/**
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* three quarters of the barriers the model naturally reaches for demand
|
|
169
|
-
* a clue item, and it keeps forgetting.
|
|
179
|
+
* THE ONE BARRIER RULE THAT STILL DEPENDS ON WHO IS PLAYING.
|
|
180
|
+
*
|
|
181
|
+
* This used to name all three barrier types the runner could and could
|
|
182
|
+
* not force, and demand a clue for each one they could not -- the
|
|
183
|
+
* single most common generation failure on record, and one that looked
|
|
184
|
+
* like random flakiness precisely because it varied with the character.
|
|
170
185
|
*
|
|
171
|
-
*
|
|
172
|
-
* and
|
|
173
|
-
*
|
|
186
|
+
* It shrank to this because the clue/key rule became UNCONDITIONAL for
|
|
187
|
+
* panels and locks (see partyCanDispel): a code is findable and a key
|
|
188
|
+
* is placeable, so both are openable by ANY runner and there is nothing
|
|
189
|
+
* character-dependent left to state. A ward is the exception that
|
|
190
|
+
* cannot be written away -- no clue rescues it for a mundane team -- so
|
|
191
|
+
* it is the only thing this still says.
|
|
174
192
|
*/
|
|
175
|
-
export declare function
|
|
193
|
+
export declare function wardBrief(player: Player): string;
|
|
176
194
|
export declare function buildPlayerDossier(player?: Player): string;
|
|
177
195
|
/** The crew summary generation scales opposition against (Phase A of
|
|
178
196
|
* the party system): name, archetype, and the statline headline. */
|
|
@@ -196,20 +214,34 @@ export declare function partyHeadcount(crew?: ICrewDossierEntry[]): number;
|
|
|
196
214
|
export declare function buildSkeletonPrompt(tier: number, player?: Player, previousError?: string, rumor?: string, crew?: ICrewDossierEntry[], canonBlock?: string): string;
|
|
197
215
|
export declare function buildRoomsPrompt(skeleton: ISceneSkeleton, previousError?: string): string;
|
|
198
216
|
export declare function buildNpcsPrompt(skeleton: ISceneSkeleton, previousError?: string): string;
|
|
199
|
-
export declare function
|
|
200
|
-
export declare function buildItemsPrompt(skeleton: ISceneSkeleton,
|
|
217
|
+
export declare function buildDevicesPrompt(skeleton: ISceneSkeleton, previousError?: string): string;
|
|
218
|
+
export declare function buildItemsPrompt(skeleton: ISceneSkeleton, devices: IDeviceDetail[], previousError?: string): string;
|
|
201
219
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
220
|
+
* Can anyone at this table unweave a WARD?
|
|
221
|
+
*
|
|
222
|
+
* The last surviving branch of what used to be canBypassUnaided, which
|
|
223
|
+
* asked the same question of all three barrier kinds. The other two are
|
|
224
|
+
* gone because their answers stopped mattering (ruling 2026-08-27):
|
|
225
|
+
*
|
|
226
|
+
* A PANEL takes a code, and a code is FINDABLE. Write it down and any
|
|
227
|
+
* runner can type it; a decker who did not need it loses nothing.
|
|
228
|
+
* A LOCK takes a key, and a key is FINDABLE. Place it and any runner
|
|
229
|
+
* can carry it to the door; picking becomes the SHORTCUT for someone
|
|
230
|
+
* with locksmith, not the requirement.
|
|
231
|
+
*
|
|
232
|
+
* So for those two the clue/key rule is UNCONDITIONAL now, and the
|
|
233
|
+
* character-dependent waiver is gone with the condition it rested on.
|
|
234
|
+
*
|
|
235
|
+
* A WARD is irreducible. There is no findable answer to a ward; it takes
|
|
236
|
+
* Magic. A mundane team cannot dispel one however much is written down,
|
|
237
|
+
* so a ward generated for a party with nobody awakened is an unopenable
|
|
238
|
+
* barrier no clue can rescue. That is where the character dependence is
|
|
239
|
+
* REAL rather than incidental, and it is the only place this survives.
|
|
240
|
+
*
|
|
241
|
+
* Named for what it now is: a one-case function still called
|
|
242
|
+
* canBypassUnaided would attract the other two cases back.
|
|
211
243
|
*/
|
|
212
|
-
export declare function
|
|
244
|
+
export declare function partyCanDispel(player: Player | undefined): boolean;
|
|
213
245
|
/** Strips accidental markdown fences and parses; throws with a useful message. */
|
|
214
246
|
export declare function parseJsonReply<T>(reply: string): T;
|
|
215
247
|
/**
|
|
@@ -218,7 +250,14 @@ export declare function parseJsonReply<T>(reply: string): T;
|
|
|
218
250
|
* matrix defense...) are still enforced by the assembled-scene validators.
|
|
219
251
|
*/
|
|
220
252
|
export declare function validateSkeleton(skeleton: ISceneSkeleton, player?: Player, crew?: ICrewDossierEntry[]): void;
|
|
221
|
-
|
|
253
|
+
/**
|
|
254
|
+
* `player` is GONE from this signature, not underscored. Its only
|
|
255
|
+
* consumer was the character-dependent clue waiver, and with the
|
|
256
|
+
* clue/key rule unconditional there is nothing here that varies with
|
|
257
|
+
* who is playing. A parameter kept "just in case" is an invitation to
|
|
258
|
+
* make normalization character-dependent again.
|
|
259
|
+
*/
|
|
260
|
+
export declare function normalizeSkeleton(skeleton: ISceneSkeleton): string[];
|
|
222
261
|
/**
|
|
223
262
|
* THE ANSWER HAS TO BE WRITTEN DOWN. The other half of the clue problem,
|
|
224
263
|
* and the more expensive half.
|
|
@@ -290,7 +329,7 @@ export declare function resolveSpotName(declared: string, spotNames: string[]):
|
|
|
290
329
|
*/
|
|
291
330
|
export declare function ensureCredentialKindAgrees(details: ISceneDetails): string[];
|
|
292
331
|
export declare function assembleScene(skeleton: ISceneSkeleton, details: ISceneDetails, playerName: string): ISceneSeedJson;
|
|
293
|
-
export type RepairTarget = 'rooms' | 'npcs' | '
|
|
332
|
+
export type RepairTarget = 'rooms' | 'npcs' | 'devices' | 'items' | 'skeleton';
|
|
294
333
|
/**
|
|
295
334
|
* Maps a validation failure to the chunk that owns the broken content, so
|
|
296
335
|
* a repair regenerates ONE pass instead of the whole scene. Anything
|