StarRailDamageCal/starrail_damage_cal/mihomo/models.py
2023-10-30 14:31:15 +08:00

75 lines
1.7 KiB
Python

from typing import List, Union
from msgspec import Struct, field
class Behavior(Struct):
pointId: int
level: int
class Equipment(Struct):
level: Union[int, None] = field(default=0)
tid: Union[int, None] = None
promotion: Union[int, None] = field(default=0)
rank: Union[int, None] = field(default=0)
class SubAffix(Struct):
affixId: int
cnt: int
step: Union[int, None] = field(default=0)
class Relic(Struct):
tid: int
mainAffixId: int
type_: int = field(name="type")
subAffixList: Union[List[SubAffix], None] = field(default=[])
level: Union[int, None] = field(default=0)
class Avatar(Struct):
skillTreeList: List[Behavior]
avatarId: int
level: int
equipment: Union[Equipment, None] = None
relicList: Union[List[Relic], None] = field(default=[])
pos: Union[int, None] = field(default=0)
rank: Union[int, None] = field(default=0)
promotion: Union[int, None] = field(default=0)
class Challenge(Struct):
scheduleMaxLevel: Union[int, None] = None
MazeGroupIndex: Union[int, None] = None
PreMazeGroupIndex: Union[int, None] = None
class PlayerSpaceInfo(Struct):
challengeInfo: Challenge
maxRogueChallengeScore: int
equipmentCount: int
avatarCount: int
achievementCount: int
class PlayerDetailInfo(Struct):
assistAvatarDetail: Avatar
platform: str
isDisplayAvatar: bool
avatarDetailList: Union[List[Avatar], None]
uid: int
friendCount: int
worldLevel: int
nickname: str
level: int
recordInfo: Union[PlayerSpaceInfo, None]
headIcon: int
signature: Union[str, None] = None
Birthday: Union[int, None] = None
class MihomoData(Struct):
detailInfo: PlayerDetailInfo