hella-types 0.2.28 → 0.3.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.
package/src/index.ts CHANGED
@@ -1,5 +1,75 @@
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 EnemyAbilityListTextFormat = ['NORMAL', 'SILENCE', 'TITLE'] as const;
16
+ const EnemyApplyWay = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
17
+ const EnemyDamageType = ['PHYSIC', 'MAGIC', 'NO_DAMAGE', 'HEAL'] as const;
18
+ const EnemyEnemyLevel = ['NORMAL', 'ELITE', 'BOSS'] as const;
19
+ const EnemyLevelType = ['BOSS', 'ELITE', 'NORMAL'] as const;
20
+ const EnemyMotion = ['FLY', 'WALK'] as const;
21
+ const EnemySpType = ['INCREASE_WHEN_ATTACK', 'INCREASE_WHEN_TAKEN_DAMAGE', 'INCREASE_WITH_TIME', 'NONE'] as const;
22
+ const EvolvePhase = ['PHASE_0', 'PHASE_2'] as const;
23
+ const FormulaItem = ['ADDITION'] as const;
24
+ const FormulaType = ['F_ASC', 'F_BUILDING', 'F_DIAMOND', 'F_EVOLVE', 'F_EXP', 'F_GOLD', 'F_SKILL'] as const;
25
+ const GachaGachaRuleType = ['ATTAIN', 'CLASSIC', 'CLASSIC_ATTAIN', 'CLASSIC_DOUBLE', 'DOUBLE', 'FESCLASSIC', 'LIMITED', 'LINKAGE', 'NORMAL', 'SINGLE', 'SPECIAL'] as const;
26
+ const GameEventDisplayType = ['BRANCHLINE', 'MINISTORY', 'NONE', 'SIDESTORY'] as const;
27
+ 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;
28
+ const GameEventRecType = ['CANNOT_COMPLETE', 'CAN_COMPLETE', 'SPECIAL'] as const;
29
+ const HeightType = ['HIGHLAND', 'LOWLAND'] as const;
30
+ const ItemClassifyType = ['CONSUME', 'MATERIAL', 'NONE', 'NORMAL'] as const;
31
+ 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;
32
+ const ItemRarity = ['TIER_1', 'TIER_2', 'TIER_3', 'TIER_4', 'TIER_5', 'TIER_6'] as const;
33
+ const LevelUpCostType = ['GOLD', 'MATERIAL'] as const;
34
+ const ModuleType = ['ADVANCED', 'INITIAL'] as const;
35
+ const MotionMode = ['E_NUM', 'FLY', 'WALK'] as const;
36
+ const OccPer = ['ALMOST', 'ALWAYS', 'OFTEN', 'SOMETIMES', 'USUAL'] as const;
37
+ const OperatorPhase = ['PHASE_0', 'PHASE_1', 'PHASE_2'] as const;
38
+ const OperatorPosition = ['ALL', 'MELEE', 'NONE', 'RANGED'] as const;
39
+ const OperatorProfession = ['CASTER', 'MEDIC', 'PIONEER', 'SNIPER', 'SPECIAL', 'SUPPORT', 'TANK', 'TOKEN', 'TRAP', 'WARRIOR'] as const;
40
+ const ParadoxUnlockType = ['AWAKE'] as const;
41
+ const PassableMask = ['ALL', 'FLY_ONLY', 'NONE'] as const;
42
+ const PerformanceStageFlag = ['NORMAL_STAGE', 'PERFORMANCE_STAGE'] as const;
43
+ const PlayerSideMask = ['ALL', 'NONE', 'SIDE_B'] as const;
44
+ const PotentialRankType = ['BUFF', 'CUSTOM'] as const;
45
+ const ProgressType = ['ONCE', 'PROGRESS'] as const;
46
+ const Rarity = ['TIER_1', 'TIER_2', 'TIER_3', 'TIER_4', 'TIER_5', 'TIER_6'] as const;
47
+ const RefreshType = ['ALWAYS', 'NEVER', 'PER_DAY', 'PER_SEASON', 'PER_SETTLE_DAY'] as const;
48
+ const RewardType = ['ACTIVITY_ITEM', 'CARD_EXP', 'CHAR', 'CHARM', 'DIAMOND', 'ET_STAGE', 'FURN', 'GOLD', 'MATERIAL', 'PLOT_ITEM', 'TKT_RECRUIT'] as const;
49
+ const RoomType = ['CONTROL', 'DORMITORY', 'HIRE', 'MANUFACTURE', 'MEETING', 'POWER', 'TRADING', 'TRAINING', 'WORKSHOP'] as const;
50
+ const RogueRelicSubType = ['CURSE', 'NONE', 'RED_CAPSULE', 'SECRET', 'SINGLE_RAND_FREE', 'TEMP_TICKET', 'TOTEM_LOWER', 'TOTEM_UPPER'] as const;
51
+ 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;
52
+ const RogueStageDifficulty = ['FOUR_STAR', 'NORMAL'] as const;
53
+ const RogueVariationType = ['BAT', 'MAP', 'RES'] as const;
54
+ const SandboxCraftType = ['BASE_BUILDING', 'COMBAT_BUILDING', 'TACTICAL'] as const;
55
+ const SandboxDrinkType = ['FOOD', 'FOODMAT'] as const;
56
+ const SandboxFoodAttribute = ['ATTACK', 'ENHANCED', 'NONE', 'SURVIVE'] as const;
57
+ const SandboxFoodEffectType = ['ATTACK', 'COOLDOWN', 'COST', 'SKILL_POINT', 'SPECIAL', 'SURVIVE'] as const;
58
+ const SandboxFoodVariantType = ['ALPHA', 'BETA', 'GAMMA', 'NONE'] as const;
59
+ const SandboxItemType = ['ANIMAL', 'BUILDING', 'BUILDINGMAT', 'COIN', 'CRAFT', 'FOOD', 'FOODMAT', 'INSECT', 'PLACEHOLDER', 'SLUGITEM', 'SPECIALMAT', 'STAMINAPOT', 'TACTICAL'] as const;
60
+ const SandboxWeatherType = ['DESERT', 'NORMAL', 'RAINFOREST', 'VOLCANO'] as const;
61
+ const SkillSpType = ['INCREASE_WHEN_ATTACK', 'INCREASE_WHEN_TAKEN_DAMAGE', 'INCREASE_WITH_TIME', 'NONE'] as const;
62
+ const SkillType = ['AUTO', 'MANUAL', 'PASSIVE'] as const;
63
+ const SpTargetType = ['NONE', 'ROGUE'] as const;
64
+ 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;
65
+ const StageDifficulty = ['FOUR_STAR', 'NORMAL', 'SIX_STAR'] as const;
66
+ const StageDiffGroup = ['ALL', 'EASY', 'NONE', 'NORMAL', 'TOUGH'] as const;
67
+ const StageRandomType = ['ALWAYS', 'NEVER', 'PER_DAY', 'PER_SEASON', 'PER_SETTLE_DAY'] as const;
68
+ const StageRuneProfessionMask = ['NONE', 'PIONEER', 'WARRIOR', 'TANK', 'SNIPER', 'CASTER', 'MEDIC', 'SUPPORT', 'SPECIAL', 'TRAP'] as const;
69
+ const StageType = ['ACTIVITY', 'CAMPAIGN', 'CLIMB_TOWER', 'DAILY', 'GUIDE', 'MAIN', 'PERMANENT', 'SPECIAL_STORY', 'SUB', 'TEMPORARY'] as const;
70
+ const VoucherItemType = ['MATERIAL_ISSUE_VOUCHER', 'OPTIONAL_VOUCHER_PICK'] as const;
71
+ const VoiceType = ['ALL', 'ILLUST', 'NONE'] as const;
72
+
3
73
  const BlackboardZod = z.strictObject({
4
74
  key: z.string().nullable(),
5
75
  value: z.number().nullable().optional(),
@@ -94,7 +164,7 @@ const EnemySkillsZod = z.strictObject({
94
164
  blackboard: z.array(BlackboardZod).nullable(),
95
165
  });
96
166
  const EnemySpDataZod = z.strictObject({
97
- spType: z.string(),
167
+ spType: z.enum(EnemySpType),
98
168
  maxSp: z.number(),
99
169
  initSp: z.number(),
100
170
  increment: z.number(),
@@ -120,7 +190,7 @@ const EnemyDataZod = z.strictObject({
120
190
  const LevelUpCostZod = z.strictObject({
121
191
  id: z.string(),
122
192
  count: z.number(),
123
- type: z.string(),
193
+ type: z.enum(LevelUpCostType),
124
194
  });
125
195
  const ManufactFormulaZod = z.strictObject({
126
196
  formulaId: z.string(),
@@ -128,8 +198,8 @@ const ManufactFormulaZod = z.strictObject({
128
198
  count: z.number(),
129
199
  weight: z.number(),
130
200
  costPoint: z.number(),
131
- formulaType: z.string(),
132
- buffType: z.string(),
201
+ formulaType: z.enum(FormulaType),
202
+ buffType: z.enum(BuffType),
133
203
  costs: z.array(LevelUpCostZod),
134
204
  requireRooms: z.array(
135
205
  z.strictObject({
@@ -153,8 +223,8 @@ const WorkshopFormulaZod = z.strictObject({
153
223
  count: z.number(),
154
224
  goldCost: z.number(),
155
225
  apCost: z.number(),
156
- formulaType: z.string(),
157
- buffType: z.string(),
226
+ formulaType: z.enum(FormulaType),
227
+ buffType: z.enum(BuffType),
158
228
  extraOutcomeRate: z.number(),
159
229
  extraOutcomeGroup: z.array(
160
230
  z.strictObject({
@@ -179,7 +249,7 @@ const WorkshopFormulaZod = z.strictObject({
179
249
  ),
180
250
  });
181
251
  const OperatorUnlockCondZod = z.strictObject({
182
- phase: z.union([z.string(), z.number()]),
252
+ phase: z.union([z.enum(OperatorPhase), z.number()]),
183
253
  level: z.number(),
184
254
  });
185
255
  const LevelUpCostCondZod = z.strictObject({
@@ -209,7 +279,7 @@ const StageCardZod = z.strictObject({
209
279
  inst: z.strictObject({
210
280
  characterKey: z.string(),
211
281
  level: z.number(),
212
- phase: z.union([z.string(), z.number()]).optional(),
282
+ phase: z.union([z.enum(OperatorPhase), z.number()]).optional(),
213
283
  favorPoint: z.number(),
214
284
  potentialRank: z.number(),
215
285
  }),
@@ -224,7 +294,7 @@ const StageInstZod = StageCardZod.extend({
224
294
  row: z.number(),
225
295
  col: z.number(),
226
296
  }),
227
- direction: z.union([z.string(), z.number()]).optional(),
297
+ direction: z.union([z.enum(CardinalDirection), z.number()]).optional(),
228
298
  });
229
299
  const StageDefinesZod = z.strictObject({
230
300
  characterInsts: z.array(StageInstZod),
@@ -239,10 +309,10 @@ const StageEffectZod = z.strictObject({
239
309
  y: z.number(),
240
310
  z: z.number(),
241
311
  }),
242
- direction: z.union([z.string(), z.number()]),
312
+ direction: z.union([z.enum(CardinalDirection), z.number()]),
243
313
  });
244
314
  const StageActionZod = z.strictObject({
245
- actionType: z.union([z.string(), z.number()]),
315
+ actionType: z.union([z.enum(StageActionType), z.number()]),
246
316
  managedByScheduler: z.boolean(),
247
317
  key: z.string(),
248
318
  count: z.number(),
@@ -256,8 +326,8 @@ const StageActionZod = z.strictObject({
256
326
  hiddenGroup: z.string().nullable(),
257
327
  randomSpawnGroupKey: z.string().nullable().optional(),
258
328
  randomSpawnGroupPackKey: z.string().nullable().optional(),
259
- randomType: z.union([z.string(), z.number()]).optional(),
260
- refreshType: z.string().optional(),
329
+ randomType: z.union([z.enum(StageRandomType), z.number()]).optional(),
330
+ refreshType: z.union([z.enum(RefreshType), z.number()]).optional(),
261
331
  weight: z.number().optional(),
262
332
  dontBlockWave: z.boolean().optional(),
263
333
  isValid: z.boolean().optional(),
@@ -266,7 +336,7 @@ const StageActionZod = z.strictObject({
266
336
  forceBlockWaveInBranch: z.boolean().optional(),
267
337
  });
268
338
  const StageRouteZod = z.strictObject({
269
- motionMode: z.union([z.string(), z.number()]),
339
+ motionMode: z.union([z.enum(MotionMode), z.number()]),
270
340
  startPosition: z.strictObject({
271
341
  row: z.number(),
272
342
  col: z.number(),
@@ -285,7 +355,7 @@ const StageRouteZod = z.strictObject({
285
355
  }),
286
356
  checkpoints: z.array(
287
357
  z.strictObject({
288
- type: z.union([z.string(), z.number()]),
358
+ type: z.union([z.enum(CheckpointType), z.number()]),
289
359
  time: z.number(),
290
360
  position: z.strictObject({
291
361
  row: z.number(),
@@ -307,8 +377,8 @@ const StageRouteZod = z.strictObject({
307
377
  const StageRune = z.strictObject({
308
378
  difficultyMask: z.union([z.string(), z.number()]),
309
379
  key: z.string(),
310
- professionMask: z.union([z.string(), z.number()]).optional(),
311
- buildableMask: z.union([z.string(), z.number()]),
380
+ professionMask: z.union([z.enum(StageRuneProfessionMask), z.number()]).optional(),
381
+ buildableMask: z.union([z.enum(BuildableMask), z.number()]),
312
382
  blackboard: z.array(BlackboardZod),
313
383
  });
314
384
  const StageDataZod = z.strictObject({
@@ -337,10 +407,10 @@ const StageDataZod = z.strictObject({
337
407
  tiles: z.array(
338
408
  z.strictObject({
339
409
  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(),
410
+ heightType: z.union([z.enum(HeightType), z.number()]),
411
+ buildableType: z.union([z.enum(BuildableType), z.number()]),
412
+ passableMask: z.union([z.enum(PassableMask), z.number()]),
413
+ playerSideMask: z.union([z.enum(PlayerSideMask), z.number()]).optional(),
344
414
  blackboard: z.array(BlackboardZod).nullable(),
345
415
  effects: z.array(StageEffectZod).nullable(),
346
416
  })
@@ -350,8 +420,8 @@ const StageDataZod = z.strictObject({
350
420
  row: z.number(),
351
421
  col: z.number(),
352
422
  }),
353
- direction: z.union([z.string(), z.number()]),
354
- blockMask: z.union([z.string(), z.number()]),
423
+ direction: z.union([z.enum(CardinalDirection), z.number()]),
424
+ blockMask: z.union([z.enum(BlockMask), z.number()]),
355
425
  })).nullable(),
356
426
  tags: z.array(z.string()).nullable(),
357
427
  effects: z.array(StageEffectZod).nullable(),
@@ -413,8 +483,8 @@ const StageDataZod = z.strictObject({
413
483
  palsyImmune: z.boolean().optional(),
414
484
  attractImmune: z.boolean().optional(),
415
485
  }),
416
- applyWay: z.string(),
417
- motion: z.string(),
486
+ applyWay: z.enum(EnemyApplyWay),
487
+ motion: z.enum(EnemyMotion),
418
488
  enemyTags: z.array(z.string()).nullable(),
419
489
  notCountInTotal: z.boolean(),
420
490
  alias: z.null(),
@@ -422,7 +492,7 @@ const StageDataZod = z.strictObject({
422
492
  rangeRadius: z.number(),
423
493
  numOfExtraDrops: z.number(),
424
494
  viewRadius: z.number(),
425
- levelType: z.string(),
495
+ levelType: z.enum(EnemyLevelType),
426
496
  talentBlackboard: z.array(BlackboardZod).nullable(),
427
497
  skills: z.array(EnemySkillsZod).nullable(),
428
498
  spData: EnemySpDataZod.nullable(),
@@ -480,8 +550,8 @@ export const BaseZod = z.strictObject({
480
550
  sortId: z.number(),
481
551
  buffColor: z.string(),
482
552
  textColor: z.string(),
483
- buffCategory: z.string(),
484
- roomType: z.string(),
553
+ buffCategory: z.enum(BuffCategory),
554
+ roomType: z.enum(RoomType),
485
555
  description: z.string(),
486
556
  });
487
557
  export const CCStageLegacyZod = z.strictObject({
@@ -498,7 +568,7 @@ export const CCStageZod = z.strictObject({
498
568
  stageId: z.string(),
499
569
  mapId: z.string(),
500
570
  levelId: z.string(),
501
- stageType: z.string(),
571
+ stageType: z.enum(StageType),
502
572
  code: z.string(),
503
573
  name: z.string(),
504
574
  loadingPicId: z.string(),
@@ -526,7 +596,7 @@ export const EnemyZod = z.strictObject({
526
596
  enemyTags: z.array(z.string()).nullable(),
527
597
  sortId: z.number(),
528
598
  name: z.string(),
529
- enemyLevel: z.enum(['NORMAL', 'ELITE', 'BOSS']),
599
+ enemyLevel: z.enum(EnemyEnemyLevel),
530
600
  description: z.string().nullable(),
531
601
  attackType: z.null(),
532
602
  ability: z.null(),
@@ -537,11 +607,11 @@ export const EnemyZod = z.strictObject({
537
607
  abilityList: z.array(
538
608
  z.strictObject({
539
609
  text: z.string(),
540
- textFormat: z.enum(['NORMAL', 'SILENCE', 'TITLE'])
610
+ textFormat: z.enum(EnemyAbilityListTextFormat)
541
611
  })
542
612
  ),
543
613
  linkEnemies: z.array(z.string()),
544
- damageType: z.array(z.enum(['PHYSIC', 'MAGIC', 'NO_DAMAGE', 'HEAL'])),
614
+ damageType: z.array(z.enum(EnemyDamageType)),
545
615
  invisibleDetail: z.boolean(),
546
616
  }),
547
617
  levels: z.strictObject({
@@ -580,7 +650,7 @@ export const GachaPoolZod = z.strictObject({
580
650
  CDPrimColor: z.string().nullable(),
581
651
  CDSecColor: z.string().nullable(),
582
652
  freeBackColor: z.string().nullable().optional(),
583
- gachaRuleType: z.enum(['ATTAIN', 'CLASSIC', 'CLASSIC_ATTAIN', 'CLASSIC_DOUBLE', 'DOUBLE', 'FESCLASSIC', 'LIMITED', 'LINKAGE', 'NORMAL', 'SINGLE', 'SPECIAL']),
653
+ gachaRuleType: z.enum(GachaGachaRuleType),
584
654
  dynMeta: z.union([
585
655
  z.strictObject({
586
656
  chooseRuleConst: z.string(),
@@ -682,8 +752,8 @@ export const GachaPoolZod = z.strictObject({
682
752
  });
683
753
  export const GameEventZod = z.strictObject({
684
754
  id: z.string(),
685
- type: z.union([z.string(), z.number()]),
686
- displayType: z.string(),
755
+ type: z.enum(GameEventType),
756
+ displayType: z.enum(GameEventDisplayType),
687
757
  name: z.string(),
688
758
  startTime: z.number(),
689
759
  endTime: z.number(),
@@ -696,7 +766,7 @@ export const GameEventZod = z.strictObject({
696
766
  isReplicate: z.boolean(),
697
767
  needFixedSync: z.boolean(),
698
768
  trapDomainId: z.string().nullable(),
699
- recType: z.string().nullable(),
769
+ recType: z.enum(GameEventRecType).nullable(),
700
770
  isPageEntry: z.boolean(),
701
771
  isMagnify: z.boolean(),
702
772
  picGroup: z.array(z.strictObject({
@@ -730,7 +800,7 @@ export const ItemZod = z.strictObject({
730
800
  itemId: z.string(),
731
801
  name: z.string(),
732
802
  description: z.string().nullable(),
733
- rarity: z.string(),
803
+ rarity: z.enum(ItemRarity),
734
804
  iconId: z.string(),
735
805
  overrideBkg: z.null(),
736
806
  stackIconId: z.string().nullable(),
@@ -738,12 +808,12 @@ export const ItemZod = z.strictObject({
738
808
  usage: z.string().nullable(),
739
809
  obtainApproach: z.string().nullable(),
740
810
  hideInItemGet: z.boolean(),
741
- classifyType: z.string(),
742
- itemType: z.union([z.string(), z.number()]),
811
+ classifyType: z.enum(ItemClassifyType),
812
+ itemType: z.enum(ItemItemType).or(z.number()),
743
813
  stageDropList: z.array(
744
814
  z.strictObject({
745
815
  stageId: z.string(),
746
- occPer: z.string(),
816
+ occPer: z.enum(OccPer),
747
817
  })
748
818
  ),
749
819
  buildingProductList: z.array(
@@ -755,7 +825,7 @@ export const ItemZod = z.strictObject({
755
825
  voucherRelateList: z.array(
756
826
  z.strictObject({
757
827
  voucherId: z.string(),
758
- voucherItemType: z.string(),
828
+ voucherItemType: z.enum(VoucherItemType),
759
829
  })
760
830
  ).nullable(),
761
831
  }),
@@ -771,8 +841,8 @@ export const ModuleZod = z.strictObject({
771
841
  typeName1: z.string(),
772
842
  typeName2: z.string().nullable(),
773
843
  equipShiningColor: z.string(),
774
- showEvolvePhase: z.string(),
775
- unlockEvolvePhase: z.string(),
844
+ showEvolvePhase: z.enum(EvolvePhase),
845
+ unlockEvolvePhase: z.enum(EvolvePhase),
776
846
  charId: z.string(),
777
847
  tmplId: z.string().nullable(),
778
848
  showLevel: z.number(),
@@ -785,7 +855,7 @@ export const ModuleZod = z.strictObject({
785
855
  3: z.number(),
786
856
  }).nullable(),
787
857
  itemCost: z.record(z.string(), z.array(LevelUpCostZod)).nullable(),
788
- type: z.string(),
858
+ type: z.enum(ModuleType),
789
859
  uniEquipGetTime: z.number(),
790
860
  uniEquipShowEnd: z.number(),
791
861
  charEquipOrder: z.number(),
@@ -858,7 +928,7 @@ export const ParadoxZod = z.strictObject({
858
928
  description: z.string(),
859
929
  unlockParam: z.array(
860
930
  z.strictObject({
861
- unlockType: z.string(),
931
+ unlockType: z.enum(ParadoxUnlockType),
862
932
  unlockParam1: z.string(),
863
933
  unlockParam2: z.string(),
864
934
  unlockParam3: z.null(),
@@ -883,8 +953,8 @@ export const RogueRelicZod = z.strictObject({
883
953
  obtainApproach: z.string(),
884
954
  iconId: z.string(),
885
955
  itemIconGroupId: z.string().nullable(),
886
- type: z.string(),
887
- subType: z.string(),
956
+ type: z.enum(RogueRelicType),
957
+ subType: z.enum(RogueRelicSubType),
888
958
  rarity: z.string(),
889
959
  sortId: z.number(),
890
960
  canSacrifice: z.boolean(),
@@ -905,7 +975,7 @@ export const RogueStageZod = z.strictObject({
905
975
  eliteDesc: z.string().nullable(),
906
976
  isBoss: z.number(),
907
977
  isElite: z.number(),
908
- difficulty: z.string(),
978
+ difficulty: z.enum(RogueStageDifficulty),
909
979
  capsulePool: z.string().nullable(),
910
980
  capsuleProb: z.number(),
911
981
  vutresProb: z.array(z.number()),
@@ -918,7 +988,7 @@ export const RogueStageZod = z.strictObject({
918
988
  });
919
989
  export const RogueVariationZod = z.strictObject({
920
990
  id: z.string(),
921
- type: z.string(),
991
+ type: z.enum(RogueVariationType),
922
992
  outerName: z.string(),
923
993
  innerName: z.string(),
924
994
  functionDesc: z.string(),
@@ -936,7 +1006,7 @@ export const RogueThemeZod = z.strictObject({
936
1006
  export const SandboxItemZod = z.strictObject({
937
1007
  craft: z.strictObject({
938
1008
  itemId: z.string(),
939
- type: z.string(),
1009
+ type: z.enum(SandboxCraftType),
940
1010
  buildingUnlockDesc: z.string(),
941
1011
  materialItems: z.record(z.string(), z.number()),
942
1012
  upgradeItems: z.record(z.string(), z.number()).nullable(),
@@ -949,27 +1019,27 @@ export const SandboxItemZod = z.strictObject({
949
1019
  }).nullable(),
950
1020
  drink: z.strictObject({
951
1021
  id: z.string(),
952
- type: z.string(),
1022
+ type: z.enum(SandboxDrinkType),
953
1023
  count: z.number(),
954
1024
  }).nullable(),
955
1025
  foodMat: z.strictObject({
956
1026
  id: z.string(),
957
1027
  type: z.string(),
958
- attribute: z.string(),
959
- variantType: z.string(),
1028
+ attribute: z.enum(SandboxFoodAttribute),
1029
+ variantType: z.enum(SandboxFoodVariantType),
960
1030
  bonusDuration: z.number(),
961
1031
  buffDesc: z.string().nullable(),
962
1032
  sortId: z.number(),
963
1033
  }).nullable(),
964
1034
  food: z.strictObject({
965
1035
  id: z.string(),
966
- attributes: z.array(z.string()),
1036
+ attributes: z.array(z.enum(SandboxFoodEffectType)),
967
1037
  recipes: z.array(z.strictObject({
968
1038
  foodId: z.string(),
969
1039
  mats: z.array(z.string()),
970
1040
  })).nullable(),
971
1041
  variants: z.array(z.strictObject({
972
- type: z.string(),
1042
+ type: z.enum(SandboxFoodVariantType),
973
1043
  name: z.string(),
974
1044
  usage: z.string(),
975
1045
  })),
@@ -978,7 +1048,7 @@ export const SandboxItemZod = z.strictObject({
978
1048
  }).nullable(),
979
1049
  data: z.strictObject({
980
1050
  itemId: z.string(),
981
- itemType: z.string(),
1051
+ itemType: z.enum(SandboxItemType),
982
1052
  itemName: z.string(),
983
1053
  itemUsage: z.string(),
984
1054
  itemDesc: z.string(),
@@ -1003,7 +1073,7 @@ export const SandboxWeatherZod = z.strictObject({
1003
1073
  weatherId: z.string(),
1004
1074
  name: z.string(),
1005
1075
  weatherLevel: z.number(),
1006
- weatherType: z.string(),
1076
+ weatherType: z.enum(SandboxWeatherType),
1007
1077
  weatherTypeName: z.string(),
1008
1078
  weatherIconId: z.string(),
1009
1079
  functionDesc: z.string(),
@@ -1027,10 +1097,10 @@ export const SkillZod = z.strictObject({
1027
1097
  name: z.string(),
1028
1098
  rangeId: z.string().nullable(),
1029
1099
  description: z.string().nullable(),
1030
- skillType: z.string(),
1031
- durationType: z.string(),
1100
+ skillType: z.enum(SkillType),
1101
+ durationType: z.enum(DurationType),
1032
1102
  spData: z.strictObject({
1033
- spType: z.union([z.string(), z.number()]),
1103
+ spType: z.enum(SkillSpType).or(z.literal(8)),
1034
1104
  levelUpCost: z.null(),
1035
1105
  maxChargeTime: z.number(),
1036
1106
  spCost: z.number(),
@@ -1069,7 +1139,7 @@ export const SkinZod = z.strictObject({
1069
1139
  isBuySkin: z.boolean(),
1070
1140
  tmplId: z.string().nullable(),
1071
1141
  voiceId: z.string().nullable(),
1072
- voiceType: z.string(),
1142
+ voiceType: z.enum(VoiceType),
1073
1143
  displaySkin: z.strictObject({
1074
1144
  skinName: z.string().nullable(),
1075
1145
  colorList: z.array(z.string()).nullable(),
@@ -1094,14 +1164,14 @@ export const SkinZod = z.strictObject({
1094
1164
  });
1095
1165
  export const StageZod = z.strictObject({
1096
1166
  excel: z.strictObject({
1097
- stageType: z.string(),
1098
- difficulty: z.string(),
1099
- performanceStageFlag: z.string(),
1100
- diffGroup: z.string(),
1167
+ stageType: z.enum(StageType),
1168
+ difficulty: z.enum(StageDifficulty),
1169
+ performanceStageFlag: z.enum(PerformanceStageFlag),
1170
+ diffGroup: z.enum(StageDiffGroup),
1101
1171
  unlockCondition: z.array(
1102
1172
  z.strictObject({
1103
1173
  stageId: z.string(),
1104
- completeState: z.string(),
1174
+ completeState: z.enum(CompleteState),
1105
1175
  })
1106
1176
  ),
1107
1177
  stageId: z.string(),
@@ -1142,7 +1212,7 @@ export const StageZod = z.strictObject({
1142
1212
  isHardPredefined: z.boolean(),
1143
1213
  isSkillSelectablePredefined: z.boolean(),
1144
1214
  isStoryOnly: z.boolean(),
1145
- appearanceStyle: z.string(),
1215
+ appearanceStyle: z.enum(AppearanceStyle),
1146
1216
  stageDropInfo: z.strictObject({
1147
1217
  firstPassRewards: z.null(),
1148
1218
  firstCompleteRewards: z.null(),
@@ -1150,17 +1220,17 @@ export const StageZod = z.strictObject({
1150
1220
  completeRewards: z.null(),
1151
1221
  displayRewards: z.array(
1152
1222
  z.strictObject({
1153
- type: z.string(),
1223
+ type: z.enum(RewardType),
1154
1224
  id: z.string(),
1155
- dropType: z.string(),
1225
+ dropType: z.enum(DropType),
1156
1226
  })
1157
1227
  ),
1158
1228
  displayDetailRewards: z.array(
1159
1229
  z.strictObject({
1160
1230
  occPercent: z.string(),
1161
- type: z.string(),
1231
+ type: z.enum(RewardType),
1162
1232
  id: z.string(),
1163
- dropType: z.string(),
1233
+ dropType: z.enum(DropType),
1164
1234
  })
1165
1235
  ),
1166
1236
  }),
@@ -1185,11 +1255,11 @@ export const StageZod = z.strictObject({
1185
1255
  z.strictObject({
1186
1256
  id: z.string(),
1187
1257
  count: z.number(),
1188
- type: z.string(),
1258
+ type: z.enum(RewardType),
1189
1259
  })
1190
1260
  ),
1191
1261
  progressInfo: z.strictObject({
1192
- progressType: z.string(),
1262
+ progressType: z.enum(ProgressType),
1193
1263
  descList: z.record(z.string(), z.string()),
1194
1264
  })
1195
1265
  })
@@ -1213,7 +1283,7 @@ export const DeployableZod = z.strictObject({
1213
1283
  name: z.string(),
1214
1284
  description: z.string().nullable(),
1215
1285
  sortIndex: z.number(),
1216
- spTargetType: z.string(),
1286
+ spTargetType: z.enum(SpTargetType),
1217
1287
  spTargetId: z.string().nullable(),
1218
1288
  canUseGeneralPotentialItem: z.boolean(),
1219
1289
  canUseActivityPotentialItem: z.boolean(),
@@ -1237,7 +1307,7 @@ export const DeployableZod = z.strictObject({
1237
1307
  ).nullable(),
1238
1308
  displayNumber: z.string().nullable(),
1239
1309
  appellation: z.string(),
1240
- position: z.string(),
1310
+ position: z.enum(OperatorPosition),
1241
1311
  tagList: z.array(z.string()).nullable(),
1242
1312
  itemUsage: z.string().nullable(),
1243
1313
  itemDesc: z.string().nullable(),
@@ -1245,8 +1315,8 @@ export const DeployableZod = z.strictObject({
1245
1315
  isNotObtainable: z.boolean(),
1246
1316
  isSpChar: z.boolean(),
1247
1317
  maxPotentialLevel: z.number(),
1248
- rarity: z.string(),
1249
- profession: z.string(),
1318
+ rarity: z.enum(Rarity),
1319
+ profession: z.enum(OperatorProfession),
1250
1320
  subProfessionId: z.string(),
1251
1321
  trait: z.strictObject({
1252
1322
  candidates: z.array(
@@ -1266,7 +1336,7 @@ export const DeployableZod = z.strictObject({
1266
1336
  rangeId: z.string().nullable(),
1267
1337
  maxLevel: z.number(),
1268
1338
  attributesKeyFrames: z.array(AttributesKeyFrameZod),
1269
- evolveCost: z.union([z.array(LevelUpCostZod), z.null()]),
1339
+ evolveCost: z.array(LevelUpCostZod).nullable(),
1270
1340
  })
1271
1341
  ),
1272
1342
  skills: z.array(DeploySkillZod),
@@ -1290,7 +1360,7 @@ export const DeployableZod = z.strictObject({
1290
1360
  ).nullable(),
1291
1361
  potentialRanks: z.array(
1292
1362
  z.strictObject({
1293
- type: z.string(),
1363
+ type: z.enum(PotentialRankType),
1294
1364
  description: z.string(),
1295
1365
  buff: z.strictObject({
1296
1366
  attributes: z.strictObject({
@@ -1301,8 +1371,8 @@ export const DeployableZod = z.strictObject({
1301
1371
  abnormalComboImmunes: z.null(),
1302
1372
  attributeModifiers: z.array(
1303
1373
  z.strictObject({
1304
- attributeType: z.string(),
1305
- formulaItem: z.string(),
1374
+ attributeType: z.enum(AttributeType),
1375
+ formulaItem: z.enum(FormulaItem),
1306
1376
  value: z.number(),
1307
1377
  loadFromBlackboard: z.boolean(),
1308
1378
  fetchBaseValueFromSourceEntity: z.boolean(),