hella-types 0.0.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 (2) hide show
  1. package/package.json +8 -0
  2. package/types/index.d.ts +965 -0
package/package.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "hella-types",
3
+ "version": "0.0.1",
4
+ "types": "types/index.d.ts",
5
+ "author": "",
6
+ "license": "MIT",
7
+ "description": ""
8
+ }
@@ -0,0 +1,965 @@
1
+ export type AttributesKeyFrame = {
2
+ level: number;
3
+ data: {
4
+ maxHp: number;
5
+ atk: number;
6
+ def: number;
7
+ magicResistance: number;
8
+ cost: number;
9
+ blockCnt: number;
10
+ moveSpeed: number;
11
+ attackSpeed: number;
12
+ baseAttackTime: number;
13
+ respawnTime: number;
14
+ hpRecoveryPerSec: number;
15
+ spRecoveryPerSec: number;
16
+ maxDeployCount: number;
17
+ maxDeckStackCnt: number;
18
+ tauntLevel: number;
19
+ massLevel: number;
20
+ baseForceLevel: number;
21
+ stunImmune: boolean;
22
+ silenceImmune: boolean;
23
+ sleepImmune: boolean;
24
+ frozenImmune: boolean;
25
+ levitateImmune: boolean;
26
+ };
27
+ };
28
+
29
+ export type Blackboard = {
30
+ key: string;
31
+ value?: number;
32
+ valueStr?: string;
33
+ };
34
+
35
+ export type Base = {
36
+ buffId: string;
37
+ buffName: string;
38
+ buffIcon: string;
39
+ skillIcon: string;
40
+ sortId: number;
41
+ buffColor: string;
42
+ textColor: string;
43
+ buffCategory: string;
44
+ roomType: string;
45
+ description: string;
46
+ };
47
+
48
+ export type CCStage = {
49
+ const: {
50
+ levelId: string;
51
+ location: string;
52
+ name: string;
53
+ description: string;
54
+ }
55
+ levels: StageData;
56
+ };
57
+
58
+ export type Definition = {
59
+ termId: string;
60
+ termName: string;
61
+ description: string;
62
+ };
63
+
64
+ export type Enemy = {
65
+ excel: {
66
+ enemyId: string;
67
+ enemyIndex: string;
68
+ enemyTags: string[];
69
+ sortId: number;
70
+ name: string;
71
+ enemyRace: string;
72
+ enemyLevel: string;
73
+ description: string;
74
+ attackType: string;
75
+ endure: string;
76
+ attack: string;
77
+ defence: string;
78
+ resistance: string;
79
+ ability: string;
80
+ isInvalidKilled: boolean;
81
+ overrideKillCntInfos: {};
82
+ hideInHandbook: boolean;
83
+ };
84
+ levels: {
85
+ Key: string;
86
+ Value: {
87
+ level: number;
88
+ enemyData: {
89
+ name: {
90
+ m_defined: boolean;
91
+ m_value: string;
92
+ };
93
+ description: {
94
+ m_defined: boolean;
95
+ m_value: string;
96
+ };
97
+ prefabKey: {
98
+ m_defined: boolean;
99
+ m_value: string;
100
+ };
101
+ attributes: EnemyAttributes;
102
+ lifePointReduce: {
103
+ m_defined: boolean;
104
+ m_value: number;
105
+ };
106
+ levelType: {
107
+ m_defined: boolean;
108
+ m_value: number;
109
+ };
110
+ rangeRadius: {
111
+ m_defined: boolean;
112
+ m_value: number;
113
+ };
114
+ numOfExtraDrops: {
115
+ m_defined: boolean;
116
+ m_value: number;
117
+ };
118
+ talentBlackboard: Blackboard[];
119
+ skills: EnemySkills[];
120
+ spData: EnemySpData;
121
+ };
122
+ }[];
123
+ };
124
+ };
125
+
126
+ export type EnemyAttributes = {
127
+ maxHp: {
128
+ m_defined: boolean;
129
+ m_value: number;
130
+ };
131
+ atk: {
132
+ m_defined: boolean;
133
+ m_value: number;
134
+ };
135
+ def: {
136
+ m_defined: boolean;
137
+ m_value: number;
138
+ };
139
+ magicResistance: {
140
+ m_defined: boolean;
141
+ m_value: number;
142
+ };
143
+ cost: {
144
+ m_defined: boolean;
145
+ m_value: number;
146
+ };
147
+ blockCnt: {
148
+ m_defined: boolean;
149
+ m_value: number;
150
+ };
151
+ moveSpeed: {
152
+ m_defined: boolean;
153
+ m_value: number;
154
+ };
155
+ attackSpeed: {
156
+ m_defined: boolean;
157
+ m_value: number;
158
+ };
159
+ baseAttackTime: {
160
+ m_defined: boolean;
161
+ m_value: number;
162
+ };
163
+ respawnTime: {
164
+ m_defined: boolean;
165
+ m_value: number;
166
+ };
167
+ hpRecoveryPerSec: {
168
+ m_defined: boolean;
169
+ m_value: number;
170
+ };
171
+ spRecoveryPerSec: {
172
+ m_defined: boolean;
173
+ m_value: number;
174
+ };
175
+ maxDeployCount: {
176
+ m_defined: boolean;
177
+ m_value: number;
178
+ };
179
+ massLevel: {
180
+ m_defined: boolean;
181
+ m_value: number;
182
+ };
183
+ baseForceLevel: {
184
+ m_defined: boolean;
185
+ m_value: number;
186
+ };
187
+ tauntLevel: {
188
+ m_defined: boolean;
189
+ m_value: number;
190
+ };
191
+ stunImmune: {
192
+ m_defined: boolean;
193
+ m_value: boolean;
194
+ };
195
+ silenceImmune: {
196
+ m_defined: boolean;
197
+ m_value: boolean;
198
+ };
199
+ sleepImmune: {
200
+ m_defined: boolean;
201
+ m_value: boolean;
202
+ };
203
+ frozenImmune: {
204
+ m_defined: boolean;
205
+ m_value: boolean;
206
+ };
207
+ levitateImmune: {
208
+ m_defined: boolean;
209
+ m_value: boolean;
210
+ };
211
+ };
212
+
213
+ export type EnemySkills = {
214
+ prefabKey: string;
215
+ priority: number;
216
+ cooldown: number;
217
+ initCooldown: number;
218
+ spCost: number;
219
+ blackboard: Blackboard[];
220
+ };
221
+
222
+ export type EnemySpData = {
223
+ spType: number;
224
+ maxSp: number;
225
+ initSp: number;
226
+ increment: number;
227
+ };
228
+
229
+ export type GameEvent = {
230
+ id: string;
231
+ type: string;
232
+ displayType: string;
233
+ name: string;
234
+ startTime: number;
235
+ endTime: number;
236
+ rewardEndTime: number;
237
+ displayOnHome: boolean;
238
+ hasStage: boolean;
239
+ templateShopId: string;
240
+ medalGroupId: string;
241
+ isReplicate: boolean;
242
+ };
243
+
244
+ export type GridRange = {
245
+ id: string;
246
+ direction: number;
247
+ grids: {
248
+ row: number;
249
+ col: number;
250
+ }[];
251
+ };
252
+
253
+ export type ManufactFormula = {
254
+ formulaId: string;
255
+ itemId: string;
256
+ count: number;
257
+ weight: number;
258
+ costPoint: number;
259
+ formulaType: string;
260
+ buffType: string;
261
+ costs: LevelUpCost[];
262
+ requireRooms: {
263
+ roomId: string;
264
+ roomLevel: number;
265
+ roomCount: number;
266
+ }[];
267
+ requireStages: {
268
+ stageId: string,
269
+ rank: number
270
+ }[];
271
+ };
272
+
273
+ export type WorkshopFormula = {
274
+ sortId: number;
275
+ formulaId: string;
276
+ rarity: number;
277
+ itemId: string;
278
+ count: number;
279
+ goldCost: number;
280
+ apCost: number;
281
+ formulaType: string;
282
+ buffType: string;
283
+ extraOutcomeRate: number;
284
+ extraOutcomeGroup: {
285
+ weight: number;
286
+ itemId: string;
287
+ itemCount: number;
288
+ }[];
289
+ costs: LevelUpCost[];
290
+ requireRooms: {
291
+ roomId: string;
292
+ roomLevel: number;
293
+ roomCount: number;
294
+ }[];
295
+ requireStages: {
296
+ stageId: string,
297
+ rank: number
298
+ }[];
299
+ };
300
+
301
+ export type Item = {
302
+ data: {
303
+ itemId: string;
304
+ name: string;
305
+ description: string;
306
+ rarity: number;
307
+ iconId: string;
308
+ overrideBkg: null;
309
+ stackIconId: string;
310
+ sortId: number;
311
+ usage: string;
312
+ obtainApproach: string;
313
+ classifyType: string;
314
+ itemType: string;
315
+ stageDropList: {
316
+ stageId: string;
317
+ occPer: string;
318
+ }[];
319
+ buildingProductList: {
320
+ roomType: string;
321
+ formulaId: string;
322
+ }[];
323
+ };
324
+ formula: ManufactFormula | WorkshopFormula;
325
+ };
326
+
327
+ export type LevelUpCost = {
328
+ id: string;
329
+ count: number;
330
+ type: string;
331
+ };
332
+
333
+ export type LevelUpCostCond = {
334
+ unlockCond: OperatorUnlockCond;
335
+ lvlUpTime: number;
336
+ levelUpCost: LevelUpCost[];
337
+ };
338
+
339
+ export type Module = {
340
+ info: {
341
+ uniEquipId: string;
342
+ uniEquipName: string;
343
+ uniEquipIcon: string;
344
+ uniEquipDesc: string;
345
+ typeIcon: string;
346
+ typeName1: string;
347
+ typeName2: string;
348
+ equipShiningColor: string;
349
+ showEvolvePhase: number;
350
+ unlockEvolvePhase: number;
351
+ charId: string;
352
+ tmplId: string;
353
+ showLevel: number;
354
+ unlockLevel: number;
355
+ unlockFavorPoint: number;
356
+ missionList: string[];
357
+ itemCost: { [key: string]: LevelUpCost[]; };
358
+ type: string;
359
+ uniEquipGetTime: number;
360
+ charEquipOrder: number;
361
+ };
362
+ data: {
363
+ phases: {
364
+ equipLevel: number;
365
+ parts: {
366
+ resKey: string;
367
+ target: string;
368
+ isToken: boolean;
369
+ addOrOverrideTalentDataBundle: {
370
+ candidates: {
371
+ displayRangeId: boolean;
372
+ upgradeDescription: string;
373
+ talentIndex: number;
374
+ unlockCondition: OperatorUnlockCond;
375
+ requiredPotentialRank: number;
376
+ prefabKey: string;
377
+ name: string;
378
+ description: string;
379
+ rangeId: string;
380
+ blackboard: Blackboard[];
381
+ }[];
382
+ };
383
+ overrideTraitDataBundle: {
384
+ candidates: {
385
+ additionalDescription: string;
386
+ unlockCondition: OperatorUnlockCond;
387
+ requiredPotentialRank: number;
388
+ blackboard: Blackboard[];
389
+ overrideDescripton: string;
390
+ prefabKey: string;
391
+ rangeId: string;
392
+ }[];
393
+ };
394
+ }[];
395
+ attributeBlackboard: Blackboard[];
396
+ tokenAttributeBlackboard: { [key: string]: Blackboard[]; };
397
+ }[];
398
+ };
399
+ };
400
+
401
+ export type Operator = {
402
+ id: string;
403
+ recruit: number;
404
+ archetype: string;
405
+ range: GridRange;
406
+ skills: Skill[];
407
+ modules: Module[];
408
+ skins: Skin[];
409
+ bases: {
410
+ condition: {
411
+ buffId: string;
412
+ cond: OperatorUnlockCond;
413
+ };
414
+ skill: Base;
415
+ }[];
416
+ paradox: Paradox;
417
+ data: {
418
+ name: string;
419
+ description: string;
420
+ canUseGeneralPotentialItem: boolean;
421
+ potentialItemId: string;
422
+ nationId: string;
423
+ groupId: string;
424
+ teamId: string;
425
+ displayNumber: string;
426
+ tokenKey: string;
427
+ appellation: string;
428
+ position: string;
429
+ tagList: string[];
430
+ itemUsage: string;
431
+ itemDesc: string;
432
+ itemObtainApproach: string;
433
+ isNotObtainable: boolean;
434
+ isSpChar: boolean;
435
+ maxPotentialLevel: number;
436
+ rarity: string;
437
+ profession: string;
438
+ subProfessionId: string;
439
+ trait: {
440
+ candidates: {
441
+ unlockCondition: OperatorUnlockCond;
442
+ requiredPotentialRank: number;
443
+ blackboard: Blackboard[];
444
+ overrideDescripton: string;
445
+ prefabKey: string;
446
+ rangeId: string;
447
+ }[];
448
+ };
449
+ phases: {
450
+ characterPrefabKey: string;
451
+ rangeId: string;
452
+ maxLevel: number;
453
+ attributesKeyFrames: AttributesKeyFrame[];
454
+ evolveCost: LevelUpCost[];
455
+ }[];
456
+ skills: {
457
+ skillId: string;
458
+ overridePrefabKey: string;
459
+ overrideTokenKey: string;
460
+ levelUpCostCond: LevelUpCostCond[];
461
+ unlockCond: OperatorUnlockCond;
462
+ }[];
463
+ talents: {
464
+ candidates: {
465
+ unlockCondition: OperatorUnlockCond;
466
+ requiredPotentialRank: number;
467
+ prefabKey: string;
468
+ name: string;
469
+ description: string;
470
+ rangeId: string;
471
+ blackboard: Blackboard[];
472
+ }[];
473
+ }[];
474
+ potentialRanks: {
475
+ type: number;
476
+ description: string;
477
+ buff: {
478
+ attributes: {
479
+ abnormalFlags: null;
480
+ abnormalImmunes: null;
481
+ abnormalAntis: null;
482
+ abnormalCombos: null;
483
+ abnormalComboImmunes: null;
484
+ attributeModifiers: {
485
+ attributeType: number;
486
+ formulaItem: number;
487
+ value: number;
488
+ loadFromBlackboard: boolean;
489
+ fetchBaseValueFromSourceEntity: boolean;
490
+ }[];
491
+ };
492
+ };
493
+ equivalentCost: null;
494
+ }[];
495
+ favorKeyFrames: AttributesKeyFrame[];
496
+ allSkillLvlup: {
497
+ unlockCond: OperatorUnlockCond;
498
+ lvlUpCost: LevelUpCost[];
499
+ }[];
500
+ };
501
+ };
502
+
503
+ export type OperatorUnlockCond = {
504
+ phase: string;
505
+ level: number;
506
+ };
507
+
508
+ export type Paradox = {
509
+ excel: {
510
+ charId: string;
511
+ stageId: string;
512
+ levelId: string;
513
+ zoneId: string;
514
+ code: string;
515
+ name: string;
516
+ loadingPicId: string;
517
+ description: string;
518
+ unlockParam: {
519
+ unlockType: number;
520
+ unlockParam1: string;
521
+ unlockParam2: string;
522
+ unlockParam3: null;
523
+ }[];
524
+ rewardItem: {
525
+ id: string;
526
+ count: number;
527
+ type: string;
528
+ }[];
529
+ stageNameForShow: string;
530
+ zoneNameForShow: string;
531
+ picId: string;
532
+ stageGetTime: number;
533
+ };
534
+ levels: StageData;
535
+ };
536
+
537
+ export type RogueTheme = {
538
+ name: string;
539
+ stageDict: { [key: string]: RogueStage };
540
+ toughStageDict: { [key: string]: RogueStage };
541
+ relicDict: { [key: string]: RogueRelic };
542
+ variationDict: { [key: string]: RogueVariation };
543
+ };
544
+
545
+ export type RogueRelic = {
546
+ id: string;
547
+ name: string;
548
+ description: string;
549
+ usage: string;
550
+ obtainApproach: string;
551
+ iconId: string;
552
+ type: string;
553
+ subType: string;
554
+ rarity: string;
555
+ value: number;
556
+ sortId: number;
557
+ canSacrifice: boolean;
558
+ unlockCondDesc: string;
559
+ };
560
+
561
+ export type RogueStage = {
562
+ excel: {
563
+ id: string;
564
+ linkedStageId: string;
565
+ levelId: string;
566
+ code: string;
567
+ name: string;
568
+ loadingPicId: string;
569
+ description: string;
570
+ eliteDesc: string;
571
+ isBoss: number;
572
+ isElite: number;
573
+ difficulty: string;
574
+ capsulePool: string;
575
+ capsuleProb: number;
576
+ vutresProb: number[];
577
+ boxProb: number[];
578
+ };
579
+ levels: StageData;
580
+ };
581
+
582
+ export type RogueVariation = {
583
+ id: string;
584
+ type: string;
585
+ outerName: string;
586
+ innerName: string;
587
+ functionDesc: string;
588
+ desc: string;
589
+ iconId: string;
590
+ sound: string;
591
+ };
592
+
593
+ export type SandboxAct = {
594
+ stageDict: { [key: string]: SandboxStage };
595
+ }
596
+
597
+ export type SandboxStage = {
598
+ excel: {
599
+ stageId: string;
600
+ levelId: string;
601
+ code: string;
602
+ name: string;
603
+ loadingPicId: string;
604
+ description: string;
605
+ actionCost: number;
606
+ powerCost: number;
607
+ };
608
+ levels: StageData;
609
+ }
610
+
611
+ export type Skill = {
612
+ skillId: string;
613
+ iconId: string;
614
+ hidden: boolean;
615
+ levels: {
616
+ name: string;
617
+ rangeId: string;
618
+ description: string;
619
+ skillType: string;
620
+ durationType: number;
621
+ spData: {
622
+ spType: string;
623
+ levelUpCost: null;
624
+ maxChargeTime: number;
625
+ spCost: number;
626
+ initSp: number;
627
+ increment: number;
628
+ };
629
+ prefabId: string;
630
+ duration: number;
631
+ blackboard: Blackboard[];
632
+ }[];
633
+ };
634
+
635
+ export type Skin = {
636
+ skinId: string;
637
+ charId: string;
638
+ tokenSkinMap: {
639
+ tokenId: string;
640
+ tokenSkinId: string;
641
+ }[];
642
+ illustId: string;
643
+ dynIllustId: string;
644
+ avatarId: string;
645
+ portraitId: string;
646
+ dynPortraitId: string;
647
+ dynEntranceId: string;
648
+ buildingId: string;
649
+ battleSkin: {
650
+ overwritePrefab: boolean;
651
+ skinOrPrefabId: string;
652
+ };
653
+ isBuySkin: boolean;
654
+ tmplId: string;
655
+ voiceId: string;
656
+ voiceType: string;
657
+ displaySkin: {
658
+ skinName: string;
659
+ colorList: [string, string, string, string, string];
660
+ titleList: [string, string];
661
+ modelName: string;
662
+ drawerList: string[];
663
+ skinGroupId: string;
664
+ skinGroupName: string;
665
+ skinGroupSortIndex: number;
666
+ content: string;
667
+ dialog: string;
668
+ usage: string;
669
+ description: string;
670
+ obtainApproach: string;
671
+ sortId: number;
672
+ displayTagId: string;
673
+ getTime: number;
674
+ onYear: number;
675
+ onPeriod: number;
676
+ };
677
+ };
678
+
679
+ export type Stage = {
680
+ excel: {
681
+ stageType: string;
682
+ difficulty: string;
683
+ performanceStageFlag: string;
684
+ diffGroup: string;
685
+ unlockCondition: {
686
+ stageId: string;
687
+ completeState: number;
688
+ }[];
689
+ stageId: string;
690
+ levelId: string;
691
+ zoneId: string;
692
+ code: string;
693
+ name: string;
694
+ description: string;
695
+ hardStagedId: string;
696
+ dangerLevel: string;
697
+ dangerPoint: number;
698
+ loadingPicId: string;
699
+ canPractice: boolean;
700
+ canBattleReplay: boolean;
701
+ apCost: number;
702
+ apFailReturn: number;
703
+ etItemId: string;
704
+ etCost: number;
705
+ etFailReturn: number;
706
+ etButtonStyle: string;
707
+ apProtectTimes: number;
708
+ diamondOnceDrop: number;
709
+ practiceTicketCost: number;
710
+ dailyStageDifficulty: number;
711
+ expGain: number;
712
+ goldGain: number;
713
+ loseExpGain: number;
714
+ loseGoldGain: number;
715
+ passFavor: number;
716
+ completeFavor: number;
717
+ slProgress: number;
718
+ displayMainItem: string;
719
+ hilightMark: boolean;
720
+ bossMark: boolean;
721
+ isPredefined: boolean;
722
+ isHardPredefined: boolean;
723
+ isSkillSelectablePredefined: boolean;
724
+ isStoryOnly: boolean;
725
+ appearanceStyle: number;
726
+ stageDropInfo: {
727
+ firstPassRewards: null;
728
+ firstCompleteRewards: null;
729
+ passRewards: null;
730
+ completeRewards: null;
731
+ displayRewards: {
732
+ type: string;
733
+ id: string;
734
+ dropType: string;
735
+ }[];
736
+ displayDetailRewards: {
737
+ occPercent: number;
738
+ type: string;
739
+ id: string;
740
+ dropType: string;
741
+ }[];
742
+ };
743
+ startButtonOverrideId: string;
744
+ isStagePatch: boolean;
745
+ mainStageId: string;
746
+ };
747
+ levels: StageData;
748
+ };
749
+
750
+ export type StageData = {
751
+ options: {
752
+ characterLimit: number;
753
+ maxLifePoint: number;
754
+ initialCost: number;
755
+ maxCost: number;
756
+ costIncreaseTime: number;
757
+ moveMultiplier: number;
758
+ steeringEnabled: boolean;
759
+ isTrainingLevel: boolean;
760
+ isHardTrainingLevel: boolean;
761
+ functionDisableMask: number;
762
+ };
763
+ levelId: string;
764
+ mapId: string;
765
+ bgmEvent: string;
766
+ environmentSe: string;
767
+ mapData: {
768
+ map: number[][];
769
+ tiles: {
770
+ tileKey: string;
771
+ heightType: number;
772
+ buildableType: number;
773
+ passableMask: number;
774
+ playerSideMask: number;
775
+ blackboard: Blackboard;
776
+ effects: StageEffect[];
777
+ }[];
778
+ blockEdges: null;
779
+ tags: string[];
780
+ effects: StageEffect[];
781
+ layerRects: string[];
782
+ width: number;
783
+ height: number;
784
+ };
785
+ tilesDisallowToLocate: any[];
786
+ runes: {
787
+ difficultyMask: number;
788
+ key: string;
789
+ professionMask: number;
790
+ buildableMask: number;
791
+ blackboard: Blackboard[];
792
+ }[];
793
+ globalBuffs: {
794
+ prefabKey: string;
795
+ blackboard: Blackboard[];
796
+ overrideCameraEffect: null;
797
+ passProfessionMaskFlag: boolean;
798
+ professionMask: number;
799
+ }[];
800
+ routes: {
801
+ motionMode: number;
802
+ startPosition: {
803
+ row: number;
804
+ col: number;
805
+ };
806
+ endPosition: {
807
+ row: number;
808
+ col: number;
809
+ };
810
+ spawnRandomRange: {
811
+ x: number;
812
+ y: number;
813
+ };
814
+ spawnOffset: {
815
+ x: number;
816
+ y: number;
817
+ };
818
+ checkpoints: {
819
+ type: number;
820
+ time: number;
821
+ position: {
822
+ row: number;
823
+ col: number;
824
+ };
825
+ reachOffset: {
826
+ x: number;
827
+ y: number;
828
+ };
829
+ randomizeReachOffset: boolean;
830
+ reachDistance: number;
831
+ }[];
832
+ allowDiagonalMove: boolean;
833
+ visitEveryTileCenter: boolean;
834
+ visitEveryNodeCenter: boolean;
835
+ visitEveryCheckPoint: boolean;
836
+ }[];
837
+ extraRoutes: any[];
838
+ enemies: any[];
839
+ enemyDbRefs: {
840
+ useDb: boolean;
841
+ id: string;
842
+ level: number;
843
+ overwrittenData: {
844
+ name: {
845
+ m_defined: boolean;
846
+ m_value: number;
847
+ };
848
+ description: {
849
+ m_defined: boolean;
850
+ m_value: number;
851
+ };
852
+ prefabKey: {
853
+ m_defined: boolean;
854
+ m_value: number;
855
+ };
856
+ attributes: EnemyAttributes;
857
+ lifePointReduce: {
858
+ m_defined: boolean;
859
+ m_value: number;
860
+ };
861
+ rangeRadius: {
862
+ m_defined: boolean;
863
+ m_value: number;
864
+ };
865
+ talentBlackboard: Blackboard[];
866
+ skills: EnemySkills[];
867
+ spData: EnemySpData;
868
+ };
869
+ }[];
870
+ waves: {
871
+ preDelay: number;
872
+ postDelay: number;
873
+ maxTimeWaitingForNextWave: number;
874
+ fragments: {
875
+ preDelay: number;
876
+ actions: {
877
+ actionType: number;
878
+ managedByScheduler: boolean;
879
+ key: string;
880
+ count: number;
881
+ preDelay: number;
882
+ interval: number;
883
+ routeIndex: number;
884
+ blockFragment: boolean;
885
+ autoPreviewRoute: boolean;
886
+ isUnharmfulAndAlwaysCountAsKilled: boolean;
887
+ hiddenGroup: string
888
+ randomSpawnGroupKey: string;
889
+ weight: number;
890
+ dontBlockWave: boolean;
891
+ }[];
892
+ name: string;
893
+ }[];
894
+ }[];
895
+ branches: {
896
+ frosts: {
897
+ phases: {
898
+ preDelay: number;
899
+ actions: {
900
+ actionType: number;
901
+ managedByScheduler: boolean;
902
+ key: string;
903
+ count: number;
904
+ preDelay: number;
905
+ interval: number;
906
+ routeIndex: number;
907
+ blockFragment: boolean;
908
+ autoPreviewRoute: boolean;
909
+ isUnharmfulAndAlwaysCountAsKilled: boolean;
910
+ hiddenGroup: string;
911
+ randomSpawnGroupKey: string;
912
+ weight: number;
913
+ weightValue: number;
914
+ }[];
915
+ }[];
916
+ };
917
+ };
918
+ predefines: StageDefines;
919
+ hardPredefines: StageDefines;
920
+ excludeCharIdList: null;
921
+ randomSeed: number;
922
+ operaConfig: string;
923
+ };
924
+
925
+ export type StageEffect = {
926
+ key: string;
927
+ offset: {
928
+ x: number;
929
+ y: number;
930
+ z: number;
931
+ },
932
+ direction: number;
933
+ };
934
+
935
+ export type StageDefines = {
936
+ characterInsts: any[];
937
+ tokenInsts: {
938
+ position: {
939
+ row: number;
940
+ col: number;
941
+ };
942
+ direction: number;
943
+ hidden: boolean;
944
+ alias: string;
945
+ uniEquipIds: {
946
+ key: string;
947
+ level: number;
948
+ }[];
949
+ inst: {
950
+ characterKey: string;
951
+ level: number;
952
+ phase: number;
953
+ favorPoint: number;
954
+ potentialRank: number;
955
+ }
956
+ ;
957
+ skillIndex: number;
958
+ mainSkillLvl: number;
959
+ skinId: string;
960
+ tmplId: string;
961
+ overrideSkillBlackboard: Blackboard[];
962
+ }[];
963
+ characterCards: any[];
964
+ tokenCards: any[];
965
+ };