narrat 2.6.4 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +128 -128
  3. package/dist/app.vue.d.ts +79 -79
  4. package/dist/blue-pattern.webp +0 -0
  5. package/dist/components/MainMenu.vue.d.ts +7 -7
  6. package/dist/components/SkillsWindow.vue.d.ts +22 -22
  7. package/dist/components/StartMenu.vue.d.ts +46 -46
  8. package/dist/components/auto-play/AutoPlayFeedback.vue.d.ts +46 -0
  9. package/dist/components/debug/debug-menu.vue.d.ts +49 -49
  10. package/dist/components/dialog-picture.vue.d.ts +11 -11
  11. package/dist/components/engine-splash/engine-splash.vue.d.ts +54 -54
  12. package/dist/components/game-dialog.vue.d.ts +65 -65
  13. package/dist/components/game-splash/game-splash.vue.d.ts +46 -46
  14. package/dist/components/hud.vue.d.ts +14 -14
  15. package/dist/components/in-game.vue.d.ts +46 -46
  16. package/dist/components/inventory/inventory-section.vue.d.ts +61 -0
  17. package/dist/components/inventory/item-details.vue.d.ts +76 -0
  18. package/dist/components/inventory-ui.vue.d.ts +28 -30
  19. package/dist/components/loading-bar.vue.d.ts +10 -10
  20. package/dist/components/menu-buttons.vue.d.ts +46 -54
  21. package/dist/components/notification-toast.vue.d.ts +6 -6
  22. package/dist/components/quests/QuestDetails.vue.d.ts +64 -0
  23. package/dist/components/quests/QuestDisplay.vue.d.ts +64 -0
  24. package/dist/components/quests/quests-list-section.vue.d.ts +70 -0
  25. package/dist/components/quests-ui.vue.d.ts +22 -20
  26. package/dist/components/save-slots.vue.d.ts +79 -79
  27. package/dist/components/saves/save-slot-ui.vue.d.ts +108 -108
  28. package/dist/components/screen-layer.vue.d.ts +76 -76
  29. package/dist/components/screens.vue.d.ts +46 -46
  30. package/dist/components/tabs/TabsController.vue.d.ts +72 -0
  31. package/dist/components/tabs/tab-selector.vue.d.ts +82 -0
  32. package/dist/components/transitions/NarratTransition.vue.d.ts +97 -97
  33. package/dist/components/utils/alert-modal.vue.d.ts +82 -82
  34. package/dist/components/utils/modal-window.vue.d.ts +18 -18
  35. package/dist/components/utils/yes-no.vue.d.ts +106 -106
  36. package/dist/components/volume-controls.vue.d.ts +18 -18
  37. package/dist/config.d.ts +244 -227
  38. package/dist/constants.d.ts +10 -10
  39. package/dist/defaultConfig.d.ts +2 -2
  40. package/dist/demo/demo.d.ts +1 -1
  41. package/dist/dialog-box.vue.d.ts +71 -42
  42. package/dist/exports/components.d.ts +2 -2
  43. package/dist/exports/config.d.ts +1 -1
  44. package/dist/exports/display.d.ts +2 -2
  45. package/dist/exports/events.d.ts +1 -1
  46. package/dist/exports/others.d.ts +1 -1
  47. package/dist/exports/plugins.d.ts +38 -38
  48. package/dist/exports/stores.d.ts +11 -11
  49. package/dist/favicon.svg +30 -30
  50. package/dist/gamepad/gamepad.d.ts +1 -0
  51. package/dist/lib.d.ts +18 -18
  52. package/dist/main.d.ts +7 -7
  53. package/dist/menu-buttons/menu-buttons.d.ts +7 -4
  54. package/dist/narrat.es.js +12024 -11620
  55. package/dist/narrat.es.js.map +1 -1
  56. package/dist/narrat.umd.js +97 -97
  57. package/dist/narrat.umd.js.map +1 -1
  58. package/dist/plugins/NarratPlugin.d.ts +11 -11
  59. package/dist/stores/audio-store.d.ts +56 -56
  60. package/dist/stores/dialog-store.d.ts +35 -32
  61. package/dist/stores/hud-stats-store.d.ts +22 -22
  62. package/dist/stores/inventory-store.d.ts +38 -37
  63. package/dist/stores/main-store.d.ts +929 -928
  64. package/dist/stores/menu-store.d.ts +45 -36
  65. package/dist/stores/notification-store.d.ts +15 -15
  66. package/dist/stores/quest-log.d.ts +39 -39
  67. package/dist/stores/rendering-store.d.ts +19 -18
  68. package/dist/stores/screens-store.d.ts +33 -33
  69. package/dist/stores/skills.d.ts +41 -41
  70. package/dist/stores/sprites-store.d.ts +48 -48
  71. package/dist/stores/vm-store.d.ts +180 -180
  72. package/dist/style.css +1 -1
  73. package/dist/types/app-types.d.ts +9 -9
  74. package/dist/types/character-types.d.ts +27 -27
  75. package/dist/types/dialog-box-types.d.ts +11 -11
  76. package/dist/types/game-save.d.ts +40 -40
  77. package/dist/types/parser.d.ts +93 -93
  78. package/dist/types/state.d.ts +3 -3
  79. package/dist/utils/InputsListener.d.ts +9 -9
  80. package/dist/utils/ajax.d.ts +2 -2
  81. package/dist/utils/audio-loader.d.ts +10 -10
  82. package/dist/utils/characters.d.ts +5 -5
  83. package/dist/utils/data-helpers.d.ts +29 -29
  84. package/dist/utils/debounce.d.ts +14 -14
  85. package/dist/utils/error-handling.d.ts +4 -4
  86. package/dist/utils/helpers.d.ts +6 -6
  87. package/dist/utils/images-loader.d.ts +7 -7
  88. package/dist/utils/logger.d.ts +11 -11
  89. package/dist/utils/object-iterators.d.ts +8 -8
  90. package/dist/utils/promises.d.ts +1 -1
  91. package/dist/utils/randomId.d.ts +1 -1
  92. package/dist/utils/save-helpers.d.ts +16 -16
  93. package/dist/utils/skillchecks.d.ts +17 -17
  94. package/dist/utils/string-helpers.d.ts +4 -3
  95. package/dist/utils/time-helpers.d.ts +2 -2
  96. package/dist/utils/transition.d.ts +21 -21
  97. package/dist/utils/type-utils.d.ts +2 -2
  98. package/dist/utils/typed-emitter.d.ts +18 -18
  99. package/dist/utils/vue-directives.d.ts +2 -0
  100. package/dist/vm/commands/arithmetic-commands.d.ts +23 -23
  101. package/dist/vm/commands/audio-commands.d.ts +15 -15
  102. package/dist/vm/commands/choice.d.ts +38 -38
  103. package/dist/vm/commands/clear_dialog.d.ts +2 -2
  104. package/dist/vm/commands/command-helpers.d.ts +3 -3
  105. package/dist/vm/commands/command-plugin.d.ts +43 -43
  106. package/dist/vm/commands/flow-commands.d.ts +24 -24
  107. package/dist/vm/commands/if.d.ts +10 -10
  108. package/dist/vm/commands/index.d.ts +2 -2
  109. package/dist/vm/commands/inventory-commands.d.ts +15 -15
  110. package/dist/vm/commands/logic-command.d.ts +42 -42
  111. package/dist/vm/commands/math-commands.d.ts +30 -30
  112. package/dist/vm/commands/notify.d.ts +6 -6
  113. package/dist/vm/commands/quest-commands.d.ts +30 -30
  114. package/dist/vm/commands/random-commands.d.ts +10 -10
  115. package/dist/vm/commands/screen-commands.d.ts +18 -18
  116. package/dist/vm/commands/set.d.ts +6 -6
  117. package/dist/vm/commands/skill-commands.d.ts +33 -33
  118. package/dist/vm/commands/sprite-commands.d.ts +9 -9
  119. package/dist/vm/commands/stats-commands.d.ts +12 -12
  120. package/dist/vm/commands/string-commands.d.ts +9 -9
  121. package/dist/vm/commands/text-field.d.ts +7 -7
  122. package/dist/vm/commands/text.d.ts +14 -14
  123. package/dist/vm/commands/wait.d.ts +4 -4
  124. package/dist/vm/vm-helpers.d.ts +19 -19
  125. package/dist/vm/vm-parser.d.ts +19 -19
  126. package/dist/vm/vm-parser.test.d.ts +1 -1
  127. package/dist/vm/vm.d.ts +21 -21
  128. package/package.json +1 -1
@@ -1,928 +1,929 @@
1
- import { AppOptions } from '../types/app-types';
2
- import { GameSave, SaveSlot } from '../types/game-save';
3
- import { ChosenSlot } from '../utils/save-helpers';
4
- import { TypedEmitter } from '../utils/typed-emitter';
5
- export declare function defaultAppOptions(): AppOptions;
6
- export interface MainEvents {
7
- gameLoaded: () => void;
8
- }
9
- export declare class MainStoreListener extends TypedEmitter<MainEvents> {
10
- }
11
- export interface ErrorState {
12
- text: string;
13
- type: 'error' | 'warning' | 'info';
14
- }
15
- interface MainState {
16
- ready: boolean;
17
- playing: boolean;
18
- errors: ErrorState[];
19
- playTime: {
20
- start: number;
21
- previousPlaytime: number;
22
- };
23
- saveSlot: string;
24
- options: AppOptions;
25
- flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
26
- modal: string | false;
27
- paused: boolean;
28
- loading: {
29
- step: string;
30
- percentage: number;
31
- loaded: boolean;
32
- };
33
- alerts: {
34
- title: string;
35
- text: string;
36
- resolver: () => void;
37
- id: string;
38
- }[];
39
- saving: {
40
- withPrompt?: boolean;
41
- name?: string;
42
- resolver: () => void;
43
- } | null;
44
- saveData?: GameSave;
45
- listener: MainStoreListener;
46
- inScript: boolean;
47
- }
48
- export interface MainSaveData {
49
- playTime: number;
50
- }
51
- export declare const useMain: import("pinia").StoreDefinition<"main", MainState, {
52
- isInGame(state: {
53
- ready: boolean;
54
- playing: boolean;
55
- errors: {
56
- text: string;
57
- type: 'error' | 'warning' | 'info';
58
- }[];
59
- playTime: {
60
- start: number;
61
- previousPlaytime: number;
62
- };
63
- saveSlot: string;
64
- options: {
65
- baseAssetsPath: string;
66
- baseDataPath: string;
67
- charactersPath: string;
68
- configPath: string;
69
- logging: boolean;
70
- debug: boolean;
71
- };
72
- flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
73
- modal: string | false;
74
- paused: boolean;
75
- loading: {
76
- step: string;
77
- percentage: number;
78
- loaded: boolean;
79
- };
80
- alerts: {
81
- title: string;
82
- text: string;
83
- resolver: () => void;
84
- id: string;
85
- }[];
86
- saving: {
87
- withPrompt?: boolean | undefined;
88
- name?: string | undefined;
89
- resolver: () => void;
90
- } | null;
91
- saveData?: {
92
- version: string;
93
- skills: {
94
- skillChecks: {
95
- [key: string]: import("./skills").SkillCheckState;
96
- };
97
- skills: import("./skills").SkillsState;
98
- };
99
- screen: {
100
- layers: (string | null)[];
101
- buttons: import("./screens-store").ButtonsState;
102
- };
103
- main: {
104
- playTime: number;
105
- };
106
- dialog: {
107
- dialog: {
108
- speaker: string;
109
- text: string;
110
- pose?: string | undefined;
111
- cssClass?: string | undefined;
112
- choices?: {
113
- choice: string;
114
- originalIndex: number;
115
- allowed: boolean;
116
- }[] | undefined;
117
- textField?: boolean | undefined;
118
- interactive: boolean;
119
- id: string;
120
- }[];
121
- };
122
- vm: {
123
- lastLabel: string;
124
- data: import("./vm-store").DataState;
125
- };
126
- audio: {
127
- modes: {
128
- [key: string]: import("./audio-store").AudioSaveMode;
129
- };
130
- masterVolume: number;
131
- };
132
- hud: {
133
- hudStats: import("./hud-stats-store").HudStatsState;
134
- };
135
- inventory: {
136
- items: {
137
- [key: string]: import("./inventory-store").ItemState;
138
- };
139
- interactionTags: {
140
- [key: string]: {
141
- blockedInteraction: boolean;
142
- };
143
- };
144
- };
145
- quests: {
146
- quests: {
147
- [key: string]: import("./quest-log").QuestState;
148
- };
149
- };
150
- metadata: {
151
- saveDate: string;
152
- name: string;
153
- };
154
- sprites: {
155
- sprites: {
156
- id: string;
157
- x: number;
158
- y: number;
159
- anchor: {
160
- x: number;
161
- y: number;
162
- };
163
- width: number;
164
- height: number;
165
- image: string;
166
- opacity: number;
167
- scale: number;
168
- layer: number;
169
- cssClass?: string | undefined;
170
- onClick?: string | undefined;
171
- }[];
172
- };
173
- } | undefined;
174
- listener: {
175
- listeners: {
176
- gameLoaded: Set<() => void>;
177
- };
178
- on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
179
- off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
180
- once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
181
- emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
182
- clear: () => void;
183
- };
184
- inScript: boolean;
185
- } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
186
- }, {
187
- setup(): Promise<void>;
188
- engineLoading(): Promise<void>;
189
- alert(title: string, text: string): Promise<void>;
190
- closeAlert(id: string): void;
191
- startingScript(): void;
192
- endingScript(): void;
193
- startMachine(): void;
194
- setSaveSlot(slot: string): void;
195
- startGame(saveSlot: string): Promise<void>;
196
- loadGame(save: SaveSlot, saveSlot: string): Promise<void>;
197
- manualSave({ saveName, withPrompt, }: {
198
- saveName?: string | undefined;
199
- withPrompt?: boolean | undefined;
200
- }): Promise<void>;
201
- finishManualSave(slotData: ChosenSlot | null, yes: boolean): void;
202
- playerAnswered(choice: number | string): void;
203
- menuReturn(): void;
204
- createError(text: string): void;
205
- createWarning(text: string): void;
206
- clearErrors(): void;
207
- setFlowState(flowState: 'menu' | 'playing'): void;
208
- openModal(modal: string): void;
209
- closeModal(): void;
210
- toggleMenu(): void;
211
- pause(): void;
212
- unpause(): void;
213
- setOptions(options: AppOptions): void;
214
- startPlaying(): void;
215
- reset(): void;
216
- resetAllStores(): void;
217
- generateSaveData(): MainSaveData;
218
- loadSaveData(data: MainSaveData): void;
219
- autoSaveGame({ slotId, name }: {
220
- slotId?: string | undefined;
221
- name?: string | undefined;
222
- }): void;
223
- setLoadedData(save: GameSave): void;
224
- getAllStates(): {
225
- main: any & {
226
- ready: boolean;
227
- playing: boolean;
228
- errors: {
229
- text: string;
230
- type: 'error' | 'warning' | 'info';
231
- }[];
232
- playTime: {
233
- start: number;
234
- previousPlaytime: number;
235
- };
236
- saveSlot: string;
237
- options: {
238
- baseAssetsPath: string;
239
- baseDataPath: string;
240
- charactersPath: string;
241
- configPath: string;
242
- logging: boolean;
243
- debug: boolean;
244
- };
245
- flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
246
- modal: string | false;
247
- paused: boolean;
248
- loading: {
249
- step: string;
250
- percentage: number;
251
- loaded: boolean;
252
- };
253
- alerts: {
254
- title: string;
255
- text: string;
256
- resolver: () => void;
257
- id: string;
258
- }[];
259
- saving: {
260
- withPrompt?: boolean | undefined;
261
- name?: string | undefined;
262
- resolver: () => void;
263
- } | null;
264
- saveData?: {
265
- version: string;
266
- skills: {
267
- skillChecks: {
268
- [key: string]: import("./skills").SkillCheckState;
269
- };
270
- skills: import("./skills").SkillsState;
271
- };
272
- screen: {
273
- layers: (string | null)[];
274
- buttons: import("./screens-store").ButtonsState;
275
- };
276
- main: {
277
- playTime: number;
278
- };
279
- dialog: {
280
- dialog: {
281
- speaker: string;
282
- text: string;
283
- pose?: string | undefined;
284
- cssClass?: string | undefined;
285
- choices?: {
286
- choice: string;
287
- originalIndex: number;
288
- allowed: boolean;
289
- }[] | undefined;
290
- textField?: boolean | undefined;
291
- interactive: boolean;
292
- id: string;
293
- }[];
294
- };
295
- vm: {
296
- lastLabel: string;
297
- data: import("./vm-store").DataState;
298
- };
299
- audio: {
300
- modes: {
301
- [key: string]: import("./audio-store").AudioSaveMode;
302
- };
303
- masterVolume: number;
304
- };
305
- hud: {
306
- hudStats: import("./hud-stats-store").HudStatsState;
307
- };
308
- inventory: {
309
- items: {
310
- [key: string]: import("./inventory-store").ItemState;
311
- };
312
- interactionTags: {
313
- [key: string]: {
314
- blockedInteraction: boolean;
315
- };
316
- };
317
- };
318
- quests: {
319
- quests: {
320
- [key: string]: import("./quest-log").QuestState;
321
- };
322
- };
323
- metadata: {
324
- saveDate: string;
325
- name: string;
326
- };
327
- sprites: {
328
- sprites: {
329
- id: string;
330
- x: number;
331
- y: number;
332
- anchor: {
333
- x: number;
334
- y: number;
335
- };
336
- width: number;
337
- height: number;
338
- image: string;
339
- opacity: number;
340
- scale: number;
341
- layer: number;
342
- cssClass?: string | undefined;
343
- onClick?: string | undefined;
344
- }[];
345
- };
346
- } | undefined;
347
- listener: {
348
- listeners: {
349
- gameLoaded: Set<() => void>;
350
- };
351
- on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
352
- off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
353
- once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
354
- emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
355
- clear: () => void;
356
- };
357
- inScript: boolean;
358
- } & import("pinia")._StoreWithState<"main", MainState, {
359
- isInGame(state: {
360
- ready: boolean;
361
- playing: boolean;
362
- errors: {
363
- text: string;
364
- type: 'error' | 'warning' | 'info';
365
- }[];
366
- playTime: {
367
- start: number;
368
- previousPlaytime: number;
369
- };
370
- saveSlot: string;
371
- options: {
372
- baseAssetsPath: string;
373
- baseDataPath: string;
374
- charactersPath: string;
375
- configPath: string;
376
- logging: boolean;
377
- debug: boolean;
378
- };
379
- flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
380
- modal: string | false;
381
- paused: boolean;
382
- loading: {
383
- step: string;
384
- percentage: number;
385
- loaded: boolean;
386
- };
387
- alerts: {
388
- title: string;
389
- text: string;
390
- resolver: () => void;
391
- id: string;
392
- }[];
393
- saving: {
394
- withPrompt?: boolean | undefined;
395
- name?: string | undefined;
396
- resolver: () => void;
397
- } | null;
398
- saveData?: {
399
- version: string;
400
- skills: {
401
- skillChecks: {
402
- [key: string]: import("./skills").SkillCheckState;
403
- };
404
- skills: import("./skills").SkillsState;
405
- };
406
- screen: {
407
- layers: (string | null)[];
408
- buttons: import("./screens-store").ButtonsState;
409
- };
410
- main: {
411
- playTime: number;
412
- };
413
- dialog: {
414
- dialog: {
415
- speaker: string;
416
- text: string;
417
- pose?: string | undefined;
418
- cssClass?: string | undefined;
419
- choices?: {
420
- choice: string;
421
- originalIndex: number;
422
- allowed: boolean;
423
- }[] | undefined;
424
- textField?: boolean | undefined;
425
- interactive: boolean;
426
- id: string;
427
- }[];
428
- };
429
- vm: {
430
- lastLabel: string;
431
- data: import("./vm-store").DataState;
432
- };
433
- audio: {
434
- modes: {
435
- [key: string]: import("./audio-store").AudioSaveMode;
436
- };
437
- masterVolume: number;
438
- };
439
- hud: {
440
- hudStats: import("./hud-stats-store").HudStatsState;
441
- };
442
- inventory: {
443
- items: {
444
- [key: string]: import("./inventory-store").ItemState;
445
- };
446
- interactionTags: {
447
- [key: string]: {
448
- blockedInteraction: boolean;
449
- };
450
- };
451
- };
452
- quests: {
453
- quests: {
454
- [key: string]: import("./quest-log").QuestState;
455
- };
456
- };
457
- metadata: {
458
- saveDate: string;
459
- name: string;
460
- };
461
- sprites: {
462
- sprites: {
463
- id: string;
464
- x: number;
465
- y: number;
466
- anchor: {
467
- x: number;
468
- y: number;
469
- };
470
- width: number;
471
- height: number;
472
- image: string;
473
- opacity: number;
474
- scale: number;
475
- layer: number;
476
- cssClass?: string | undefined;
477
- onClick?: string | undefined;
478
- }[];
479
- };
480
- } | undefined;
481
- listener: {
482
- listeners: {
483
- gameLoaded: Set<() => void>;
484
- };
485
- on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
486
- off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
487
- once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
488
- emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
489
- clear: () => void;
490
- };
491
- inScript: boolean;
492
- } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
493
- }, any> & import("pinia")._StoreWithGetters<{
494
- isInGame(state: {
495
- ready: boolean;
496
- playing: boolean;
497
- errors: {
498
- text: string;
499
- type: 'error' | 'warning' | 'info';
500
- }[];
501
- playTime: {
502
- start: number;
503
- previousPlaytime: number;
504
- };
505
- saveSlot: string;
506
- options: {
507
- baseAssetsPath: string;
508
- baseDataPath: string;
509
- charactersPath: string;
510
- configPath: string;
511
- logging: boolean;
512
- debug: boolean;
513
- };
514
- flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
515
- modal: string | false;
516
- paused: boolean;
517
- loading: {
518
- step: string;
519
- percentage: number;
520
- loaded: boolean;
521
- };
522
- alerts: {
523
- title: string;
524
- text: string;
525
- resolver: () => void;
526
- id: string;
527
- }[];
528
- saving: {
529
- withPrompt?: boolean | undefined;
530
- name?: string | undefined;
531
- resolver: () => void;
532
- } | null;
533
- saveData?: {
534
- version: string;
535
- skills: {
536
- skillChecks: {
537
- [key: string]: import("./skills").SkillCheckState;
538
- };
539
- skills: import("./skills").SkillsState;
540
- };
541
- screen: {
542
- layers: (string | null)[];
543
- buttons: import("./screens-store").ButtonsState;
544
- };
545
- main: {
546
- playTime: number;
547
- };
548
- dialog: {
549
- dialog: {
550
- speaker: string;
551
- text: string;
552
- pose?: string | undefined;
553
- cssClass?: string | undefined;
554
- choices?: {
555
- choice: string;
556
- originalIndex: number;
557
- allowed: boolean;
558
- }[] | undefined;
559
- textField?: boolean | undefined;
560
- interactive: boolean;
561
- id: string;
562
- }[];
563
- };
564
- vm: {
565
- lastLabel: string;
566
- data: import("./vm-store").DataState;
567
- };
568
- audio: {
569
- modes: {
570
- [key: string]: import("./audio-store").AudioSaveMode;
571
- };
572
- masterVolume: number;
573
- };
574
- hud: {
575
- hudStats: import("./hud-stats-store").HudStatsState;
576
- };
577
- inventory: {
578
- items: {
579
- [key: string]: import("./inventory-store").ItemState;
580
- };
581
- interactionTags: {
582
- [key: string]: {
583
- blockedInteraction: boolean;
584
- };
585
- };
586
- };
587
- quests: {
588
- quests: {
589
- [key: string]: import("./quest-log").QuestState;
590
- };
591
- };
592
- metadata: {
593
- saveDate: string;
594
- name: string;
595
- };
596
- sprites: {
597
- sprites: {
598
- id: string;
599
- x: number;
600
- y: number;
601
- anchor: {
602
- x: number;
603
- y: number;
604
- };
605
- width: number;
606
- height: number;
607
- image: string;
608
- opacity: number;
609
- scale: number;
610
- layer: number;
611
- cssClass?: string | undefined;
612
- onClick?: string | undefined;
613
- }[];
614
- };
615
- } | undefined;
616
- listener: {
617
- listeners: {
618
- gameLoaded: Set<() => void>;
619
- };
620
- on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
621
- off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
622
- once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
623
- emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
624
- clear: () => void;
625
- };
626
- inScript: boolean;
627
- } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
628
- }> & import("pinia").PiniaCustomProperties<string, import("pinia").StateTree, import("pinia")._GettersTree<import("pinia").StateTree>, import("pinia")._ActionsTree>;
629
- screens: import("pinia").Store<"screens", import("./screens-store").ScreenState, {
630
- nonEmptyLayers(state: import("./screens-store").ScreenState): import("./screens-store").FullLayerState[];
631
- }, {
632
- setScreen(screen: string, layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
633
- finishTransition(layer: number): void;
634
- transitionScreen(screen: string, transition: import("../utils/transition").AddTransition, layer?: number | undefined): Promise<void>;
635
- emptyLayer(layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
636
- setButtons(config: import("../config").Config): void;
637
- changeButton(button: string, newValue: import("./screens-store").ButtonStateValue): void;
638
- generateSaveData(): import("./screens-store").ScreenSave;
639
- loadSaveData(data: import("./screens-store").ScreenSave): void;
640
- }>;
641
- skills: import("pinia").Store<"skills", import("./skills").Skills, {}, {
642
- setupSkillCheck(skillCheck: import("./skills").SkillCheckState, id: string): void;
643
- passSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
644
- failSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
645
- resetSkillCheck(skillCheckId: string): void;
646
- generateSaveData(): import("./skills").Skills;
647
- getSkillCheck(id: string): import("./skills").SkillCheckState;
648
- createSkillCheckState(): import("./skills").SkillCheckState;
649
- loadSaveData(data: import("./skills").Skills): void;
650
- setupSkills(skills: {
651
- [key: string]: import("../config").SkillData;
652
- }): void;
653
- getSkill(skill: string): import("./skills").SkillState;
654
- getSkillLevel(skill: string): number;
655
- getSkillXp(skill: string): number;
656
- addXp(skill: string, xp: number): void;
657
- setSkillLevel(skill: string, level: number): void;
658
- incrementSkill(skill: string, amount: number): void;
659
- levelledUp(skill: string): void;
660
- }>;
661
- dialog: import("pinia").Store<"dialog", {
662
- dialog: import("./dialog-store").DialogKey[];
663
- }, {
664
- currentDialog(): import("./dialog-store").DialogKey;
665
- }, {
666
- generateSaveData(): {
667
- dialog: import("./dialog-store").DialogKey[];
668
- };
669
- loadSaveData(data: {
670
- dialog: import("./dialog-store").DialogKey[];
671
- }): void;
672
- addDialog(dialog: import("./dialog-store").AddDialogParams): void;
673
- clearDialog(): void;
674
- reset(): void;
675
- }>;
676
- vm: import("pinia").Store<"vm", import("./vm-store").VMState, {
677
- currentFrame(state: {
678
- commandsWaitingForPlayerAnswer: {
679
- args: (import("../types/parser").Parser.Primitive | {
680
- code: string;
681
- command: {
682
- commandType: string;
683
- operator: string;
684
- args: (import("../types/parser").Parser.Primitive | any)[];
685
- options: import("../types/parser").Parser.DefaultArg;
686
- staticOptions: {};
687
- };
688
- fileName: string;
689
- line: number;
690
- })[];
691
- commandType: string;
692
- options: any;
693
- code: string;
694
- staticOptions: any;
695
- operator: string;
696
- line: number;
697
- fileName: string;
698
- finishCommand?: ((res: any) => void) | undefined;
699
- }[];
700
- stack: {
701
- blocks: {
702
- currentIndex: number;
703
- branchData: {
704
- branch: {
705
- code: string;
706
- command: {
707
- commandType: string;
708
- operator: string;
709
- args: (import("../types/parser").Parser.Primitive | any)[];
710
- options: import("../types/parser").Parser.DefaultArg;
711
- staticOptions: {};
712
- };
713
- fileName: string;
714
- line: number;
715
- }[];
716
- args?: string[] | undefined;
717
- };
718
- }[];
719
- label: string;
720
- scope: {
721
- [key: string]: any;
722
- };
723
- returnValue: any;
724
- }[];
725
- script: import("../types/parser").Parser.ParsedScript;
726
- data: import("./vm-store").DataState;
727
- lastLabel: string;
728
- jumpTarget?: {
729
- currentIndex: number;
730
- branchData: {
731
- branch: {
732
- code: string;
733
- command: {
734
- commandType: string;
735
- operator: string;
736
- args: (import("../types/parser").Parser.Primitive | any)[];
737
- options: import("../types/parser").Parser.DefaultArg;
738
- staticOptions: {};
739
- };
740
- fileName: string;
741
- line: number;
742
- }[];
743
- args?: string[] | undefined;
744
- };
745
- label: string;
746
- scope?: {
747
- [key: string]: any;
748
- } | undefined;
749
- args?: any[] | undefined;
750
- } | undefined;
751
- hasJumped: boolean;
752
- } & import("pinia").PiniaCustomStateProperties<import("./vm-store").VMState>): import("./vm-store").MachineFrame | undefined;
753
- scope(): {
754
- [key: string]: any;
755
- };
756
- currentBlock(): import("./vm-store").MachineBlock | undefined;
757
- currentLine(): import("../types/parser").Parser.ParsedExpression<import("../types/parser").Parser.DefaultArg, {}> | undefined;
758
- commandWaitingForAnswer(): import("../types/parser").Parser.Command<any, any> | undefined;
759
- }, {
760
- generateSaveData(): import("./vm-store").VMSave;
761
- loadSaveData(data: import("./vm-store").VMSave): void;
762
- setReturnValue(value: any): void;
763
- waitForPlayerAnswer(cmd: import("../types/parser").Parser.Command<any, any>): void;
764
- popAnswerQueue(): {
765
- args: (import("../types/parser").Parser.Primitive | {
766
- code: string;
767
- command: {
768
- commandType: string;
769
- operator: string;
770
- args: (import("../types/parser").Parser.Primitive | any)[];
771
- options: import("../types/parser").Parser.DefaultArg;
772
- staticOptions: {};
773
- };
774
- fileName: string;
775
- line: number;
776
- })[];
777
- commandType: string;
778
- options: any;
779
- code: string;
780
- staticOptions: any;
781
- operator: string;
782
- line: number;
783
- fileName: string;
784
- finishCommand?: ((res: any) => void) | undefined;
785
- } | undefined;
786
- addScopedVariable(key: string, value: any): void;
787
- loadScripts(scriptPaths: string[]): Promise<void>;
788
- start(): void;
789
- setLastLabel(label: string): void;
790
- reset(): void;
791
- setScript(script: import("../types/parser").Parser.ParsedScript): void;
792
- overrideData(data: import("./vm-store").DataState): void;
793
- setStack(stack: import("./vm-store").SetFrameOptions): void;
794
- frameOptionsToFrame(frame: import("./vm-store").SetFrameOptions): import("./vm-store").MachineFrame;
795
- addBlock(frame: import("./vm-store").MachineFrame, block: import("./vm-store").MachineBlock): void;
796
- addAndRunBlock(block: import("./vm-store").MachineBlock): Promise<any>;
797
- setData(path: string, value: any): void;
798
- addInstruction(path: string, value: any): void;
799
- addFrame(newStackOptions: import("./vm-store").AddFrameOptions): void;
800
- addAndRunFrame(newStackOptions: import("./vm-store").AddFrameOptions): Promise<any>;
801
- runFrame(): Promise<any>;
802
- cleanFrame(): any;
803
- runBlock(): Promise<any>;
804
- cleanBlock(): void;
805
- runGame(): Promise<void>;
806
- nextLineOnly(): Promise<boolean>;
807
- isBlockFinished(): boolean;
808
- reachedEndOfScript(): void;
809
- runLineOnly(): Promise<any>;
810
- runLabelFunction(label: string, ...args: any[]): Promise<any>;
811
- runCustomFrame(stack: import("./vm-store").AddFrameOptions): void;
812
- jumpToLabel(label: string, ...args: any[]): Promise<void>;
813
- runThenGoBackToPreviousDialog(label: string, ...args: any[]): Promise<any>;
814
- }>;
815
- hud: import("pinia").Store<"hud", import("./hud-stats-store").HudState, {}, {
816
- setupHudStats(stats: {
817
- [key: string]: import("../config").HudStatConfig;
818
- }): void;
819
- setStat(stat: string, value: number): void;
820
- addStat(stat: string, value: number): void;
821
- getStat(stat: string): import("./hud-stats-store").HudStat;
822
- getStatValue(stat: string): number;
823
- generateSaveData(): import("./hud-stats-store").HudState;
824
- loadSaveData(data: import("./hud-stats-store").HudState): void;
825
- }>;
826
- audio: import("pinia").Store<"audio", import("./audio-store").AudioState, {}, {
827
- stopAll(): void;
828
- stopChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
829
- pauseChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
830
- playChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
831
- changeChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
832
- actuallyStopChannel(channel: import("./audio-store").AudioChannel): void;
833
- getAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): import("./audio-store").AudioChannel | null;
834
- setAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, value: import("./audio-store").AudioChannel | null): void;
835
- actuallyPlayChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, audio: string): Promise<void>;
836
- reloadAudio(save: import("./audio-store").AudioSave): void;
837
- stopSound(key: string): void;
838
- generateSaveData(): import("./audio-store").AudioSave;
839
- loadSaveData(data: import("./audio-store").AudioSave): void;
840
- reset(): void;
841
- setModeVolume(mode: "sound" | "music" | "ambiant", volume: number): void;
842
- setMasterVolume(volume: number): void;
843
- modeVolume(mode: "sound" | "music" | "ambiant"): number;
844
- }>;
845
- rendering: import("pinia").Store<"rendering", import("./rendering-store").RenderingState, {
846
- gameScaleRatio(state: import("./rendering-store").RenderingState): number;
847
- overlayMode(state: import("./rendering-store").RenderingState): boolean;
848
- gameWidth(): number;
849
- gameHeight(): number;
850
- dialogHeight(): number;
851
- actualGameHeight(): number;
852
- viewportRatio(state: import("./rendering-store").RenderingState): number;
853
- viewportHeight(state: import("./rendering-store").RenderingState): number;
854
- viewportWidth(state: import("./rendering-store").RenderingState): number;
855
- }, {
856
- updateScreenSize(width: number, height: number): void;
857
- }>;
858
- notifications: import("pinia").Store<"notifications", import("./notification-store").NotificationsState, {}, {
859
- addNotification(text: string): Promise<void>;
860
- deleteNotification(id: string): void;
861
- disableNotifications(): void;
862
- enableNotifications(): void;
863
- }>;
864
- inventory: import("pinia").Store<"inventory", import("./inventory-store").InventoryState, {}, {
865
- generateSaveData(): import("./inventory-store").InventoryState;
866
- loadSaveData(save: import("./inventory-store").InventoryState): void;
867
- setupItems(items: {
868
- [key: string]: import("../config").ItemData;
869
- }): void;
870
- hasItem(itemId: string, amount?: number | undefined): boolean;
871
- getExistingItem(id: string): import("./inventory-store").ItemState | undefined;
872
- getItemAmount(id: string): number;
873
- add(item: import("./inventory-store").ItemState): void;
874
- enableInteraction(tag?: string | undefined): void;
875
- disableInteraction(tag?: string | undefined): void;
876
- onScriptStart(): void;
877
- onScriptEnd(): void;
878
- isInteractionTagBlocked(tag?: string | undefined): boolean;
879
- remove(item: import("./inventory-store").ItemState): void;
880
- deleteItem(id: string): void;
881
- }>;
882
- quests: import("pinia").Store<"quests", import("./quest-log").QuestLogState, {}, {
883
- getQuest(questId: string): import("./quest-log").QuestState;
884
- getObjective(questId: string, objectiveId: string): import("./quest-log").ObjectiveState;
885
- setupQuests(quests: {
886
- [key: string]: import("../config").QuestData;
887
- }): void;
888
- startQuest(questId: string): void;
889
- startObjective(questId: string, objectiveId: string): void;
890
- completeObjective(questId: string, objectiveId: string): void;
891
- completeQuest(questId: string, ending?: string | undefined): void;
892
- isQuestCompleted(questId: string): boolean;
893
- isObjectiveCompleted(questId: string, objectiveId: string): boolean;
894
- isQuestStarted(questId: string): boolean;
895
- isObjectiveStarted(questId: string, objectiveId: string): boolean;
896
- removeQuest(id: string): void;
897
- generateSaveData(): import("./quest-log").QuestLogState;
898
- loadSaveData(data: import("./quest-log").QuestLogState): void;
899
- }>;
900
- sprites: import("pinia").Store<"sprites", import("./sprites-store").SpriteStoreState, {}, {
901
- createSprite(image: string, x: number, y: number): import("./sprites-store").SpriteState;
902
- getSprite(id: string): {
903
- id: string;
904
- x: number;
905
- y: number;
906
- anchor: {
907
- x: number;
908
- y: number;
909
- };
910
- width: number;
911
- height: number;
912
- image: string;
913
- opacity: number;
914
- scale: number;
915
- layer: number;
916
- cssClass?: string | undefined;
917
- onClick?: string | undefined;
918
- } | undefined;
919
- deleteSprite(sprite: import("./sprites-store").SpriteState): void;
920
- clickSprite(sprite: import("./sprites-store").SpriteState): void;
921
- generateSaveData(): import("./sprites-store").SpriteStoreSave;
922
- loadSaveData(data: import("./sprites-store").SpriteStoreSave): void;
923
- reset(): void;
924
- }>;
925
- };
926
- overrideStates(override: any): void;
927
- }>;
928
- export {};
1
+ import { AppOptions } from '../types/app-types';
2
+ import { GameSave, SaveSlot } from '../types/game-save';
3
+ import { ChosenSlot } from '../utils/save-helpers';
4
+ import { TypedEmitter } from '../utils/typed-emitter';
5
+ export declare function defaultAppOptions(): AppOptions;
6
+ export interface MainEvents {
7
+ gameLoaded: () => void;
8
+ }
9
+ export declare class MainStoreListener extends TypedEmitter<MainEvents> {
10
+ }
11
+ export interface ErrorState {
12
+ text: string;
13
+ type: 'error' | 'warning' | 'info';
14
+ }
15
+ interface MainState {
16
+ ready: boolean;
17
+ playing: boolean;
18
+ errors: ErrorState[];
19
+ playTime: {
20
+ start: number;
21
+ previousPlaytime: number;
22
+ };
23
+ saveSlot: string;
24
+ options: AppOptions;
25
+ flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
26
+ modal: string | false;
27
+ paused: boolean;
28
+ loading: {
29
+ step: string;
30
+ percentage: number;
31
+ loaded: boolean;
32
+ };
33
+ alerts: {
34
+ title: string;
35
+ text: string;
36
+ resolver: () => void;
37
+ id: string;
38
+ }[];
39
+ saving: {
40
+ withPrompt?: boolean;
41
+ name?: string;
42
+ resolver: () => void;
43
+ } | null;
44
+ saveData?: GameSave;
45
+ listener: MainStoreListener;
46
+ inScript: boolean;
47
+ }
48
+ export interface MainSaveData {
49
+ playTime: number;
50
+ }
51
+ export declare const useMain: import("pinia").StoreDefinition<"main", MainState, {
52
+ isInGame(state: {
53
+ ready: boolean;
54
+ playing: boolean;
55
+ errors: {
56
+ text: string;
57
+ type: 'error' | 'warning' | 'info';
58
+ }[];
59
+ playTime: {
60
+ start: number;
61
+ previousPlaytime: number;
62
+ };
63
+ saveSlot: string;
64
+ options: {
65
+ baseAssetsPath: string;
66
+ baseDataPath: string;
67
+ charactersPath: string;
68
+ configPath: string;
69
+ logging: boolean;
70
+ debug: boolean;
71
+ };
72
+ flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
73
+ modal: string | false;
74
+ paused: boolean;
75
+ loading: {
76
+ step: string;
77
+ percentage: number;
78
+ loaded: boolean;
79
+ };
80
+ alerts: {
81
+ title: string;
82
+ text: string;
83
+ resolver: () => void;
84
+ id: string;
85
+ }[];
86
+ saving: {
87
+ withPrompt?: boolean | undefined;
88
+ name?: string | undefined;
89
+ resolver: () => void;
90
+ } | null;
91
+ saveData?: {
92
+ version: string;
93
+ skills: {
94
+ skillChecks: {
95
+ [key: string]: import("./skills").SkillCheckState;
96
+ };
97
+ skills: import("./skills").SkillsState;
98
+ };
99
+ screen: {
100
+ layers: (string | null)[];
101
+ buttons: import("./screens-store").ButtonsState;
102
+ };
103
+ main: {
104
+ playTime: number;
105
+ };
106
+ dialog: {
107
+ dialog: {
108
+ speaker: string;
109
+ text: string;
110
+ pose?: string | undefined;
111
+ cssClass?: string | undefined;
112
+ choices?: {
113
+ choice: string;
114
+ originalIndex: number;
115
+ allowed: boolean;
116
+ }[] | undefined;
117
+ textField?: boolean | undefined;
118
+ interactive: boolean;
119
+ id: string;
120
+ }[];
121
+ };
122
+ vm: {
123
+ lastLabel: string;
124
+ data: import("./vm-store").DataState;
125
+ };
126
+ audio: {
127
+ modes: {
128
+ [key: string]: import("./audio-store").AudioSaveMode;
129
+ };
130
+ masterVolume: number;
131
+ };
132
+ hud: {
133
+ hudStats: import("./hud-stats-store").HudStatsState;
134
+ };
135
+ inventory: {
136
+ items: {
137
+ [key: string]: import("./inventory-store").ItemState;
138
+ };
139
+ interactionTags: {
140
+ [key: string]: {
141
+ blockedInteraction: boolean;
142
+ };
143
+ };
144
+ };
145
+ quests: {
146
+ quests: {
147
+ [key: string]: import("./quest-log").QuestState;
148
+ };
149
+ };
150
+ metadata: {
151
+ saveDate: string;
152
+ name: string;
153
+ };
154
+ sprites: {
155
+ sprites: {
156
+ id: string;
157
+ x: number;
158
+ y: number;
159
+ anchor: {
160
+ x: number;
161
+ y: number;
162
+ };
163
+ width: number;
164
+ height: number;
165
+ image: string;
166
+ opacity: number;
167
+ scale: number;
168
+ layer: number;
169
+ cssClass?: string | undefined;
170
+ onClick?: string | undefined;
171
+ }[];
172
+ };
173
+ } | undefined;
174
+ listener: {
175
+ listeners: {
176
+ gameLoaded: Set<() => void>;
177
+ };
178
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
179
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
180
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
181
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
182
+ clear: () => void;
183
+ };
184
+ inScript: boolean;
185
+ } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
186
+ }, {
187
+ setup(): Promise<void>;
188
+ engineLoading(): Promise<void>;
189
+ alert(title: string, text: string): Promise<void>;
190
+ closeAlert(id: string): void;
191
+ startingScript(): void;
192
+ endingScript(): void;
193
+ startMachine(): void;
194
+ setSaveSlot(slot: string): void;
195
+ startGame(saveSlot: string): Promise<void>;
196
+ loadGame(save: SaveSlot, saveSlot: string): Promise<void>;
197
+ manualSave({ saveName, withPrompt, }: {
198
+ saveName?: string | undefined;
199
+ withPrompt?: boolean | undefined;
200
+ }): Promise<void>;
201
+ finishManualSave(slotData: ChosenSlot | null, yes: boolean): void;
202
+ playerAnswered(choice: number | string): void;
203
+ menuReturn(): void;
204
+ createError(text: string): void;
205
+ createWarning(text: string): void;
206
+ clearErrors(): void;
207
+ setFlowState(flowState: 'menu' | 'playing'): void;
208
+ openModal(modal: string): void;
209
+ closeModal(): void;
210
+ toggleMenu(): void;
211
+ pause(): void;
212
+ unpause(): void;
213
+ setOptions(options: AppOptions): void;
214
+ startPlaying(): void;
215
+ reset(): void;
216
+ resetAllStores(): void;
217
+ generateSaveData(): MainSaveData;
218
+ loadSaveData(data: MainSaveData): void;
219
+ autoSaveGame({ slotId, name }: {
220
+ slotId?: string | undefined;
221
+ name?: string | undefined;
222
+ }): void;
223
+ setLoadedData(save: GameSave): void;
224
+ getAllStates(): {
225
+ main: any & {
226
+ ready: boolean;
227
+ playing: boolean;
228
+ errors: {
229
+ text: string;
230
+ type: 'error' | 'warning' | 'info';
231
+ }[];
232
+ playTime: {
233
+ start: number;
234
+ previousPlaytime: number;
235
+ };
236
+ saveSlot: string;
237
+ options: {
238
+ baseAssetsPath: string;
239
+ baseDataPath: string;
240
+ charactersPath: string;
241
+ configPath: string;
242
+ logging: boolean;
243
+ debug: boolean;
244
+ };
245
+ flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
246
+ modal: string | false;
247
+ paused: boolean;
248
+ loading: {
249
+ step: string;
250
+ percentage: number;
251
+ loaded: boolean;
252
+ };
253
+ alerts: {
254
+ title: string;
255
+ text: string;
256
+ resolver: () => void;
257
+ id: string;
258
+ }[];
259
+ saving: {
260
+ withPrompt?: boolean | undefined;
261
+ name?: string | undefined;
262
+ resolver: () => void;
263
+ } | null;
264
+ saveData?: {
265
+ version: string;
266
+ skills: {
267
+ skillChecks: {
268
+ [key: string]: import("./skills").SkillCheckState;
269
+ };
270
+ skills: import("./skills").SkillsState;
271
+ };
272
+ screen: {
273
+ layers: (string | null)[];
274
+ buttons: import("./screens-store").ButtonsState;
275
+ };
276
+ main: {
277
+ playTime: number;
278
+ };
279
+ dialog: {
280
+ dialog: {
281
+ speaker: string;
282
+ text: string;
283
+ pose?: string | undefined;
284
+ cssClass?: string | undefined;
285
+ choices?: {
286
+ choice: string;
287
+ originalIndex: number;
288
+ allowed: boolean;
289
+ }[] | undefined;
290
+ textField?: boolean | undefined;
291
+ interactive: boolean;
292
+ id: string;
293
+ }[];
294
+ };
295
+ vm: {
296
+ lastLabel: string;
297
+ data: import("./vm-store").DataState;
298
+ };
299
+ audio: {
300
+ modes: {
301
+ [key: string]: import("./audio-store").AudioSaveMode;
302
+ };
303
+ masterVolume: number;
304
+ };
305
+ hud: {
306
+ hudStats: import("./hud-stats-store").HudStatsState;
307
+ };
308
+ inventory: {
309
+ items: {
310
+ [key: string]: import("./inventory-store").ItemState;
311
+ };
312
+ interactionTags: {
313
+ [key: string]: {
314
+ blockedInteraction: boolean;
315
+ };
316
+ };
317
+ };
318
+ quests: {
319
+ quests: {
320
+ [key: string]: import("./quest-log").QuestState;
321
+ };
322
+ };
323
+ metadata: {
324
+ saveDate: string;
325
+ name: string;
326
+ };
327
+ sprites: {
328
+ sprites: {
329
+ id: string;
330
+ x: number;
331
+ y: number;
332
+ anchor: {
333
+ x: number;
334
+ y: number;
335
+ };
336
+ width: number;
337
+ height: number;
338
+ image: string;
339
+ opacity: number;
340
+ scale: number;
341
+ layer: number;
342
+ cssClass?: string | undefined;
343
+ onClick?: string | undefined;
344
+ }[];
345
+ };
346
+ } | undefined;
347
+ listener: {
348
+ listeners: {
349
+ gameLoaded: Set<() => void>;
350
+ };
351
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
352
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
353
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
354
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
355
+ clear: () => void;
356
+ };
357
+ inScript: boolean;
358
+ } & import("pinia")._StoreWithState<"main", MainState, {
359
+ isInGame(state: {
360
+ ready: boolean;
361
+ playing: boolean;
362
+ errors: {
363
+ text: string;
364
+ type: 'error' | 'warning' | 'info';
365
+ }[];
366
+ playTime: {
367
+ start: number;
368
+ previousPlaytime: number;
369
+ };
370
+ saveSlot: string;
371
+ options: {
372
+ baseAssetsPath: string;
373
+ baseDataPath: string;
374
+ charactersPath: string;
375
+ configPath: string;
376
+ logging: boolean;
377
+ debug: boolean;
378
+ };
379
+ flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
380
+ modal: string | false;
381
+ paused: boolean;
382
+ loading: {
383
+ step: string;
384
+ percentage: number;
385
+ loaded: boolean;
386
+ };
387
+ alerts: {
388
+ title: string;
389
+ text: string;
390
+ resolver: () => void;
391
+ id: string;
392
+ }[];
393
+ saving: {
394
+ withPrompt?: boolean | undefined;
395
+ name?: string | undefined;
396
+ resolver: () => void;
397
+ } | null;
398
+ saveData?: {
399
+ version: string;
400
+ skills: {
401
+ skillChecks: {
402
+ [key: string]: import("./skills").SkillCheckState;
403
+ };
404
+ skills: import("./skills").SkillsState;
405
+ };
406
+ screen: {
407
+ layers: (string | null)[];
408
+ buttons: import("./screens-store").ButtonsState;
409
+ };
410
+ main: {
411
+ playTime: number;
412
+ };
413
+ dialog: {
414
+ dialog: {
415
+ speaker: string;
416
+ text: string;
417
+ pose?: string | undefined;
418
+ cssClass?: string | undefined;
419
+ choices?: {
420
+ choice: string;
421
+ originalIndex: number;
422
+ allowed: boolean;
423
+ }[] | undefined;
424
+ textField?: boolean | undefined;
425
+ interactive: boolean;
426
+ id: string;
427
+ }[];
428
+ };
429
+ vm: {
430
+ lastLabel: string;
431
+ data: import("./vm-store").DataState;
432
+ };
433
+ audio: {
434
+ modes: {
435
+ [key: string]: import("./audio-store").AudioSaveMode;
436
+ };
437
+ masterVolume: number;
438
+ };
439
+ hud: {
440
+ hudStats: import("./hud-stats-store").HudStatsState;
441
+ };
442
+ inventory: {
443
+ items: {
444
+ [key: string]: import("./inventory-store").ItemState;
445
+ };
446
+ interactionTags: {
447
+ [key: string]: {
448
+ blockedInteraction: boolean;
449
+ };
450
+ };
451
+ };
452
+ quests: {
453
+ quests: {
454
+ [key: string]: import("./quest-log").QuestState;
455
+ };
456
+ };
457
+ metadata: {
458
+ saveDate: string;
459
+ name: string;
460
+ };
461
+ sprites: {
462
+ sprites: {
463
+ id: string;
464
+ x: number;
465
+ y: number;
466
+ anchor: {
467
+ x: number;
468
+ y: number;
469
+ };
470
+ width: number;
471
+ height: number;
472
+ image: string;
473
+ opacity: number;
474
+ scale: number;
475
+ layer: number;
476
+ cssClass?: string | undefined;
477
+ onClick?: string | undefined;
478
+ }[];
479
+ };
480
+ } | undefined;
481
+ listener: {
482
+ listeners: {
483
+ gameLoaded: Set<() => void>;
484
+ };
485
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
486
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
487
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
488
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
489
+ clear: () => void;
490
+ };
491
+ inScript: boolean;
492
+ } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
493
+ }, any> & import("pinia")._StoreWithGetters<{
494
+ isInGame(state: {
495
+ ready: boolean;
496
+ playing: boolean;
497
+ errors: {
498
+ text: string;
499
+ type: 'error' | 'warning' | 'info';
500
+ }[];
501
+ playTime: {
502
+ start: number;
503
+ previousPlaytime: number;
504
+ };
505
+ saveSlot: string;
506
+ options: {
507
+ baseAssetsPath: string;
508
+ baseDataPath: string;
509
+ charactersPath: string;
510
+ configPath: string;
511
+ logging: boolean;
512
+ debug: boolean;
513
+ };
514
+ flowState: 'engine-splash' | 'game-splash' | 'menu' | 'playing';
515
+ modal: string | false;
516
+ paused: boolean;
517
+ loading: {
518
+ step: string;
519
+ percentage: number;
520
+ loaded: boolean;
521
+ };
522
+ alerts: {
523
+ title: string;
524
+ text: string;
525
+ resolver: () => void;
526
+ id: string;
527
+ }[];
528
+ saving: {
529
+ withPrompt?: boolean | undefined;
530
+ name?: string | undefined;
531
+ resolver: () => void;
532
+ } | null;
533
+ saveData?: {
534
+ version: string;
535
+ skills: {
536
+ skillChecks: {
537
+ [key: string]: import("./skills").SkillCheckState;
538
+ };
539
+ skills: import("./skills").SkillsState;
540
+ };
541
+ screen: {
542
+ layers: (string | null)[];
543
+ buttons: import("./screens-store").ButtonsState;
544
+ };
545
+ main: {
546
+ playTime: number;
547
+ };
548
+ dialog: {
549
+ dialog: {
550
+ speaker: string;
551
+ text: string;
552
+ pose?: string | undefined;
553
+ cssClass?: string | undefined;
554
+ choices?: {
555
+ choice: string;
556
+ originalIndex: number;
557
+ allowed: boolean;
558
+ }[] | undefined;
559
+ textField?: boolean | undefined;
560
+ interactive: boolean;
561
+ id: string;
562
+ }[];
563
+ };
564
+ vm: {
565
+ lastLabel: string;
566
+ data: import("./vm-store").DataState;
567
+ };
568
+ audio: {
569
+ modes: {
570
+ [key: string]: import("./audio-store").AudioSaveMode;
571
+ };
572
+ masterVolume: number;
573
+ };
574
+ hud: {
575
+ hudStats: import("./hud-stats-store").HudStatsState;
576
+ };
577
+ inventory: {
578
+ items: {
579
+ [key: string]: import("./inventory-store").ItemState;
580
+ };
581
+ interactionTags: {
582
+ [key: string]: {
583
+ blockedInteraction: boolean;
584
+ };
585
+ };
586
+ };
587
+ quests: {
588
+ quests: {
589
+ [key: string]: import("./quest-log").QuestState;
590
+ };
591
+ };
592
+ metadata: {
593
+ saveDate: string;
594
+ name: string;
595
+ };
596
+ sprites: {
597
+ sprites: {
598
+ id: string;
599
+ x: number;
600
+ y: number;
601
+ anchor: {
602
+ x: number;
603
+ y: number;
604
+ };
605
+ width: number;
606
+ height: number;
607
+ image: string;
608
+ opacity: number;
609
+ scale: number;
610
+ layer: number;
611
+ cssClass?: string | undefined;
612
+ onClick?: string | undefined;
613
+ }[];
614
+ };
615
+ } | undefined;
616
+ listener: {
617
+ listeners: {
618
+ gameLoaded: Set<() => void>;
619
+ };
620
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: MainEvents[Event_1]) => MainEvents[Event_1];
621
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: MainEvents[Event_2]) => MainEvents[Event_2];
622
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: MainEvents[Event_3]) => MainEvents[Event_3];
623
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
624
+ clear: () => void;
625
+ };
626
+ inScript: boolean;
627
+ } & import("pinia").PiniaCustomStateProperties<MainState>): boolean;
628
+ }> & import("pinia").PiniaCustomProperties<string, import("pinia").StateTree, import("pinia")._GettersTree<import("pinia").StateTree>, import("pinia")._ActionsTree>;
629
+ screens: import("pinia").Store<"screens", import("./screens-store").ScreenState, {
630
+ nonEmptyLayers(state: import("./screens-store").ScreenState): import("./screens-store").FullLayerState[];
631
+ }, {
632
+ setScreen(screen: string, layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
633
+ finishTransition(layer: number): void;
634
+ transitionScreen(screen: string, transition: import("../utils/transition").AddTransition, layer?: number | undefined): Promise<void>;
635
+ emptyLayer(layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
636
+ setButtons(config: import("../config").Config): void;
637
+ changeButton(button: string, newValue: import("./screens-store").ButtonStateValue): void;
638
+ generateSaveData(): import("./screens-store").ScreenSave;
639
+ loadSaveData(data: import("./screens-store").ScreenSave): void;
640
+ }>;
641
+ skills: import("pinia").Store<"skills", import("./skills").Skills, {}, {
642
+ setupSkillCheck(skillCheck: import("./skills").SkillCheckState, id: string): void;
643
+ passSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
644
+ failSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
645
+ resetSkillCheck(skillCheckId: string): void;
646
+ generateSaveData(): import("./skills").Skills;
647
+ getSkillCheck(id: string): import("./skills").SkillCheckState;
648
+ createSkillCheckState(): import("./skills").SkillCheckState;
649
+ loadSaveData(data: import("./skills").Skills): void;
650
+ setupSkills(skills: {
651
+ [key: string]: import("../config").SkillData;
652
+ }): void;
653
+ getSkill(skill: string): import("./skills").SkillState;
654
+ getSkillLevel(skill: string): number;
655
+ getSkillXp(skill: string): number;
656
+ addXp(skill: string, xp: number): void;
657
+ setSkillLevel(skill: string, level: number): void;
658
+ incrementSkill(skill: string, amount: number): void;
659
+ levelledUp(skill: string): void;
660
+ }>;
661
+ dialog: import("pinia").Store<"dialog", {
662
+ dialog: import("./dialog-store").DialogKey[];
663
+ playMode: "auto" | "skip" | "normal";
664
+ }, {
665
+ currentDialog(): import("./dialog-store").DialogKey;
666
+ }, {
667
+ generateSaveData(): import("./dialog-store").DialogSave;
668
+ loadSaveData(data: import("./dialog-store").DialogSave): void;
669
+ addDialog(dialog: import("./dialog-store").AddDialogParams): void;
670
+ toggleAutoPlay(): void;
671
+ toggleSkip(): void;
672
+ clearDialog(): void;
673
+ reset(): void;
674
+ }>;
675
+ vm: import("pinia").Store<"vm", import("./vm-store").VMState, {
676
+ currentFrame(state: {
677
+ commandsWaitingForPlayerAnswer: {
678
+ args: (import("../types/parser").Parser.Primitive | {
679
+ code: string;
680
+ command: {
681
+ commandType: string;
682
+ operator: string;
683
+ args: (import("../types/parser").Parser.Primitive | any)[];
684
+ options: import("../types/parser").Parser.DefaultArg;
685
+ staticOptions: {};
686
+ };
687
+ fileName: string;
688
+ line: number;
689
+ })[];
690
+ commandType: string;
691
+ options: any;
692
+ code: string;
693
+ staticOptions: any;
694
+ operator: string;
695
+ line: number;
696
+ fileName: string;
697
+ finishCommand?: ((res: any) => void) | undefined;
698
+ }[];
699
+ stack: {
700
+ blocks: {
701
+ currentIndex: number;
702
+ branchData: {
703
+ branch: {
704
+ code: string;
705
+ command: {
706
+ commandType: string;
707
+ operator: string;
708
+ args: (import("../types/parser").Parser.Primitive | any)[];
709
+ options: import("../types/parser").Parser.DefaultArg;
710
+ staticOptions: {};
711
+ };
712
+ fileName: string;
713
+ line: number;
714
+ }[];
715
+ args?: string[] | undefined;
716
+ };
717
+ }[];
718
+ label: string;
719
+ scope: {
720
+ [key: string]: any;
721
+ };
722
+ returnValue: any;
723
+ }[];
724
+ script: import("../types/parser").Parser.ParsedScript;
725
+ data: import("./vm-store").DataState;
726
+ lastLabel: string;
727
+ jumpTarget?: {
728
+ currentIndex: number;
729
+ branchData: {
730
+ branch: {
731
+ code: string;
732
+ command: {
733
+ commandType: string;
734
+ operator: string;
735
+ args: (import("../types/parser").Parser.Primitive | any)[];
736
+ options: import("../types/parser").Parser.DefaultArg;
737
+ staticOptions: {};
738
+ };
739
+ fileName: string;
740
+ line: number;
741
+ }[];
742
+ args?: string[] | undefined;
743
+ };
744
+ label: string;
745
+ scope?: {
746
+ [key: string]: any;
747
+ } | undefined;
748
+ args?: any[] | undefined;
749
+ } | undefined;
750
+ hasJumped: boolean;
751
+ } & import("pinia").PiniaCustomStateProperties<import("./vm-store").VMState>): import("./vm-store").MachineFrame | undefined;
752
+ scope(): {
753
+ [key: string]: any;
754
+ };
755
+ currentBlock(): import("./vm-store").MachineBlock | undefined;
756
+ currentLine(): import("../types/parser").Parser.ParsedExpression<import("../types/parser").Parser.DefaultArg, {}> | undefined;
757
+ commandWaitingForAnswer(): import("../types/parser").Parser.Command<any, any> | undefined;
758
+ }, {
759
+ generateSaveData(): import("./vm-store").VMSave;
760
+ loadSaveData(data: import("./vm-store").VMSave): void;
761
+ setReturnValue(value: any): void;
762
+ waitForPlayerAnswer(cmd: import("../types/parser").Parser.Command<any, any>): void;
763
+ popAnswerQueue(): {
764
+ args: (import("../types/parser").Parser.Primitive | {
765
+ code: string;
766
+ command: {
767
+ commandType: string;
768
+ operator: string;
769
+ args: (import("../types/parser").Parser.Primitive | any)[];
770
+ options: import("../types/parser").Parser.DefaultArg;
771
+ staticOptions: {};
772
+ };
773
+ fileName: string;
774
+ line: number;
775
+ })[];
776
+ commandType: string;
777
+ options: any;
778
+ code: string;
779
+ staticOptions: any;
780
+ operator: string;
781
+ line: number;
782
+ fileName: string;
783
+ finishCommand?: ((res: any) => void) | undefined;
784
+ } | undefined;
785
+ addScopedVariable(key: string, value: any): void;
786
+ loadScripts(scriptPaths: string[]): Promise<void>;
787
+ start(): void;
788
+ setLastLabel(label: string): void;
789
+ reset(): void;
790
+ setScript(script: import("../types/parser").Parser.ParsedScript): void;
791
+ overrideData(data: import("./vm-store").DataState): void;
792
+ setStack(stack: import("./vm-store").SetFrameOptions): void;
793
+ frameOptionsToFrame(frame: import("./vm-store").SetFrameOptions): import("./vm-store").MachineFrame;
794
+ addBlock(frame: import("./vm-store").MachineFrame, block: import("./vm-store").MachineBlock): void;
795
+ addAndRunBlock(block: import("./vm-store").MachineBlock): Promise<any>;
796
+ setData(path: string, value: any): void;
797
+ addInstruction(path: string, value: any): void;
798
+ addFrame(newStackOptions: import("./vm-store").AddFrameOptions): void;
799
+ addAndRunFrame(newStackOptions: import("./vm-store").AddFrameOptions): Promise<any>;
800
+ runFrame(): Promise<any>;
801
+ cleanFrame(): any;
802
+ runBlock(): Promise<any>;
803
+ cleanBlock(): void;
804
+ runGame(): Promise<void>;
805
+ nextLineOnly(): Promise<boolean>;
806
+ isBlockFinished(): boolean;
807
+ reachedEndOfScript(): void;
808
+ runLineOnly(): Promise<any>;
809
+ runLabelFunction(label: string, ...args: any[]): Promise<any>;
810
+ runCustomFrame(stack: import("./vm-store").AddFrameOptions): void;
811
+ jumpToLabel(label: string, ...args: any[]): Promise<void>;
812
+ runThenGoBackToPreviousDialog(label: string, ...args: any[]): Promise<any>;
813
+ }>;
814
+ hud: import("pinia").Store<"hud", import("./hud-stats-store").HudState, {}, {
815
+ setupHudStats(stats: {
816
+ [key: string]: import("../config").HudStatConfig;
817
+ }): void;
818
+ setStat(stat: string, value: number): void;
819
+ addStat(stat: string, value: number): void;
820
+ getStat(stat: string): import("./hud-stats-store").HudStat;
821
+ getStatValue(stat: string): number;
822
+ generateSaveData(): import("./hud-stats-store").HudState;
823
+ loadSaveData(data: import("./hud-stats-store").HudState): void;
824
+ }>;
825
+ audio: import("pinia").Store<"audio", import("./audio-store").AudioState, {}, {
826
+ stopAll(): void;
827
+ stopChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
828
+ pauseChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
829
+ playChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
830
+ changeChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
831
+ actuallyStopChannel(channel: import("./audio-store").AudioChannel): void;
832
+ getAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): import("./audio-store").AudioChannel | null;
833
+ setAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, value: import("./audio-store").AudioChannel | null): void;
834
+ actuallyPlayChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, audio: string): Promise<void>;
835
+ reloadAudio(save: import("./audio-store").AudioSave): void;
836
+ stopSound(key: string): void;
837
+ generateSaveData(): import("./audio-store").AudioSave;
838
+ loadSaveData(data: import("./audio-store").AudioSave): void;
839
+ reset(): void;
840
+ setModeVolume(mode: "sound" | "music" | "ambiant", volume: number): void;
841
+ setMasterVolume(volume: number): void;
842
+ modeVolume(mode: "sound" | "music" | "ambiant"): number;
843
+ }>;
844
+ rendering: import("pinia").Store<"rendering", import("./rendering-store").RenderingState, {
845
+ gameScaleRatio(state: import("./rendering-store").RenderingState): number;
846
+ overlayMode(state: import("./rendering-store").RenderingState): boolean;
847
+ gameWidth(): number;
848
+ gameHeight(): number;
849
+ dialogWidth(): number;
850
+ dialogHeight(): number;
851
+ actualGameHeight(): number;
852
+ viewportRatio(state: import("./rendering-store").RenderingState): number;
853
+ viewportHeight(state: import("./rendering-store").RenderingState): number;
854
+ viewportWidth(state: import("./rendering-store").RenderingState): number;
855
+ }, {
856
+ updateScreenSize(width: number, height: number): void;
857
+ }>;
858
+ notifications: import("pinia").Store<"notifications", import("./notification-store").NotificationsState, {}, {
859
+ addNotification(text: string): Promise<void>;
860
+ deleteNotification(id: string): void;
861
+ disableNotifications(): void;
862
+ enableNotifications(): void;
863
+ }>;
864
+ inventory: import("pinia").Store<"inventory", import("./inventory-store").InventoryState, {}, {
865
+ generateSaveData(): import("./inventory-store").InventoryState;
866
+ loadSaveData(save: import("./inventory-store").InventoryState): void;
867
+ setupItems(items: {
868
+ [key: string]: import("../config").ItemData;
869
+ }): void;
870
+ hasItem(itemId: string, amount?: number | undefined): boolean;
871
+ getExistingItem(id: string): import("./inventory-store").ItemState | undefined;
872
+ getItemAmount(id: string): number;
873
+ add(item: import("./inventory-store").ItemState): void;
874
+ enableInteraction(tag?: string | undefined): void;
875
+ disableInteraction(tag?: string | undefined): void;
876
+ onScriptStart(): void;
877
+ onScriptEnd(): void;
878
+ isInteractionTagBlocked(tag?: string | undefined): boolean;
879
+ remove(item: import("./inventory-store").ItemState): void;
880
+ deleteItem(id: string): void;
881
+ canUseItem(item: import("./inventory-store").ItemState): boolean;
882
+ }>;
883
+ quests: import("pinia").Store<"quests", import("./quest-log").QuestLogState, {}, {
884
+ getQuest(questId: string): import("./quest-log").QuestState;
885
+ getObjective(questId: string, objectiveId: string): import("./quest-log").ObjectiveState;
886
+ setupQuests(quests: {
887
+ [key: string]: import("../config").QuestData;
888
+ }): void;
889
+ startQuest(questId: string): void;
890
+ startObjective(questId: string, objectiveId: string): void;
891
+ completeObjective(questId: string, objectiveId: string): void;
892
+ completeQuest(questId: string, ending?: string | undefined): void;
893
+ isQuestCompleted(questId: string): boolean;
894
+ isObjectiveCompleted(questId: string, objectiveId: string): boolean;
895
+ isQuestStarted(questId: string): boolean;
896
+ isObjectiveStarted(questId: string, objectiveId: string): boolean;
897
+ removeQuest(id: string): void;
898
+ generateSaveData(): import("./quest-log").QuestLogState;
899
+ loadSaveData(data: import("./quest-log").QuestLogState): void;
900
+ }>;
901
+ sprites: import("pinia").Store<"sprites", import("./sprites-store").SpriteStoreState, {}, {
902
+ createSprite(image: string, x: number, y: number): import("./sprites-store").SpriteState;
903
+ getSprite(id: string): {
904
+ id: string;
905
+ x: number;
906
+ y: number;
907
+ anchor: {
908
+ x: number;
909
+ y: number;
910
+ };
911
+ width: number;
912
+ height: number;
913
+ image: string;
914
+ opacity: number;
915
+ scale: number;
916
+ layer: number;
917
+ cssClass?: string | undefined;
918
+ onClick?: string | undefined;
919
+ } | undefined;
920
+ deleteSprite(sprite: import("./sprites-store").SpriteState): void;
921
+ clickSprite(sprite: import("./sprites-store").SpriteState): void;
922
+ generateSaveData(): import("./sprites-store").SpriteStoreSave;
923
+ loadSaveData(data: import("./sprites-store").SpriteStoreSave): void;
924
+ reset(): void;
925
+ }>;
926
+ };
927
+ overrideStates(override: any): void;
928
+ }>;
929
+ export {};