hella-types 0.2.28 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.ts CHANGED
@@ -1,5 +1,71 @@
1
1
  import * as z from 'zod';
2
2
 
3
+ const AppearanceStyle = ['HIGH_DIFFICULTY', 'MAIN_NORMAL', 'MAIN_PREDEFINED', 'MIST_OPS', 'SPECIAL_STORY', 'SUB', 'TRAINING'] as const;
4
+ const AttributeType = ['ATK', 'ATTACK_SPEED', 'COST', 'DEF', 'MAGIC_RESISTANCE', 'MAX_HP', 'RESPAWN_TIME'] as const;
5
+ const BlockMask = ['FLY_ONLY', 'NONE', 'WALK_ONLY'] as const;
6
+ const BuildableMask = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
7
+ const BuildableType = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
8
+ const BuffCategory = ['FUNCTION', 'OUTPUT', 'RECOVERY'] as const;
9
+ const BuffType = ['M_ASC', 'M_DIAMOND', 'M_EXP', 'M_GOLD', 'W_ASC', 'W_BUILDING', 'W_EVOLVE', 'W_SKILL'] as const;
10
+ const CardinalDirection = ['DOWN', 'LEFT', 'RIGHT', 'UP'] as const;
11
+ const CheckpointType = ['APPEAR_AT_POS', 'DISAPPEAR', 'MAP_OFFSET_MOVE', 'MOVE', 'PATROL_MOVE', 'WAIT_BOSSRUSH_WAVE', 'WAIT_CURRENT_FRAGMENT_TIME', 'WAIT_CURRENT_WAVE_TIME', 'WAIT_FOR_SECONDS'] as const;
12
+ const CompleteState = ['COMPLETE', 'PASS'] as const;
13
+ const DropType = ['ADDITIONAL', 'COMPLETE', 'CONDITION_DROP', 'NORMAL', 'ONCE', 'SPECIAL'] as const;
14
+ const DurationType = ['AMMO', 'NONE'] as const;
15
+ const EnemyApplyWay = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
16
+ const EnemyLevelType = ['BOSS', 'ELITE', 'NORMAL'] as const;
17
+ const EnemyMotion = ['FLY', 'WALK'] as const;
18
+ const EnemySpType = ['INCREASE_WHEN_ATTACK', 'INCREASE_WHEN_TAKEN_DAMAGE', 'INCREASE_WITH_TIME', 'NONE'] as const;
19
+ const EvolvePhase = ['PHASE_0', 'PHASE_2'] as const;
20
+ const FormulaItem = ['ADDITION'] as const;
21
+ const FormulaType = ['F_ASC', 'F_BUILDING', 'F_DIAMOND', 'F_EVOLVE', 'F_EXP', 'F_GOLD', 'F_SKILL'] as const;
22
+ const GameEventDisplayType = ['BRANCHLINE', 'MINISTORY', 'NONE', 'SIDESTORY'] as const;
23
+ const GameEventType = ['APRIL_FOOL', 'ARCADE', 'AUTOCHESS_SEASON', 'AUTOCHESS_VERIFY1', 'BLESS_ONLY', 'BOSS_RUSH', 'CHECKIN_ACCESS', 'CHECKIN_ALL_PLAYER', 'CHECKIN_ONLY', 'CHECKIN_VS', 'COLLECTION', 'DEFAULT', 'ENEMY_DUEL', 'FLIP_ONLY', 'FLOAT_PARADE', 'GRID_GACHA', 'GRID_GACHA_V2', 'HALFIDLE_VERIFY1', 'INTERLOCK', 'LOGIN_ONLY', 'MAINLINE_BP', 'MAIN_BUFF', 'MINISTORY', 'MISSION_ONLY', 'MULTIPLAY', 'MULTIPLAY_V3', 'MULTIPLAY_VERIFY2', 'PRAY_ONLY', 'RECRUIT_ONLY', 'ROGUELIKE', 'SWITCH_ONLY', 'TEAM_QUEST', 'TYPE_ACT12SIDE', 'TYPE_ACT13SIDE', 'TYPE_ACT17D7', 'TYPE_ACT17SIDE', 'TYPE_ACT20SIDE', 'TYPE_ACT21SIDE', 'TYPE_ACT24SIDE', 'TYPE_ACT25SIDE', 'TYPE_ACT27SIDE', 'TYPE_ACT29SIDE', 'TYPE_ACT35SIDE', 'TYPE_ACT36SIDE', 'TYPE_ACT38SIDE', 'TYPE_ACT3D0', 'TYPE_ACT42D0', 'TYPE_ACT42SIDE', 'TYPE_ACT44SIDE', 'TYPE_ACT45SIDE', 'TYPE_ACT46SIDE', 'TYPE_ACT4D0', 'TYPE_ACT5D0', 'TYPE_ACT5D1', 'TYPE_ACT9D0', 'TYPE_MAINSS', 'UNIQUE_ONLY', 'VEC_BREAK', 'VEC_BREAK_V2', 'YEAR_5_GENERAL'] as const;
24
+ const GameEventRecType = ['CANNOT_COMPLETE', 'CAN_COMPLETE', 'SPECIAL'] as const;
25
+ const HeightType = ['HIGHLAND', 'LOWLAND'] as const;
26
+ const ItemClassifyType = ['CONSUME', 'MATERIAL', 'NONE', 'NORMAL'] as const;
27
+ const ItemItemType = ['ACTIVITY_COIN', 'ACTIVITY_ITEM', 'ACTIVITY_POTENTIAL', 'AP_BASE', 'AP_GAMEPLAY', 'AP_ITEM', 'AP_SUPPLY', 'CARD_EXP', 'CLASSIC_FES_PICK_TIER_5', 'CLASSIC_FES_PICK_TIER_6', 'CLASSIC_SHD', 'CLASSIC_TKT_GACHA', 'CLASSIC_TKT_GACHA_10', 'CRS_RUNE_COIN', 'CRS_SHOP_COIN', 'CRS_SHOP_COIN_V2', 'DIAMOND', 'DIAMOND_SHD', 'EMOTICON_SET', 'EPGS_COIN', 'ET_STAGE', 'EXCLUSIVE_TKT_GACHA', 'EXCLUSIVE_TKT_GACHA_10', 'EXP_PLAYER', 'EXTERMINATION_AGENT', 'FAVOR_ADD_ITEM', 'GOLD', 'HGG_SHD', 'ITEM_PACK', 'LGG_SHD', 'LIMITED_BUFF', 'LIMITED_TKT_GACHA_10', 'LINKAGE_TKT_GACHA_10', 'LMTGS_COIN', 'MATERIAL', 'MATERIAL_ISSUE_VOUCHER', 'MCARD_VOUCHER', 'MEDAL', 'NEW_PROGRESS', 'OPTIONAL_VOUCHER_PICK', 'RENAMING_CARD', 'REP_COIN', 'RETRO_COIN', 'RETURN_CREDIT', 'RETURN_PROGRESS', 'RL_COIN', 'SANDBOX_TOKEN', 'SOCIAL_PT', 'TKT_GACHA', 'TKT_GACHA_10', 'TKT_GACHA_PRSV', 'TKT_INST_FIN', 'TKT_RECRUIT', 'TKT_TRY', 'UNI_COLLECTION', 'VOUCHER_CGACHA', 'VOUCHER_ELITE_II_4', 'VOUCHER_ELITE_II_5', 'VOUCHER_ELITE_II_6', 'VOUCHER_FULL_POTENTIAL', 'VOUCHER_LEVELMAX_4', 'VOUCHER_LEVELMAX_5', 'VOUCHER_LEVELMAX_6', 'VOUCHER_MGACHA', 'VOUCHER_PICK', 'VOUCHER_SKILL_SPECIALLEVELMAX_4', 'VOUCHER_SKILL_SPECIALLEVELMAX_5', 'VOUCHER_SKILL_SPECIALLEVELMAX_6', 'VOUCHER_SKIN'] as const;
28
+ const ItemItemTypeLegacyNumeric = [85, 86, 87, 88, 90] as const;
29
+ const ItemRarity = ['TIER_1', 'TIER_2', 'TIER_3', 'TIER_4', 'TIER_5', 'TIER_6'] as const;
30
+ const LevelUpCostType = ['GOLD', 'MATERIAL'] as const;
31
+ const ModuleType = ['ADVANCED', 'INITIAL'] as const;
32
+ const MotionMode = ['E_NUM', 'FLY', 'WALK'] as const;
33
+ const OccPer = ['ALMOST', 'ALWAYS', 'OFTEN', 'SOMETIMES', 'USUAL'] as const;
34
+ const OperatorPhase = ['PHASE_0', 'PHASE_1', 'PHASE_2'] as const;
35
+ const OperatorPosition = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
36
+ const OperatorProfession = ['CASTER', 'MEDIC', 'PIONEER', 'SNIPER', 'SPECIAL', 'SUPPORT', 'TANK', 'TOKEN', 'TRAP', 'WARRIOR'] as const;
37
+ const ParadoxUnlockType = ['AWAKE'] as const;
38
+ const PassableMask = ['ALL', 'FLY_ONLY', 'NONE'] as const;
39
+ const PerformanceStageFlag = ['NORMAL_STAGE', 'PERFORMANCE_STAGE'] as const;
40
+ const PlayerSideMask = ['ALL', 'NONE', 'SIDE_B'] as const;
41
+ const PotentialRankType = ['BUFF', 'CUSTOM'] as const;
42
+ const ProgressType = ['ONCE', 'PROGRESS'] as const;
43
+ const Rarity = ['TIER_1', 'TIER_2', 'TIER_3', 'TIER_4', 'TIER_5', 'TIER_6'] as const;
44
+ const RefreshType = ['ALWAYS', 'NEVER', 'PER_DAY', 'PER_SEASON', 'PER_SETTLE_DAY'] as const;
45
+ const RewardType = ['ACTIVITY_ITEM', 'CARD_EXP', 'CHAR', 'CHARM', 'DIAMOND', 'ET_STAGE', 'FURN', 'GOLD', 'MATERIAL', 'PLOT_ITEM', 'TKT_RECRUIT'] as const;
46
+ const RoomType = ['CONTROL', 'DORMITORY', 'HIRE', 'MANUFACTURE', 'MEETING', 'POWER', 'TRADING', 'TRAINING', 'WORKSHOP'] as const;
47
+ const RogueRelicSubType = ['CURSE', 'NONE', 'RED_CAPSULE', 'SECRET', 'SINGLE_RAND_FREE', 'TEMP_TICKET', 'TOTEM_LOWER', 'TOTEM_UPPER'] as const;
48
+ const RogueRelicType = ['ABSTRACT_DISASTER', 'ACTIVE_TOOL', 'BIGPILL', 'CHAOS', 'CHAOS_LEVEL', 'CHAOS_PURIFY', 'COPPER', 'COPPER_BUFF', 'COPPER_DRAW_NUM', 'CUSTOM_TICKET', 'DICE_POINT', 'DICE_TYPE', 'DISASTER', 'DISASTER_TYPE', 'DIVINATION_KIT', 'EXP', 'EXPLORE_TOOL', 'FEATURE', 'FRAGMENT', 'GOLD', 'HP', 'HPMAX', 'KEY_POINT', 'LOCKED_TREASURE', 'MAX_WEIGHT', 'PILL', 'POPULATION', 'RECRUIT_TICKET', 'RELIC', 'SAN_POINT', 'SHIELD', 'SPECIAL_ZONE_AP', 'SQUAD_CAPACITY', 'STASH_RECRUIT_LIMIT', 'TOTEM', 'TOTEM_EFFECT', 'UPGRADE_TICKET', 'VISION', 'WRATH'] as const;
49
+ const RogueStageDifficulty = ['FOUR_STAR', 'NORMAL'] as const;
50
+ const RogueVariationType = ['BAT', 'MAP', 'RES'] as const;
51
+ const SandboxCraftType = ['BASE_BUILDING', 'COMBAT_BUILDING', 'TACTICAL'] as const;
52
+ const SandboxDrinkType = ['FOOD', 'FOODMAT'] as const;
53
+ const SandboxFoodAttribute = ['ATTACK', 'ENHANCED', 'NONE', 'SURVIVE'] as const;
54
+ const SandboxFoodEffectType = ['ATTACK', 'COOLDOWN', 'COST', 'SKILL_POINT', 'SPECIAL', 'SURVIVE'] as const;
55
+ const SandboxFoodVariantType = ['ALPHA', 'BETA', 'GAMMA', 'NONE'] as const;
56
+ const SandboxItemType = ['ANIMAL', 'BUILDING', 'BUILDINGMAT', 'COIN', 'CRAFT', 'FOOD', 'FOODMAT', 'INSECT', 'PLACEHOLDER', 'SLUGITEM', 'SPECIALMAT', 'STAMINAPOT', 'TACTICAL'] as const;
57
+ const SandboxWeatherType = ['DESERT', 'NORMAL', 'RAINFOREST', 'VOLCANO'] as const;
58
+ const SkillSpType = ['INCREASE_WHEN_ATTACK', 'INCREASE_WHEN_TAKEN_DAMAGE', 'INCREASE_WITH_TIME', 'NONE'] as const;
59
+ const SkillType = ['AUTO', 'MANUAL', 'PASSIVE'] as const;
60
+ const SpTargetType = ['NONE', 'ROGUE'] as const;
61
+ const StageActionType = ['ACTIVATE_PREDEFINED', 'BATTLE_EVENTS', 'DIALOG', 'DISPLAY_ENEMY_INFO', 'EMPTY', 'PLAY_BGM', 'PLAY_OPERA', 'PREVIEW_CURSOR', 'SPAWN', 'STORY', 'TRIGGER_PREDEFINED', 'WITHDRAW_PREDEFINED'] as const;
62
+ const StageDifficulty = ['FOUR_STAR', 'NORMAL', 'SIX_STAR'] as const;
63
+ const StageDiffGroup = ['ALL', 'EASY', 'NONE', 'NORMAL', 'TOUGH'] as const;
64
+ const StageRandomType = ['ALWAYS', 'NEVER', 'PER_DAY', 'PER_SEASON', 'PER_SETTLE_DAY'] as const;
65
+ const StageType = ['ACTIVITY', 'CAMPAIGN', 'CLIMB_TOWER', 'DAILY', 'GUIDE', 'MAIN', 'PERMANENT', 'SPECIAL_STORY', 'SUB', 'TEMPORARY'] as const;
66
+ const VoucherItemType = ['MATERIAL_ISSUE_VOUCHER', 'OPTIONAL_VOUCHER_PICK'] as const;
67
+ const VoiceType = ['ALL', 'ILLUST', 'NONE'] as const;
68
+
3
69
  const BlackboardZod = z.strictObject({
4
70
  key: z.string().nullable(),
5
71
  value: z.number().nullable().optional(),
@@ -94,7 +160,7 @@ const EnemySkillsZod = z.strictObject({
94
160
  blackboard: z.array(BlackboardZod).nullable(),
95
161
  });
96
162
  const EnemySpDataZod = z.strictObject({
97
- spType: z.string(),
163
+ spType: z.enum(EnemySpType),
98
164
  maxSp: z.number(),
99
165
  initSp: z.number(),
100
166
  increment: z.number(),
@@ -120,7 +186,7 @@ const EnemyDataZod = z.strictObject({
120
186
  const LevelUpCostZod = z.strictObject({
121
187
  id: z.string(),
122
188
  count: z.number(),
123
- type: z.string(),
189
+ type: z.enum(LevelUpCostType),
124
190
  });
125
191
  const ManufactFormulaZod = z.strictObject({
126
192
  formulaId: z.string(),
@@ -128,8 +194,8 @@ const ManufactFormulaZod = z.strictObject({
128
194
  count: z.number(),
129
195
  weight: z.number(),
130
196
  costPoint: z.number(),
131
- formulaType: z.string(),
132
- buffType: z.string(),
197
+ formulaType: z.enum(FormulaType),
198
+ buffType: z.enum(BuffType),
133
199
  costs: z.array(LevelUpCostZod),
134
200
  requireRooms: z.array(
135
201
  z.strictObject({
@@ -153,8 +219,8 @@ const WorkshopFormulaZod = z.strictObject({
153
219
  count: z.number(),
154
220
  goldCost: z.number(),
155
221
  apCost: z.number(),
156
- formulaType: z.string(),
157
- buffType: z.string(),
222
+ formulaType: z.enum(FormulaType),
223
+ buffType: z.enum(BuffType),
158
224
  extraOutcomeRate: z.number(),
159
225
  extraOutcomeGroup: z.array(
160
226
  z.strictObject({
@@ -179,7 +245,7 @@ const WorkshopFormulaZod = z.strictObject({
179
245
  ),
180
246
  });
181
247
  const OperatorUnlockCondZod = z.strictObject({
182
- phase: z.union([z.string(), z.number()]),
248
+ phase: z.union([z.enum(OperatorPhase), z.number()]),
183
249
  level: z.number(),
184
250
  });
185
251
  const LevelUpCostCondZod = z.strictObject({
@@ -209,7 +275,7 @@ const StageCardZod = z.strictObject({
209
275
  inst: z.strictObject({
210
276
  characterKey: z.string(),
211
277
  level: z.number(),
212
- phase: z.union([z.string(), z.number()]).optional(),
278
+ phase: z.union([z.enum(OperatorPhase), z.number()]).optional(),
213
279
  favorPoint: z.number(),
214
280
  potentialRank: z.number(),
215
281
  }),
@@ -224,7 +290,7 @@ const StageInstZod = StageCardZod.extend({
224
290
  row: z.number(),
225
291
  col: z.number(),
226
292
  }),
227
- direction: z.union([z.string(), z.number()]).optional(),
293
+ direction: z.union([z.enum(CardinalDirection), z.number()]).optional(),
228
294
  });
229
295
  const StageDefinesZod = z.strictObject({
230
296
  characterInsts: z.array(StageInstZod),
@@ -239,10 +305,10 @@ const StageEffectZod = z.strictObject({
239
305
  y: z.number(),
240
306
  z: z.number(),
241
307
  }),
242
- direction: z.union([z.string(), z.number()]),
308
+ direction: z.union([z.enum(CardinalDirection), z.number()]),
243
309
  });
244
310
  const StageActionZod = z.strictObject({
245
- actionType: z.union([z.string(), z.number()]),
311
+ actionType: z.union([z.enum(StageActionType), z.number()]),
246
312
  managedByScheduler: z.boolean(),
247
313
  key: z.string(),
248
314
  count: z.number(),
@@ -256,8 +322,8 @@ const StageActionZod = z.strictObject({
256
322
  hiddenGroup: z.string().nullable(),
257
323
  randomSpawnGroupKey: z.string().nullable().optional(),
258
324
  randomSpawnGroupPackKey: z.string().nullable().optional(),
259
- randomType: z.union([z.string(), z.number()]).optional(),
260
- refreshType: z.string().optional(),
325
+ randomType: z.union([z.enum(StageRandomType), z.number()]).optional(),
326
+ refreshType: z.union([z.enum(RefreshType), z.number()]).optional(),
261
327
  weight: z.number().optional(),
262
328
  dontBlockWave: z.boolean().optional(),
263
329
  isValid: z.boolean().optional(),
@@ -266,7 +332,7 @@ const StageActionZod = z.strictObject({
266
332
  forceBlockWaveInBranch: z.boolean().optional(),
267
333
  });
268
334
  const StageRouteZod = z.strictObject({
269
- motionMode: z.union([z.string(), z.number()]),
335
+ motionMode: z.union([z.enum(MotionMode), z.number()]),
270
336
  startPosition: z.strictObject({
271
337
  row: z.number(),
272
338
  col: z.number(),
@@ -285,7 +351,7 @@ const StageRouteZod = z.strictObject({
285
351
  }),
286
352
  checkpoints: z.array(
287
353
  z.strictObject({
288
- type: z.union([z.string(), z.number()]),
354
+ type: z.union([z.enum(CheckpointType), z.number()]),
289
355
  time: z.number(),
290
356
  position: z.strictObject({
291
357
  row: z.number(),
@@ -307,8 +373,8 @@ const StageRouteZod = z.strictObject({
307
373
  const StageRune = z.strictObject({
308
374
  difficultyMask: z.union([z.string(), z.number()]),
309
375
  key: z.string(),
310
- professionMask: z.union([z.string(), z.number()]).optional(),
311
- buildableMask: z.union([z.string(), z.number()]),
376
+ professionMask: z.union([z.enum(['NONE', 'PIONEER', 'WARRIOR', 'TANK', 'SNIPER', 'CASTER', 'MEDIC', 'SUPPORT', 'SPECIAL', 'TRAP']), z.number()]).optional(),
377
+ buildableMask: z.union([z.enum(BuildableMask), z.number()]),
312
378
  blackboard: z.array(BlackboardZod),
313
379
  });
314
380
  const StageDataZod = z.strictObject({
@@ -337,10 +403,10 @@ const StageDataZod = z.strictObject({
337
403
  tiles: z.array(
338
404
  z.strictObject({
339
405
  tileKey: z.string(),
340
- heightType: z.union([z.string(), z.number()]),
341
- buildableType: z.union([z.string(), z.number()]),
342
- passableMask: z.union([z.string(), z.number()]),
343
- playerSideMask: z.union([z.string(), z.number()]).optional(),
406
+ heightType: z.union([z.enum(HeightType), z.number()]),
407
+ buildableType: z.union([z.enum(BuildableType), z.number()]),
408
+ passableMask: z.union([z.enum(PassableMask), z.number()]),
409
+ playerSideMask: z.union([z.enum(PlayerSideMask), z.number()]).optional(),
344
410
  blackboard: z.array(BlackboardZod).nullable(),
345
411
  effects: z.array(StageEffectZod).nullable(),
346
412
  })
@@ -350,8 +416,8 @@ const StageDataZod = z.strictObject({
350
416
  row: z.number(),
351
417
  col: z.number(),
352
418
  }),
353
- direction: z.union([z.string(), z.number()]),
354
- blockMask: z.union([z.string(), z.number()]),
419
+ direction: z.union([z.enum(CardinalDirection), z.number()]),
420
+ blockMask: z.union([z.enum(BlockMask), z.number()]),
355
421
  })).nullable(),
356
422
  tags: z.array(z.string()).nullable(),
357
423
  effects: z.array(StageEffectZod).nullable(),
@@ -480,8 +546,8 @@ export const BaseZod = z.strictObject({
480
546
  sortId: z.number(),
481
547
  buffColor: z.string(),
482
548
  textColor: z.string(),
483
- buffCategory: z.string(),
484
- roomType: z.string(),
549
+ buffCategory: z.enum(BuffCategory),
550
+ roomType: z.enum(RoomType),
485
551
  description: z.string(),
486
552
  });
487
553
  export const CCStageLegacyZod = z.strictObject({
@@ -498,7 +564,7 @@ export const CCStageZod = z.strictObject({
498
564
  stageId: z.string(),
499
565
  mapId: z.string(),
500
566
  levelId: z.string(),
501
- stageType: z.string(),
567
+ stageType: z.enum(StageType),
502
568
  code: z.string(),
503
569
  name: z.string(),
504
570
  loadingPicId: z.string(),
@@ -682,8 +748,8 @@ export const GachaPoolZod = z.strictObject({
682
748
  });
683
749
  export const GameEventZod = z.strictObject({
684
750
  id: z.string(),
685
- type: z.union([z.string(), z.number()]),
686
- displayType: z.string(),
751
+ type: z.enum(GameEventType),
752
+ displayType: z.enum(GameEventDisplayType),
687
753
  name: z.string(),
688
754
  startTime: z.number(),
689
755
  endTime: z.number(),
@@ -696,7 +762,7 @@ export const GameEventZod = z.strictObject({
696
762
  isReplicate: z.boolean(),
697
763
  needFixedSync: z.boolean(),
698
764
  trapDomainId: z.string().nullable(),
699
- recType: z.string().nullable(),
765
+ recType: z.enum(GameEventRecType).nullable(),
700
766
  isPageEntry: z.boolean(),
701
767
  isMagnify: z.boolean(),
702
768
  picGroup: z.array(z.strictObject({
@@ -730,7 +796,7 @@ export const ItemZod = z.strictObject({
730
796
  itemId: z.string(),
731
797
  name: z.string(),
732
798
  description: z.string().nullable(),
733
- rarity: z.string(),
799
+ rarity: z.enum(ItemRarity),
734
800
  iconId: z.string(),
735
801
  overrideBkg: z.null(),
736
802
  stackIconId: z.string().nullable(),
@@ -738,12 +804,12 @@ export const ItemZod = z.strictObject({
738
804
  usage: z.string().nullable(),
739
805
  obtainApproach: z.string().nullable(),
740
806
  hideInItemGet: z.boolean(),
741
- classifyType: z.string(),
742
- itemType: z.union([z.string(), z.number()]),
807
+ classifyType: z.enum(ItemClassifyType),
808
+ itemType: z.enum(ItemItemType).or(z.union([z.literal(85), z.literal(86), z.literal(87), z.literal(88), z.literal(90)])),
743
809
  stageDropList: z.array(
744
810
  z.strictObject({
745
811
  stageId: z.string(),
746
- occPer: z.string(),
812
+ occPer: z.enum(OccPer),
747
813
  })
748
814
  ),
749
815
  buildingProductList: z.array(
@@ -755,7 +821,7 @@ export const ItemZod = z.strictObject({
755
821
  voucherRelateList: z.array(
756
822
  z.strictObject({
757
823
  voucherId: z.string(),
758
- voucherItemType: z.string(),
824
+ voucherItemType: z.enum(VoucherItemType),
759
825
  })
760
826
  ).nullable(),
761
827
  }),
@@ -771,8 +837,8 @@ export const ModuleZod = z.strictObject({
771
837
  typeName1: z.string(),
772
838
  typeName2: z.string().nullable(),
773
839
  equipShiningColor: z.string(),
774
- showEvolvePhase: z.string(),
775
- unlockEvolvePhase: z.string(),
840
+ showEvolvePhase: z.enum(EvolvePhase),
841
+ unlockEvolvePhase: z.enum(EvolvePhase),
776
842
  charId: z.string(),
777
843
  tmplId: z.string().nullable(),
778
844
  showLevel: z.number(),
@@ -785,7 +851,7 @@ export const ModuleZod = z.strictObject({
785
851
  3: z.number(),
786
852
  }).nullable(),
787
853
  itemCost: z.record(z.string(), z.array(LevelUpCostZod)).nullable(),
788
- type: z.string(),
854
+ type: z.enum(ModuleType),
789
855
  uniEquipGetTime: z.number(),
790
856
  uniEquipShowEnd: z.number(),
791
857
  charEquipOrder: z.number(),
@@ -858,7 +924,7 @@ export const ParadoxZod = z.strictObject({
858
924
  description: z.string(),
859
925
  unlockParam: z.array(
860
926
  z.strictObject({
861
- unlockType: z.string(),
927
+ unlockType: z.enum(ParadoxUnlockType),
862
928
  unlockParam1: z.string(),
863
929
  unlockParam2: z.string(),
864
930
  unlockParam3: z.null(),
@@ -883,8 +949,8 @@ export const RogueRelicZod = z.strictObject({
883
949
  obtainApproach: z.string(),
884
950
  iconId: z.string(),
885
951
  itemIconGroupId: z.string().nullable(),
886
- type: z.string(),
887
- subType: z.string(),
952
+ type: z.enum(RogueRelicType),
953
+ subType: z.enum(RogueRelicSubType),
888
954
  rarity: z.string(),
889
955
  sortId: z.number(),
890
956
  canSacrifice: z.boolean(),
@@ -905,7 +971,7 @@ export const RogueStageZod = z.strictObject({
905
971
  eliteDesc: z.string().nullable(),
906
972
  isBoss: z.number(),
907
973
  isElite: z.number(),
908
- difficulty: z.string(),
974
+ difficulty: z.enum(RogueStageDifficulty),
909
975
  capsulePool: z.string().nullable(),
910
976
  capsuleProb: z.number(),
911
977
  vutresProb: z.array(z.number()),
@@ -918,7 +984,7 @@ export const RogueStageZod = z.strictObject({
918
984
  });
919
985
  export const RogueVariationZod = z.strictObject({
920
986
  id: z.string(),
921
- type: z.string(),
987
+ type: z.enum(RogueVariationType),
922
988
  outerName: z.string(),
923
989
  innerName: z.string(),
924
990
  functionDesc: z.string(),
@@ -936,7 +1002,7 @@ export const RogueThemeZod = z.strictObject({
936
1002
  export const SandboxItemZod = z.strictObject({
937
1003
  craft: z.strictObject({
938
1004
  itemId: z.string(),
939
- type: z.string(),
1005
+ type: z.enum(SandboxCraftType),
940
1006
  buildingUnlockDesc: z.string(),
941
1007
  materialItems: z.record(z.string(), z.number()),
942
1008
  upgradeItems: z.record(z.string(), z.number()).nullable(),
@@ -949,27 +1015,27 @@ export const SandboxItemZod = z.strictObject({
949
1015
  }).nullable(),
950
1016
  drink: z.strictObject({
951
1017
  id: z.string(),
952
- type: z.string(),
1018
+ type: z.enum(SandboxDrinkType),
953
1019
  count: z.number(),
954
1020
  }).nullable(),
955
1021
  foodMat: z.strictObject({
956
1022
  id: z.string(),
957
1023
  type: z.string(),
958
- attribute: z.string(),
959
- variantType: z.string(),
1024
+ attribute: z.enum(SandboxFoodAttribute),
1025
+ variantType: z.enum(SandboxFoodVariantType),
960
1026
  bonusDuration: z.number(),
961
1027
  buffDesc: z.string().nullable(),
962
1028
  sortId: z.number(),
963
1029
  }).nullable(),
964
1030
  food: z.strictObject({
965
1031
  id: z.string(),
966
- attributes: z.array(z.string()),
1032
+ attributes: z.array(z.enum(SandboxFoodEffectType)),
967
1033
  recipes: z.array(z.strictObject({
968
1034
  foodId: z.string(),
969
1035
  mats: z.array(z.string()),
970
1036
  })).nullable(),
971
1037
  variants: z.array(z.strictObject({
972
- type: z.string(),
1038
+ type: z.enum(SandboxFoodVariantType),
973
1039
  name: z.string(),
974
1040
  usage: z.string(),
975
1041
  })),
@@ -978,7 +1044,7 @@ export const SandboxItemZod = z.strictObject({
978
1044
  }).nullable(),
979
1045
  data: z.strictObject({
980
1046
  itemId: z.string(),
981
- itemType: z.string(),
1047
+ itemType: z.enum(SandboxItemType),
982
1048
  itemName: z.string(),
983
1049
  itemUsage: z.string(),
984
1050
  itemDesc: z.string(),
@@ -1003,7 +1069,7 @@ export const SandboxWeatherZod = z.strictObject({
1003
1069
  weatherId: z.string(),
1004
1070
  name: z.string(),
1005
1071
  weatherLevel: z.number(),
1006
- weatherType: z.string(),
1072
+ weatherType: z.enum(SandboxWeatherType),
1007
1073
  weatherTypeName: z.string(),
1008
1074
  weatherIconId: z.string(),
1009
1075
  functionDesc: z.string(),
@@ -1027,10 +1093,10 @@ export const SkillZod = z.strictObject({
1027
1093
  name: z.string(),
1028
1094
  rangeId: z.string().nullable(),
1029
1095
  description: z.string().nullable(),
1030
- skillType: z.string(),
1031
- durationType: z.string(),
1096
+ skillType: z.enum(SkillType),
1097
+ durationType: z.enum(DurationType),
1032
1098
  spData: z.strictObject({
1033
- spType: z.union([z.string(), z.number()]),
1099
+ spType: z.enum(SkillSpType).or(z.literal(8)),
1034
1100
  levelUpCost: z.null(),
1035
1101
  maxChargeTime: z.number(),
1036
1102
  spCost: z.number(),
@@ -1069,7 +1135,7 @@ export const SkinZod = z.strictObject({
1069
1135
  isBuySkin: z.boolean(),
1070
1136
  tmplId: z.string().nullable(),
1071
1137
  voiceId: z.string().nullable(),
1072
- voiceType: z.string(),
1138
+ voiceType: z.enum(VoiceType),
1073
1139
  displaySkin: z.strictObject({
1074
1140
  skinName: z.string().nullable(),
1075
1141
  colorList: z.array(z.string()).nullable(),
@@ -1094,14 +1160,14 @@ export const SkinZod = z.strictObject({
1094
1160
  });
1095
1161
  export const StageZod = z.strictObject({
1096
1162
  excel: z.strictObject({
1097
- stageType: z.string(),
1098
- difficulty: z.string(),
1099
- performanceStageFlag: z.string(),
1100
- diffGroup: z.string(),
1163
+ stageType: z.enum(StageType),
1164
+ difficulty: z.enum(StageDifficulty),
1165
+ performanceStageFlag: z.enum(PerformanceStageFlag),
1166
+ diffGroup: z.enum(StageDiffGroup),
1101
1167
  unlockCondition: z.array(
1102
1168
  z.strictObject({
1103
1169
  stageId: z.string(),
1104
- completeState: z.string(),
1170
+ completeState: z.enum(CompleteState),
1105
1171
  })
1106
1172
  ),
1107
1173
  stageId: z.string(),
@@ -1142,7 +1208,7 @@ export const StageZod = z.strictObject({
1142
1208
  isHardPredefined: z.boolean(),
1143
1209
  isSkillSelectablePredefined: z.boolean(),
1144
1210
  isStoryOnly: z.boolean(),
1145
- appearanceStyle: z.string(),
1211
+ appearanceStyle: z.enum(AppearanceStyle),
1146
1212
  stageDropInfo: z.strictObject({
1147
1213
  firstPassRewards: z.null(),
1148
1214
  firstCompleteRewards: z.null(),
@@ -1150,17 +1216,17 @@ export const StageZod = z.strictObject({
1150
1216
  completeRewards: z.null(),
1151
1217
  displayRewards: z.array(
1152
1218
  z.strictObject({
1153
- type: z.string(),
1219
+ type: z.enum(RewardType),
1154
1220
  id: z.string(),
1155
- dropType: z.string(),
1221
+ dropType: z.enum(DropType),
1156
1222
  })
1157
1223
  ),
1158
1224
  displayDetailRewards: z.array(
1159
1225
  z.strictObject({
1160
1226
  occPercent: z.string(),
1161
- type: z.string(),
1227
+ type: z.enum(RewardType),
1162
1228
  id: z.string(),
1163
- dropType: z.string(),
1229
+ dropType: z.enum(DropType),
1164
1230
  })
1165
1231
  ),
1166
1232
  }),
@@ -1185,11 +1251,11 @@ export const StageZod = z.strictObject({
1185
1251
  z.strictObject({
1186
1252
  id: z.string(),
1187
1253
  count: z.number(),
1188
- type: z.string(),
1254
+ type: z.enum(RewardType),
1189
1255
  })
1190
1256
  ),
1191
1257
  progressInfo: z.strictObject({
1192
- progressType: z.string(),
1258
+ progressType: z.enum(ProgressType),
1193
1259
  descList: z.record(z.string(), z.string()),
1194
1260
  })
1195
1261
  })
@@ -1213,7 +1279,7 @@ export const DeployableZod = z.strictObject({
1213
1279
  name: z.string(),
1214
1280
  description: z.string().nullable(),
1215
1281
  sortIndex: z.number(),
1216
- spTargetType: z.string(),
1282
+ spTargetType: z.enum(SpTargetType),
1217
1283
  spTargetId: z.string().nullable(),
1218
1284
  canUseGeneralPotentialItem: z.boolean(),
1219
1285
  canUseActivityPotentialItem: z.boolean(),
@@ -1237,7 +1303,7 @@ export const DeployableZod = z.strictObject({
1237
1303
  ).nullable(),
1238
1304
  displayNumber: z.string().nullable(),
1239
1305
  appellation: z.string(),
1240
- position: z.string(),
1306
+ position: z.enum(OperatorPosition),
1241
1307
  tagList: z.array(z.string()).nullable(),
1242
1308
  itemUsage: z.string().nullable(),
1243
1309
  itemDesc: z.string().nullable(),
@@ -1245,8 +1311,8 @@ export const DeployableZod = z.strictObject({
1245
1311
  isNotObtainable: z.boolean(),
1246
1312
  isSpChar: z.boolean(),
1247
1313
  maxPotentialLevel: z.number(),
1248
- rarity: z.string(),
1249
- profession: z.string(),
1314
+ rarity: z.enum(Rarity),
1315
+ profession: z.enum(OperatorProfession),
1250
1316
  subProfessionId: z.string(),
1251
1317
  trait: z.strictObject({
1252
1318
  candidates: z.array(
@@ -1266,7 +1332,7 @@ export const DeployableZod = z.strictObject({
1266
1332
  rangeId: z.string().nullable(),
1267
1333
  maxLevel: z.number(),
1268
1334
  attributesKeyFrames: z.array(AttributesKeyFrameZod),
1269
- evolveCost: z.union([z.array(LevelUpCostZod), z.null()]),
1335
+ evolveCost: z.array(LevelUpCostZod).nullable(),
1270
1336
  })
1271
1337
  ),
1272
1338
  skills: z.array(DeploySkillZod),
@@ -1290,7 +1356,7 @@ export const DeployableZod = z.strictObject({
1290
1356
  ).nullable(),
1291
1357
  potentialRanks: z.array(
1292
1358
  z.strictObject({
1293
- type: z.string(),
1359
+ type: z.enum(PotentialRankType),
1294
1360
  description: z.string(),
1295
1361
  buff: z.strictObject({
1296
1362
  attributes: z.strictObject({
@@ -1301,8 +1367,8 @@ export const DeployableZod = z.strictObject({
1301
1367
  abnormalComboImmunes: z.null(),
1302
1368
  attributeModifiers: z.array(
1303
1369
  z.strictObject({
1304
- attributeType: z.string(),
1305
- formulaItem: z.string(),
1370
+ attributeType: z.enum(AttributeType),
1371
+ formulaItem: z.enum(FormulaItem),
1306
1372
  value: z.number(),
1307
1373
  loadFromBlackboard: z.boolean(),
1308
1374
  fetchBaseValueFromSourceEntity: z.boolean(),