narrat 3.6.2-beta.3 → 3.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 (45) hide show
  1. package/dist/application/application-start.d.ts +2 -0
  2. package/dist/application/application-utils.d.ts +6 -0
  3. package/dist/application/saving.d.ts +12 -0
  4. package/dist/components/hud.vue.d.ts +12 -0
  5. package/dist/components/skills/skills-composables.d.ts +1 -1
  6. package/dist/config/common-config.d.ts +27 -0
  7. package/dist/config/config-helpers.d.ts +2 -0
  8. package/dist/config/config-input.d.ts +36 -0
  9. package/dist/config/config-output.d.ts +6 -0
  10. package/dist/config.d.ts +2 -1
  11. package/dist/data/StoreInfo.d.ts +23 -0
  12. package/dist/data/all-stores.d.ts +3691 -0
  13. package/dist/examples/default/config/index.d.ts +3 -0
  14. package/dist/examples/demo/config/index.d.ts +3 -0
  15. package/dist/examples/demo/scripts/index.d.ts +2 -0
  16. package/dist/examples/empty/config/index.d.ts +3 -0
  17. package/dist/examples/godot/config/index.d.ts +3 -0
  18. package/dist/examples/rpg/config/index.d.ts +3 -0
  19. package/dist/examples/rpg/scripts/index.d.ts +2 -0
  20. package/dist/narrat.es.js +14703 -14426
  21. package/dist/narrat.es.js.map +1 -1
  22. package/dist/narrat.umd.js +110 -110
  23. package/dist/narrat.umd.js.map +1 -1
  24. package/dist/stores/achievements-store.d.ts +5 -8
  25. package/dist/stores/config-store.d.ts +6 -8
  26. package/dist/stores/hud-stats-store.d.ts +3 -3
  27. package/dist/stores/inventory-store.d.ts +3 -6
  28. package/dist/stores/main-store.d.ts +143 -6015
  29. package/dist/stores/quest-log.d.ts +1 -1
  30. package/dist/stores/screens-store.d.ts +2 -2
  31. package/dist/stores/settings-store.d.ts +1 -1
  32. package/dist/stores/skills.d.ts +1 -1
  33. package/dist/stores/stores-management.d.ts +12 -0
  34. package/dist/stores/vm-store.d.ts +4 -5
  35. package/dist/types/app-types.d.ts +3 -1
  36. package/dist/types/game-save.d.ts +11 -3
  37. package/dist/utils/data-helpers.d.ts +24 -15
  38. package/dist/utils/save-helpers.d.ts +19 -2
  39. package/package.json +3 -3
  40. package/dist/examples/default/config/defaultGameConfig.d.ts +0 -2
  41. package/dist/examples/default/scripts/defaultGameScripts.d.ts +0 -1
  42. package/dist/examples/demo/scripts.d.ts +0 -2
  43. /package/dist/examples/{rpg → default/scripts}/scripts.d.ts +0 -0
  44. /package/dist/examples/empty/{scripts.d.ts → scripts/index.d.ts} +0 -0
  45. /package/dist/examples/godot/{scripts.d.ts → scripts/index.d.ts} +0 -0
@@ -0,0 +1,3691 @@
1
+ export declare const sourceAllStores: {
2
+ readonly main: {
3
+ readonly store: import("pinia").StoreDefinition<"main", import("../stores/main-store").MainState, {
4
+ isInGame(state: {
5
+ ready: boolean;
6
+ playing: boolean;
7
+ errors: {
8
+ text: string;
9
+ type: "error" | "warning" | "info";
10
+ }[];
11
+ playTime: {
12
+ start: number;
13
+ previousPlaytime: number;
14
+ };
15
+ saveSlot: string;
16
+ options: {
17
+ baseAssetsPath?: string | undefined;
18
+ baseDataPath?: string | undefined;
19
+ configPath?: string | undefined;
20
+ scripts: {
21
+ code: any;
22
+ fileName: string;
23
+ id: string;
24
+ type: "script";
25
+ }[];
26
+ logging?: boolean | undefined;
27
+ debug?: boolean | undefined;
28
+ container?: string | HTMLElement | undefined;
29
+ config?: {
30
+ skillChecks?: string | {
31
+ options: {
32
+ extraDicePerLevel?: number | undefined;
33
+ finalRollIsHighest?: boolean | undefined;
34
+ finalRollIsLowest?: boolean | undefined;
35
+ failOnRollsEqualToThreshold?: boolean | undefined;
36
+ diceRange: [number, number];
37
+ diceCount: number;
38
+ difficultyText: [number, string][];
39
+ extraPointsPerLevel: number;
40
+ successOnRollsBelowThreshold: boolean;
41
+ showDifficultyText: boolean;
42
+ showDifficultyNumber: boolean;
43
+ showDifficultyWithoutModifiers: boolean;
44
+ };
45
+ skillChecks: Record<string, {
46
+ winsNeeded?: number | undefined;
47
+ hideAfterRoll?: boolean | undefined;
48
+ repeatable?: boolean | undefined;
49
+ skill: string;
50
+ difficulty: number;
51
+ }>;
52
+ } | {
53
+ code: any;
54
+ fileName: string;
55
+ id: string;
56
+ type: "yaml";
57
+ } | undefined;
58
+ skills?: string | {
59
+ code: any;
60
+ fileName: string;
61
+ id: string;
62
+ type: "yaml";
63
+ } | {
64
+ skills?: Record<string, {
65
+ hidden?: boolean | undefined;
66
+ name: string;
67
+ description: string;
68
+ startingLevel: number;
69
+ icon: string;
70
+ }> | undefined;
71
+ skillOptions?: {
72
+ xpPerLevel: number;
73
+ notifyLevelUp: boolean;
74
+ } | undefined;
75
+ } | undefined;
76
+ items?: string | {
77
+ code: any;
78
+ fileName: string;
79
+ id: string;
80
+ type: "yaml";
81
+ } | {
82
+ categories?: {
83
+ title: string;
84
+ id: string;
85
+ }[] | undefined;
86
+ items?: Record<string, {
87
+ onUse?: {
88
+ label: string;
89
+ action: string;
90
+ } | undefined;
91
+ tag?: string | undefined;
92
+ category?: string | undefined;
93
+ showIfEmpty?: boolean | undefined;
94
+ name: string;
95
+ description: string;
96
+ icon: string;
97
+ }> | undefined;
98
+ } | undefined;
99
+ buttons?: string | {
100
+ clickableDuringScriptsByDefault?: boolean | undefined;
101
+ buttons: Record<string, {
102
+ text?: string | undefined;
103
+ action?: string | undefined;
104
+ tag?: string | undefined;
105
+ background?: string | undefined;
106
+ cssClass?: string | undefined;
107
+ anchor?: {
108
+ x: number;
109
+ y: number;
110
+ } | undefined;
111
+ actionType?: string | undefined;
112
+ scriptClickable?: boolean | undefined;
113
+ enabled: boolean;
114
+ position: {
115
+ width?: number | undefined;
116
+ height?: number | undefined;
117
+ left: number;
118
+ top: number;
119
+ };
120
+ }>;
121
+ } | {
122
+ code: any;
123
+ fileName: string;
124
+ id: string;
125
+ type: "yaml";
126
+ } | undefined;
127
+ quests?: string | {
128
+ categories: {
129
+ title: string;
130
+ id: string;
131
+ }[];
132
+ quests: Record<string, {
133
+ category?: string | undefined;
134
+ succeededDescription?: string | undefined;
135
+ failedDescription?: string | undefined;
136
+ endings?: Record<string, {
137
+ description: string;
138
+ success: boolean;
139
+ }> | undefined;
140
+ title: string;
141
+ description: string;
142
+ objectives: Record<string, {
143
+ hidden?: boolean | undefined;
144
+ succeededDescription?: string | undefined;
145
+ failedDescription?: string | undefined;
146
+ description: string;
147
+ }>;
148
+ }>;
149
+ } | {
150
+ code: any;
151
+ fileName: string;
152
+ id: string;
153
+ type: "yaml";
154
+ } | undefined;
155
+ tooltips?: string | {
156
+ options: {
157
+ delay?: number | undefined;
158
+ screenEdgesMinimumMargin?: number | undefined;
159
+ styling?: {
160
+ cssClass?: string | undefined;
161
+ textCssClass?: string | undefined;
162
+ titleCssClass?: string | undefined;
163
+ } | undefined;
164
+ width: number;
165
+ keywordsPrefix: string;
166
+ };
167
+ tooltips: {
168
+ styling?: {
169
+ cssClass?: string | undefined;
170
+ textCssClass?: string | undefined;
171
+ titleCssClass?: string | undefined;
172
+ } | undefined;
173
+ title: string;
174
+ description: string;
175
+ keywords: string[];
176
+ }[];
177
+ } | {
178
+ code: any;
179
+ fileName: string;
180
+ id: string;
181
+ type: "yaml";
182
+ } | undefined;
183
+ animations?: string | {
184
+ keyframes: Record<string, any[]>;
185
+ animations: Record<string, {
186
+ options?: {
187
+ fill?: string | undefined;
188
+ delay?: number | undefined;
189
+ duration?: number | undefined;
190
+ direction?: string | undefined;
191
+ easing?: string | undefined;
192
+ endDelay?: number | undefined;
193
+ iterationStart?: number | undefined;
194
+ iterations?: number | undefined;
195
+ keyframes?: any;
196
+ } | undefined;
197
+ keyframes: string | any[];
198
+ }>;
199
+ } | {
200
+ code: any;
201
+ fileName: string;
202
+ id: string;
203
+ type: "yaml";
204
+ } | undefined;
205
+ achievements?: string | {
206
+ code: any;
207
+ fileName: string;
208
+ id: string;
209
+ type: "yaml";
210
+ } | {
211
+ categories?: {
212
+ title: string;
213
+ id: string;
214
+ }[] | undefined;
215
+ achievements?: Record<string, {
216
+ icon?: string | undefined;
217
+ category?: string | undefined;
218
+ lockedIcon?: string | undefined;
219
+ secret?: boolean | undefined;
220
+ name: string;
221
+ description: string;
222
+ }> | undefined;
223
+ } | undefined;
224
+ scripts?: string | string[] | {
225
+ code: any;
226
+ fileName: string;
227
+ id: string;
228
+ type: "yaml";
229
+ } | undefined;
230
+ choices?: string | {
231
+ code: any;
232
+ fileName: string;
233
+ id: string;
234
+ type: "yaml";
235
+ } | {
236
+ choiceTextTemplate?: string | undefined;
237
+ choicePrompts?: Record<string, {
238
+ cssClass?: string | undefined;
239
+ textTemplate?: string | undefined;
240
+ }> | undefined;
241
+ } | undefined;
242
+ audio: string | {
243
+ code: any;
244
+ fileName: string;
245
+ id: string;
246
+ type: "yaml";
247
+ } | {
248
+ options: {
249
+ volume?: number | undefined;
250
+ defaultMusic?: string | undefined;
251
+ musicFadeInTime?: number | undefined;
252
+ musicFadeOutTime?: number | undefined;
253
+ musicFadeInDelay?: number | undefined;
254
+ };
255
+ files: Record<string, {
256
+ path?: string | undefined;
257
+ volume?: number | undefined;
258
+ rate?: number | undefined;
259
+ html5?: boolean | undefined;
260
+ fadeInTime?: number | undefined;
261
+ fadeInDelay?: number | undefined;
262
+ fadeOutTime?: number | undefined;
263
+ loop?: boolean | undefined;
264
+ src: string;
265
+ }>;
266
+ audioTriggers: Record<string, string>;
267
+ };
268
+ characters: string | {
269
+ config: {
270
+ playerCharacter?: string | undefined;
271
+ gameCharacter?: string | undefined;
272
+ imagesPath: string;
273
+ };
274
+ characters: Record<string, {
275
+ style?: {
276
+ portraitCssClass?: string | undefined;
277
+ color?: string | undefined;
278
+ boxCss?: Record<string, any> | undefined;
279
+ nameCss?: Record<string, any> | undefined;
280
+ textCss?: Record<string, any> | undefined;
281
+ } | undefined;
282
+ sprites?: Record<string, string | {
283
+ loop?: boolean | undefined;
284
+ width?: number | undefined;
285
+ height?: number | undefined;
286
+ autoplay?: boolean | undefined;
287
+ muted?: boolean | undefined;
288
+ video: string;
289
+ } | {
290
+ width?: number | undefined;
291
+ height?: number | undefined;
292
+ image: string;
293
+ }> | undefined;
294
+ name: string;
295
+ }>;
296
+ } | {
297
+ code: any;
298
+ fileName: string;
299
+ id: string;
300
+ type: "yaml";
301
+ };
302
+ screens: string | {
303
+ code: any;
304
+ fileName: string;
305
+ id: string;
306
+ type: "yaml";
307
+ } | {
308
+ screens?: Record<string, {
309
+ video?: {
310
+ loop?: boolean | undefined;
311
+ muted?: boolean | undefined;
312
+ } | undefined;
313
+ buttons?: (string | ({
314
+ text?: string | undefined;
315
+ action?: string | undefined;
316
+ tag?: string | undefined;
317
+ background?: string | undefined;
318
+ cssClass?: string | undefined;
319
+ anchor?: {
320
+ x: number;
321
+ y: number;
322
+ } | undefined;
323
+ actionType?: string | undefined;
324
+ scriptClickable?: boolean | undefined;
325
+ enabled: boolean;
326
+ position: {
327
+ width?: number | undefined;
328
+ height?: number | undefined;
329
+ left: number;
330
+ top: number;
331
+ };
332
+ } & {
333
+ id: string;
334
+ }))[] | undefined;
335
+ background: string;
336
+ }> | undefined;
337
+ };
338
+ common: {
339
+ code: any;
340
+ fileName: string;
341
+ id: string;
342
+ type: "yaml";
343
+ } | {
344
+ baseAssetsPath?: string | undefined;
345
+ baseDataPath?: string | undefined;
346
+ images?: Record<string, string> | undefined;
347
+ settings?: {
348
+ customSettings?: Record<string, ({
349
+ description?: string | undefined;
350
+ name: string;
351
+ } & {
352
+ type: "number";
353
+ defaultValue: number;
354
+ step: number;
355
+ minValue: number;
356
+ maxValue: number;
357
+ }) | ({
358
+ description?: string | undefined;
359
+ name: string;
360
+ } & {
361
+ type: "integer";
362
+ defaultValue: number;
363
+ step: number;
364
+ minValue: number;
365
+ maxValue: number;
366
+ }) | ({
367
+ description?: string | undefined;
368
+ name: string;
369
+ } & {
370
+ type: "boolean";
371
+ defaultValue: boolean;
372
+ }) | ({
373
+ description?: string | undefined;
374
+ name: string;
375
+ } & {
376
+ type: "string";
377
+ defaultValue: string;
378
+ })> | undefined;
379
+ } | undefined;
380
+ gameFlow?: {
381
+ labelToJumpOnScriptEnd?: string | undefined;
382
+ } | undefined;
383
+ dialogPanel?: {
384
+ width?: number | undefined;
385
+ height?: number | undefined;
386
+ animateText?: boolean | undefined;
387
+ textSpeed?: number | undefined;
388
+ timeBetweenLines?: number | undefined;
389
+ overlayMode?: boolean | undefined;
390
+ rightOffset?: number | undefined;
391
+ bottomOffset?: number | undefined;
392
+ hideDuringTransition?: boolean | undefined;
393
+ showAfterScriptEnd?: boolean | undefined;
394
+ } | undefined;
395
+ splashScreens?: {
396
+ engineSplashScreen?: {
397
+ skip?: boolean | undefined;
398
+ fadeDuration?: number | undefined;
399
+ timeBeforeFadeout?: number | undefined;
400
+ overrideText?: string | undefined;
401
+ overrideLogo?: string | undefined;
402
+ } | undefined;
403
+ gameSplashScreen?: {
404
+ startButtonText?: string | undefined;
405
+ } | undefined;
406
+ } | undefined;
407
+ notifications?: {
408
+ alsoPrintInDialogue?: boolean | undefined;
409
+ timeOnScreen: number;
410
+ } | undefined;
411
+ interactionTags?: Record<string, {
412
+ onlyInteractOutsideOfScripts?: boolean | undefined;
413
+ }> | undefined;
414
+ transitions?: Record<string, {
415
+ delay?: number | undefined;
416
+ duration?: number | undefined;
417
+ }> | undefined;
418
+ menuButtons?: Record<string, {
419
+ cssClass?: string | undefined;
420
+ text: string;
421
+ }> | undefined;
422
+ debugging?: {
423
+ showScriptFinishedMessage?: boolean | undefined;
424
+ } | undefined;
425
+ saves?: {
426
+ runOnReload?: string | undefined;
427
+ slots: number;
428
+ mode: string;
429
+ } | undefined;
430
+ gameTitle: string;
431
+ saveFileName: string;
432
+ layout: {
433
+ minTextWidth?: number | undefined;
434
+ defaultFontSize?: number | undefined;
435
+ backgrounds: {
436
+ width: number;
437
+ height: number;
438
+ };
439
+ dialogBottomPadding: string | number;
440
+ verticalLayoutThreshold: number;
441
+ portraits: {
442
+ offset?: {
443
+ landscape?: {
444
+ right: number;
445
+ bottom: number;
446
+ } | undefined;
447
+ portrait?: {
448
+ right: number;
449
+ bottom: number;
450
+ } | undefined;
451
+ } | undefined;
452
+ width: number;
453
+ height: number;
454
+ };
455
+ };
456
+ hudStats: Record<string, {
457
+ minValue?: number | undefined;
458
+ maxValue?: number | undefined;
459
+ decimals?: number | undefined;
460
+ prefix?: string | undefined;
461
+ suffix?: string | undefined;
462
+ hideName?: boolean | undefined;
463
+ formatting?: {
464
+ currency?: string | undefined;
465
+ unit?: string | undefined;
466
+ style: "decimal" | "currency" | "percent" | "unit";
467
+ } | undefined;
468
+ name: string;
469
+ icon: string;
470
+ startingValue: number;
471
+ }>;
472
+ };
473
+ } | undefined;
474
+ };
475
+ flowState: "menu" | "engine-splash" | "game-splash" | "playing";
476
+ paused: boolean;
477
+ loading: {
478
+ step: string;
479
+ percentage: number;
480
+ loaded: boolean;
481
+ };
482
+ debugMode: boolean;
483
+ alerts: {
484
+ title: string;
485
+ text: string;
486
+ resolver: () => void;
487
+ id: string;
488
+ }[];
489
+ saving: {
490
+ withPrompt?: boolean | undefined;
491
+ name?: string | undefined;
492
+ resolver: () => void;
493
+ } | null;
494
+ saveData?: {
495
+ saveSlot: {
496
+ metadata: {
497
+ saveDate: string;
498
+ name: string;
499
+ };
500
+ version: string;
501
+ plugins: {
502
+ [key: string]: any;
503
+ };
504
+ customStores: {
505
+ [key: string]: any;
506
+ };
507
+ skills: {
508
+ skillChecks: {
509
+ [key: string]: import("../stores/skills").SkillCheckState;
510
+ };
511
+ skills: import("../stores/skills").SkillsState;
512
+ };
513
+ screen: {
514
+ layers: (string | null)[];
515
+ buttons: import("../stores/screens-store").ButtonsState;
516
+ };
517
+ main: {
518
+ playTime: number;
519
+ };
520
+ dialog: {
521
+ dialog: {
522
+ speaker: string;
523
+ text: string;
524
+ pose?: string | undefined;
525
+ cssClass?: string | undefined;
526
+ choices?: {
527
+ flag?: string | undefined;
528
+ seenBefore?: boolean | undefined;
529
+ choice: string;
530
+ originalIndex: number;
531
+ allowed: boolean;
532
+ }[] | undefined;
533
+ textField?: boolean | undefined;
534
+ interactive: boolean;
535
+ id: string;
536
+ }[];
537
+ };
538
+ vm: {
539
+ lastLabel: string;
540
+ data: import("../stores/vm-store").DataState;
541
+ };
542
+ audio: {
543
+ modes: {
544
+ [key: string]: import("../stores/audio-store").AudioSaveMode;
545
+ };
546
+ masterVolume: number;
547
+ };
548
+ hud: {
549
+ hudStats: import("../stores/hud-stats-store").HudStatsState;
550
+ };
551
+ inventory: {
552
+ items: {
553
+ [key: string]: import("../stores/inventory-store").ItemState;
554
+ };
555
+ interactionTags: {
556
+ [key: string]: {
557
+ blockedInteraction: boolean;
558
+ };
559
+ };
560
+ };
561
+ quests: {
562
+ quests: {
563
+ [key: string]: import("../stores/quest-log").QuestState;
564
+ };
565
+ };
566
+ screenObjects: {
567
+ tree: string[];
568
+ objectsList: {
569
+ [id: string]: import("../stores/screen-objects-store").ScreenObjectSaveState;
570
+ };
571
+ };
572
+ settings: {
573
+ customSettings: {
574
+ [key: string]: any;
575
+ };
576
+ baseSettings: {
577
+ [x: string]: any;
578
+ textSpeed: number;
579
+ animateText: boolean;
580
+ fontSize: number;
581
+ };
582
+ };
583
+ config: {
584
+ playerCharacter: string;
585
+ gameCharacter: string;
586
+ };
587
+ choices: {
588
+ choices: Record<string, import("../stores/choices-tracking-store").ChoiceBranchTracking>;
589
+ };
590
+ rendering: {
591
+ dialogPanelMode: "auto" | "off" | "on";
592
+ };
593
+ };
594
+ global: {
595
+ achievements: {
596
+ achievements: {
597
+ [key: string]: import("../stores/achievements-store").AchievementState;
598
+ };
599
+ };
600
+ data: {
601
+ [key: string]: any;
602
+ };
603
+ };
604
+ } | undefined;
605
+ listener: {
606
+ listeners: {
607
+ gameLoaded: Set<() => void>;
608
+ };
609
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: import("../stores/main-store").MainEvents[Event_1]) => import("../stores/main-store").MainEvents[Event_1];
610
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: import("../stores/main-store").MainEvents[Event_2]) => import("../stores/main-store").MainEvents[Event_2];
611
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: import("../stores/main-store").MainEvents[Event_3]) => import("../stores/main-store").MainEvents[Event_3];
612
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
613
+ clear: () => void;
614
+ };
615
+ inScript: boolean;
616
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/main-store").MainState>): boolean;
617
+ totalPlayTime(state: {
618
+ ready: boolean;
619
+ playing: boolean;
620
+ errors: {
621
+ text: string;
622
+ type: "error" | "warning" | "info";
623
+ }[];
624
+ playTime: {
625
+ start: number;
626
+ previousPlaytime: number;
627
+ };
628
+ saveSlot: string;
629
+ options: {
630
+ baseAssetsPath?: string | undefined;
631
+ baseDataPath?: string | undefined;
632
+ configPath?: string | undefined;
633
+ scripts: {
634
+ code: any;
635
+ fileName: string;
636
+ id: string;
637
+ type: "script";
638
+ }[];
639
+ logging?: boolean | undefined;
640
+ debug?: boolean | undefined;
641
+ container?: string | HTMLElement | undefined;
642
+ config?: {
643
+ skillChecks?: string | {
644
+ options: {
645
+ extraDicePerLevel?: number | undefined;
646
+ finalRollIsHighest?: boolean | undefined;
647
+ finalRollIsLowest?: boolean | undefined;
648
+ failOnRollsEqualToThreshold?: boolean | undefined;
649
+ diceRange: [number, number];
650
+ diceCount: number;
651
+ difficultyText: [number, string][];
652
+ extraPointsPerLevel: number;
653
+ successOnRollsBelowThreshold: boolean;
654
+ showDifficultyText: boolean;
655
+ showDifficultyNumber: boolean;
656
+ showDifficultyWithoutModifiers: boolean;
657
+ };
658
+ skillChecks: Record<string, {
659
+ winsNeeded?: number | undefined;
660
+ hideAfterRoll?: boolean | undefined;
661
+ repeatable?: boolean | undefined;
662
+ skill: string;
663
+ difficulty: number;
664
+ }>;
665
+ } | {
666
+ code: any;
667
+ fileName: string;
668
+ id: string;
669
+ type: "yaml";
670
+ } | undefined;
671
+ skills?: string | {
672
+ code: any;
673
+ fileName: string;
674
+ id: string;
675
+ type: "yaml";
676
+ } | {
677
+ skills?: Record<string, {
678
+ hidden?: boolean | undefined;
679
+ name: string;
680
+ description: string;
681
+ startingLevel: number;
682
+ icon: string;
683
+ }> | undefined;
684
+ skillOptions?: {
685
+ xpPerLevel: number;
686
+ notifyLevelUp: boolean;
687
+ } | undefined;
688
+ } | undefined;
689
+ items?: string | {
690
+ code: any;
691
+ fileName: string;
692
+ id: string;
693
+ type: "yaml";
694
+ } | {
695
+ categories?: {
696
+ title: string;
697
+ id: string;
698
+ }[] | undefined;
699
+ items?: Record<string, {
700
+ onUse?: {
701
+ label: string;
702
+ action: string;
703
+ } | undefined;
704
+ tag?: string | undefined;
705
+ category?: string | undefined;
706
+ showIfEmpty?: boolean | undefined;
707
+ name: string;
708
+ description: string;
709
+ icon: string;
710
+ }> | undefined;
711
+ } | undefined;
712
+ buttons?: string | {
713
+ clickableDuringScriptsByDefault?: boolean | undefined;
714
+ buttons: Record<string, {
715
+ text?: string | undefined;
716
+ action?: string | undefined;
717
+ tag?: string | undefined;
718
+ background?: string | undefined;
719
+ cssClass?: string | undefined;
720
+ anchor?: {
721
+ x: number;
722
+ y: number;
723
+ } | undefined;
724
+ actionType?: string | undefined;
725
+ scriptClickable?: boolean | undefined;
726
+ enabled: boolean;
727
+ position: {
728
+ width?: number | undefined;
729
+ height?: number | undefined;
730
+ left: number;
731
+ top: number;
732
+ };
733
+ }>;
734
+ } | {
735
+ code: any;
736
+ fileName: string;
737
+ id: string;
738
+ type: "yaml";
739
+ } | undefined;
740
+ quests?: string | {
741
+ categories: {
742
+ title: string;
743
+ id: string;
744
+ }[];
745
+ quests: Record<string, {
746
+ category?: string | undefined;
747
+ succeededDescription?: string | undefined;
748
+ failedDescription?: string | undefined;
749
+ endings?: Record<string, {
750
+ description: string;
751
+ success: boolean;
752
+ }> | undefined;
753
+ title: string;
754
+ description: string;
755
+ objectives: Record<string, {
756
+ hidden?: boolean | undefined;
757
+ succeededDescription?: string | undefined;
758
+ failedDescription?: string | undefined;
759
+ description: string;
760
+ }>;
761
+ }>;
762
+ } | {
763
+ code: any;
764
+ fileName: string;
765
+ id: string;
766
+ type: "yaml";
767
+ } | undefined;
768
+ tooltips?: string | {
769
+ options: {
770
+ delay?: number | undefined;
771
+ screenEdgesMinimumMargin?: number | undefined;
772
+ styling?: {
773
+ cssClass?: string | undefined;
774
+ textCssClass?: string | undefined;
775
+ titleCssClass?: string | undefined;
776
+ } | undefined;
777
+ width: number;
778
+ keywordsPrefix: string;
779
+ };
780
+ tooltips: {
781
+ styling?: {
782
+ cssClass?: string | undefined;
783
+ textCssClass?: string | undefined;
784
+ titleCssClass?: string | undefined;
785
+ } | undefined;
786
+ title: string;
787
+ description: string;
788
+ keywords: string[];
789
+ }[];
790
+ } | {
791
+ code: any;
792
+ fileName: string;
793
+ id: string;
794
+ type: "yaml";
795
+ } | undefined;
796
+ animations?: string | {
797
+ keyframes: Record<string, any[]>;
798
+ animations: Record<string, {
799
+ options?: {
800
+ fill?: string | undefined;
801
+ delay?: number | undefined;
802
+ duration?: number | undefined;
803
+ direction?: string | undefined;
804
+ easing?: string | undefined;
805
+ endDelay?: number | undefined;
806
+ iterationStart?: number | undefined;
807
+ iterations?: number | undefined;
808
+ keyframes?: any;
809
+ } | undefined;
810
+ keyframes: string | any[];
811
+ }>;
812
+ } | {
813
+ code: any;
814
+ fileName: string;
815
+ id: string;
816
+ type: "yaml";
817
+ } | undefined;
818
+ achievements?: string | {
819
+ code: any;
820
+ fileName: string;
821
+ id: string;
822
+ type: "yaml";
823
+ } | {
824
+ categories?: {
825
+ title: string;
826
+ id: string;
827
+ }[] | undefined;
828
+ achievements?: Record<string, {
829
+ icon?: string | undefined;
830
+ category?: string | undefined;
831
+ lockedIcon?: string | undefined;
832
+ secret?: boolean | undefined;
833
+ name: string;
834
+ description: string;
835
+ }> | undefined;
836
+ } | undefined;
837
+ scripts?: string | string[] | {
838
+ code: any;
839
+ fileName: string;
840
+ id: string;
841
+ type: "yaml";
842
+ } | undefined;
843
+ choices?: string | {
844
+ code: any;
845
+ fileName: string;
846
+ id: string;
847
+ type: "yaml";
848
+ } | {
849
+ choiceTextTemplate?: string | undefined;
850
+ choicePrompts?: Record<string, {
851
+ cssClass?: string | undefined;
852
+ textTemplate?: string | undefined;
853
+ }> | undefined;
854
+ } | undefined;
855
+ audio: string | {
856
+ code: any;
857
+ fileName: string;
858
+ id: string;
859
+ type: "yaml";
860
+ } | {
861
+ options: {
862
+ volume?: number | undefined;
863
+ defaultMusic?: string | undefined;
864
+ musicFadeInTime?: number | undefined;
865
+ musicFadeOutTime?: number | undefined;
866
+ musicFadeInDelay?: number | undefined;
867
+ };
868
+ files: Record<string, {
869
+ path?: string | undefined;
870
+ volume?: number | undefined;
871
+ rate?: number | undefined;
872
+ html5?: boolean | undefined;
873
+ fadeInTime?: number | undefined;
874
+ fadeInDelay?: number | undefined;
875
+ fadeOutTime?: number | undefined;
876
+ loop?: boolean | undefined;
877
+ src: string;
878
+ }>;
879
+ audioTriggers: Record<string, string>;
880
+ };
881
+ characters: string | {
882
+ config: {
883
+ playerCharacter?: string | undefined;
884
+ gameCharacter?: string | undefined;
885
+ imagesPath: string;
886
+ };
887
+ characters: Record<string, {
888
+ style?: {
889
+ portraitCssClass?: string | undefined;
890
+ color?: string | undefined;
891
+ boxCss?: Record<string, any> | undefined;
892
+ nameCss?: Record<string, any> | undefined;
893
+ textCss?: Record<string, any> | undefined;
894
+ } | undefined;
895
+ sprites?: Record<string, string | {
896
+ loop?: boolean | undefined;
897
+ width?: number | undefined;
898
+ height?: number | undefined;
899
+ autoplay?: boolean | undefined;
900
+ muted?: boolean | undefined;
901
+ video: string;
902
+ } | {
903
+ width?: number | undefined;
904
+ height?: number | undefined;
905
+ image: string;
906
+ }> | undefined;
907
+ name: string;
908
+ }>;
909
+ } | {
910
+ code: any;
911
+ fileName: string;
912
+ id: string;
913
+ type: "yaml";
914
+ };
915
+ screens: string | {
916
+ code: any;
917
+ fileName: string;
918
+ id: string;
919
+ type: "yaml";
920
+ } | {
921
+ screens?: Record<string, {
922
+ video?: {
923
+ loop?: boolean | undefined;
924
+ muted?: boolean | undefined;
925
+ } | undefined;
926
+ buttons?: (string | ({
927
+ text?: string | undefined;
928
+ action?: string | undefined;
929
+ tag?: string | undefined;
930
+ background?: string | undefined;
931
+ cssClass?: string | undefined;
932
+ anchor?: {
933
+ x: number;
934
+ y: number;
935
+ } | undefined;
936
+ actionType?: string | undefined;
937
+ scriptClickable?: boolean | undefined;
938
+ enabled: boolean;
939
+ position: {
940
+ width?: number | undefined;
941
+ height?: number | undefined;
942
+ left: number;
943
+ top: number;
944
+ };
945
+ } & {
946
+ id: string;
947
+ }))[] | undefined;
948
+ background: string;
949
+ }> | undefined;
950
+ };
951
+ common: {
952
+ code: any;
953
+ fileName: string;
954
+ id: string;
955
+ type: "yaml";
956
+ } | {
957
+ baseAssetsPath?: string | undefined;
958
+ baseDataPath?: string | undefined;
959
+ images?: Record<string, string> | undefined;
960
+ settings?: {
961
+ customSettings?: Record<string, ({
962
+ description?: string | undefined;
963
+ name: string;
964
+ } & {
965
+ type: "number";
966
+ defaultValue: number;
967
+ step: number;
968
+ minValue: number;
969
+ maxValue: number;
970
+ }) | ({
971
+ description?: string | undefined;
972
+ name: string;
973
+ } & {
974
+ type: "integer";
975
+ defaultValue: number;
976
+ step: number;
977
+ minValue: number;
978
+ maxValue: number;
979
+ }) | ({
980
+ description?: string | undefined;
981
+ name: string;
982
+ } & {
983
+ type: "boolean";
984
+ defaultValue: boolean;
985
+ }) | ({
986
+ description?: string | undefined;
987
+ name: string;
988
+ } & {
989
+ type: "string";
990
+ defaultValue: string;
991
+ })> | undefined;
992
+ } | undefined;
993
+ gameFlow?: {
994
+ labelToJumpOnScriptEnd?: string | undefined;
995
+ } | undefined;
996
+ dialogPanel?: {
997
+ width?: number | undefined;
998
+ height?: number | undefined;
999
+ animateText?: boolean | undefined;
1000
+ textSpeed?: number | undefined;
1001
+ timeBetweenLines?: number | undefined;
1002
+ overlayMode?: boolean | undefined;
1003
+ rightOffset?: number | undefined;
1004
+ bottomOffset?: number | undefined;
1005
+ hideDuringTransition?: boolean | undefined;
1006
+ showAfterScriptEnd?: boolean | undefined;
1007
+ } | undefined;
1008
+ splashScreens?: {
1009
+ engineSplashScreen?: {
1010
+ skip?: boolean | undefined;
1011
+ fadeDuration?: number | undefined;
1012
+ timeBeforeFadeout?: number | undefined;
1013
+ overrideText?: string | undefined;
1014
+ overrideLogo?: string | undefined;
1015
+ } | undefined;
1016
+ gameSplashScreen?: {
1017
+ startButtonText?: string | undefined;
1018
+ } | undefined;
1019
+ } | undefined;
1020
+ notifications?: {
1021
+ alsoPrintInDialogue?: boolean | undefined;
1022
+ timeOnScreen: number;
1023
+ } | undefined;
1024
+ interactionTags?: Record<string, {
1025
+ onlyInteractOutsideOfScripts?: boolean | undefined;
1026
+ }> | undefined;
1027
+ transitions?: Record<string, {
1028
+ delay?: number | undefined;
1029
+ duration?: number | undefined;
1030
+ }> | undefined;
1031
+ menuButtons?: Record<string, {
1032
+ cssClass?: string | undefined;
1033
+ text: string;
1034
+ }> | undefined;
1035
+ debugging?: {
1036
+ showScriptFinishedMessage?: boolean | undefined;
1037
+ } | undefined;
1038
+ saves?: {
1039
+ runOnReload?: string | undefined;
1040
+ slots: number;
1041
+ mode: string;
1042
+ } | undefined;
1043
+ gameTitle: string;
1044
+ saveFileName: string;
1045
+ layout: {
1046
+ minTextWidth?: number | undefined;
1047
+ defaultFontSize?: number | undefined;
1048
+ backgrounds: {
1049
+ width: number;
1050
+ height: number;
1051
+ };
1052
+ dialogBottomPadding: string | number;
1053
+ verticalLayoutThreshold: number;
1054
+ portraits: {
1055
+ offset?: {
1056
+ landscape?: {
1057
+ right: number;
1058
+ bottom: number;
1059
+ } | undefined;
1060
+ portrait?: {
1061
+ right: number;
1062
+ bottom: number;
1063
+ } | undefined;
1064
+ } | undefined;
1065
+ width: number;
1066
+ height: number;
1067
+ };
1068
+ };
1069
+ hudStats: Record<string, {
1070
+ minValue?: number | undefined;
1071
+ maxValue?: number | undefined;
1072
+ decimals?: number | undefined;
1073
+ prefix?: string | undefined;
1074
+ suffix?: string | undefined;
1075
+ hideName?: boolean | undefined;
1076
+ formatting?: {
1077
+ currency?: string | undefined;
1078
+ unit?: string | undefined;
1079
+ style: "decimal" | "currency" | "percent" | "unit";
1080
+ } | undefined;
1081
+ name: string;
1082
+ icon: string;
1083
+ startingValue: number;
1084
+ }>;
1085
+ };
1086
+ } | undefined;
1087
+ };
1088
+ flowState: "menu" | "engine-splash" | "game-splash" | "playing";
1089
+ paused: boolean;
1090
+ loading: {
1091
+ step: string;
1092
+ percentage: number;
1093
+ loaded: boolean;
1094
+ };
1095
+ debugMode: boolean;
1096
+ alerts: {
1097
+ title: string;
1098
+ text: string;
1099
+ resolver: () => void;
1100
+ id: string;
1101
+ }[];
1102
+ saving: {
1103
+ withPrompt?: boolean | undefined;
1104
+ name?: string | undefined;
1105
+ resolver: () => void;
1106
+ } | null;
1107
+ saveData?: {
1108
+ saveSlot: {
1109
+ metadata: {
1110
+ saveDate: string;
1111
+ name: string;
1112
+ };
1113
+ version: string;
1114
+ plugins: {
1115
+ [key: string]: any;
1116
+ };
1117
+ customStores: {
1118
+ [key: string]: any;
1119
+ };
1120
+ skills: {
1121
+ skillChecks: {
1122
+ [key: string]: import("../stores/skills").SkillCheckState;
1123
+ };
1124
+ skills: import("../stores/skills").SkillsState;
1125
+ };
1126
+ screen: {
1127
+ layers: (string | null)[];
1128
+ buttons: import("../stores/screens-store").ButtonsState;
1129
+ };
1130
+ main: {
1131
+ playTime: number;
1132
+ };
1133
+ dialog: {
1134
+ dialog: {
1135
+ speaker: string;
1136
+ text: string;
1137
+ pose?: string | undefined;
1138
+ cssClass?: string | undefined;
1139
+ choices?: {
1140
+ flag?: string | undefined;
1141
+ seenBefore?: boolean | undefined;
1142
+ choice: string;
1143
+ originalIndex: number;
1144
+ allowed: boolean;
1145
+ }[] | undefined;
1146
+ textField?: boolean | undefined;
1147
+ interactive: boolean;
1148
+ id: string;
1149
+ }[];
1150
+ };
1151
+ vm: {
1152
+ lastLabel: string;
1153
+ data: import("../stores/vm-store").DataState;
1154
+ };
1155
+ audio: {
1156
+ modes: {
1157
+ [key: string]: import("../stores/audio-store").AudioSaveMode;
1158
+ };
1159
+ masterVolume: number;
1160
+ };
1161
+ hud: {
1162
+ hudStats: import("../stores/hud-stats-store").HudStatsState;
1163
+ };
1164
+ inventory: {
1165
+ items: {
1166
+ [key: string]: import("../stores/inventory-store").ItemState;
1167
+ };
1168
+ interactionTags: {
1169
+ [key: string]: {
1170
+ blockedInteraction: boolean;
1171
+ };
1172
+ };
1173
+ };
1174
+ quests: {
1175
+ quests: {
1176
+ [key: string]: import("../stores/quest-log").QuestState;
1177
+ };
1178
+ };
1179
+ screenObjects: {
1180
+ tree: string[];
1181
+ objectsList: {
1182
+ [id: string]: import("../stores/screen-objects-store").ScreenObjectSaveState;
1183
+ };
1184
+ };
1185
+ settings: {
1186
+ customSettings: {
1187
+ [key: string]: any;
1188
+ };
1189
+ baseSettings: {
1190
+ [x: string]: any;
1191
+ textSpeed: number;
1192
+ animateText: boolean;
1193
+ fontSize: number;
1194
+ };
1195
+ };
1196
+ config: {
1197
+ playerCharacter: string;
1198
+ gameCharacter: string;
1199
+ };
1200
+ choices: {
1201
+ choices: Record<string, import("../stores/choices-tracking-store").ChoiceBranchTracking>;
1202
+ };
1203
+ rendering: {
1204
+ dialogPanelMode: "auto" | "off" | "on";
1205
+ };
1206
+ };
1207
+ global: {
1208
+ achievements: {
1209
+ achievements: {
1210
+ [key: string]: import("../stores/achievements-store").AchievementState;
1211
+ };
1212
+ };
1213
+ data: {
1214
+ [key: string]: any;
1215
+ };
1216
+ };
1217
+ } | undefined;
1218
+ listener: {
1219
+ listeners: {
1220
+ gameLoaded: Set<() => void>;
1221
+ };
1222
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: import("../stores/main-store").MainEvents[Event_1]) => import("../stores/main-store").MainEvents[Event_1];
1223
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: import("../stores/main-store").MainEvents[Event_2]) => import("../stores/main-store").MainEvents[Event_2];
1224
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: import("../stores/main-store").MainEvents[Event_3]) => import("../stores/main-store").MainEvents[Event_3];
1225
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
1226
+ clear: () => void;
1227
+ };
1228
+ inScript: boolean;
1229
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/main-store").MainState>): number;
1230
+ sessionPlayTime(state: {
1231
+ ready: boolean;
1232
+ playing: boolean;
1233
+ errors: {
1234
+ text: string;
1235
+ type: "error" | "warning" | "info";
1236
+ }[];
1237
+ playTime: {
1238
+ start: number;
1239
+ previousPlaytime: number;
1240
+ };
1241
+ saveSlot: string;
1242
+ options: {
1243
+ baseAssetsPath?: string | undefined;
1244
+ baseDataPath?: string | undefined;
1245
+ configPath?: string | undefined;
1246
+ scripts: {
1247
+ code: any;
1248
+ fileName: string;
1249
+ id: string;
1250
+ type: "script";
1251
+ }[];
1252
+ logging?: boolean | undefined;
1253
+ debug?: boolean | undefined;
1254
+ container?: string | HTMLElement | undefined;
1255
+ config?: {
1256
+ skillChecks?: string | {
1257
+ options: {
1258
+ extraDicePerLevel?: number | undefined;
1259
+ finalRollIsHighest?: boolean | undefined;
1260
+ finalRollIsLowest?: boolean | undefined;
1261
+ failOnRollsEqualToThreshold?: boolean | undefined;
1262
+ diceRange: [number, number];
1263
+ diceCount: number;
1264
+ difficultyText: [number, string][];
1265
+ extraPointsPerLevel: number;
1266
+ successOnRollsBelowThreshold: boolean;
1267
+ showDifficultyText: boolean;
1268
+ showDifficultyNumber: boolean;
1269
+ showDifficultyWithoutModifiers: boolean;
1270
+ };
1271
+ skillChecks: Record<string, {
1272
+ winsNeeded?: number | undefined;
1273
+ hideAfterRoll?: boolean | undefined;
1274
+ repeatable?: boolean | undefined;
1275
+ skill: string;
1276
+ difficulty: number;
1277
+ }>;
1278
+ } | {
1279
+ code: any;
1280
+ fileName: string;
1281
+ id: string;
1282
+ type: "yaml";
1283
+ } | undefined;
1284
+ skills?: string | {
1285
+ code: any;
1286
+ fileName: string;
1287
+ id: string;
1288
+ type: "yaml";
1289
+ } | {
1290
+ skills?: Record<string, {
1291
+ hidden?: boolean | undefined;
1292
+ name: string;
1293
+ description: string;
1294
+ startingLevel: number;
1295
+ icon: string;
1296
+ }> | undefined;
1297
+ skillOptions?: {
1298
+ xpPerLevel: number;
1299
+ notifyLevelUp: boolean;
1300
+ } | undefined;
1301
+ } | undefined;
1302
+ items?: string | {
1303
+ code: any;
1304
+ fileName: string;
1305
+ id: string;
1306
+ type: "yaml";
1307
+ } | {
1308
+ categories?: {
1309
+ title: string;
1310
+ id: string;
1311
+ }[] | undefined;
1312
+ items?: Record<string, {
1313
+ onUse?: {
1314
+ label: string;
1315
+ action: string;
1316
+ } | undefined;
1317
+ tag?: string | undefined;
1318
+ category?: string | undefined;
1319
+ showIfEmpty?: boolean | undefined;
1320
+ name: string;
1321
+ description: string;
1322
+ icon: string;
1323
+ }> | undefined;
1324
+ } | undefined;
1325
+ buttons?: string | {
1326
+ clickableDuringScriptsByDefault?: boolean | undefined;
1327
+ buttons: Record<string, {
1328
+ text?: string | undefined;
1329
+ action?: string | undefined;
1330
+ tag?: string | undefined;
1331
+ background?: string | undefined;
1332
+ cssClass?: string | undefined;
1333
+ anchor?: {
1334
+ x: number;
1335
+ y: number;
1336
+ } | undefined;
1337
+ actionType?: string | undefined;
1338
+ scriptClickable?: boolean | undefined;
1339
+ enabled: boolean;
1340
+ position: {
1341
+ width?: number | undefined;
1342
+ height?: number | undefined;
1343
+ left: number;
1344
+ top: number;
1345
+ };
1346
+ }>;
1347
+ } | {
1348
+ code: any;
1349
+ fileName: string;
1350
+ id: string;
1351
+ type: "yaml";
1352
+ } | undefined;
1353
+ quests?: string | {
1354
+ categories: {
1355
+ title: string;
1356
+ id: string;
1357
+ }[];
1358
+ quests: Record<string, {
1359
+ category?: string | undefined;
1360
+ succeededDescription?: string | undefined;
1361
+ failedDescription?: string | undefined;
1362
+ endings?: Record<string, {
1363
+ description: string;
1364
+ success: boolean;
1365
+ }> | undefined;
1366
+ title: string;
1367
+ description: string;
1368
+ objectives: Record<string, {
1369
+ hidden?: boolean | undefined;
1370
+ succeededDescription?: string | undefined;
1371
+ failedDescription?: string | undefined;
1372
+ description: string;
1373
+ }>;
1374
+ }>;
1375
+ } | {
1376
+ code: any;
1377
+ fileName: string;
1378
+ id: string;
1379
+ type: "yaml";
1380
+ } | undefined;
1381
+ tooltips?: string | {
1382
+ options: {
1383
+ delay?: number | undefined;
1384
+ screenEdgesMinimumMargin?: number | undefined;
1385
+ styling?: {
1386
+ cssClass?: string | undefined;
1387
+ textCssClass?: string | undefined;
1388
+ titleCssClass?: string | undefined;
1389
+ } | undefined;
1390
+ width: number;
1391
+ keywordsPrefix: string;
1392
+ };
1393
+ tooltips: {
1394
+ styling?: {
1395
+ cssClass?: string | undefined;
1396
+ textCssClass?: string | undefined;
1397
+ titleCssClass?: string | undefined;
1398
+ } | undefined;
1399
+ title: string;
1400
+ description: string;
1401
+ keywords: string[];
1402
+ }[];
1403
+ } | {
1404
+ code: any;
1405
+ fileName: string;
1406
+ id: string;
1407
+ type: "yaml";
1408
+ } | undefined;
1409
+ animations?: string | {
1410
+ keyframes: Record<string, any[]>;
1411
+ animations: Record<string, {
1412
+ options?: {
1413
+ fill?: string | undefined;
1414
+ delay?: number | undefined;
1415
+ duration?: number | undefined;
1416
+ direction?: string | undefined;
1417
+ easing?: string | undefined;
1418
+ endDelay?: number | undefined;
1419
+ iterationStart?: number | undefined;
1420
+ iterations?: number | undefined;
1421
+ keyframes?: any;
1422
+ } | undefined;
1423
+ keyframes: string | any[];
1424
+ }>;
1425
+ } | {
1426
+ code: any;
1427
+ fileName: string;
1428
+ id: string;
1429
+ type: "yaml";
1430
+ } | undefined;
1431
+ achievements?: string | {
1432
+ code: any;
1433
+ fileName: string;
1434
+ id: string;
1435
+ type: "yaml";
1436
+ } | {
1437
+ categories?: {
1438
+ title: string;
1439
+ id: string;
1440
+ }[] | undefined;
1441
+ achievements?: Record<string, {
1442
+ icon?: string | undefined;
1443
+ category?: string | undefined;
1444
+ lockedIcon?: string | undefined;
1445
+ secret?: boolean | undefined;
1446
+ name: string;
1447
+ description: string;
1448
+ }> | undefined;
1449
+ } | undefined;
1450
+ scripts?: string | string[] | {
1451
+ code: any;
1452
+ fileName: string;
1453
+ id: string;
1454
+ type: "yaml";
1455
+ } | undefined;
1456
+ choices?: string | {
1457
+ code: any;
1458
+ fileName: string;
1459
+ id: string;
1460
+ type: "yaml";
1461
+ } | {
1462
+ choiceTextTemplate?: string | undefined;
1463
+ choicePrompts?: Record<string, {
1464
+ cssClass?: string | undefined;
1465
+ textTemplate?: string | undefined;
1466
+ }> | undefined;
1467
+ } | undefined;
1468
+ audio: string | {
1469
+ code: any;
1470
+ fileName: string;
1471
+ id: string;
1472
+ type: "yaml";
1473
+ } | {
1474
+ options: {
1475
+ volume?: number | undefined;
1476
+ defaultMusic?: string | undefined;
1477
+ musicFadeInTime?: number | undefined;
1478
+ musicFadeOutTime?: number | undefined;
1479
+ musicFadeInDelay?: number | undefined;
1480
+ };
1481
+ files: Record<string, {
1482
+ path?: string | undefined;
1483
+ volume?: number | undefined;
1484
+ rate?: number | undefined;
1485
+ html5?: boolean | undefined;
1486
+ fadeInTime?: number | undefined;
1487
+ fadeInDelay?: number | undefined;
1488
+ fadeOutTime?: number | undefined;
1489
+ loop?: boolean | undefined;
1490
+ src: string;
1491
+ }>;
1492
+ audioTriggers: Record<string, string>;
1493
+ };
1494
+ characters: string | {
1495
+ config: {
1496
+ playerCharacter?: string | undefined;
1497
+ gameCharacter?: string | undefined;
1498
+ imagesPath: string;
1499
+ };
1500
+ characters: Record<string, {
1501
+ style?: {
1502
+ portraitCssClass?: string | undefined;
1503
+ color?: string | undefined;
1504
+ boxCss?: Record<string, any> | undefined;
1505
+ nameCss?: Record<string, any> | undefined;
1506
+ textCss?: Record<string, any> | undefined;
1507
+ } | undefined;
1508
+ sprites?: Record<string, string | {
1509
+ loop?: boolean | undefined;
1510
+ width?: number | undefined;
1511
+ height?: number | undefined;
1512
+ autoplay?: boolean | undefined;
1513
+ muted?: boolean | undefined;
1514
+ video: string;
1515
+ } | {
1516
+ width?: number | undefined;
1517
+ height?: number | undefined;
1518
+ image: string;
1519
+ }> | undefined;
1520
+ name: string;
1521
+ }>;
1522
+ } | {
1523
+ code: any;
1524
+ fileName: string;
1525
+ id: string;
1526
+ type: "yaml";
1527
+ };
1528
+ screens: string | {
1529
+ code: any;
1530
+ fileName: string;
1531
+ id: string;
1532
+ type: "yaml";
1533
+ } | {
1534
+ screens?: Record<string, {
1535
+ video?: {
1536
+ loop?: boolean | undefined;
1537
+ muted?: boolean | undefined;
1538
+ } | undefined;
1539
+ buttons?: (string | ({
1540
+ text?: string | undefined;
1541
+ action?: string | undefined;
1542
+ tag?: string | undefined;
1543
+ background?: string | undefined;
1544
+ cssClass?: string | undefined;
1545
+ anchor?: {
1546
+ x: number;
1547
+ y: number;
1548
+ } | undefined;
1549
+ actionType?: string | undefined;
1550
+ scriptClickable?: boolean | undefined;
1551
+ enabled: boolean;
1552
+ position: {
1553
+ width?: number | undefined;
1554
+ height?: number | undefined;
1555
+ left: number;
1556
+ top: number;
1557
+ };
1558
+ } & {
1559
+ id: string;
1560
+ }))[] | undefined;
1561
+ background: string;
1562
+ }> | undefined;
1563
+ };
1564
+ common: {
1565
+ code: any;
1566
+ fileName: string;
1567
+ id: string;
1568
+ type: "yaml";
1569
+ } | {
1570
+ baseAssetsPath?: string | undefined;
1571
+ baseDataPath?: string | undefined;
1572
+ images?: Record<string, string> | undefined;
1573
+ settings?: {
1574
+ customSettings?: Record<string, ({
1575
+ description?: string | undefined;
1576
+ name: string;
1577
+ } & {
1578
+ type: "number";
1579
+ defaultValue: number;
1580
+ step: number;
1581
+ minValue: number;
1582
+ maxValue: number;
1583
+ }) | ({
1584
+ description?: string | undefined;
1585
+ name: string;
1586
+ } & {
1587
+ type: "integer";
1588
+ defaultValue: number;
1589
+ step: number;
1590
+ minValue: number;
1591
+ maxValue: number;
1592
+ }) | ({
1593
+ description?: string | undefined;
1594
+ name: string;
1595
+ } & {
1596
+ type: "boolean";
1597
+ defaultValue: boolean;
1598
+ }) | ({
1599
+ description?: string | undefined;
1600
+ name: string;
1601
+ } & {
1602
+ type: "string";
1603
+ defaultValue: string;
1604
+ })> | undefined;
1605
+ } | undefined;
1606
+ gameFlow?: {
1607
+ labelToJumpOnScriptEnd?: string | undefined;
1608
+ } | undefined;
1609
+ dialogPanel?: {
1610
+ width?: number | undefined;
1611
+ height?: number | undefined;
1612
+ animateText?: boolean | undefined;
1613
+ textSpeed?: number | undefined;
1614
+ timeBetweenLines?: number | undefined;
1615
+ overlayMode?: boolean | undefined;
1616
+ rightOffset?: number | undefined;
1617
+ bottomOffset?: number | undefined;
1618
+ hideDuringTransition?: boolean | undefined;
1619
+ showAfterScriptEnd?: boolean | undefined;
1620
+ } | undefined;
1621
+ splashScreens?: {
1622
+ engineSplashScreen?: {
1623
+ skip?: boolean | undefined;
1624
+ fadeDuration?: number | undefined;
1625
+ timeBeforeFadeout?: number | undefined;
1626
+ overrideText?: string | undefined;
1627
+ overrideLogo?: string | undefined;
1628
+ } | undefined;
1629
+ gameSplashScreen?: {
1630
+ startButtonText?: string | undefined;
1631
+ } | undefined;
1632
+ } | undefined;
1633
+ notifications?: {
1634
+ alsoPrintInDialogue?: boolean | undefined;
1635
+ timeOnScreen: number;
1636
+ } | undefined;
1637
+ interactionTags?: Record<string, {
1638
+ onlyInteractOutsideOfScripts?: boolean | undefined;
1639
+ }> | undefined;
1640
+ transitions?: Record<string, {
1641
+ delay?: number | undefined;
1642
+ duration?: number | undefined;
1643
+ }> | undefined;
1644
+ menuButtons?: Record<string, {
1645
+ cssClass?: string | undefined;
1646
+ text: string;
1647
+ }> | undefined;
1648
+ debugging?: {
1649
+ showScriptFinishedMessage?: boolean | undefined;
1650
+ } | undefined;
1651
+ saves?: {
1652
+ runOnReload?: string | undefined;
1653
+ slots: number;
1654
+ mode: string;
1655
+ } | undefined;
1656
+ gameTitle: string;
1657
+ saveFileName: string;
1658
+ layout: {
1659
+ minTextWidth?: number | undefined;
1660
+ defaultFontSize?: number | undefined;
1661
+ backgrounds: {
1662
+ width: number;
1663
+ height: number;
1664
+ };
1665
+ dialogBottomPadding: string | number;
1666
+ verticalLayoutThreshold: number;
1667
+ portraits: {
1668
+ offset?: {
1669
+ landscape?: {
1670
+ right: number;
1671
+ bottom: number;
1672
+ } | undefined;
1673
+ portrait?: {
1674
+ right: number;
1675
+ bottom: number;
1676
+ } | undefined;
1677
+ } | undefined;
1678
+ width: number;
1679
+ height: number;
1680
+ };
1681
+ };
1682
+ hudStats: Record<string, {
1683
+ minValue?: number | undefined;
1684
+ maxValue?: number | undefined;
1685
+ decimals?: number | undefined;
1686
+ prefix?: string | undefined;
1687
+ suffix?: string | undefined;
1688
+ hideName?: boolean | undefined;
1689
+ formatting?: {
1690
+ currency?: string | undefined;
1691
+ unit?: string | undefined;
1692
+ style: "decimal" | "currency" | "percent" | "unit";
1693
+ } | undefined;
1694
+ name: string;
1695
+ icon: string;
1696
+ startingValue: number;
1697
+ }>;
1698
+ };
1699
+ } | undefined;
1700
+ };
1701
+ flowState: "menu" | "engine-splash" | "game-splash" | "playing";
1702
+ paused: boolean;
1703
+ loading: {
1704
+ step: string;
1705
+ percentage: number;
1706
+ loaded: boolean;
1707
+ };
1708
+ debugMode: boolean;
1709
+ alerts: {
1710
+ title: string;
1711
+ text: string;
1712
+ resolver: () => void;
1713
+ id: string;
1714
+ }[];
1715
+ saving: {
1716
+ withPrompt?: boolean | undefined;
1717
+ name?: string | undefined;
1718
+ resolver: () => void;
1719
+ } | null;
1720
+ saveData?: {
1721
+ saveSlot: {
1722
+ metadata: {
1723
+ saveDate: string;
1724
+ name: string;
1725
+ };
1726
+ version: string;
1727
+ plugins: {
1728
+ [key: string]: any;
1729
+ };
1730
+ customStores: {
1731
+ [key: string]: any;
1732
+ };
1733
+ skills: {
1734
+ skillChecks: {
1735
+ [key: string]: import("../stores/skills").SkillCheckState;
1736
+ };
1737
+ skills: import("../stores/skills").SkillsState;
1738
+ };
1739
+ screen: {
1740
+ layers: (string | null)[];
1741
+ buttons: import("../stores/screens-store").ButtonsState;
1742
+ };
1743
+ main: {
1744
+ playTime: number;
1745
+ };
1746
+ dialog: {
1747
+ dialog: {
1748
+ speaker: string;
1749
+ text: string;
1750
+ pose?: string | undefined;
1751
+ cssClass?: string | undefined;
1752
+ choices?: {
1753
+ flag?: string | undefined;
1754
+ seenBefore?: boolean | undefined;
1755
+ choice: string;
1756
+ originalIndex: number;
1757
+ allowed: boolean;
1758
+ }[] | undefined;
1759
+ textField?: boolean | undefined;
1760
+ interactive: boolean;
1761
+ id: string;
1762
+ }[];
1763
+ };
1764
+ vm: {
1765
+ lastLabel: string;
1766
+ data: import("../stores/vm-store").DataState;
1767
+ };
1768
+ audio: {
1769
+ modes: {
1770
+ [key: string]: import("../stores/audio-store").AudioSaveMode;
1771
+ };
1772
+ masterVolume: number;
1773
+ };
1774
+ hud: {
1775
+ hudStats: import("../stores/hud-stats-store").HudStatsState;
1776
+ };
1777
+ inventory: {
1778
+ items: {
1779
+ [key: string]: import("../stores/inventory-store").ItemState;
1780
+ };
1781
+ interactionTags: {
1782
+ [key: string]: {
1783
+ blockedInteraction: boolean;
1784
+ };
1785
+ };
1786
+ };
1787
+ quests: {
1788
+ quests: {
1789
+ [key: string]: import("../stores/quest-log").QuestState;
1790
+ };
1791
+ };
1792
+ screenObjects: {
1793
+ tree: string[];
1794
+ objectsList: {
1795
+ [id: string]: import("../stores/screen-objects-store").ScreenObjectSaveState;
1796
+ };
1797
+ };
1798
+ settings: {
1799
+ customSettings: {
1800
+ [key: string]: any;
1801
+ };
1802
+ baseSettings: {
1803
+ [x: string]: any;
1804
+ textSpeed: number;
1805
+ animateText: boolean;
1806
+ fontSize: number;
1807
+ };
1808
+ };
1809
+ config: {
1810
+ playerCharacter: string;
1811
+ gameCharacter: string;
1812
+ };
1813
+ choices: {
1814
+ choices: Record<string, import("../stores/choices-tracking-store").ChoiceBranchTracking>;
1815
+ };
1816
+ rendering: {
1817
+ dialogPanelMode: "auto" | "off" | "on";
1818
+ };
1819
+ };
1820
+ global: {
1821
+ achievements: {
1822
+ achievements: {
1823
+ [key: string]: import("../stores/achievements-store").AchievementState;
1824
+ };
1825
+ };
1826
+ data: {
1827
+ [key: string]: any;
1828
+ };
1829
+ };
1830
+ } | undefined;
1831
+ listener: {
1832
+ listeners: {
1833
+ gameLoaded: Set<() => void>;
1834
+ };
1835
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: import("../stores/main-store").MainEvents[Event_1]) => import("../stores/main-store").MainEvents[Event_1];
1836
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: import("../stores/main-store").MainEvents[Event_2]) => import("../stores/main-store").MainEvents[Event_2];
1837
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: import("../stores/main-store").MainEvents[Event_3]) => import("../stores/main-store").MainEvents[Event_3];
1838
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
1839
+ clear: () => void;
1840
+ };
1841
+ inScript: boolean;
1842
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/main-store").MainState>): number;
1843
+ hasCustomContainer(state: {
1844
+ ready: boolean;
1845
+ playing: boolean;
1846
+ errors: {
1847
+ text: string;
1848
+ type: "error" | "warning" | "info";
1849
+ }[];
1850
+ playTime: {
1851
+ start: number;
1852
+ previousPlaytime: number;
1853
+ };
1854
+ saveSlot: string;
1855
+ options: {
1856
+ baseAssetsPath?: string | undefined;
1857
+ baseDataPath?: string | undefined;
1858
+ configPath?: string | undefined;
1859
+ scripts: {
1860
+ code: any;
1861
+ fileName: string;
1862
+ id: string;
1863
+ type: "script";
1864
+ }[];
1865
+ logging?: boolean | undefined;
1866
+ debug?: boolean | undefined;
1867
+ container?: string | HTMLElement | undefined;
1868
+ config?: {
1869
+ skillChecks?: string | {
1870
+ options: {
1871
+ extraDicePerLevel?: number | undefined;
1872
+ finalRollIsHighest?: boolean | undefined;
1873
+ finalRollIsLowest?: boolean | undefined;
1874
+ failOnRollsEqualToThreshold?: boolean | undefined;
1875
+ diceRange: [number, number];
1876
+ diceCount: number;
1877
+ difficultyText: [number, string][];
1878
+ extraPointsPerLevel: number;
1879
+ successOnRollsBelowThreshold: boolean;
1880
+ showDifficultyText: boolean;
1881
+ showDifficultyNumber: boolean;
1882
+ showDifficultyWithoutModifiers: boolean;
1883
+ };
1884
+ skillChecks: Record<string, {
1885
+ winsNeeded?: number | undefined;
1886
+ hideAfterRoll?: boolean | undefined;
1887
+ repeatable?: boolean | undefined;
1888
+ skill: string;
1889
+ difficulty: number;
1890
+ }>;
1891
+ } | {
1892
+ code: any;
1893
+ fileName: string;
1894
+ id: string;
1895
+ type: "yaml";
1896
+ } | undefined;
1897
+ skills?: string | {
1898
+ code: any;
1899
+ fileName: string;
1900
+ id: string;
1901
+ type: "yaml";
1902
+ } | {
1903
+ skills?: Record<string, {
1904
+ hidden?: boolean | undefined;
1905
+ name: string;
1906
+ description: string;
1907
+ startingLevel: number;
1908
+ icon: string;
1909
+ }> | undefined;
1910
+ skillOptions?: {
1911
+ xpPerLevel: number;
1912
+ notifyLevelUp: boolean;
1913
+ } | undefined;
1914
+ } | undefined;
1915
+ items?: string | {
1916
+ code: any;
1917
+ fileName: string;
1918
+ id: string;
1919
+ type: "yaml";
1920
+ } | {
1921
+ categories?: {
1922
+ title: string;
1923
+ id: string;
1924
+ }[] | undefined;
1925
+ items?: Record<string, {
1926
+ onUse?: {
1927
+ label: string;
1928
+ action: string;
1929
+ } | undefined;
1930
+ tag?: string | undefined;
1931
+ category?: string | undefined;
1932
+ showIfEmpty?: boolean | undefined;
1933
+ name: string;
1934
+ description: string;
1935
+ icon: string;
1936
+ }> | undefined;
1937
+ } | undefined;
1938
+ buttons?: string | {
1939
+ clickableDuringScriptsByDefault?: boolean | undefined;
1940
+ buttons: Record<string, {
1941
+ text?: string | undefined;
1942
+ action?: string | undefined;
1943
+ tag?: string | undefined;
1944
+ background?: string | undefined;
1945
+ cssClass?: string | undefined;
1946
+ anchor?: {
1947
+ x: number;
1948
+ y: number;
1949
+ } | undefined;
1950
+ actionType?: string | undefined;
1951
+ scriptClickable?: boolean | undefined;
1952
+ enabled: boolean;
1953
+ position: {
1954
+ width?: number | undefined;
1955
+ height?: number | undefined;
1956
+ left: number;
1957
+ top: number;
1958
+ };
1959
+ }>;
1960
+ } | {
1961
+ code: any;
1962
+ fileName: string;
1963
+ id: string;
1964
+ type: "yaml";
1965
+ } | undefined;
1966
+ quests?: string | {
1967
+ categories: {
1968
+ title: string;
1969
+ id: string;
1970
+ }[];
1971
+ quests: Record<string, {
1972
+ category?: string | undefined;
1973
+ succeededDescription?: string | undefined;
1974
+ failedDescription?: string | undefined;
1975
+ endings?: Record<string, {
1976
+ description: string;
1977
+ success: boolean;
1978
+ }> | undefined;
1979
+ title: string;
1980
+ description: string;
1981
+ objectives: Record<string, {
1982
+ hidden?: boolean | undefined;
1983
+ succeededDescription?: string | undefined;
1984
+ failedDescription?: string | undefined;
1985
+ description: string;
1986
+ }>;
1987
+ }>;
1988
+ } | {
1989
+ code: any;
1990
+ fileName: string;
1991
+ id: string;
1992
+ type: "yaml";
1993
+ } | undefined;
1994
+ tooltips?: string | {
1995
+ options: {
1996
+ delay?: number | undefined;
1997
+ screenEdgesMinimumMargin?: number | undefined;
1998
+ styling?: {
1999
+ cssClass?: string | undefined;
2000
+ textCssClass?: string | undefined;
2001
+ titleCssClass?: string | undefined;
2002
+ } | undefined;
2003
+ width: number;
2004
+ keywordsPrefix: string;
2005
+ };
2006
+ tooltips: {
2007
+ styling?: {
2008
+ cssClass?: string | undefined;
2009
+ textCssClass?: string | undefined;
2010
+ titleCssClass?: string | undefined;
2011
+ } | undefined;
2012
+ title: string;
2013
+ description: string;
2014
+ keywords: string[];
2015
+ }[];
2016
+ } | {
2017
+ code: any;
2018
+ fileName: string;
2019
+ id: string;
2020
+ type: "yaml";
2021
+ } | undefined;
2022
+ animations?: string | {
2023
+ keyframes: Record<string, any[]>;
2024
+ animations: Record<string, {
2025
+ options?: {
2026
+ fill?: string | undefined;
2027
+ delay?: number | undefined;
2028
+ duration?: number | undefined;
2029
+ direction?: string | undefined;
2030
+ easing?: string | undefined;
2031
+ endDelay?: number | undefined;
2032
+ iterationStart?: number | undefined;
2033
+ iterations?: number | undefined;
2034
+ keyframes?: any;
2035
+ } | undefined;
2036
+ keyframes: string | any[];
2037
+ }>;
2038
+ } | {
2039
+ code: any;
2040
+ fileName: string;
2041
+ id: string;
2042
+ type: "yaml";
2043
+ } | undefined;
2044
+ achievements?: string | {
2045
+ code: any;
2046
+ fileName: string;
2047
+ id: string;
2048
+ type: "yaml";
2049
+ } | {
2050
+ categories?: {
2051
+ title: string;
2052
+ id: string;
2053
+ }[] | undefined;
2054
+ achievements?: Record<string, {
2055
+ icon?: string | undefined;
2056
+ category?: string | undefined;
2057
+ lockedIcon?: string | undefined;
2058
+ secret?: boolean | undefined;
2059
+ name: string;
2060
+ description: string;
2061
+ }> | undefined;
2062
+ } | undefined;
2063
+ scripts?: string | string[] | {
2064
+ code: any;
2065
+ fileName: string;
2066
+ id: string;
2067
+ type: "yaml";
2068
+ } | undefined;
2069
+ choices?: string | {
2070
+ code: any;
2071
+ fileName: string;
2072
+ id: string;
2073
+ type: "yaml";
2074
+ } | {
2075
+ choiceTextTemplate?: string | undefined;
2076
+ choicePrompts?: Record<string, {
2077
+ cssClass?: string | undefined;
2078
+ textTemplate?: string | undefined;
2079
+ }> | undefined;
2080
+ } | undefined;
2081
+ audio: string | {
2082
+ code: any;
2083
+ fileName: string;
2084
+ id: string;
2085
+ type: "yaml";
2086
+ } | {
2087
+ options: {
2088
+ volume?: number | undefined;
2089
+ defaultMusic?: string | undefined;
2090
+ musicFadeInTime?: number | undefined;
2091
+ musicFadeOutTime?: number | undefined;
2092
+ musicFadeInDelay?: number | undefined;
2093
+ };
2094
+ files: Record<string, {
2095
+ path?: string | undefined;
2096
+ volume?: number | undefined;
2097
+ rate?: number | undefined;
2098
+ html5?: boolean | undefined;
2099
+ fadeInTime?: number | undefined;
2100
+ fadeInDelay?: number | undefined;
2101
+ fadeOutTime?: number | undefined;
2102
+ loop?: boolean | undefined;
2103
+ src: string;
2104
+ }>;
2105
+ audioTriggers: Record<string, string>;
2106
+ };
2107
+ characters: string | {
2108
+ config: {
2109
+ playerCharacter?: string | undefined;
2110
+ gameCharacter?: string | undefined;
2111
+ imagesPath: string;
2112
+ };
2113
+ characters: Record<string, {
2114
+ style?: {
2115
+ portraitCssClass?: string | undefined;
2116
+ color?: string | undefined;
2117
+ boxCss?: Record<string, any> | undefined;
2118
+ nameCss?: Record<string, any> | undefined;
2119
+ textCss?: Record<string, any> | undefined;
2120
+ } | undefined;
2121
+ sprites?: Record<string, string | {
2122
+ loop?: boolean | undefined;
2123
+ width?: number | undefined;
2124
+ height?: number | undefined;
2125
+ autoplay?: boolean | undefined;
2126
+ muted?: boolean | undefined;
2127
+ video: string;
2128
+ } | {
2129
+ width?: number | undefined;
2130
+ height?: number | undefined;
2131
+ image: string;
2132
+ }> | undefined;
2133
+ name: string;
2134
+ }>;
2135
+ } | {
2136
+ code: any;
2137
+ fileName: string;
2138
+ id: string;
2139
+ type: "yaml";
2140
+ };
2141
+ screens: string | {
2142
+ code: any;
2143
+ fileName: string;
2144
+ id: string;
2145
+ type: "yaml";
2146
+ } | {
2147
+ screens?: Record<string, {
2148
+ video?: {
2149
+ loop?: boolean | undefined;
2150
+ muted?: boolean | undefined;
2151
+ } | undefined;
2152
+ buttons?: (string | ({
2153
+ text?: string | undefined;
2154
+ action?: string | undefined;
2155
+ tag?: string | undefined;
2156
+ background?: string | undefined;
2157
+ cssClass?: string | undefined;
2158
+ anchor?: {
2159
+ x: number;
2160
+ y: number;
2161
+ } | undefined;
2162
+ actionType?: string | undefined;
2163
+ scriptClickable?: boolean | undefined;
2164
+ enabled: boolean;
2165
+ position: {
2166
+ width?: number | undefined;
2167
+ height?: number | undefined;
2168
+ left: number;
2169
+ top: number;
2170
+ };
2171
+ } & {
2172
+ id: string;
2173
+ }))[] | undefined;
2174
+ background: string;
2175
+ }> | undefined;
2176
+ };
2177
+ common: {
2178
+ code: any;
2179
+ fileName: string;
2180
+ id: string;
2181
+ type: "yaml";
2182
+ } | {
2183
+ baseAssetsPath?: string | undefined;
2184
+ baseDataPath?: string | undefined;
2185
+ images?: Record<string, string> | undefined;
2186
+ settings?: {
2187
+ customSettings?: Record<string, ({
2188
+ description?: string | undefined;
2189
+ name: string;
2190
+ } & {
2191
+ type: "number";
2192
+ defaultValue: number;
2193
+ step: number;
2194
+ minValue: number;
2195
+ maxValue: number;
2196
+ }) | ({
2197
+ description?: string | undefined;
2198
+ name: string;
2199
+ } & {
2200
+ type: "integer";
2201
+ defaultValue: number;
2202
+ step: number;
2203
+ minValue: number;
2204
+ maxValue: number;
2205
+ }) | ({
2206
+ description?: string | undefined;
2207
+ name: string;
2208
+ } & {
2209
+ type: "boolean";
2210
+ defaultValue: boolean;
2211
+ }) | ({
2212
+ description?: string | undefined;
2213
+ name: string;
2214
+ } & {
2215
+ type: "string";
2216
+ defaultValue: string;
2217
+ })> | undefined;
2218
+ } | undefined;
2219
+ gameFlow?: {
2220
+ labelToJumpOnScriptEnd?: string | undefined;
2221
+ } | undefined;
2222
+ dialogPanel?: {
2223
+ width?: number | undefined;
2224
+ height?: number | undefined;
2225
+ animateText?: boolean | undefined;
2226
+ textSpeed?: number | undefined;
2227
+ timeBetweenLines?: number | undefined;
2228
+ overlayMode?: boolean | undefined;
2229
+ rightOffset?: number | undefined;
2230
+ bottomOffset?: number | undefined;
2231
+ hideDuringTransition?: boolean | undefined;
2232
+ showAfterScriptEnd?: boolean | undefined;
2233
+ } | undefined;
2234
+ splashScreens?: {
2235
+ engineSplashScreen?: {
2236
+ skip?: boolean | undefined;
2237
+ fadeDuration?: number | undefined;
2238
+ timeBeforeFadeout?: number | undefined;
2239
+ overrideText?: string | undefined;
2240
+ overrideLogo?: string | undefined;
2241
+ } | undefined;
2242
+ gameSplashScreen?: {
2243
+ startButtonText?: string | undefined;
2244
+ } | undefined;
2245
+ } | undefined;
2246
+ notifications?: {
2247
+ alsoPrintInDialogue?: boolean | undefined;
2248
+ timeOnScreen: number;
2249
+ } | undefined;
2250
+ interactionTags?: Record<string, {
2251
+ onlyInteractOutsideOfScripts?: boolean | undefined;
2252
+ }> | undefined;
2253
+ transitions?: Record<string, {
2254
+ delay?: number | undefined;
2255
+ duration?: number | undefined;
2256
+ }> | undefined;
2257
+ menuButtons?: Record<string, {
2258
+ cssClass?: string | undefined;
2259
+ text: string;
2260
+ }> | undefined;
2261
+ debugging?: {
2262
+ showScriptFinishedMessage?: boolean | undefined;
2263
+ } | undefined;
2264
+ saves?: {
2265
+ runOnReload?: string | undefined;
2266
+ slots: number;
2267
+ mode: string;
2268
+ } | undefined;
2269
+ gameTitle: string;
2270
+ saveFileName: string;
2271
+ layout: {
2272
+ minTextWidth?: number | undefined;
2273
+ defaultFontSize?: number | undefined;
2274
+ backgrounds: {
2275
+ width: number;
2276
+ height: number;
2277
+ };
2278
+ dialogBottomPadding: string | number;
2279
+ verticalLayoutThreshold: number;
2280
+ portraits: {
2281
+ offset?: {
2282
+ landscape?: {
2283
+ right: number;
2284
+ bottom: number;
2285
+ } | undefined;
2286
+ portrait?: {
2287
+ right: number;
2288
+ bottom: number;
2289
+ } | undefined;
2290
+ } | undefined;
2291
+ width: number;
2292
+ height: number;
2293
+ };
2294
+ };
2295
+ hudStats: Record<string, {
2296
+ minValue?: number | undefined;
2297
+ maxValue?: number | undefined;
2298
+ decimals?: number | undefined;
2299
+ prefix?: string | undefined;
2300
+ suffix?: string | undefined;
2301
+ hideName?: boolean | undefined;
2302
+ formatting?: {
2303
+ currency?: string | undefined;
2304
+ unit?: string | undefined;
2305
+ style: "decimal" | "currency" | "percent" | "unit";
2306
+ } | undefined;
2307
+ name: string;
2308
+ icon: string;
2309
+ startingValue: number;
2310
+ }>;
2311
+ };
2312
+ } | undefined;
2313
+ };
2314
+ flowState: "menu" | "engine-splash" | "game-splash" | "playing";
2315
+ paused: boolean;
2316
+ loading: {
2317
+ step: string;
2318
+ percentage: number;
2319
+ loaded: boolean;
2320
+ };
2321
+ debugMode: boolean;
2322
+ alerts: {
2323
+ title: string;
2324
+ text: string;
2325
+ resolver: () => void;
2326
+ id: string;
2327
+ }[];
2328
+ saving: {
2329
+ withPrompt?: boolean | undefined;
2330
+ name?: string | undefined;
2331
+ resolver: () => void;
2332
+ } | null;
2333
+ saveData?: {
2334
+ saveSlot: {
2335
+ metadata: {
2336
+ saveDate: string;
2337
+ name: string;
2338
+ };
2339
+ version: string;
2340
+ plugins: {
2341
+ [key: string]: any;
2342
+ };
2343
+ customStores: {
2344
+ [key: string]: any;
2345
+ };
2346
+ skills: {
2347
+ skillChecks: {
2348
+ [key: string]: import("../stores/skills").SkillCheckState;
2349
+ };
2350
+ skills: import("../stores/skills").SkillsState;
2351
+ };
2352
+ screen: {
2353
+ layers: (string | null)[];
2354
+ buttons: import("../stores/screens-store").ButtonsState;
2355
+ };
2356
+ main: {
2357
+ playTime: number;
2358
+ };
2359
+ dialog: {
2360
+ dialog: {
2361
+ speaker: string;
2362
+ text: string;
2363
+ pose?: string | undefined;
2364
+ cssClass?: string | undefined;
2365
+ choices?: {
2366
+ flag?: string | undefined;
2367
+ seenBefore?: boolean | undefined;
2368
+ choice: string;
2369
+ originalIndex: number;
2370
+ allowed: boolean;
2371
+ }[] | undefined;
2372
+ textField?: boolean | undefined;
2373
+ interactive: boolean;
2374
+ id: string;
2375
+ }[];
2376
+ };
2377
+ vm: {
2378
+ lastLabel: string;
2379
+ data: import("../stores/vm-store").DataState;
2380
+ };
2381
+ audio: {
2382
+ modes: {
2383
+ [key: string]: import("../stores/audio-store").AudioSaveMode;
2384
+ };
2385
+ masterVolume: number;
2386
+ };
2387
+ hud: {
2388
+ hudStats: import("../stores/hud-stats-store").HudStatsState;
2389
+ };
2390
+ inventory: {
2391
+ items: {
2392
+ [key: string]: import("../stores/inventory-store").ItemState;
2393
+ };
2394
+ interactionTags: {
2395
+ [key: string]: {
2396
+ blockedInteraction: boolean;
2397
+ };
2398
+ };
2399
+ };
2400
+ quests: {
2401
+ quests: {
2402
+ [key: string]: import("../stores/quest-log").QuestState;
2403
+ };
2404
+ };
2405
+ screenObjects: {
2406
+ tree: string[];
2407
+ objectsList: {
2408
+ [id: string]: import("../stores/screen-objects-store").ScreenObjectSaveState;
2409
+ };
2410
+ };
2411
+ settings: {
2412
+ customSettings: {
2413
+ [key: string]: any;
2414
+ };
2415
+ baseSettings: {
2416
+ [x: string]: any;
2417
+ textSpeed: number;
2418
+ animateText: boolean;
2419
+ fontSize: number;
2420
+ };
2421
+ };
2422
+ config: {
2423
+ playerCharacter: string;
2424
+ gameCharacter: string;
2425
+ };
2426
+ choices: {
2427
+ choices: Record<string, import("../stores/choices-tracking-store").ChoiceBranchTracking>;
2428
+ };
2429
+ rendering: {
2430
+ dialogPanelMode: "auto" | "off" | "on";
2431
+ };
2432
+ };
2433
+ global: {
2434
+ achievements: {
2435
+ achievements: {
2436
+ [key: string]: import("../stores/achievements-store").AchievementState;
2437
+ };
2438
+ };
2439
+ data: {
2440
+ [key: string]: any;
2441
+ };
2442
+ };
2443
+ } | undefined;
2444
+ listener: {
2445
+ listeners: {
2446
+ gameLoaded: Set<() => void>;
2447
+ };
2448
+ on: <Event_1 extends "gameLoaded">(event: Event_1, listener: import("../stores/main-store").MainEvents[Event_1]) => import("../stores/main-store").MainEvents[Event_1];
2449
+ off: <Event_2 extends "gameLoaded">(event: Event_2, listener: import("../stores/main-store").MainEvents[Event_2]) => import("../stores/main-store").MainEvents[Event_2];
2450
+ once: <Event_3 extends "gameLoaded">(event: Event_3, listener: import("../stores/main-store").MainEvents[Event_3]) => import("../stores/main-store").MainEvents[Event_3];
2451
+ emit: <Event_4 extends "gameLoaded">(event: Event_4, ...args: any[]) => void;
2452
+ clear: () => void;
2453
+ };
2454
+ inScript: boolean;
2455
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/main-store").MainState>): boolean;
2456
+ }, {
2457
+ setLoadingStep(step: string, percentage: number): void;
2458
+ gameLoaded(): void;
2459
+ alert(title: string, text: string): Promise<void>;
2460
+ closeAlert(id: string): void;
2461
+ startingScript(): void;
2462
+ endingScript(): void;
2463
+ prepareToPlay(): void;
2464
+ setSaveSlot(slot: string): void;
2465
+ startManualSave(resolve: () => void, saveName?: string | undefined, withPrompt?: boolean | undefined): void;
2466
+ cancelManualSave(): void;
2467
+ playerAnswered(choice: string | number): void;
2468
+ menuReturn(): void;
2469
+ createError(text: string): void;
2470
+ createWarning(text: string): void;
2471
+ clearErrors(): void;
2472
+ setFlowState(flowState: "menu" | "playing"): void;
2473
+ pause(): void;
2474
+ unpause(): void;
2475
+ setOptions(options: import("../types/app-types").AppOptions): void;
2476
+ startPlaying(): void;
2477
+ reset(): void;
2478
+ generateSaveData(): import("../stores/main-store").MainSaveData;
2479
+ loadSaveData(data: import("../stores/main-store").MainSaveData): void;
2480
+ exitGame(): void;
2481
+ }>;
2482
+ readonly save: "main";
2483
+ };
2484
+ readonly achievements: {
2485
+ readonly store: import("pinia").StoreDefinition<"achievements", import("../stores/achievements-store").AchievementsState, {}, {
2486
+ generateGlobalSaveData(): import("../stores/achievements-store").AchievementsState;
2487
+ loadGlobalSaveData(save: import("../stores/achievements-store").AchievementsState): void;
2488
+ updateConfig(config: {
2489
+ secretAchievements?: {
2490
+ censorDescription?: boolean | undefined;
2491
+ censorName?: boolean | undefined;
2492
+ hideUntilObtained?: boolean | undefined;
2493
+ } | undefined;
2494
+ categories: {
2495
+ title: string;
2496
+ id: string;
2497
+ }[];
2498
+ defaultAchievementIcon: string;
2499
+ achievements: Record<string, {
2500
+ icon?: string | undefined;
2501
+ category?: string | undefined;
2502
+ lockedIcon?: string | undefined;
2503
+ secret?: boolean | undefined;
2504
+ name: string;
2505
+ description: string;
2506
+ }>;
2507
+ notifyNewAchievements: boolean;
2508
+ }): void;
2509
+ reset(config: {
2510
+ secretAchievements?: {
2511
+ censorDescription?: boolean | undefined;
2512
+ censorName?: boolean | undefined;
2513
+ hideUntilObtained?: boolean | undefined;
2514
+ } | undefined;
2515
+ categories: {
2516
+ title: string;
2517
+ id: string;
2518
+ }[];
2519
+ defaultAchievementIcon: string;
2520
+ achievements: Record<string, {
2521
+ icon?: string | undefined;
2522
+ category?: string | undefined;
2523
+ lockedIcon?: string | undefined;
2524
+ secret?: boolean | undefined;
2525
+ name: string;
2526
+ description: string;
2527
+ }>;
2528
+ notifyNewAchievements: boolean;
2529
+ }): void;
2530
+ hasAchievement(achievementId: string): boolean;
2531
+ getExistingAchievement(id: string): import("../stores/achievements-store").AchievementState | undefined;
2532
+ unlock(achievement: string): void;
2533
+ }>;
2534
+ readonly config: "achievements";
2535
+ readonly globalSave: "achievements";
2536
+ };
2537
+ readonly audio: {
2538
+ readonly store: import("pinia").StoreDefinition<"audio", import("../stores/audio-store").AudioState, {}, {
2539
+ stopAll(): void;
2540
+ stopChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
2541
+ pauseChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
2542
+ playChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
2543
+ resumeChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): Promise<void>;
2544
+ changeChannel(mode: "sound" | "music" | "ambiant", audio: string, channelIndex: number): Promise<void>;
2545
+ actuallyStopChannel(channel: import("../stores/audio-store").AudioChannel): void;
2546
+ getAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number): import("../stores/audio-store").AudioChannel | null;
2547
+ setAudioChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, value: import("../stores/audio-store").AudioChannel | null): void;
2548
+ actuallyPlayChannel(mode: "sound" | "music" | "ambiant", channelIndex: number, audio: string): Promise<void>;
2549
+ reloadAudio(save: import("../stores/audio-store").AudioSave): void;
2550
+ stopSound(key: string): void;
2551
+ generateSaveData(): import("../stores/audio-store").AudioSave;
2552
+ loadSaveData(data: import("../stores/audio-store").AudioSave): void;
2553
+ reset(): void;
2554
+ setModeVolume(mode: "sound" | "music" | "ambiant", volume: number): void;
2555
+ setMasterVolume(volume: number): void;
2556
+ modeVolume(mode: "sound" | "music" | "ambiant"): number;
2557
+ audioVolume(mode: "sound" | "music" | "ambiant", audio: string): number;
2558
+ }>;
2559
+ readonly config: "audio";
2560
+ readonly save: "audio";
2561
+ };
2562
+ readonly choicesTracking: {
2563
+ readonly store: import("pinia").StoreDefinition<"choices-tracking-store", import("../stores/choices-tracking-store").ChoiceTrackingState, {}, {
2564
+ trackChoice(prompt: string, choice: string): void;
2565
+ hasSeenChoice(prompt: string, choice: string): boolean;
2566
+ generateSaveData(): import("../stores/choices-tracking-store").ChoiceTrackingState;
2567
+ loadSaveData(save: import("../stores/choices-tracking-store").ChoiceTrackingState): void;
2568
+ reset(): void;
2569
+ }>;
2570
+ readonly config: "choices";
2571
+ readonly save: "choices";
2572
+ };
2573
+ readonly config: {
2574
+ readonly store: import("pinia").StoreDefinition<"config", import("../stores/config-store").ConfigStore, {
2575
+ playerCharacter(): string;
2576
+ gameCharacter(): string;
2577
+ }, {
2578
+ setConfig(config: import("../lib").Config): Promise<void>;
2579
+ extendConfig(config: {
2580
+ common?: {
2581
+ baseAssetsPath?: string | undefined;
2582
+ baseDataPath?: string | undefined;
2583
+ gameTitle?: string | undefined;
2584
+ saveFileName?: string | undefined;
2585
+ images?: {
2586
+ [x: string]: string | undefined;
2587
+ } | undefined;
2588
+ layout?: {
2589
+ minTextWidth?: number | undefined;
2590
+ defaultFontSize?: number | undefined;
2591
+ backgrounds?: {
2592
+ width?: number | undefined;
2593
+ height?: number | undefined;
2594
+ } | undefined;
2595
+ dialogBottomPadding?: string | number | undefined;
2596
+ verticalLayoutThreshold?: number | undefined;
2597
+ portraits?: {
2598
+ offset?: {
2599
+ landscape?: {
2600
+ right?: number | undefined;
2601
+ bottom?: number | undefined;
2602
+ } | undefined;
2603
+ portrait?: {
2604
+ right?: number | undefined;
2605
+ bottom?: number | undefined;
2606
+ } | undefined;
2607
+ } | undefined;
2608
+ width?: number | undefined;
2609
+ height?: number | undefined;
2610
+ } | undefined;
2611
+ } | undefined;
2612
+ settings?: {
2613
+ customSettings?: {
2614
+ [x: string]: {
2615
+ description?: string | undefined;
2616
+ name?: string | undefined;
2617
+ type?: "number" | undefined;
2618
+ defaultValue?: number | undefined;
2619
+ step?: number | undefined;
2620
+ minValue?: number | undefined;
2621
+ maxValue?: number | undefined;
2622
+ } | {
2623
+ description?: string | undefined;
2624
+ name?: string | undefined;
2625
+ type?: "integer" | undefined;
2626
+ defaultValue?: number | undefined;
2627
+ step?: number | undefined;
2628
+ minValue?: number | undefined;
2629
+ maxValue?: number | undefined;
2630
+ } | {
2631
+ description?: string | undefined;
2632
+ name?: string | undefined;
2633
+ type?: "boolean" | undefined;
2634
+ defaultValue?: boolean | undefined;
2635
+ } | {
2636
+ description?: string | undefined;
2637
+ name?: string | undefined;
2638
+ type?: "string" | undefined;
2639
+ defaultValue?: string | undefined;
2640
+ } | undefined;
2641
+ } | undefined;
2642
+ } | undefined;
2643
+ gameFlow?: {
2644
+ labelToJumpOnScriptEnd?: string | undefined;
2645
+ } | undefined;
2646
+ dialogPanel?: {
2647
+ width?: number | undefined;
2648
+ height?: number | undefined;
2649
+ animateText?: boolean | undefined;
2650
+ textSpeed?: number | undefined;
2651
+ timeBetweenLines?: number | undefined;
2652
+ overlayMode?: boolean | undefined;
2653
+ rightOffset?: number | undefined;
2654
+ bottomOffset?: number | undefined;
2655
+ hideDuringTransition?: boolean | undefined;
2656
+ showAfterScriptEnd?: boolean | undefined;
2657
+ } | undefined;
2658
+ splashScreens?: {
2659
+ engineSplashScreen?: {
2660
+ skip?: boolean | undefined;
2661
+ fadeDuration?: number | undefined;
2662
+ timeBeforeFadeout?: number | undefined;
2663
+ overrideText?: string | undefined;
2664
+ overrideLogo?: string | undefined;
2665
+ } | undefined;
2666
+ gameSplashScreen?: {
2667
+ startButtonText?: string | undefined;
2668
+ } | undefined;
2669
+ } | undefined;
2670
+ notifications?: {
2671
+ alsoPrintInDialogue?: boolean | undefined;
2672
+ timeOnScreen?: number | undefined;
2673
+ } | undefined;
2674
+ hudStats?: {
2675
+ [x: string]: {
2676
+ minValue?: number | undefined;
2677
+ maxValue?: number | undefined;
2678
+ decimals?: number | undefined;
2679
+ prefix?: string | undefined;
2680
+ suffix?: string | undefined;
2681
+ hideName?: boolean | undefined;
2682
+ formatting?: {
2683
+ currency?: string | undefined;
2684
+ unit?: string | undefined;
2685
+ style?: "decimal" | "currency" | "percent" | "unit" | undefined;
2686
+ } | undefined;
2687
+ name?: string | undefined;
2688
+ icon?: string | undefined;
2689
+ startingValue?: number | undefined;
2690
+ } | undefined;
2691
+ } | undefined;
2692
+ interactionTags?: {
2693
+ [x: string]: {
2694
+ onlyInteractOutsideOfScripts?: boolean | undefined;
2695
+ } | undefined;
2696
+ } | undefined;
2697
+ transitions?: {
2698
+ [x: string]: {
2699
+ delay?: number | undefined;
2700
+ duration?: number | undefined;
2701
+ } | undefined;
2702
+ } | undefined;
2703
+ menuButtons?: {
2704
+ [x: string]: {
2705
+ cssClass?: string | undefined;
2706
+ text?: string | undefined;
2707
+ } | undefined;
2708
+ } | undefined;
2709
+ debugging?: {
2710
+ showScriptFinishedMessage?: boolean | undefined;
2711
+ } | undefined;
2712
+ saves?: {
2713
+ runOnReload?: string | undefined;
2714
+ slots?: number | undefined;
2715
+ mode?: string | undefined;
2716
+ } | undefined;
2717
+ } | undefined;
2718
+ screens?: {
2719
+ screens?: {
2720
+ [x: string]: {
2721
+ video?: {
2722
+ loop?: boolean | undefined;
2723
+ muted?: boolean | undefined;
2724
+ } | undefined;
2725
+ buttons?: (string | {
2726
+ text?: string | undefined;
2727
+ action?: string | undefined;
2728
+ tag?: string | undefined;
2729
+ background?: string | undefined;
2730
+ cssClass?: string | undefined;
2731
+ anchor?: {
2732
+ x?: number | undefined;
2733
+ y?: number | undefined;
2734
+ } | undefined;
2735
+ actionType?: string | undefined;
2736
+ scriptClickable?: boolean | undefined;
2737
+ enabled?: boolean | undefined;
2738
+ position?: {
2739
+ width?: number | undefined;
2740
+ height?: number | undefined;
2741
+ left?: number | undefined;
2742
+ top?: number | undefined;
2743
+ } | undefined;
2744
+ id?: string | undefined;
2745
+ } | undefined)[] | undefined;
2746
+ background?: string | undefined;
2747
+ } | undefined;
2748
+ } | undefined;
2749
+ } | undefined;
2750
+ buttons?: {
2751
+ clickableDuringScriptsByDefault?: boolean | undefined;
2752
+ buttons?: {
2753
+ [x: string]: {
2754
+ text?: string | undefined;
2755
+ action?: string | undefined;
2756
+ tag?: string | undefined;
2757
+ background?: string | undefined;
2758
+ cssClass?: string | undefined;
2759
+ anchor?: {
2760
+ x?: number | undefined;
2761
+ y?: number | undefined;
2762
+ } | undefined;
2763
+ actionType?: string | undefined;
2764
+ scriptClickable?: boolean | undefined;
2765
+ enabled?: boolean | undefined;
2766
+ position?: {
2767
+ width?: number | undefined;
2768
+ height?: number | undefined;
2769
+ left?: number | undefined;
2770
+ top?: number | undefined;
2771
+ } | undefined;
2772
+ } | undefined;
2773
+ } | undefined;
2774
+ } | undefined;
2775
+ skills?: {
2776
+ skills?: {
2777
+ [x: string]: {
2778
+ hidden?: boolean | undefined;
2779
+ name?: string | undefined;
2780
+ description?: string | undefined;
2781
+ startingLevel?: number | undefined;
2782
+ icon?: string | undefined;
2783
+ } | undefined;
2784
+ } | undefined;
2785
+ skillOptions?: {
2786
+ xpPerLevel?: number | undefined;
2787
+ notifyLevelUp?: boolean | undefined;
2788
+ } | undefined;
2789
+ } | undefined;
2790
+ skillChecks?: {
2791
+ options?: {
2792
+ extraDicePerLevel?: number | undefined;
2793
+ finalRollIsHighest?: boolean | undefined;
2794
+ finalRollIsLowest?: boolean | undefined;
2795
+ failOnRollsEqualToThreshold?: boolean | undefined;
2796
+ diceRange?: [(number | undefined)?, (number | undefined)?] | undefined;
2797
+ diceCount?: number | undefined;
2798
+ difficultyText?: ([(number | undefined)?, (string | undefined)?] | undefined)[] | undefined;
2799
+ extraPointsPerLevel?: number | undefined;
2800
+ successOnRollsBelowThreshold?: boolean | undefined;
2801
+ showDifficultyText?: boolean | undefined;
2802
+ showDifficultyNumber?: boolean | undefined;
2803
+ showDifficultyWithoutModifiers?: boolean | undefined;
2804
+ } | undefined;
2805
+ skillChecks?: {
2806
+ [x: string]: {
2807
+ winsNeeded?: number | undefined;
2808
+ hideAfterRoll?: boolean | undefined;
2809
+ repeatable?: boolean | undefined;
2810
+ skill?: string | undefined;
2811
+ difficulty?: number | undefined;
2812
+ } | undefined;
2813
+ } | undefined;
2814
+ } | undefined;
2815
+ scripts?: (string | undefined)[] | undefined;
2816
+ audio?: {
2817
+ files?: {
2818
+ [x: string]: {
2819
+ path?: string | undefined;
2820
+ volume?: number | undefined;
2821
+ rate?: number | undefined;
2822
+ html5?: boolean | undefined;
2823
+ fadeInTime?: number | undefined;
2824
+ fadeInDelay?: number | undefined;
2825
+ fadeOutTime?: number | undefined;
2826
+ loop?: boolean | undefined;
2827
+ src?: string | undefined;
2828
+ } | undefined;
2829
+ } | undefined;
2830
+ audioTriggers?: {
2831
+ [x: string]: string | undefined;
2832
+ } | undefined;
2833
+ options?: {
2834
+ volume?: number | undefined;
2835
+ defaultMusic?: string | undefined;
2836
+ musicFadeInTime?: number | undefined;
2837
+ musicFadeOutTime?: number | undefined;
2838
+ musicFadeInDelay?: number | undefined;
2839
+ } | undefined;
2840
+ } | undefined;
2841
+ items?: {
2842
+ categories?: ({
2843
+ title?: string | undefined;
2844
+ id?: string | undefined;
2845
+ } | undefined)[] | undefined;
2846
+ items?: {
2847
+ [x: string]: {
2848
+ onUse?: {
2849
+ label?: string | undefined;
2850
+ action?: string | undefined;
2851
+ } | undefined;
2852
+ tag?: string | undefined;
2853
+ category?: string | undefined;
2854
+ showIfEmpty?: boolean | undefined;
2855
+ name?: string | undefined;
2856
+ description?: string | undefined;
2857
+ icon?: string | undefined;
2858
+ } | undefined;
2859
+ } | undefined;
2860
+ } | undefined;
2861
+ achievements?: {
2862
+ secretAchievements?: {
2863
+ censorDescription?: boolean | undefined;
2864
+ censorName?: boolean | undefined;
2865
+ hideUntilObtained?: boolean | undefined;
2866
+ } | undefined;
2867
+ categories?: ({
2868
+ title?: string | undefined;
2869
+ id?: string | undefined;
2870
+ } | undefined)[] | undefined;
2871
+ defaultAchievementIcon?: string | undefined;
2872
+ achievements?: {
2873
+ [x: string]: {
2874
+ icon?: string | undefined;
2875
+ category?: string | undefined;
2876
+ lockedIcon?: string | undefined;
2877
+ secret?: boolean | undefined;
2878
+ name?: string | undefined;
2879
+ description?: string | undefined;
2880
+ } | undefined;
2881
+ } | undefined;
2882
+ notifyNewAchievements?: boolean | undefined;
2883
+ } | undefined;
2884
+ quests?: {
2885
+ categories?: ({
2886
+ title?: string | undefined;
2887
+ id?: string | undefined;
2888
+ } | undefined)[] | undefined;
2889
+ quests?: {
2890
+ [x: string]: {
2891
+ category?: string | undefined;
2892
+ succeededDescription?: string | undefined;
2893
+ failedDescription?: string | undefined;
2894
+ endings?: {
2895
+ [x: string]: {
2896
+ description?: string | undefined;
2897
+ success?: boolean | undefined;
2898
+ } | undefined;
2899
+ } | undefined;
2900
+ title?: string | undefined;
2901
+ description?: string | undefined;
2902
+ objectives?: {
2903
+ [x: string]: {
2904
+ hidden?: boolean | undefined;
2905
+ succeededDescription?: string | undefined;
2906
+ failedDescription?: string | undefined;
2907
+ description?: string | undefined;
2908
+ } | undefined;
2909
+ } | undefined;
2910
+ } | undefined;
2911
+ } | undefined;
2912
+ } | undefined;
2913
+ characters?: {
2914
+ config?: {
2915
+ playerCharacter?: string | undefined;
2916
+ gameCharacter?: string | undefined;
2917
+ imagesPath?: string | undefined;
2918
+ } | undefined;
2919
+ characters?: {
2920
+ [x: string]: {
2921
+ style?: {
2922
+ portraitCssClass?: string | undefined;
2923
+ color?: string | undefined;
2924
+ boxCss?: {
2925
+ [x: string]: any;
2926
+ } | undefined;
2927
+ nameCss?: {
2928
+ [x: string]: any;
2929
+ } | undefined;
2930
+ textCss?: {
2931
+ [x: string]: any;
2932
+ } | undefined;
2933
+ } | undefined;
2934
+ sprites?: {
2935
+ [x: string]: string | {
2936
+ loop?: boolean | undefined;
2937
+ width?: number | undefined;
2938
+ height?: number | undefined;
2939
+ autoplay?: boolean | undefined;
2940
+ muted?: boolean | undefined;
2941
+ video?: string | undefined;
2942
+ } | {
2943
+ width?: number | undefined;
2944
+ height?: number | undefined;
2945
+ image?: string | undefined;
2946
+ } | undefined;
2947
+ } | undefined;
2948
+ name?: string | undefined;
2949
+ } | undefined;
2950
+ } | undefined;
2951
+ } | undefined;
2952
+ animations?: {
2953
+ keyframes?: {
2954
+ [x: string]: any[] | undefined;
2955
+ } | undefined;
2956
+ animations?: {
2957
+ [x: string]: {
2958
+ options?: {
2959
+ fill?: string | undefined;
2960
+ delay?: number | undefined;
2961
+ duration?: number | undefined;
2962
+ direction?: string | undefined;
2963
+ easing?: string | undefined;
2964
+ endDelay?: number | undefined;
2965
+ iterationStart?: number | undefined;
2966
+ iterations?: number | undefined;
2967
+ keyframes?: any;
2968
+ } | undefined;
2969
+ keyframes?: string | any[] | undefined;
2970
+ } | undefined;
2971
+ } | undefined;
2972
+ } | undefined;
2973
+ tooltips?: {
2974
+ options?: {
2975
+ delay?: number | undefined;
2976
+ screenEdgesMinimumMargin?: number | undefined;
2977
+ styling?: {
2978
+ cssClass?: string | undefined;
2979
+ textCssClass?: string | undefined;
2980
+ titleCssClass?: string | undefined;
2981
+ } | undefined;
2982
+ width?: number | undefined;
2983
+ keywordsPrefix?: string | undefined;
2984
+ } | undefined;
2985
+ tooltips?: ({
2986
+ styling?: {
2987
+ cssClass?: string | undefined;
2988
+ textCssClass?: string | undefined;
2989
+ titleCssClass?: string | undefined;
2990
+ } | undefined;
2991
+ title?: string | undefined;
2992
+ description?: string | undefined;
2993
+ keywords?: (string | undefined)[] | undefined;
2994
+ } | undefined)[] | undefined;
2995
+ } | undefined;
2996
+ choices?: {
2997
+ choiceTextTemplate?: string | undefined;
2998
+ choicePrompts?: {
2999
+ [x: string]: {
3000
+ cssClass?: string | undefined;
3001
+ textTemplate?: string | undefined;
3002
+ } | undefined;
3003
+ } | undefined;
3004
+ } | undefined;
3005
+ }): void;
3006
+ generateSaveData(): import("../stores/config-store").ConfigStoreSave;
3007
+ addConfigModule(key: keyof import("../lib").Config, module: import("../config/config-output").ConfigModule): void;
3008
+ findConfigModuleKey(module: import("../types/app-types").NarratYaml): keyof import("../lib").Config | undefined;
3009
+ reloadConfigModule(key: keyof import("../lib").Config, value: any): void;
3010
+ loadSaveData(saveData: import("../stores/config-store").ConfigStoreSave): void;
3011
+ }>;
3012
+ readonly save: "config";
3013
+ };
3014
+ readonly dialog: {
3015
+ readonly store: import("pinia").StoreDefinition<"dialog", {
3016
+ dialog: import("../stores/dialog-store").DialogKey[];
3017
+ playMode: "skip" | "auto" | "normal";
3018
+ }, {
3019
+ currentDialog(): import("../stores/dialog-store").DialogKey;
3020
+ }, {
3021
+ generateSaveData(): import("../stores/dialog-store").DialogSave;
3022
+ loadSaveData(data: import("../stores/dialog-store").DialogSave): void;
3023
+ addDialog(dialog: import("../stores/dialog-store").AddDialogParams): void;
3024
+ toggleAutoPlay(): void;
3025
+ toggleSkip(): void;
3026
+ clearDialog(): void;
3027
+ reset(): void;
3028
+ }>;
3029
+ readonly save: "dialog";
3030
+ };
3031
+ readonly hud: {
3032
+ readonly store: import("pinia").StoreDefinition<"hud", import("../stores/hud-stats-store").HudState, {}, {
3033
+ updateConfig(common: import("../config/common-config").CommonConfig): void;
3034
+ reset(common: import("../config/common-config").CommonConfig): void;
3035
+ setStat(stat: string, value: number): void;
3036
+ addStat(stat: string, value: number): void;
3037
+ getStat(stat: string): import("../stores/hud-stats-store").HudStat;
3038
+ getStatValue(stat: string): number;
3039
+ generateSaveData(): import("../stores/hud-stats-store").HudState;
3040
+ loadSaveData(data: import("../stores/hud-stats-store").HudState): void;
3041
+ }>;
3042
+ readonly config: "common";
3043
+ readonly save: "hud";
3044
+ };
3045
+ readonly inputs: {
3046
+ readonly store: import("pinia").StoreDefinition<"inputs", import("../stores/inputs-store").InputsStoreState, {}, {
3047
+ setupInputs(): void;
3048
+ listenToContainerInputs(): void;
3049
+ listenToBaseNarratInputs(): void;
3050
+ triggerListeners(actionKey: string, eventType: keyof import("../stores/inputs-store").InputStoreEvents, status: import("../inputs/Inputs").ActionStatus): void;
3051
+ getInputs(): import("../lib").Inputs;
3052
+ registerInputListener(name: string, listeners?: Record<string, import("../stores/inputs-store").InputStoreEvents> | undefined): import("../stores/inputs-store").InputListener;
3053
+ unregisterInputListener(listener: import("../stores/inputs-store").InputListener): void;
3054
+ registerActions(listener: import("../stores/inputs-store").InputListener, actionId: string, eventsListener: import("../stores/inputs-store").InputStoreEvents): void;
3055
+ }>;
3056
+ };
3057
+ readonly inventory: {
3058
+ readonly store: import("pinia").StoreDefinition<"inventory", import("../stores/inventory-store").InventoryState, {}, {
3059
+ generateSaveData(): import("../stores/inventory-store").InventoryState;
3060
+ loadSaveData(save: import("../stores/inventory-store").InventoryState): void;
3061
+ updateConfig(config: {
3062
+ categories: {
3063
+ title: string;
3064
+ id: string;
3065
+ }[];
3066
+ items: Record<string, {
3067
+ onUse?: {
3068
+ label: string;
3069
+ action: string;
3070
+ } | undefined;
3071
+ tag?: string | undefined;
3072
+ category?: string | undefined;
3073
+ showIfEmpty?: boolean | undefined;
3074
+ name: string;
3075
+ description: string;
3076
+ icon: string;
3077
+ }>;
3078
+ }): void;
3079
+ reset(items: {
3080
+ categories: {
3081
+ title: string;
3082
+ id: string;
3083
+ }[];
3084
+ items: Record<string, {
3085
+ onUse?: {
3086
+ label: string;
3087
+ action: string;
3088
+ } | undefined;
3089
+ tag?: string | undefined;
3090
+ category?: string | undefined;
3091
+ showIfEmpty?: boolean | undefined;
3092
+ name: string;
3093
+ description: string;
3094
+ icon: string;
3095
+ }>;
3096
+ }): void;
3097
+ hasItem(itemId: string, amount?: number | undefined): boolean;
3098
+ getExistingItem(id: string): import("../stores/inventory-store").ItemState | undefined;
3099
+ getItemAmount(id: string): number;
3100
+ add(item: import("../stores/inventory-store").ItemState): void;
3101
+ enableInteraction(tag?: string | undefined): void;
3102
+ disableInteraction(tag?: string | undefined): void;
3103
+ onScriptStart(): void;
3104
+ onScriptEnd(): void;
3105
+ isInteractionTagBlocked(tag?: string | undefined): boolean;
3106
+ remove(item: import("../stores/inventory-store").ItemState): void;
3107
+ deleteItem(id: string): void;
3108
+ canUseItem(item: import("../stores/inventory-store").ItemState): boolean;
3109
+ useItem(item: import("../stores/inventory-store").ItemState): void;
3110
+ }>;
3111
+ readonly config: "items";
3112
+ readonly save: "inventory";
3113
+ };
3114
+ readonly menu: {
3115
+ readonly store: import("pinia").StoreDefinition<"menu", import("../stores/menu-store").MenuStoreState, {
3116
+ showSkills(): boolean;
3117
+ showInventory(): boolean;
3118
+ showQuests(): boolean;
3119
+ showAchievements(): boolean;
3120
+ menuTabsToShow(state: {
3121
+ menus: {
3122
+ [key: string]: import("../stores/menu-store").MenuState;
3123
+ };
3124
+ activeMenu: string | false;
3125
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/menu-store").MenuStoreState>): import("../stores/menu-store").MenuTabState[];
3126
+ menu(state: import("../stores/menu-store").MenuStoreState): import("../stores/menu-store").MenuState | undefined;
3127
+ tab(): import("../stores/menu-store").MenuTabState | undefined;
3128
+ }, {
3129
+ setup(): void;
3130
+ addMenu(id: string, options: import("../stores/menu-store").AddMenuState): void;
3131
+ addMenuOption(menu: string, config: import("../stores/menu-store").MenuTabState): void;
3132
+ setActiveTab(tab: number): void;
3133
+ openMenu(menu: string): void;
3134
+ closeMenu(): void;
3135
+ toggleMenu(): void;
3136
+ }>;
3137
+ };
3138
+ readonly notifications: {
3139
+ readonly store: import("pinia").StoreDefinition<"notifications", import("../stores/notification-store").NotificationsState, {}, {
3140
+ addNotification(text: string, description?: string | undefined, icon?: string | undefined): Promise<void>;
3141
+ deleteNotification(id: string): void;
3142
+ findNotifications(id: string): {
3143
+ id: string;
3144
+ text: string;
3145
+ description?: string | undefined;
3146
+ icon?: string | undefined;
3147
+ } | undefined;
3148
+ disableNotifications(): void;
3149
+ enableNotifications(): void;
3150
+ }>;
3151
+ readonly config: "common";
3152
+ };
3153
+ readonly quests: {
3154
+ readonly store: import("pinia").StoreDefinition<"quests", import("../stores/quest-log").QuestLogState, {}, {
3155
+ getQuest(questId: string): import("../stores/quest-log").QuestState;
3156
+ getObjective(questId: string, objectiveId: string): import("../stores/quest-log").ObjectiveState;
3157
+ updateConfig(questsConfig: {
3158
+ categories: {
3159
+ title: string;
3160
+ id: string;
3161
+ }[];
3162
+ quests: Record<string, {
3163
+ category?: string | undefined;
3164
+ succeededDescription?: string | undefined;
3165
+ failedDescription?: string | undefined;
3166
+ endings?: Record<string, {
3167
+ description: string;
3168
+ success: boolean;
3169
+ }> | undefined;
3170
+ title: string;
3171
+ description: string;
3172
+ objectives: Record<string, {
3173
+ hidden?: boolean | undefined;
3174
+ succeededDescription?: string | undefined;
3175
+ failedDescription?: string | undefined;
3176
+ description: string;
3177
+ }>;
3178
+ }>;
3179
+ }): void;
3180
+ reset(questsConfig: {
3181
+ categories: {
3182
+ title: string;
3183
+ id: string;
3184
+ }[];
3185
+ quests: Record<string, {
3186
+ category?: string | undefined;
3187
+ succeededDescription?: string | undefined;
3188
+ failedDescription?: string | undefined;
3189
+ endings?: Record<string, {
3190
+ description: string;
3191
+ success: boolean;
3192
+ }> | undefined;
3193
+ title: string;
3194
+ description: string;
3195
+ objectives: Record<string, {
3196
+ hidden?: boolean | undefined;
3197
+ succeededDescription?: string | undefined;
3198
+ failedDescription?: string | undefined;
3199
+ description: string;
3200
+ }>;
3201
+ }>;
3202
+ }): void;
3203
+ startQuest(questId: string): void;
3204
+ startObjective(questId: string, objectiveId: string): void;
3205
+ completeObjective(questId: string, objectiveId: string): void;
3206
+ completeQuest(questId: string, result?: string | boolean | undefined): void;
3207
+ isQuestCompleted(questId: string): boolean;
3208
+ isQuestSucceeded(questId: string): boolean | undefined;
3209
+ isQuestFailed(questId: string): boolean;
3210
+ getQuestEnding(questId: string): string | false | undefined;
3211
+ questHasEnding(questId: string, endingId: string): boolean;
3212
+ isObjectiveCompleted(questId: string, objectiveId: string): boolean;
3213
+ isQuestStarted(questId: string): boolean;
3214
+ isObjectiveStarted(questId: string, objectiveId: string): boolean;
3215
+ removeQuest(id: string): void;
3216
+ generateSaveData(): import("../stores/quest-log").QuestLogState;
3217
+ loadSaveData(data: import("../stores/quest-log").QuestLogState): void;
3218
+ }>;
3219
+ readonly config: "quests";
3220
+ readonly save: "quests";
3221
+ };
3222
+ readonly rendering: {
3223
+ readonly store: import("pinia").StoreDefinition<"rendering", import("../stores/rendering-store").RenderingState, {
3224
+ gameScaleRatio(state: import("../stores/rendering-store").RenderingState): number;
3225
+ overlayMode(state: import("../stores/rendering-store").RenderingState): boolean;
3226
+ gameWidth(): number;
3227
+ gameHeight(): number;
3228
+ dialogWidth(): number;
3229
+ dialogHeight(): number;
3230
+ actualGameHeight(): number;
3231
+ viewportRatio(state: import("../stores/rendering-store").RenderingState): number;
3232
+ viewportHeight(state: import("../stores/rendering-store").RenderingState): number;
3233
+ viewportWidth(state: import("../stores/rendering-store").RenderingState): number;
3234
+ showDialog(state: import("../stores/rendering-store").RenderingState): boolean;
3235
+ container(): HTMLElement;
3236
+ inputsContainer(): HTMLElement;
3237
+ narratApp(): HTMLElement;
3238
+ }, {
3239
+ generateSaveData(): import("../stores/rendering-store").RenderingSaveData;
3240
+ loadSaveData(saveData: import("../stores/rendering-store").RenderingSaveData): void;
3241
+ reset(): void;
3242
+ updateScreenSize(width: number, height: number): void;
3243
+ setContainer(container: HTMLElement): void;
3244
+ refreshScreenSize(): void;
3245
+ }>;
3246
+ readonly save: "rendering";
3247
+ };
3248
+ readonly screens: {
3249
+ readonly store: import("pinia").StoreDefinition<"screens", import("../stores/screens-store").ScreenState, {
3250
+ nonEmptyLayers(state: import("../stores/screens-store").ScreenState): import("../stores/screens-store").FullLayerState[];
3251
+ isTransitioning(state: import("../stores/screens-store").ScreenState): boolean;
3252
+ }, {
3253
+ setScreen(screen: string, layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
3254
+ finishTransition(layer: number): void;
3255
+ transitionScreen(screen: string, transition: import("../utils/transition").AddTransition, layer?: number | undefined): Promise<void>;
3256
+ emptyLayer(layer: number, transition?: import("../utils/transition").AddTransition | undefined): Promise<void>;
3257
+ updateConfig(config: {
3258
+ screens: Record<string, {
3259
+ video?: {
3260
+ loop?: boolean | undefined;
3261
+ muted?: boolean | undefined;
3262
+ } | undefined;
3263
+ buttons?: (string | ({
3264
+ text?: string | undefined;
3265
+ action?: string | undefined;
3266
+ tag?: string | undefined;
3267
+ background?: string | undefined;
3268
+ cssClass?: string | undefined;
3269
+ anchor?: {
3270
+ x: number;
3271
+ y: number;
3272
+ } | undefined;
3273
+ actionType?: string | undefined;
3274
+ scriptClickable?: boolean | undefined;
3275
+ enabled: boolean;
3276
+ position: {
3277
+ width?: number | undefined;
3278
+ height?: number | undefined;
3279
+ left: number;
3280
+ top: number;
3281
+ };
3282
+ } & {
3283
+ id: string;
3284
+ }))[] | undefined;
3285
+ background: string;
3286
+ }>;
3287
+ }): void;
3288
+ reset(config: {
3289
+ screens: Record<string, {
3290
+ video?: {
3291
+ loop?: boolean | undefined;
3292
+ muted?: boolean | undefined;
3293
+ } | undefined;
3294
+ buttons?: (string | ({
3295
+ text?: string | undefined;
3296
+ action?: string | undefined;
3297
+ tag?: string | undefined;
3298
+ background?: string | undefined;
3299
+ cssClass?: string | undefined;
3300
+ anchor?: {
3301
+ x: number;
3302
+ y: number;
3303
+ } | undefined;
3304
+ actionType?: string | undefined;
3305
+ scriptClickable?: boolean | undefined;
3306
+ enabled: boolean;
3307
+ position: {
3308
+ width?: number | undefined;
3309
+ height?: number | undefined;
3310
+ left: number;
3311
+ top: number;
3312
+ };
3313
+ } & {
3314
+ id: string;
3315
+ }))[] | undefined;
3316
+ background: string;
3317
+ }>;
3318
+ }): void;
3319
+ changeButton(button: string, newValue: import("../stores/screens-store").ButtonStateValue): void;
3320
+ generateSaveData(): import("../stores/screens-store").ScreenSave;
3321
+ loadSaveData(data: import("../stores/screens-store").ScreenSave): void;
3322
+ isButtonDisabled(button: string): boolean;
3323
+ isButtonInteractible(button: string): boolean;
3324
+ isButtonClickable(button: string): boolean;
3325
+ getButtonState(button: string): import("../stores/screens-store").ButtonStateValue;
3326
+ clickOnButton(button: string): void;
3327
+ }>;
3328
+ readonly config: "screens";
3329
+ readonly save: "screens";
3330
+ };
3331
+ readonly sprites: {
3332
+ readonly store: import("pinia").StoreDefinition<"screenObjects", import("../stores/screen-objects-store").ScreenObjectsStoreState, {}, {
3333
+ addObject(object: import("../stores/screen-objects-store").ScreenObjectState): void;
3334
+ createObject<EntityType extends import("../stores/screen-objects-store").ScreenObjectState = import("../stores/screen-objects-store").ScreenObjectState, CreationOptions extends Partial<import("../stores/screen-objects-store").ScreenObjectState> = Partial<import("../stores/screen-objects-store").ScreenObjectState>>(options: CreationOptions): EntityType;
3335
+ destroyObject(objectToDestroy: string | import("../stores/screen-objects-store").ScreenObjectState): void;
3336
+ createSprite(options: import("../stores/screen-objects-store").CreateSpriteOptions): import("../stores/screen-objects-store").SpriteState;
3337
+ getObject(id: string): import("../stores/screen-objects-store").ScreenObjectState;
3338
+ isScreenObjectClickable(thing: import("../stores/screen-objects-store").ScreenObjectState): boolean;
3339
+ clickObject(thing: import("../stores/screen-objects-store").ScreenObjectState): void;
3340
+ generateSaveData(): import("../stores/screen-objects-store").ScreenObjectsStoreSave;
3341
+ loadSaveData(data: import("../stores/screen-objects-store").ScreenObjectsStoreSave): void;
3342
+ reset(): void;
3343
+ screenObjectToSave(object: import("../stores/screen-objects-store").ScreenObjectState): import("../stores/screen-objects-store").ScreenObjectSaveState;
3344
+ loadAllObjects(objects: {
3345
+ [key: string]: import("../stores/screen-objects-store").ScreenObjectSaveState;
3346
+ }): {
3347
+ [key: string]: import("../stores/screen-objects-store").ScreenObjectState;
3348
+ };
3349
+ emptyLayer(layer: number): void;
3350
+ emptyAllLayers(): void;
3351
+ }>;
3352
+ readonly save: "screenObjects";
3353
+ };
3354
+ readonly settings: {
3355
+ readonly store: import("pinia").StoreDefinition<"settings", import("../stores/settings-store").GameUserSettings, {}, {
3356
+ reset(config: import("../config/common-config").CommonConfig): void;
3357
+ getSetting(key: string): any;
3358
+ getSettingSchema(key: string): ({
3359
+ description?: string | undefined;
3360
+ name: string;
3361
+ } & {
3362
+ type: "number";
3363
+ defaultValue: number;
3364
+ step: number;
3365
+ minValue: number;
3366
+ maxValue: number;
3367
+ }) | ({
3368
+ description?: string | undefined;
3369
+ name: string;
3370
+ } & {
3371
+ type: "integer";
3372
+ defaultValue: number;
3373
+ step: number;
3374
+ minValue: number;
3375
+ maxValue: number;
3376
+ }) | ({
3377
+ description?: string | undefined;
3378
+ name: string;
3379
+ } & {
3380
+ type: "boolean";
3381
+ defaultValue: boolean;
3382
+ }) | ({
3383
+ description?: string | undefined;
3384
+ name: string;
3385
+ } & {
3386
+ type: "string";
3387
+ defaultValue: string;
3388
+ }) | undefined;
3389
+ getAllSettingSchemas(): {
3390
+ [x: string]: ({
3391
+ description?: string | undefined;
3392
+ name: string;
3393
+ } & {
3394
+ type: "number";
3395
+ defaultValue: number;
3396
+ step: number;
3397
+ minValue: number;
3398
+ maxValue: number;
3399
+ }) | ({
3400
+ description?: string | undefined;
3401
+ name: string;
3402
+ } & {
3403
+ type: "integer";
3404
+ defaultValue: number;
3405
+ step: number;
3406
+ minValue: number;
3407
+ maxValue: number;
3408
+ }) | ({
3409
+ description?: string | undefined;
3410
+ name: string;
3411
+ } & {
3412
+ type: "boolean";
3413
+ defaultValue: boolean;
3414
+ }) | ({
3415
+ description?: string | undefined;
3416
+ name: string;
3417
+ } & {
3418
+ type: "string";
3419
+ defaultValue: string;
3420
+ });
3421
+ };
3422
+ setSetting(key: string, value: any): void;
3423
+ updateConfig(config: import("../config/common-config").CommonConfig): void;
3424
+ addCustomSetting(key: string, schema: ({
3425
+ description?: string | undefined;
3426
+ name: string;
3427
+ } & {
3428
+ type: "number";
3429
+ defaultValue: number;
3430
+ step: number;
3431
+ minValue: number;
3432
+ maxValue: number;
3433
+ }) | ({
3434
+ description?: string | undefined;
3435
+ name: string;
3436
+ } & {
3437
+ type: "integer";
3438
+ defaultValue: number;
3439
+ step: number;
3440
+ minValue: number;
3441
+ maxValue: number;
3442
+ }) | ({
3443
+ description?: string | undefined;
3444
+ name: string;
3445
+ } & {
3446
+ type: "boolean";
3447
+ defaultValue: boolean;
3448
+ }) | ({
3449
+ description?: string | undefined;
3450
+ name: string;
3451
+ } & {
3452
+ type: "string";
3453
+ defaultValue: string;
3454
+ })): void;
3455
+ generateSaveData(): import("../stores/settings-store").GameUserSettingsSave;
3456
+ loadSaveData(data: import("../stores/settings-store").GameUserSettingsSave): void;
3457
+ }>;
3458
+ readonly save: "settings";
3459
+ readonly config: "common";
3460
+ };
3461
+ readonly skills: {
3462
+ readonly store: import("pinia").StoreDefinition<"skills", import("../stores/skills").Skills, {}, {
3463
+ setupSkillCheck(skillCheck: import("../stores/skills").SkillCheckState, id: string): void;
3464
+ passSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
3465
+ failSkillCheck(skillCheckId: string, hide?: boolean | undefined): void;
3466
+ resetSkillCheck(skillCheckId: string): void;
3467
+ generateSaveData(): import("../stores/skills").Skills;
3468
+ getSkillCheck(id: string): import("../stores/skills").SkillCheckState;
3469
+ createSkillCheckState(): import("../stores/skills").SkillCheckState;
3470
+ loadSaveData(data: import("../stores/skills").Skills): void;
3471
+ updateConfig(skillsConfig: {
3472
+ skills: Record<string, {
3473
+ hidden?: boolean | undefined;
3474
+ name: string;
3475
+ description: string;
3476
+ startingLevel: number;
3477
+ icon: string;
3478
+ }>;
3479
+ skillOptions: {
3480
+ xpPerLevel: number;
3481
+ notifyLevelUp: boolean;
3482
+ };
3483
+ }): void;
3484
+ reset(skillsConfig: {
3485
+ skills: Record<string, {
3486
+ hidden?: boolean | undefined;
3487
+ name: string;
3488
+ description: string;
3489
+ startingLevel: number;
3490
+ icon: string;
3491
+ }>;
3492
+ skillOptions: {
3493
+ xpPerLevel: number;
3494
+ notifyLevelUp: boolean;
3495
+ };
3496
+ }): void;
3497
+ getSkill(skill: string): import("../stores/skills").SkillState;
3498
+ getSkillLevel(skill: string): number;
3499
+ getSkillXp(skill: string): number;
3500
+ addXp(skill: string, xp: number): void;
3501
+ setSkillLevel(skill: string, level: number): void;
3502
+ incrementSkill(skill: string, amount: number): void;
3503
+ levelledUp(skill: string): void;
3504
+ }>;
3505
+ readonly config: "skills";
3506
+ readonly save: "skills";
3507
+ };
3508
+ readonly startMenu: {
3509
+ readonly store: import("pinia").StoreDefinition<"startMenu", import("../stores/start-menu-store").StartMenuState, {}, {
3510
+ addButtonsFromPlugins(): void;
3511
+ }>;
3512
+ };
3513
+ readonly tooltips: {
3514
+ readonly store: import("pinia").StoreDefinition<"tooltips", import("../stores/tooltip-store").TooltipsState, {}, {
3515
+ addCustomTooltip(tooltip: import("../stores/tooltip-store").TooltipState): void;
3516
+ addTooltip(keyword: string, position?: {
3517
+ x: number;
3518
+ y: number;
3519
+ } | undefined): void;
3520
+ deleteTooltip(): void;
3521
+ }>;
3522
+ readonly config: "tooltips";
3523
+ };
3524
+ readonly vm: {
3525
+ readonly store: import("pinia").StoreDefinition<"vm", import("../stores/vm-store").VMState, {
3526
+ currentFrame(state: {
3527
+ commandsWaitingForPlayerAnswer: {
3528
+ args: (import("../types/parser").Parser.Primitive | {
3529
+ code: string;
3530
+ command: {
3531
+ commandType: string;
3532
+ operator: string;
3533
+ args: (import("../types/parser").Parser.Primitive | any)[];
3534
+ options: import("../types/parser").Parser.DefaultArg;
3535
+ staticOptions: {};
3536
+ };
3537
+ fileName: string;
3538
+ line: number;
3539
+ })[];
3540
+ commandType: string;
3541
+ options: any;
3542
+ code: string;
3543
+ staticOptions: any;
3544
+ operator: string;
3545
+ line: number;
3546
+ fileName: string;
3547
+ finishCommand?: ((res: any) => void) | undefined;
3548
+ }[];
3549
+ stack: {
3550
+ blocks: {
3551
+ currentIndex: number;
3552
+ branchData: {
3553
+ branch: {
3554
+ code: string;
3555
+ command: {
3556
+ commandType: string;
3557
+ operator: string;
3558
+ args: (import("../types/parser").Parser.Primitive | {
3559
+ code: string;
3560
+ command: any;
3561
+ fileName: string;
3562
+ line: number;
3563
+ })[];
3564
+ options: import("../types/parser").Parser.DefaultArg;
3565
+ staticOptions: {};
3566
+ };
3567
+ fileName: string;
3568
+ line: number;
3569
+ }[];
3570
+ args?: string[] | undefined;
3571
+ };
3572
+ }[];
3573
+ label: string;
3574
+ scope: {
3575
+ [key: string]: any;
3576
+ };
3577
+ returnValue: any;
3578
+ }[];
3579
+ data: import("../stores/vm-store").DataState;
3580
+ globalData: import("../stores/vm-store").DataState;
3581
+ lastLabel: string;
3582
+ jumpTarget?: {
3583
+ currentIndex: number;
3584
+ branchData: {
3585
+ branch: {
3586
+ code: string;
3587
+ command: {
3588
+ commandType: string;
3589
+ operator: string;
3590
+ args: (import("../types/parser").Parser.Primitive | {
3591
+ code: string;
3592
+ command: any;
3593
+ fileName: string;
3594
+ line: number;
3595
+ })[];
3596
+ options: import("../types/parser").Parser.DefaultArg;
3597
+ staticOptions: {};
3598
+ };
3599
+ fileName: string;
3600
+ line: number;
3601
+ }[];
3602
+ args?: string[] | undefined;
3603
+ };
3604
+ label: string;
3605
+ scope?: {
3606
+ [key: string]: any;
3607
+ } | undefined;
3608
+ args?: any[] | undefined;
3609
+ } | undefined;
3610
+ hasJumped: boolean;
3611
+ } & import("pinia").PiniaCustomStateProperties<import("../stores/vm-store").VMState>): import("../stores/vm-store").MachineFrame | undefined;
3612
+ scope(): {
3613
+ [key: string]: any;
3614
+ };
3615
+ currentBlock(): import("../stores/vm-store").MachineBlock | undefined;
3616
+ currentLine(): import("../types/parser").Parser.ParsedExpression<import("../types/parser").Parser.DefaultArg, {}> | undefined;
3617
+ commandWaitingForAnswer(): import("../types/parser").Parser.Command<any, any> | undefined;
3618
+ }, {
3619
+ generateSaveData(): import("../stores/vm-store").VMSave;
3620
+ generateGlobalSaveData(): Pick<import("../types/game-save").GlobalGameSave, "data">;
3621
+ loadSaveData(data: import("../stores/vm-store").VMSave): void;
3622
+ loadGlobalSaveData(globalSave: Pick<import("../types/game-save").GlobalGameSave, "data">): void;
3623
+ findEntitiesInData(data: any): void;
3624
+ setReturnValue(value: any): void;
3625
+ waitForPlayerAnswer(cmd: import("../types/parser").Parser.Command<any, any>): void;
3626
+ popAnswerQueue(): {
3627
+ args: (import("../types/parser").Parser.Primitive | {
3628
+ code: string;
3629
+ command: {
3630
+ commandType: string;
3631
+ operator: string;
3632
+ args: (import("../types/parser").Parser.Primitive | any)[];
3633
+ options: import("../types/parser").Parser.DefaultArg;
3634
+ staticOptions: {};
3635
+ };
3636
+ fileName: string;
3637
+ line: number;
3638
+ })[];
3639
+ commandType: string;
3640
+ options: any;
3641
+ code: string;
3642
+ staticOptions: any;
3643
+ operator: string;
3644
+ line: number;
3645
+ fileName: string;
3646
+ finishCommand?: ((res: any) => void) | undefined;
3647
+ } | undefined;
3648
+ addScopedVariable(key: string, value: any): void;
3649
+ loadScripts(scriptPaths: string[]): Promise<void>;
3650
+ loadConfigScriptFiles(scriptPaths: string[]): Promise<import("../lib").NarratScript[]>;
3651
+ addAllScripts(scriptsToParse: import("../lib").NarratScript[]): void;
3652
+ start(): void;
3653
+ setLastLabel(label: string): void;
3654
+ reset(): void;
3655
+ readGlobalData(): void;
3656
+ setScript(script: import("../types/parser").Parser.ParsedScript): void;
3657
+ overrideData(data: import("../stores/vm-store").DataState): void;
3658
+ setStack(stack: import("../stores/vm-store").SetFrameOptions): void;
3659
+ frameOptionsToFrame(frame: import("../stores/vm-store").SetFrameOptions): import("../stores/vm-store").MachineFrame;
3660
+ addBlock(frame: import("../stores/vm-store").MachineFrame, block: import("../stores/vm-store").MachineBlock): void;
3661
+ addAndRunBlock(block: import("../stores/vm-store").MachineBlock): Promise<any>;
3662
+ setData(path: string, value: any): void;
3663
+ addInstruction(path: string, value: any): void;
3664
+ addFrame(newStackOptions: import("../stores/vm-store").AddFrameOptions): void;
3665
+ addAndRunFrame(newStackOptions: import("../stores/vm-store").AddFrameOptions): Promise<any>;
3666
+ runFrame(): Promise<any>;
3667
+ cleanFrame(): any;
3668
+ runBlock(): Promise<any>;
3669
+ cleanBlock(): void;
3670
+ runGame(): Promise<void>;
3671
+ nextLineOnly(): Promise<boolean>;
3672
+ isBlockFinished(): boolean;
3673
+ reachedEndOfScript(): void;
3674
+ runLineOnly(): Promise<any>;
3675
+ runLabelFunction(label: string, ...args: any[]): Promise<any>;
3676
+ runCustomFrame(stack: import("../stores/vm-store").AddFrameOptions): void;
3677
+ jumpToLabel(label: string, ...args: any[]): Promise<void>;
3678
+ runThenGoBackToPreviousDialog(label: string, ...args: any[]): Promise<any>;
3679
+ }>;
3680
+ readonly save: "vm";
3681
+ readonly globalSave: "data";
3682
+ };
3683
+ };
3684
+ export type AllStores = typeof sourceAllStores;
3685
+ export type StoreKey = keyof AllStores;
3686
+ export type StoreData = AllStores[StoreKey];
3687
+ export type AllStates = {
3688
+ [key in StoreKey]: ReturnType<AllStores[key]['store']>;
3689
+ };
3690
+ export declare function getAllStates(): AllStates;
3691
+ export declare function overrideStates(override: any): void;