-
+
{transI18n("details")}
{skillSelected && avatarInfo?.SkillTrees && avatarData && (
diff --git a/src/helper/connect.ts b/src/helper/connect.ts
index 7827bb1..f85eb90 100644
--- a/src/helper/connect.ts
+++ b/src/helper/connect.ts
@@ -3,7 +3,7 @@ import { SendDataThroughProxy, SendDataToServer } from "@/lib/api/api"
import useConnectStore from "@/stores/connectStore"
import useUserDataStore from "@/stores/userDataStore"
import { converterToFreeSRJson } from "./converterToFreeSRJson"
-import { pSResponseSchema } from "@/zod"
+import { psResponseSchema } from "@/zod"
import useGlobalStore from "@/stores/globalStore"
export const connectToPS = async (): Promise<{ success: boolean, message: string }> => {
@@ -29,7 +29,7 @@ export const connectToPS = async (): Promise<{ success: boolean, message: string
} else if (response.error) {
return { success: false, message: response.error }
} else {
- const parsed = pSResponseSchema.safeParse(response.data)
+ const parsed = psResponseSchema.safeParse(response.data)
if (!parsed.success) {
return { success: false, message: "Invalid response schema" }
}
@@ -78,7 +78,7 @@ export const syncDataToPS = async (): Promise<{ success: boolean, message: strin
} else if (response.error) {
return { success: false, message: response.error }
} else {
- const parsed = pSResponseSchema.safeParse(response.data)
+ const parsed = psResponseSchema.safeParse(response.data)
if (!parsed.success) {
return { success: false, message: "Invalid response schema" }
}
diff --git a/src/lib/api/api.ts b/src/lib/api/api.ts
index c42dc2a..b269fcf 100644
--- a/src/lib/api/api.ts
+++ b/src/lib/api/api.ts
@@ -2,7 +2,7 @@
import { AffixDetail, ASDetail, CharacterDetail, ConfigMaze, FreeSRJson, LightConeDetail, MocDetail, MonsterDetail, PeakDetail, PFDetail, PSResponse, RelicDetail } from "@/types";
import axios from 'axios';
-import { pSResponseSchema } from "@/zod";
+import { psResponseSchema } from "@/zod";
import { ExtraData } from "@/types";
export async function getConfigMazeApi(): Promise
{
@@ -246,7 +246,7 @@ export async function SendDataToServer(
): Promise {
try {
const response = await axios.post(`${serverUrl}`, { username, password, data, extra_data: extraData })
- const parsed = pSResponseSchema.safeParse(response.data)
+ const parsed = psResponseSchema.safeParse(response.data)
if (!parsed.success) {
return "Invalid response schema";
}
diff --git a/src/types/asDetail.ts b/src/types/asDetail.ts
index 788f1d6..931f155 100644
--- a/src/types/asDetail.ts
+++ b/src/types/asDetail.ts
@@ -4,7 +4,7 @@ import { BuffDetail, OptionDetail } from "./pfDetail"
export interface ASDetail {
Id: number
Name: string
- Buff: BuffDetail
+ Buff?: BuffDetail
BuffList1: OptionDetail[]
BuffList2: OptionDetail[]
BeginTime: string
@@ -43,7 +43,7 @@ export interface BossTag {
Name: string
Desc: string
Param: number[]
- SkillID: number | null
+ SkillID?: number | null
ParamFix: number[]
Child: BossChildTag[]
}
@@ -57,7 +57,7 @@ export interface BossChildTag {
export interface BossDifficultyGuide {
Desc: string
Param: number[]
- SkillID: number | null
+ SkillID?: number | null
ParamFix: number[]
}
diff --git a/src/types/card.ts b/src/types/card.ts
index 9ae731f..c4ca0bc 100644
--- a/src/types/card.ts
+++ b/src/types/card.ts
@@ -20,6 +20,6 @@ export interface CharacterInfoCardType {
export interface AvatarProfileCardType {
key: number;
profile_name: string,
- lightcone: LightconeStore | null,
+ lightcone?: LightconeStore | null,
relics: Record
}
\ No newline at end of file
diff --git a/src/types/characterDetail.ts b/src/types/characterDetail.ts
index 99b4bb9..0601490 100644
--- a/src/types/characterDetail.ts
+++ b/src/types/characterDetail.ts
@@ -1,4 +1,4 @@
-/* eslint-disable @typescript-eslint/no-explicit-any */
+
export interface CharacterDetail {
Name: string;
Desc: string;
@@ -21,8 +21,8 @@ export interface CharacterDetail {
export interface EnhancedType {
Descs: string[];
- ChangeRankList: any;
- ChangeSkillTreeList: any;
+ ChangeRankList: unknown;
+ ChangeSkillTreeList: unknown;
Ranks: Record;
Skills: Record;
SkillTrees: Record>;
@@ -113,7 +113,7 @@ export interface Memosprite {
SpeedSkill: number;
Aggro: number;
Skills: Record;
- Talent: Record;
+ Talent: Record;
}
export interface SpriteSkill {
diff --git a/src/types/enka.ts b/src/types/enka.ts
index 82d6afe..47c15a6 100644
--- a/src/types/enka.ts
+++ b/src/types/enka.ts
@@ -6,10 +6,6 @@ interface PrivacySettingInfo {
displayDiary: boolean
}
-interface ChallengeInfo {
- // Thêm các field cụ thể nếu có
-}
-
interface RecordInfo {
achievementCount: number
bookCount: number
@@ -17,7 +13,7 @@ interface RecordInfo {
equipmentCount: number
musicCount: number
relicCount: number
- challengeInfo: ChallengeInfo
+ challengeInfo: unknown;
maxRogueChallengeScore: number
}
diff --git a/src/types/index.ts b/src/types/index.ts
index 3d7b56e..8038e70 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -21,3 +21,4 @@ export * from "./peakDetail"
export * from "./monsterDetail"
export * from "./extraData"
export * from "./showcase"
+export * from "./srtools"
diff --git a/src/types/mics.ts b/src/types/mics.ts
index 02efbae..08ae3ad 100644
--- a/src/types/mics.ts
+++ b/src/types/mics.ts
@@ -1,6 +1,6 @@
export type AvatarDataStore = {
rank: number,
- skills: { [key: string]: number }
+ skills: Record
}
export type LightconeStore = {
level: number;
@@ -118,4 +118,5 @@ export interface Mics {
pf_config: PFConfigStore;
as_config: ASConfigStore;
ce_config: CEConfigStore;
+ peak_config: PEAKConfigStore
}
\ No newline at end of file
diff --git a/src/types/mocDetail.ts b/src/types/mocDetail.ts
index 33e68bc..172678d 100644
--- a/src/types/mocDetail.ts
+++ b/src/types/mocDetail.ts
@@ -1,4 +1,3 @@
-/* eslint-disable @typescript-eslint/no-explicit-any */
export interface MocDetail {
Id: number
Name: string
@@ -21,7 +20,7 @@ export interface MocDetail {
export interface ChallengeDetail {
Name: string
- Param?: number
+ Param?: number | null
}
export interface EventStageDetail {
@@ -32,17 +31,17 @@ export interface EventStageDetail {
Level: number
EliteGroup?: number
LevelGraphPath: string
- StageAbilityConfig: any[]
- BattleScoringGroup?: number
- SubLevelGraphs: any[]
+ StageAbilityConfig: unknown[]
+ BattleScoringGroup?: number | null
+ SubLevelGraphs: unknown[]
StageConfigData: StageConfig[]
MonsterList: Record[]
LevelLoseCondition: string[]
LevelWinCondition: string[]
Release: boolean
ForbidExitBattle: boolean
- MonsterWarningRatio?: number
- TrialAvatarList: any[]
+ MonsterWarningRatio?: number | null
+ TrialAvatarList: unknown[]
}
export interface StageConfig {
$type: string
diff --git a/src/types/pfDetail.ts b/src/types/pfDetail.ts
index bf9e982..1141303 100644
--- a/src/types/pfDetail.ts
+++ b/src/types/pfDetail.ts
@@ -12,8 +12,8 @@ export interface PFDetail {
}
export interface BuffDetail {
- Name: string | null
- Desc: string | null
+ Name?: string | null
+ Desc?: string | null
Param: number[]
}
diff --git a/src/types/showcase.tsx b/src/types/showcase.ts
similarity index 100%
rename from src/types/showcase.tsx
rename to src/types/showcase.ts
diff --git a/src/types/srtools.ts b/src/types/srtools.ts
index 1350d27..e6cc74b 100644
--- a/src/types/srtools.ts
+++ b/src/types/srtools.ts
@@ -26,7 +26,7 @@ export interface LightconeJson {
}
export interface AvatarData {
rank: number,
- skills: { [key: string]: number }
+ skills: Record
}
export interface AvatarJson {
@@ -75,7 +75,7 @@ export interface FreeSRJson {
key?: string;
lightcones: LightconeJson[];
relics: RelicJson[];
- avatars: { [key: string]: AvatarJson };
+ avatars: Record;
battle_config: BattleConfigJson;
loadout?: LoadoutJson[];
}
diff --git a/src/zod/affix.zod.ts b/src/zod/affix.zod.ts
index 72de43a..6e0bcec 100644
--- a/src/zod/affix.zod.ts
+++ b/src/zod/affix.zod.ts
@@ -2,8 +2,8 @@
import { z } from "zod";
export const affixDetailSchema = z.object({
- property: z.string(),
- base: z.number(),
- step: z.number(),
- step_num: z.number(),
+ property: z.string(),
+ base: z.number(),
+ step: z.number(),
+ step_num: z.number()
});
diff --git a/src/zod/asDetail.zod.ts b/src/zod/asDetail.zod.ts
index bbe4c03..9146d13 100644
--- a/src/zod/asDetail.zod.ts
+++ b/src/zod/asDetail.zod.ts
@@ -2,24 +2,24 @@
import { z } from "zod";
export const bossDifficultyGuideSchema = z.object({
- Desc: z.string(),
- Param: z.array(z.number()),
- SkillID: z.number().nullable(),
- ParamFix: z.array(z.number()),
+ Desc: z.string(),
+ Param: z.array(z.number()),
+ SkillID: z.number().optional().nullable(),
+ ParamFix: z.array(z.number())
});
export const bossPhaseSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Answer: z.string(),
- Difficulty: z.number(),
- SkillList: z.array(z.number()),
+ Name: z.string(),
+ Desc: z.string(),
+ Answer: z.string(),
+ Difficulty: z.number(),
+ SkillList: z.array(z.number())
});
export const bossChildTagSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Param: z.array(z.number()),
+ Name: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number())
});
const buffDetailSchema = z.any();
@@ -31,48 +31,48 @@ const challengeDetailSchema = z.any();
const eventStageDetailSchema = z.any();
export const bossTagSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Param: z.array(z.number()),
- SkillID: z.number().nullable(),
- ParamFix: z.array(z.number()),
- Child: z.array(bossChildTagSchema),
+ Name: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number()),
+ SkillID: z.number().optional().nullable(),
+ ParamFix: z.array(z.number()),
+ Child: z.array(bossChildTagSchema)
});
export const bossMonsterConfigSchema = z.object({
- Difficulty: z.number(),
- DifficultyList: z.array(z.number()),
- TagList: z.array(bossTagSchema),
- DifficultyGuideList: z.array(bossDifficultyGuideSchema),
- TextGuideList: z.array(z.string()),
- PhaseList: z.array(bossPhaseSchema),
+ Difficulty: z.number(),
+ DifficultyList: z.array(z.number()),
+ TagList: z.array(bossTagSchema),
+ DifficultyGuideList: z.array(bossDifficultyGuideSchema),
+ TextGuideList: z.array(z.string()),
+ PhaseList: z.array(bossPhaseSchema)
});
-export const aSLevelSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Challenge: z.array(challengeDetailSchema),
- DamageType1: z.array(z.string()),
- DamageType2: z.array(z.string()),
- MazeGroupID1: z.number(),
- MazeGroupID2: z.number(),
- BossMonsterID1: z.number(),
- BossMonsterID2: z.number(),
- BossMonsterID1SkillList: z.array(z.number()),
- BossMonsterID2SkillList: z.array(z.number()),
- BossMonsterConfig1: bossMonsterConfigSchema,
- BossMonsterConfig2: bossMonsterConfigSchema,
- EventIDList1: z.array(eventStageDetailSchema),
- EventIDList2: z.array(eventStageDetailSchema),
+export const asLevelSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Challenge: z.array(challengeDetailSchema),
+ DamageType1: z.array(z.string()),
+ DamageType2: z.array(z.string()),
+ MazeGroupID1: z.number(),
+ MazeGroupID2: z.number(),
+ BossMonsterID1: z.number(),
+ BossMonsterID2: z.number(),
+ BossMonsterID1SkillList: z.array(z.number()),
+ BossMonsterID2SkillList: z.array(z.number()),
+ BossMonsterConfig1: bossMonsterConfigSchema,
+ BossMonsterConfig2: bossMonsterConfigSchema,
+ EventIDList1: z.array(eventStageDetailSchema),
+ EventIDList2: z.array(eventStageDetailSchema)
});
-export const aSDetailSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Buff: buffDetailSchema,
- BuffList1: z.array(optionDetailSchema),
- BuffList2: z.array(optionDetailSchema),
- BeginTime: z.string(),
- EndTime: z.string(),
- Level: z.array(aSLevelSchema),
+export const asDetailSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Buff: buffDetailSchema.optional(),
+ BuffList1: z.array(optionDetailSchema),
+ BuffList2: z.array(optionDetailSchema),
+ BeginTime: z.string(),
+ EndTime: z.string(),
+ Level: z.array(asLevelSchema)
});
diff --git a/src/zod/card.zod.ts b/src/zod/card.zod.ts
index f0a5ba6..89557ca 100644
--- a/src/zod/card.zod.ts
+++ b/src/zod/card.zod.ts
@@ -2,22 +2,20 @@
import { z } from "zod";
export const characterInfoCardTypeSchema = z.object({
- key: z.number(),
- avatar_id: z.number(),
- rank: z.number(),
- level: z.number(),
- lightcone: z.object({
- level: z.number(),
+ key: z.number(),
+ avatar_id: z.number(),
rank: z.number(),
- item_id: z.number(),
- }),
- relics: z.array(
- z.object({
- level: z.number(),
- relic_id: z.number(),
- relic_set_id: z.number(),
+ level: z.number(),
+ lightcone: z.object({
+ level: z.number(),
+ rank: z.number(),
+ item_id: z.number()
}),
- ),
+ relics: z.array(z.object({
+ level: z.number(),
+ relic_id: z.number(),
+ relic_set_id: z.number()
+ }))
});
const lightconeStoreSchema = z.any();
@@ -25,8 +23,8 @@ const lightconeStoreSchema = z.any();
const relicStoreSchema = z.any();
export const avatarProfileCardTypeSchema = z.object({
- key: z.number(),
- profile_name: z.string(),
- lightcone: lightconeStoreSchema.nullable(),
- relics: z.record(relicStoreSchema),
+ key: z.number(),
+ profile_name: z.string(),
+ lightcone: lightconeStoreSchema.optional().nullable(),
+ relics: z.record(z.string(), relicStoreSchema)
});
diff --git a/src/zod/characterBasic.zod.ts b/src/zod/characterBasic.zod.ts
index 52be1f9..a424ecd 100644
--- a/src/zod/characterBasic.zod.ts
+++ b/src/zod/characterBasic.zod.ts
@@ -2,14 +2,14 @@
import { z } from "zod";
export const characterBasicRawSchema = z.object({
- release: z.number(),
- icon: z.string(),
- rank: z.string(),
- baseType: z.string(),
- damageType: z.string(),
- en: z.string(),
- desc: z.string(),
- kr: z.string(),
- cn: z.string(),
- jp: z.string(),
+ release: z.number(),
+ icon: z.string(),
+ rank: z.string(),
+ baseType: z.string(),
+ damageType: z.string(),
+ en: z.string(),
+ desc: z.string(),
+ kr: z.string(),
+ cn: z.string(),
+ jp: z.string()
});
diff --git a/src/zod/characterDetail.zod.ts b/src/zod/characterDetail.zod.ts
index 46731af..273eb81 100644
--- a/src/zod/characterDetail.zod.ts
+++ b/src/zod/characterDetail.zod.ts
@@ -2,162 +2,180 @@
import { z } from "zod";
export const rankTypeSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Desc: z.string(),
- ParamList: z.array(z.number()),
-});
-
-export const uniqueAbilitySchema = z.object({
- Tag: z.string(),
- Name: z.string(),
- Desc: z.string(),
- Param: z.array(z.number()),
+ Id: z.number(),
+ Name: z.string(),
+ Desc: z.string(),
+ ParamList: z.array(z.number())
});
export const voiceActorsSchema = z.object({
- Chinese: z.string().nullable(),
- Japanese: z.string().nullable(),
- Korean: z.string().nullable(),
- English: z.string().nullable(),
+ Chinese: z.string().nullable(),
+ Japanese: z.string().nullable(),
+ Korean: z.string().nullable(),
+ English: z.string().nullable()
});
export const levelParamsSchema = z.object({
- Level: z.number(),
- ParamList: z.array(z.number()),
+ Level: z.number(),
+ ParamList: z.array(z.number())
+});
+
+export const statusAddTypeSchema = z.object({
+ $type: z.string(),
+ PropertyType: z.string(),
+ Value: z.number(),
+ Name: z.string()
});
export const itemConfigRowSchema = z.object({
- $type: z.string(),
- ItemID: z.number(),
- ItemNum: z.number(),
- Rarity: z.string(),
+ $type: z.string(),
+ ItemID: z.number(),
+ ItemNum: z.number(),
+ Rarity: z.string()
});
-export const spriteSkillSchema = z.object({
- Name: z.string(),
- Desc: z.string().nullable(),
- Type: z.string().nullable(),
- Tag: z.string(),
- SPBase: z.number().nullable(),
- BPNeed: z.number(),
- BPAdd: z.number().nullable(),
- ShowStanceList: z.array(z.number()),
- SkillComboValueDelta: z.number().nullable(),
- Level: z.record(levelParamsSchema),
+export const extraSchema = z.object({
+ name: z.string(),
+ desc: z.string(),
+ param: z.array(z.number())
+});
+
+export const uniqueAbilitySchema = z.object({
+ Tag: z.string(),
+ Name: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number()),
+ Extra: z.record(z.string(), extraSchema)
});
export const statSchema = z.object({
- AttackBase: z.number(),
- AttackAdd: z.number(),
- DefenceBase: z.number(),
- DefenceAdd: z.number(),
- HPBase: z.number(),
- HPAdd: z.number(),
- SpeedBase: z.number(),
- CriticalChance: z.number(),
- CriticalDamage: z.number(),
- BaseAggro: z.number(),
- Cost: z.array(itemConfigRowSchema),
+ AttackBase: z.number(),
+ AttackAdd: z.number(),
+ DefenceBase: z.number(),
+ DefenceAdd: z.number(),
+ HPBase: z.number(),
+ HPAdd: z.number(),
+ SpeedBase: z.number(),
+ CriticalChance: z.number(),
+ CriticalDamage: z.number(),
+ BaseAggro: z.number(),
+ Cost: z.array(itemConfigRowSchema)
});
export const relicRecommendPropertySchema = z.object({
- $type: z.string(),
- RelicType: z.string(),
- PropertyType: z.string(),
+ $type: z.string(),
+ RelicType: z.string(),
+ PropertyType: z.string()
});
export const characterInfoSchema = z.object({
- Camp: z.string().nullable(),
- VA: voiceActorsSchema,
- Stories: z.record(z.string().nullable()),
- Voicelines: z.array(z.string()),
+ Camp: z.string().nullable(),
+ VA: voiceActorsSchema,
+ Stories: z.record(z.string(), z.string().nullable()),
+ Voicelines: z.array(z.string())
});
export const skillTypeSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Desc: z.string(),
- Type: z.string(),
- Tag: z.string(),
- SPBase: z.number().nullable(),
- BPNeed: z.number(),
- BPAdd: z.number(),
- ShowStanceList: z.array(z.number()),
- SkillComboValueDelta: z.number().nullable(),
- Level: z.record(levelParamsSchema),
+ Id: z.number(),
+ Name: z.string(),
+ Desc: z.string().nullable(),
+ SimpleDesc: z.string(),
+ Type: z.string(),
+ Tag: z.string(),
+ SPBase: z.number().nullable(),
+ BPNeed: z.number(),
+ BPAdd: z.number(),
+ ShowStanceList: z.array(z.number()),
+ SkillComboValueDelta: z.number().nullable(),
+ Level: z.record(z.string(), levelParamsSchema)
});
export const skillTreePointSchema = z.object({
- Anchor: z.string(),
- AvatarPromotionLimit: z.number().nullable(),
- AvatarLevelLimit: z.number().nullable(),
- DefaultUnlock: z.boolean(),
- Icon: z.string(),
- LevelUpSkillID: z.array(z.number()),
- MaterialList: z.array(itemConfigRowSchema),
- MaxLevel: z.number(),
- ParamList: z.array(z.any()),
- PointID: z.number(),
- PointName: z.string().nullable(),
- PointDesc: z.string().nullable(),
- PointTriggerKey: z.number(),
- PointType: z.number(),
- PrePoint: z.array(z.string()),
- StatusAddList: z.array(z.any()),
-});
-
-export const memospriteSchema = z.object({
- Name: z.string(),
- Icon: z.string(),
- HPBase: z.string(),
- HPInherit: z.string(),
- HPSkill: z.number().nullable(),
- SpeedBase: z.string(),
- SpeedInherit: z.string(),
- SpeedSkill: z.number(),
- Aggro: z.number(),
- Skills: z.record(spriteSkillSchema),
- Talent: z.record(z.any()),
+ Anchor: z.string(),
+ AvatarPromotionLimit: z.number().nullable(),
+ AvatarLevelLimit: z.number().nullable(),
+ DefaultUnlock: z.boolean(),
+ Icon: z.string(),
+ LevelUpSkillID: z.array(z.number()),
+ MaterialList: z.array(itemConfigRowSchema),
+ MaxLevel: z.number(),
+ ParamList: z.array(z.number()),
+ PointID: z.number(),
+ PointName: z.string().nullable(),
+ PointDesc: z.string().nullable(),
+ PointTriggerKey: z.number(),
+ PointType: z.number(),
+ PrePoint: z.array(z.string()),
+ StatusAddList: z.array(statusAddTypeSchema)
});
export const relicsSchema = z.object({
- AvatarID: z.number(),
- Set4IDList: z.array(z.number()),
- Set2IDList: z.array(z.number()),
- PropertyList3: z.array(z.string()),
- PropertyList4: z.array(z.string()),
- PropertyList5: z.array(z.string()),
- PropertyList6: z.array(z.string()),
- PropertyList: z.array(relicRecommendPropertySchema),
- SubAffixPropertyList: z.array(z.string()),
- ScoreRankList: z.array(z.number()),
+ AvatarID: z.number(),
+ Set4IDList: z.array(z.number()),
+ Set2IDList: z.array(z.number()),
+ PropertyList3: z.array(z.string()),
+ PropertyList4: z.array(z.string()),
+ PropertyList5: z.array(z.string()),
+ PropertyList6: z.array(z.string()),
+ PropertyList: z.array(relicRecommendPropertySchema),
+ SubAffixPropertyList: z.array(z.string()),
+ ScoreRankList: z.array(z.number())
});
export const enhancedTypeSchema = z.object({
- Descs: z.array(z.string()),
- ChangeRankList: z.any(),
- ChangeSkillTreeList: z.any(),
- Ranks: z.record(rankTypeSchema),
- Skills: z.record(skillTypeSchema),
- SkillTrees: z.record(z.record(skillTreePointSchema)),
+ Descs: z.array(z.string()),
+ ChangeRankList: z.unknown(),
+ ChangeSkillTreeList: z.unknown(),
+ Ranks: z.record(z.string(), rankTypeSchema),
+ Skills: z.record(z.string(), skillTypeSchema),
+ SkillTrees: z.record(z.string(), z.record(z.string(), skillTreePointSchema))
+});
+
+export const spriteSkillSchema = z.object({
+ Name: z.string(),
+ Desc: z.string().nullable(),
+ SimpleDesc: z.string(),
+ Type: z.string().nullable(),
+ Tag: z.string(),
+ SPBase: z.number().nullable(),
+ BPNeed: z.number(),
+ BPAdd: z.number().nullable(),
+ ShowStanceList: z.array(z.number()),
+ SkillComboValueDelta: z.number().nullable(),
+ Extra: z.record(z.string(), extraSchema),
+ Level: z.record(z.string(), levelParamsSchema)
+});
+
+export const memospriteSchema = z.object({
+ Name: z.string(),
+ Icon: z.string(),
+ HPBase: z.string(),
+ HPInherit: z.string(),
+ HPSkill: z.number().nullable(),
+ SpeedBase: z.string(),
+ SpeedInherit: z.string(),
+ SpeedSkill: z.number(),
+ Aggro: z.number(),
+ Skills: z.record(z.string(), spriteSkillSchema),
+ Talent: z.record(z.string(), z.unknown())
});
export const characterDetailSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- CharaInfo: characterInfoSchema,
- Rarity: z.string(),
- AvatarVOTag: z.string(),
- SPNeed: z.number().nullable(),
- BaseType: z.string(),
- DamageType: z.string(),
- Ranks: z.record(rankTypeSchema),
- Skills: z.record(skillTypeSchema),
- SkillTrees: z.record(z.record(skillTreePointSchema)),
- Memosprite: memospriteSchema,
- Unique: z.record(uniqueAbilitySchema),
- Stats: z.record(statSchema),
- Relics: relicsSchema,
- Enhanced: z.record(enhancedTypeSchema),
+ Name: z.string(),
+ Desc: z.string(),
+ CharaInfo: characterInfoSchema,
+ Rarity: z.string(),
+ AvatarVOTag: z.string(),
+ SPNeed: z.number().nullable(),
+ BaseType: z.string(),
+ DamageType: z.string(),
+ Ranks: z.record(z.string(), rankTypeSchema),
+ Skills: z.record(z.string(), skillTypeSchema),
+ SkillTrees: z.record(z.string(), z.record(z.string(), skillTreePointSchema)),
+ Memosprite: memospriteSchema,
+ Unique: z.record(z.string(), uniqueAbilitySchema),
+ Stats: z.record(z.string(), statSchema),
+ Relics: relicsSchema,
+ Enhanced: z.record(z.string(), enhancedTypeSchema),
+ RankIcon: z.array(z.string())
});
diff --git a/src/zod/config_maze.zod.ts b/src/zod/config_maze.zod.ts
index e4698c4..f94860b 100644
--- a/src/zod/config_maze.zod.ts
+++ b/src/zod/config_maze.zod.ts
@@ -1,28 +1,36 @@
// Generated by ts-to-zod
import { z } from "zod";
-export const aSConfigMazeSchema = z.object({
- buff_1: z.array(z.number()),
- buff_2: z.array(z.number()),
- maze_buff: z.number(),
+export const asConfigMazeSchema = z.object({
+ buff_1: z.array(z.number()),
+ buff_2: z.array(z.number()),
+ maze_buff: z.number()
});
-export const pFConfigMazeSchema = z.object({
- buff: z.array(z.number()),
- maze_buff: z.number(),
+export const pfConfigMazeSchema = z.object({
+ buff: z.array(z.number()),
+ maze_buff: z.number()
});
-export const mOCConfigMazeSchema = z.object({
- maze_buff: z.number(),
+export const mocConfigMazeSchema = z.object({
+ maze_buff: z.number()
});
export const avatarConfigMazeSchema = z.object({
- maze_buff: z.array(z.number()),
+ maze_buff: z.array(z.number())
+});
+
+export const stageConfigMazeSchema = z.object({
+ stage_id: z.number(),
+ stage_type: z.string(),
+ level: z.number(),
+ monster_list: z.array(z.record(z.string(), z.number()))
});
export const configMazeSchema = z.object({
- Avatar: z.record(avatarConfigMazeSchema),
- MOC: z.record(mOCConfigMazeSchema),
- AS: z.record(aSConfigMazeSchema),
- PF: z.record(pFConfigMazeSchema),
+ Avatar: z.record(z.string(), avatarConfigMazeSchema),
+ MOC: z.record(z.string(), mocConfigMazeSchema),
+ AS: z.record(z.string(), asConfigMazeSchema),
+ PF: z.record(z.string(), pfConfigMazeSchema),
+ Stage: z.record(z.string(), stageConfigMazeSchema)
});
diff --git a/src/zod/enka.zod.ts b/src/zod/enka.zod.ts
index 9f58f2b..d87879e 100644
--- a/src/zod/enka.zod.ts
+++ b/src/zod/enka.zod.ts
@@ -2,99 +2,97 @@
import { z } from "zod";
const privacySettingInfoSchema = z.object({
- displayCollection: z.boolean(),
- displayRecord: z.boolean(),
- displayRecordTeam: z.boolean(),
- displayOnlineStatus: z.boolean(),
- displayDiary: z.boolean(),
+ displayCollection: z.boolean(),
+ displayRecord: z.boolean(),
+ displayRecordTeam: z.boolean(),
+ displayOnlineStatus: z.boolean(),
+ displayDiary: z.boolean()
});
-const challengeInfoSchema = z.object({});
-
const recordInfoSchema = z.object({
- achievementCount: z.number(),
- bookCount: z.number(),
- avatarCount: z.number(),
- equipmentCount: z.number(),
- musicCount: z.number(),
- relicCount: z.number(),
- challengeInfo: challengeInfoSchema,
- maxRogueChallengeScore: z.number(),
+ achievementCount: z.number(),
+ bookCount: z.number(),
+ avatarCount: z.number(),
+ equipmentCount: z.number(),
+ musicCount: z.number(),
+ relicCount: z.number(),
+ challengeInfo: z.unknown(),
+ maxRogueChallengeScore: z.number()
});
const subAffixSchema = z.object({
- affixId: z.number(),
- cnt: z.number(),
- step: z.number().optional(),
+ affixId: z.number(),
+ cnt: z.number(),
+ step: z.number().optional()
});
const flatPropSchema = z.object({
- type: z.string(),
- value: z.number(),
+ type: z.string(),
+ value: z.number()
});
const relicFlatSchema = z.object({
- props: z.array(flatPropSchema),
- setName: z.string(),
- setID: z.number(),
+ props: z.array(flatPropSchema),
+ setName: z.string(),
+ setID: z.number()
});
const relicSchema = z.object({
- mainAffixId: z.number(),
- subAffixList: z.array(subAffixSchema),
- tid: z.number(),
- type: z.number(),
- level: z.number(),
- _flat: relicFlatSchema,
+ mainAffixId: z.number(),
+ subAffixList: z.array(subAffixSchema),
+ tid: z.number(),
+ type: z.number(),
+ level: z.number(),
+ _flat: relicFlatSchema
});
const skillTreeSchema = z.object({
- pointId: z.number(),
- level: z.number(),
+ pointId: z.number(),
+ level: z.number()
});
const equipmentFlatSchema = z.object({
- props: z.array(flatPropSchema),
- name: z.string(),
+ props: z.array(flatPropSchema),
+ name: z.string()
});
const equipmentSchema = z.object({
- rank: z.number(),
- tid: z.number(),
- promotion: z.number(),
- level: z.number(),
- _flat: equipmentFlatSchema,
+ rank: z.number(),
+ tid: z.number(),
+ promotion: z.number(),
+ level: z.number(),
+ _flat: equipmentFlatSchema
});
export const avatarEnkaDetailSchema = z.object({
- relicList: z.array(relicSchema),
- level: z.number(),
- promotion: z.number(),
- rank: z.number().optional(),
- skillTreeList: z.array(skillTreeSchema),
- equipment: equipmentSchema,
- avatarId: z.number(),
- _assist: z.boolean().optional(),
+ relicList: z.array(relicSchema),
+ level: z.number(),
+ promotion: z.number(),
+ rank: z.number().optional(),
+ skillTreeList: z.array(skillTreeSchema),
+ equipment: equipmentSchema,
+ avatarId: z.number(),
+ _assist: z.boolean().optional()
});
const detailInfoSchema = z.object({
- worldLevel: z.number(),
- privacySettingInfo: privacySettingInfoSchema,
- headIcon: z.number(),
- signature: z.string(),
- avatarDetailList: z.array(avatarEnkaDetailSchema),
- platform: z.string(),
- recordInfo: recordInfoSchema,
- uid: z.number(),
- level: z.number(),
- nickname: z.string(),
- isDisplayAvatar: z.boolean(),
- friendCount: z.number(),
- personalCardId: z.number(),
+ worldLevel: z.number(),
+ privacySettingInfo: privacySettingInfoSchema,
+ headIcon: z.number(),
+ signature: z.string(),
+ avatarDetailList: z.array(avatarEnkaDetailSchema),
+ platform: z.string(),
+ recordInfo: recordInfoSchema,
+ uid: z.number(),
+ level: z.number(),
+ nickname: z.string(),
+ isDisplayAvatar: z.boolean(),
+ friendCount: z.number(),
+ personalCardId: z.number()
});
export const enkaResponseSchema = z.object({
- detailInfo: detailInfoSchema,
- ttl: z.number(),
- uid: z.string(),
+ detailInfo: detailInfoSchema,
+ ttl: z.number(),
+ uid: z.string()
});
diff --git a/src/zod/eventBasic.zod.ts b/src/zod/eventBasic.zod.ts
index d8f6d52..dc6d9df 100644
--- a/src/zod/eventBasic.zod.ts
+++ b/src/zod/eventBasic.zod.ts
@@ -2,14 +2,14 @@
import { z } from "zod";
export const eventBasicRawSchema = z.object({
- param: z.array(z.number()).optional(),
- en: z.string(),
- id: z.string(),
- begin: z.string(),
- end: z.string(),
- live_begin: z.string(),
- live_end: z.string(),
- kr: z.string(),
- cn: z.string(),
- jp: z.string(),
+ param: z.array(z.number()).optional(),
+ en: z.string(),
+ id: z.string(),
+ begin: z.string(),
+ end: z.string(),
+ live_begin: z.string(),
+ live_end: z.string(),
+ kr: z.string(),
+ cn: z.string(),
+ jp: z.string()
});
diff --git a/src/zod/extraData.zod.ts b/src/zod/extraData.zod.ts
index 59385cf..ed55ece 100644
--- a/src/zod/extraData.zod.ts
+++ b/src/zod/extraData.zod.ts
@@ -1,15 +1,16 @@
+// Generated by ts-to-zod
import { z } from "zod";
export const extraDataSchema = z.object({
theory_craft: z.object({
hp: z.record(z.string(), z.array(z.number())),
cycle_count: z.number(),
- mode: z.boolean(),
+ mode: z.boolean()
}),
setting: z.object({
censorship: z.boolean(),
cm: z.boolean(),
first_person: z.boolean(),
- hide_ui: z.boolean(),
- }),
-});
\ No newline at end of file
+ hide_ui: z.boolean()
+ })
+});
diff --git a/src/zod/filter.zod.ts b/src/zod/filter.zod.ts
index 718fe35..e638849 100644
--- a/src/zod/filter.zod.ts
+++ b/src/zod/filter.zod.ts
@@ -2,29 +2,21 @@
import { z } from "zod";
export const filterAvatarTypeSchema = z.object({
- name: z.string(),
- path: z.array(z.string()),
- element: z.array(z.string()),
- rarity: z.array(z.string()),
- locale: z.string(),
+ name: z.string(),
+ path: z.array(z.string()),
+ element: z.array(z.string()),
+ rarity: z.array(z.string()),
+ locale: z.string()
});
export const filterLightconeTypeSchema = z.object({
- path: z.array(z.string()),
- rarity: z.array(z.string()),
- locale: z.string(),
- name: z.string(),
+ path: z.array(z.string()),
+ rarity: z.array(z.string()),
+ locale: z.string(),
+ name: z.string()
});
export const filterRelicTypeSchema = z.object({
- locale: z.string(),
- name: z.string(),
-});
-
-export const filterMonsterTypeSchema = z.object({
- name: z.string(),
- id: z.string(),
- rarity: z.array(z.string()),
- locale: z.string(),
- weak: z.array(z.string()),
+ locale: z.string(),
+ name: z.string()
});
diff --git a/src/zod/index.ts b/src/zod/index.ts
index 0c2898f..12a90c2 100644
--- a/src/zod/index.ts
+++ b/src/zod/index.ts
@@ -1,14 +1,25 @@
-export * from "./affix.zod";
-export * from "./card.zod";
-export * from "./characterBasic.zod";
-export * from "./characterDetail.zod";
-export * from "./config_maze.zod";
-export * from "./enka.zod";
-export * from "./filter.zod";
-export * from "./lightconeBasic.zod";
-export * from "./lightconeDetail.zod";
-export * from "./mics.zod";
-export * from "./relicBasic.zod";
-export * from "./relicDetail.zod";
-export * from "./srtools.zod";
-export * from "./extraData.zod";
+export * from "./characterBasic.zod"
+export * from "./characterDetail.zod"
+export * from "./srtools.zod"
+export * from "./filter.zod"
+export * from "./mics.zod"
+export * from "./config_maze.zod"
+export * from "./lightconeBasic.zod"
+export * from "./lightconeDetail.zod"
+export * from "./relicBasic.zod"
+export * from "./relicDetail.zod"
+export * from "./affix.zod"
+export * from "./enka.zod"
+export * from "./card.zod"
+export * from "./eventBasic.zod"
+export * from "./monsterBasic.zod"
+export * from "./pfDetail.zod"
+export * from "./asDetail.zod"
+export * from "./mocDetail.zod"
+export * from "./monsterValue.zod"
+export * from "./peakDetail.zod"
+export * from "./monsterDetail.zod"
+export * from "./extraData.zod"
+export * from "./showcase.zod"
+export * from "./srtools.zod"
+
diff --git a/src/zod/index.zod.ts b/src/zod/index.zod.ts
index ab019cb..cdefba9 100644
--- a/src/zod/index.zod.ts
+++ b/src/zod/index.zod.ts
@@ -1,2 +1,4 @@
// Generated by ts-to-zod
import { z } from "zod";
+
+
diff --git a/src/zod/lightconeBasic.zod.ts b/src/zod/lightconeBasic.zod.ts
index bab4a06..31fd24d 100644
--- a/src/zod/lightconeBasic.zod.ts
+++ b/src/zod/lightconeBasic.zod.ts
@@ -2,11 +2,11 @@
import { z } from "zod";
export const lightConeBasicRawSchema = z.object({
- rank: z.string(),
- baseType: z.string(),
- en: z.string(),
- desc: z.string(),
- kr: z.string(),
- cn: z.string(),
- jp: z.string(),
+ rank: z.string(),
+ baseType: z.string(),
+ en: z.string(),
+ desc: z.string(),
+ kr: z.string(),
+ cn: z.string(),
+ jp: z.string()
});
diff --git a/src/zod/lightconeDetail.zod.ts b/src/zod/lightconeDetail.zod.ts
index c1a3c6c..7cea922 100644
--- a/src/zod/lightconeDetail.zod.ts
+++ b/src/zod/lightconeDetail.zod.ts
@@ -2,42 +2,44 @@
import { z } from "zod";
const refinementDetailSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Level: z.record(
- z.object({
- ParamList: z.array(z.number()),
- }),
- ),
+ Name: z.string(),
+ Desc: z.string(),
+ Level: z.record(z.string(), z.object({
+ ParamList: z.array(z.number())
+ }))
});
const promotionCostSchema = z.object({
- $type: z.string(),
- ItemID: z.number(),
- ItemNum: z.number(),
- Rarity: z.string(),
+ $type: z.string(),
+ ItemID: z.number(),
+ ItemNum: z.number(),
+ Rarity: z.string()
});
const statEntryDetailSchema = z.object({
- EquipmentID: z.number(),
- Promotion: z.number().optional(),
- PromotionCostList: z.array(promotionCostSchema),
- PlayerLevelRequire: z.number().optional(),
- WorldLevelRequire: z.number().optional(),
- MaxLevel: z.number(),
- BaseHP: z.number(),
- BaseHPAdd: z.number(),
- BaseAttack: z.number(),
- BaseAttackAdd: z.number(),
- BaseDefence: z.number(),
- BaseDefenceAdd: z.number(),
+ EquipmentID: z.number(),
+ Promotion: z.number().optional(),
+ PromotionCostList: z.array(promotionCostSchema),
+ PlayerLevelRequire: z.number().optional(),
+ WorldLevelRequire: z.number().optional(),
+ MaxLevel: z.number(),
+ BaseHP: z.number(),
+ BaseHPAdd: z.number(),
+ BaseAttack: z.number(),
+ BaseAttackAdd: z.number(),
+ BaseDefence: z.number(),
+ BaseDefenceAdd: z.number()
});
export const lightConeDetailSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Rarity: z.string(),
- BaseType: z.string(),
- Refinements: refinementDetailSchema,
- Stats: z.array(statEntryDetailSchema),
+ Name: z.string(),
+ Desc: z.string(),
+ Rarity: z.string(),
+ BaseType: z.string(),
+ Refinements: refinementDetailSchema,
+ Stats: z.array(statEntryDetailSchema),
+ Bonus: z.record(z.string(), z.array(z.object({
+ type: z.string(),
+ value: z.number()
+ })))
});
diff --git a/src/zod/mics.zod.ts b/src/zod/mics.zod.ts
index a7993dd..caae13a 100644
--- a/src/zod/mics.zod.ts
+++ b/src/zod/mics.zod.ts
@@ -2,111 +2,104 @@
import { z } from "zod";
export const avatarDataStoreSchema = z.object({
- rank: z.number(),
- skills: z.record(z.number()),
+ rank: z.number(),
+ skills: z.record(z.string(), z.number())
});
export const lightconeStoreSchema = z.object({
- level: z.number(),
- item_id: z.number(),
- rank: z.number(),
- promotion: z.number(),
+ level: z.number(),
+ item_id: z.number(),
+ rank: z.number(),
+ promotion: z.number()
});
export const subAffixStoreSchema = z.object({
- sub_affix_id: z.number(),
- count: z.number(),
- step: z.number(),
+ sub_affix_id: z.number(),
+ count: z.number(),
+ step: z.number()
});
export const relicStoreSchema = z.object({
- level: z.number(),
- relic_id: z.number(),
- relic_set_id: z.number(),
- main_affix_id: z.number(),
- sub_affixes: z.array(subAffixStoreSchema),
+ level: z.number(),
+ relic_id: z.number(),
+ relic_set_id: z.number(),
+ main_affix_id: z.number(),
+ sub_affixes: z.array(subAffixStoreSchema)
});
export const avatarProfileStoreSchema = z.object({
- profile_name: z.string(),
- lightcone: lightconeStoreSchema.nullable(),
- relics: z.record(relicStoreSchema),
+ profile_name: z.string(),
+ lightcone: lightconeStoreSchema.nullable(),
+ relics: z.record(z.string(), relicStoreSchema)
});
export const avatarStoreSchema = z.object({
- owner_uid: z.number().optional(),
- avatar_id: z.number(),
- data: avatarDataStoreSchema,
- level: z.number(),
- promotion: z.number(),
- techniques: z.array(z.number()),
- sp_value: z.number(),
- sp_max: z.number(),
- can_change_sp: z.boolean(),
- enhanced: z.string(),
- profileSelect: z.number(),
- profileList: z.array(avatarProfileStoreSchema),
+ owner_uid: z.number().optional(),
+ avatar_id: z.number(),
+ data: avatarDataStoreSchema,
+ level: z.number(),
+ promotion: z.number(),
+ techniques: z.array(z.number()),
+ sp_value: z.number(),
+ sp_max: z.number(),
+ can_change_sp: z.boolean(),
+ enhanced: z.string(),
+ profileSelect: z.number(),
+ profileList: z.array(avatarProfileStoreSchema)
});
export const monsterStoreSchema = z.object({
- monster_id: z.number(),
- level: z.number(),
- amount: z.number(),
+ monster_id: z.number(),
+ level: z.number(),
+ amount: z.number()
});
export const dynamicKeyStoreSchema = z.object({
- key: z.string(),
- value: z.number(),
+ key: z.string(),
+ value: z.number()
});
export const battleBuffStoreSchema = z.object({
- level: z.number(),
- id: z.number(),
- dynamic_key: dynamicKeyStoreSchema.optional(),
+ level: z.number(),
+ id: z.number(),
+ dynamic_key: dynamicKeyStoreSchema.optional()
});
-export const mOCConfigStoreSchema = z.object({
- event_id: z.number(),
- challenge_id: z.number(),
- floor_side: z.string(),
- use_turbulence_buff: z.boolean(),
- use_cycle_count: z.boolean(),
- blessings: z.array(battleBuffStoreSchema),
- cycle_count: z.number(),
- stage_id: z.number(),
- monsters: z.array(z.array(monsterStoreSchema)),
+export const mocConfigStoreSchema = z.object({
+ event_id: z.number(),
+ challenge_id: z.number(),
+ floor_side: z.string(),
+ use_turbulence_buff: z.boolean(),
+ use_cycle_count: z.boolean(),
+ blessings: z.array(battleBuffStoreSchema),
+ cycle_count: z.number(),
+ stage_id: z.number(),
+ monsters: z.array(z.array(monsterStoreSchema))
});
-export const pFConfigStoreSchema = z.object({
- event_id: z.number(),
- challenge_id: z.number(),
- floor_side: z.string(),
- buff_id: z.number(),
- blessings: z.array(battleBuffStoreSchema),
- cycle_count: z.number(),
- stage_id: z.number(),
- monsters: z.array(z.array(monsterStoreSchema)),
+export const pfConfigStoreSchema = z.object({
+ event_id: z.number(),
+ challenge_id: z.number(),
+ buff_id: z.number(),
+ floor_side: z.string(),
+ blessings: z.array(battleBuffStoreSchema),
+ cycle_count: z.number(),
+ stage_id: z.number(),
+ monsters: z.array(z.array(monsterStoreSchema))
});
-export const aSConfigStoreSchema = z.object({
- event_id: z.number(),
- challenge_id: z.number(),
- buff_id: z.number(),
- floor_side: z.string(),
- blessings: z.array(battleBuffStoreSchema),
- cycle_count: z.number(),
- stage_id: z.number(),
- monsters: z.array(z.array(monsterStoreSchema)),
+export const asConfigStoreSchema = z.object({
+ event_id: z.number(),
+ challenge_id: z.number(),
+ buff_id: z.number(),
+ floor_side: z.string(),
+ blessings: z.array(battleBuffStoreSchema),
+ cycle_count: z.number(),
+ stage_id: z.number(),
+ monsters: z.array(z.array(monsterStoreSchema))
});
-export const cEConfigStoreSchema = z.object({
- blessings: z.array(battleBuffStoreSchema),
- cycle_count: z.number(),
- stage_id: z.number(),
- monsters: z.array(z.array(monsterStoreSchema)),
-});
-
-export const pEAKConfigStoreSchema = z.object({
+export const peakConfigStoreSchema = z.object({
event_id: z.number(),
challenge_id: z.number(),
buff_id: z.number(),
@@ -114,15 +107,22 @@ export const pEAKConfigStoreSchema = z.object({
blessings: z.array(battleBuffStoreSchema),
cycle_count: z.number(),
stage_id: z.number(),
- monsters: z.array(z.array(monsterStoreSchema)),
+ monsters: z.array(z.array(monsterStoreSchema))
+});
+
+export const ceConfigStoreSchema = z.object({
+ blessings: z.array(battleBuffStoreSchema),
+ cycle_count: z.number(),
+ stage_id: z.number(),
+ monsters: z.array(z.array(monsterStoreSchema))
});
export const micsSchema = z.object({
- avatars: z.record(avatarStoreSchema),
- battle_type: z.string(),
- moc_config: mOCConfigStoreSchema,
- pf_config: pFConfigStoreSchema,
- as_config: aSConfigStoreSchema,
- ce_config: cEConfigStoreSchema,
- peak_config: pEAKConfigStoreSchema,
+ avatars: z.record(z.string(), avatarStoreSchema),
+ battle_type: z.string(),
+ moc_config: mocConfigStoreSchema,
+ pf_config: pfConfigStoreSchema,
+ as_config: asConfigStoreSchema,
+ ce_config: ceConfigStoreSchema,
+ peak_config: peakConfigStoreSchema
});
diff --git a/src/zod/mocDetail.zod.ts b/src/zod/mocDetail.zod.ts
index 5f8dbd2..d9fc7ee 100644
--- a/src/zod/mocDetail.zod.ts
+++ b/src/zod/mocDetail.zod.ts
@@ -2,53 +2,51 @@
import { z } from "zod";
export const challengeDetailSchema = z.object({
- Name: z.string(),
- Param: z.number().optional(),
+ Name: z.string(),
+ Param: z.number().optional()
});
-export const stageConfigSchema = z.record(z.string()).and(
- z.object({
- $type: z.string(),
- }),
-);
+export const stageConfigSchema = z.record(z.string(), z.string()).and(z.object({
+ $type: z.string()
+}));
export const eventStageDetailSchema = z.object({
- StageID: z.number(),
- StageType: z.string(),
- StageName: z.number(),
- HardLevelGroup: z.number(),
- Level: z.number(),
- EliteGroup: z.number().optional(),
- LevelGraphPath: z.string(),
- StageAbilityConfig: z.array(z.any()),
- BattleScoringGroup: z.number().optional(),
- SubLevelGraphs: z.array(z.any()),
- StageConfigData: z.array(stageConfigSchema),
- MonsterList: z.array(z.record(z.number())),
- LevelLoseCondition: z.array(z.string()),
- LevelWinCondition: z.array(z.string()),
- Release: z.boolean(),
- ForbidExitBattle: z.boolean(),
- MonsterWarningRatio: z.number().optional(),
- TrialAvatarList: z.array(z.any()),
+ StageID: z.number(),
+ StageType: z.string(),
+ StageName: z.number(),
+ HardLevelGroup: z.number(),
+ Level: z.number(),
+ EliteGroup: z.number().optional(),
+ LevelGraphPath: z.string(),
+ StageAbilityConfig: z.array(z.any()),
+ BattleScoringGroup: z.number().optional(),
+ SubLevelGraphs: z.array(z.any()),
+ StageConfigData: z.array(stageConfigSchema),
+ MonsterList: z.array(z.record(z.string(), z.number())),
+ LevelLoseCondition: z.array(z.string()),
+ LevelWinCondition: z.array(z.string()),
+ Release: z.boolean(),
+ ForbidExitBattle: z.boolean(),
+ MonsterWarningRatio: z.number().optional(),
+ TrialAvatarList: z.array(z.any())
});
export const mocDetailSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- GroupName: z.string(),
- Desc: z.string(),
- Param: z.array(z.number()),
- Challenge: z.array(challengeDetailSchema),
- Countdown: z.number(),
- DamageType1: z.array(z.string()),
- DamageType2: z.array(z.string()),
- MazeGroupID1: z.number(),
- MazeGroupID2: z.number(),
- NpcMonsterIDList1: z.array(z.number()),
- NpcMonsterIDList2: z.array(z.number()),
- EventIDList1: z.array(eventStageDetailSchema),
- EventIDList2: z.array(eventStageDetailSchema),
- BeginTime: z.string(),
- EndTime: z.string(),
+ Id: z.number(),
+ Name: z.string(),
+ GroupName: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number()),
+ Challenge: z.array(challengeDetailSchema),
+ Countdown: z.number(),
+ DamageType1: z.array(z.string()),
+ DamageType2: z.array(z.string()),
+ MazeGroupID1: z.number(),
+ MazeGroupID2: z.number(),
+ NpcMonsterIDList1: z.array(z.number()),
+ NpcMonsterIDList2: z.array(z.number()),
+ EventIDList1: z.array(eventStageDetailSchema),
+ EventIDList2: z.array(eventStageDetailSchema),
+ BeginTime: z.string(),
+ EndTime: z.string()
});
diff --git a/src/zod/monsterBasic.zod.ts b/src/zod/monsterBasic.zod.ts
index 7693037..81beedc 100644
--- a/src/zod/monsterBasic.zod.ts
+++ b/src/zod/monsterBasic.zod.ts
@@ -2,14 +2,14 @@
import { z } from "zod";
export const monsterBasicRawSchema = z.object({
- rank: z.string(),
- camp: z.string().nullable(),
- icon: z.string(),
- child: z.array(z.number()),
- weak: z.array(z.string()),
- en: z.string(),
- desc: z.string(),
- kr: z.string(),
- cn: z.string(),
- jp: z.string(),
+ rank: z.string(),
+ camp: z.string().nullable(),
+ icon: z.string(),
+ child: z.array(z.number()),
+ weak: z.array(z.string()),
+ en: z.string(),
+ desc: z.string(),
+ kr: z.string(),
+ cn: z.string(),
+ jp: z.string()
});
diff --git a/src/zod/monsterDetail.zod.ts b/src/zod/monsterDetail.zod.ts
new file mode 100644
index 0000000..501366e
--- /dev/null
+++ b/src/zod/monsterDetail.zod.ts
@@ -0,0 +1,64 @@
+// Generated by ts-to-zod
+import { z } from "zod";
+
+export const monsterDetailElementResistanceSchema = z.object({
+ $type: z.string(),
+ DamageType: z.string(),
+ Value: z.number()
+});
+
+export const monsterDetailSkillSchema = z.object({
+ Id: z.number(),
+ SkillName: z.string().nullable(),
+ SkillDesc: z.string().nullable(),
+ DamageType: z.string(),
+ SPHitBase: z.union([z.number(), z.string()])
+});
+
+export const monsterDetailDropItemSchema = z.object({
+ $type: z.string(),
+ ID: z.number()
+});
+
+export const monsterDetailChildSchema = z.object({
+ Id: z.number(),
+ AttackModifyRatio: z.number(),
+ DefenceModifyRatio: z.number(),
+ EliteGroup: z.number(),
+ HPModifyRatio: z.number(),
+ SpeedModifyRatio: z.number(),
+ SpeedModifyValue: z.number().nullable(),
+ StanceModifyRatio: z.number(),
+ StanceWeakList: z.array(z.string()),
+ HardLevelGroup: z.number(),
+ DamageTypeResistance: z.array(monsterDetailElementResistanceSchema),
+ SkillList: z.array(monsterDetailSkillSchema)
+});
+
+export const monsterDetailDropSchema = z.object({
+ MonsterTemplateID: z.number(),
+ WorldLevel: z.number().optional(),
+ AvatarExpReward: z.number(),
+ DisplayItemList: z.array(monsterDetailDropItemSchema)
+});
+
+export const monsterDetailSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Desc: z.string(),
+ MonsterCampID: z.number().nullable(),
+ AttackBase: z.number(),
+ CriticalDamageBase: z.number(),
+ DefenceBase: z.number(),
+ HPBase: z.number(),
+ InitialDelayRatio: z.number(),
+ ImagePath: z.string(),
+ MinimumFatigueRatio: z.number(),
+ Rank: z.string(),
+ SpeedBase: z.number(),
+ StanceBase: z.number(),
+ StanceCount: z.number(),
+ StatusResistanceBase: z.number(),
+ Child: z.array(monsterDetailChildSchema),
+ Drop: z.array(monsterDetailDropSchema)
+});
diff --git a/src/zod/monsterValue.zod.ts b/src/zod/monsterValue.zod.ts
new file mode 100644
index 0000000..993add7
--- /dev/null
+++ b/src/zod/monsterValue.zod.ts
@@ -0,0 +1,26 @@
+// Generated by ts-to-zod
+import { z } from "zod";
+
+export const monsterChildSchema = z.object({
+ Id: z.number(),
+ AttackModifyRatio: z.number(),
+ DefenceModifyRatio: z.number(),
+ EliteGroup: z.number(),
+ HPModifyRatio: z.number(),
+ SpeedModifyRatio: z.number(),
+ SpeedModifyValue: z.number().nullable(),
+ StanceModifyRatio: z.number(),
+ HardLevelGroup: z.number(),
+ StanceWeakList: z.array(z.string())
+});
+
+export const monsterValueSchema = z.object({
+ Rank: z.string(),
+ AttackBase: z.number(),
+ DefenceBase: z.number(),
+ HPBase: z.number(),
+ SpeedBase: z.number(),
+ StanceBase: z.number(),
+ StatusResistanceBase: z.number(),
+ child: z.array(monsterChildSchema)
+});
diff --git a/src/zod/peakDetail.zod.ts b/src/zod/peakDetail.zod.ts
new file mode 100644
index 0000000..d2375ee
--- /dev/null
+++ b/src/zod/peakDetail.zod.ts
@@ -0,0 +1,40 @@
+// Generated by ts-to-zod
+import { z } from "zod";
+
+export const challengeTagSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number())
+});
+
+const eventStageDetailSchema = z.any();
+
+const infiniteWaveSchema = z.any();
+
+export const peakLevelSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ DamageType: z.array(z.string()),
+ MazeGroupID: z.number(),
+ NpcMonsterIDList: z.array(z.number()),
+ EventIDList: z.array(eventStageDetailSchema),
+ TagList: z.array(challengeTagSchema),
+ InfiniteList: z.record(z.string(), infiniteWaveSchema)
+});
+
+export const bossConfigSchema = z.object({
+ HardName: z.string(),
+ BuffList: z.array(challengeTagSchema),
+ EventIDList: z.array(eventStageDetailSchema),
+ TagList: z.array(challengeTagSchema),
+ InfiniteList: z.record(z.string(), infiniteWaveSchema)
+});
+
+export const peakDetailSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ PreLevel: z.array(peakLevelSchema),
+ BossLevel: peakLevelSchema,
+ BossConfig: bossConfigSchema
+});
diff --git a/src/zod/pfDetail.zod.ts b/src/zod/pfDetail.zod.ts
index e604df4..01a8e4e 100644
--- a/src/zod/pfDetail.zod.ts
+++ b/src/zod/pfDetail.zod.ts
@@ -2,55 +2,55 @@
import { z } from "zod";
export const buffDetailSchema = z.object({
- Name: z.string().nullable(),
- Desc: z.string().nullable(),
- Param: z.array(z.number()),
+ Name: z.string().nullable(),
+ Desc: z.string().nullable(),
+ Param: z.array(z.number())
});
export const optionDetailSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Param: z.array(z.number()),
+ Name: z.string(),
+ Desc: z.string(),
+ Param: z.array(z.number())
});
export const infiniteWaveSchema = z.object({
- InfiniteWaveID: z.number(),
- MonsterGroupIDList: z.array(z.number()),
- MaxMonsterCount: z.number(),
- MaxTeammateCount: z.number(),
- Ability: z.string(),
- ParamList: z.array(z.number()),
- ClearPreviousAbility: z.boolean(),
- EliteGroup: z.number(),
+ InfiniteWaveID: z.number(),
+ MonsterGroupIDList: z.array(z.number()),
+ MaxMonsterCount: z.number(),
+ MaxTeammateCount: z.number(),
+ Ability: z.string(),
+ ParamList: z.array(z.number()),
+ ClearPreviousAbility: z.boolean(),
+ EliteGroup: z.number()
});
const challengeDetailSchema = z.any();
const eventStageDetailSchema = z.any();
-export const pFLevelSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Challenge: z.array(challengeDetailSchema),
- DamageType1: z.array(z.string()),
- DamageType2: z.array(z.string()),
- MazeGroupID1: z.number(),
- MazeGroupID2: z.number(),
- NpcMonsterIDList1: z.array(z.number()),
- NpcMonsterIDList2: z.array(z.number()),
- EventIDList1: z.array(eventStageDetailSchema),
- EventIDList2: z.array(eventStageDetailSchema),
- InfiniteList1: z.record(infiniteWaveSchema),
- InfiniteList2: z.record(infiniteWaveSchema),
+export const pfLevelSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Challenge: z.array(challengeDetailSchema),
+ DamageType1: z.array(z.string()),
+ DamageType2: z.array(z.string()),
+ MazeGroupID1: z.number(),
+ MazeGroupID2: z.number(),
+ NpcMonsterIDList1: z.array(z.number()),
+ NpcMonsterIDList2: z.array(z.number()),
+ EventIDList1: z.array(eventStageDetailSchema),
+ EventIDList2: z.array(eventStageDetailSchema),
+ InfiniteList1: z.record(z.string(), infiniteWaveSchema),
+ InfiniteList2: z.record(z.string(), infiniteWaveSchema)
});
-export const pFDetailSchema = z.object({
- Id: z.number(),
- Name: z.string(),
- Buff: buffDetailSchema,
- Option: z.array(optionDetailSchema),
- SubOption: z.array(optionDetailSchema),
- BeginTime: z.string(),
- EndTime: z.string(),
- Level: z.array(pFLevelSchema),
+export const pfDetailSchema = z.object({
+ Id: z.number(),
+ Name: z.string(),
+ Buff: buffDetailSchema,
+ Option: z.array(optionDetailSchema),
+ SubOption: z.array(optionDetailSchema),
+ BeginTime: z.string(),
+ EndTime: z.string(),
+ Level: z.array(pfLevelSchema)
});
diff --git a/src/zod/relicBasic.zod.ts b/src/zod/relicBasic.zod.ts
index 7ab14d8..ed74086 100644
--- a/src/zod/relicBasic.zod.ts
+++ b/src/zod/relicBasic.zod.ts
@@ -2,9 +2,9 @@
import { z } from "zod";
export const relicBasicRawEffectSchema = z.object({
- en: z.string(),
- ParamList: z.array(z.number()),
- kr: z.string(),
- cn: z.string(),
- jp: z.string(),
+ en: z.string(),
+ ParamList: z.array(z.number()),
+ kr: z.string(),
+ cn: z.string(),
+ jp: z.string()
});
diff --git a/src/zod/relicDetail.zod.ts b/src/zod/relicDetail.zod.ts
index 46d2a19..e514711 100644
--- a/src/zod/relicDetail.zod.ts
+++ b/src/zod/relicDetail.zod.ts
@@ -2,19 +2,23 @@
import { z } from "zod";
export const partDataSchema = z.object({
- Name: z.string(),
- Desc: z.string(),
- Story: z.string(),
+ Name: z.string(),
+ Desc: z.string(),
+ Story: z.string()
});
export const requireBonusSchema = z.object({
- Desc: z.string(),
- ParamList: z.array(z.number()),
+ Desc: z.string(),
+ ParamList: z.array(z.number())
});
export const relicDetailSchema = z.object({
- Name: z.string(),
- Icon: z.string(),
- Parts: z.record(partDataSchema),
- RequireNum: z.record(requireBonusSchema),
+ Name: z.string(),
+ Icon: z.string(),
+ Parts: z.record(z.string(), partDataSchema),
+ RequireNum: z.record(z.string(), requireBonusSchema),
+ Bonus: z.record(z.string(), z.array(z.object({
+ type: z.string(),
+ value: z.number()
+ })))
});
diff --git a/src/zod/showcase.zod.ts b/src/zod/showcase.zod.ts
new file mode 100644
index 0000000..304d71d
--- /dev/null
+++ b/src/zod/showcase.zod.ts
@@ -0,0 +1,29 @@
+// Generated by ts-to-zod
+import { z } from "zod";
+
+export const relicShowcaseTypeSchema = z.object({
+ img: z.string(),
+ mainAffix: z.object({
+ property: z.string(),
+ level: z.number(),
+ valueAffix: z.string(),
+ detail: z.object({
+ name: z.string(),
+ icon: z.string(),
+ unit: z.string(),
+ baseStat: z.string()
+ })
+ }),
+ subAffix: z.array(z.object({
+ property: z.string(),
+ valueAffix: z.string(),
+ detail: z.object({
+ name: z.string(),
+ icon: z.string(),
+ unit: z.string(),
+ baseStat: z.string()
+ }),
+ step: z.number(),
+ count: z.number()
+ }))
+});
diff --git a/src/zod/srtools.zod.ts b/src/zod/srtools.zod.ts
index 67367d8..f5044e3 100644
--- a/src/zod/srtools.zod.ts
+++ b/src/zod/srtools.zod.ts
@@ -1,92 +1,93 @@
// Generated by ts-to-zod
import { z } from "zod";
-import { extraDataSchema } from "./extraData.zod";
export const subAffixSchema = z.object({
- sub_affix_id: z.number(),
- count: z.number(),
- step: z.number(),
+ sub_affix_id: z.number(),
+ count: z.number(),
+ step: z.number()
});
export const relicJsonSchema = z.object({
- level: z.number(),
- relic_id: z.number(),
- relic_set_id: z.number(),
- main_affix_id: z.number(),
- sub_affixes: z.array(subAffixSchema),
- internal_uid: z.number(),
- equip_avatar: z.number(),
+ level: z.number(),
+ relic_id: z.number(),
+ relic_set_id: z.number(),
+ main_affix_id: z.number(),
+ sub_affixes: z.array(subAffixSchema),
+ internal_uid: z.number(),
+ equip_avatar: z.number()
});
export const lightconeJsonSchema = z.object({
- level: z.number(),
- item_id: z.number(),
- equip_avatar: z.number(),
- rank: z.number(),
- promotion: z.number(),
- internal_uid: z.number(),
+ level: z.number(),
+ item_id: z.number(),
+ equip_avatar: z.number(),
+ rank: z.number(),
+ promotion: z.number(),
+ internal_uid: z.number()
});
export const avatarDataSchema = z.object({
- rank: z.number(),
- skills: z.record(z.number()),
+ rank: z.number(),
+ skills: z.record(z.string(), z.number())
});
export const avatarJsonSchema = z.object({
- owner_uid: z.number().optional(),
- avatar_id: z.number(),
- data: avatarDataSchema,
- level: z.number(),
- promotion: z.number(),
- techniques: z.array(z.number()),
- sp_value: z.number(),
- sp_max: z.number(),
+ owner_uid: z.number().optional(),
+ avatar_id: z.number(),
+ data: avatarDataSchema,
+ level: z.number(),
+ promotion: z.number(),
+ techniques: z.array(z.number()),
+ sp_value: z.number(),
+ sp_max: z.number()
});
export const monsterJsonSchema = z.object({
- monster_id: z.number(),
- level: z.number(),
- amount: z.number(),
+ monster_id: z.number(),
+ level: z.number(),
+ amount: z.number()
});
export const dynamicKeyJsonSchema = z.object({
- key: z.string(),
- value: z.number(),
+ key: z.string(),
+ value: z.number()
});
export const battleBuffJsonSchema = z.object({
- level: z.number(),
- id: z.number(),
- dynamic_key: dynamicKeyJsonSchema.optional(),
+ level: z.number(),
+ id: z.number(),
+ dynamic_key: dynamicKeyJsonSchema.optional()
});
export const battleConfigJsonSchema = z.object({
- battle_type: z.string(),
- blessings: z.array(battleBuffJsonSchema),
- custom_stats: z.array(subAffixSchema),
- cycle_count: z.number(),
- stage_id: z.number(),
- path_resonance_id: z.number(),
- monsters: z.array(z.array(monsterJsonSchema)),
+ battle_type: z.string(),
+ blessings: z.array(battleBuffJsonSchema),
+ custom_stats: z.array(subAffixSchema),
+ cycle_count: z.number(),
+ stage_id: z.number(),
+ path_resonance_id: z.number(),
+ monsters: z.array(z.array(monsterJsonSchema))
});
-export const loadoutJsonSchema = z.object({
- name: z.string(),
- avatar_id: z.number(),
- relic_list: z.array(z.string()),
+const loadoutJsonSchema = z.object({
+ name: z.string(),
+ avatar_id: z.number(),
+ relic_list: z.array(z.string())
});
-export const freeSRJsonSchema = z.object({
- key: z.string().optional(),
- lightcones: z.array(lightconeJsonSchema),
- relics: z.array(relicJsonSchema),
- avatars: z.record(avatarJsonSchema),
- battle_config: battleConfigJsonSchema,
- loadout: z.array(loadoutJsonSchema).optional(),
+export const freeSrJsonSchema = z.object({
+ key: z.string().optional(),
+ lightcones: z.array(lightconeJsonSchema),
+ relics: z.array(relicJsonSchema),
+ avatars: z.record(z.string(), avatarJsonSchema),
+ battle_config: battleConfigJsonSchema,
+ loadout: z.array(loadoutJsonSchema).optional()
});
-export const pSResponseSchema = z.object({
- status: z.number(),
- message: z.string(),
- extra_data: extraDataSchema.optional(),
+const extraDataSchema = z.any();
+
+export const psResponseSchema = z.object({
+ status: z.number(),
+ message: z.string(),
+ extra_data: extraDataSchema.optional()
});