genshin-wiki/model/avatar/_avatar.py

178 lines
3.1 KiB
Python
Raw Normal View History

2023-05-02 14:21:08 +00:00
from model.avatar._talente import AvatarTalents
from model.enums import Association, AvatarQuality, Element, PropType, WeaponType
2023-05-02 10:20:27 +00:00
from model.other import ItemCount
2023-04-24 15:06:39 +00:00
from utils.model import BaseModel
2023-04-29 14:59:16 +00:00
__all__ = (
"Avatar",
"AvatarBirth",
"AvatarInfo",
"AvatarConstellation",
"AvatarPromote",
2023-05-02 03:10:53 +00:00
"AvatarStories",
"Story",
2023-04-29 14:59:16 +00:00
"Seuyu",
2023-05-02 10:20:27 +00:00
"AvatarAttribute",
"AddProp",
2023-04-29 14:59:16 +00:00
)
2023-04-24 15:06:39 +00:00
class AvatarBirth(BaseModel):
"""角色生日"""
month: int
""""""
day: int
""""""
class Seuyu(BaseModel):
"""声优"""
cn: str
"""汉语CV"""
jp: str
"""日语CV"""
en: str
"""英语CV"""
kr: str
"""韩语CV"""
2023-05-02 03:10:53 +00:00
class Story(BaseModel):
"""故事"""
title: str
"""标题"""
content: str
"""内容"""
tips: list[str]
"""提示"""
class AvatarStories(BaseModel):
"""角色故事"""
details: Story
"""角色详情"""
story_1: Story
"""角色故事1"""
story_2: Story
"""角色故事2"""
story_3: Story
"""角色故事3"""
story_4: Story
"""角色故事4"""
story_5: Story
"""角色故事5"""
2023-05-02 14:21:08 +00:00
miscellaneous: Story | None = None
2023-05-02 03:10:53 +00:00
"""角色杂谈"""
2023-05-02 14:21:08 +00:00
vision: Story | None = None
2023-05-02 03:10:53 +00:00
"""神之眼"""
2023-04-24 15:06:39 +00:00
class AvatarInfo(BaseModel):
2023-05-02 14:21:08 +00:00
title: str | None
2023-04-24 15:06:39 +00:00
"""称号"""
2023-05-02 14:21:08 +00:00
birth: AvatarBirth | None
2023-04-24 15:06:39 +00:00
"""生日"""
occupation: str
"""所属"""
vision: str
"""神之眼"""
constellation: str
"""星座"""
description: str
"""描述"""
2023-05-02 03:10:53 +00:00
association: Association
"""区域"""
2023-04-24 15:06:39 +00:00
seuyu: Seuyu
"""声优"""
2023-05-02 03:10:53 +00:00
stories: AvatarStories
"""故事"""
2023-04-24 15:06:39 +00:00
class AddProp(BaseModel):
"""属性加成"""
type: PropType
"""属性类型"""
value: float
"""属性值"""
2023-04-24 15:06:39 +00:00
class AvatarPromote(BaseModel):
promote_level: int = 0
"""突破等级"""
max_level: int
"""解锁的等级上限"""
add_props: list[AddProp] = []
"""属性加成"""
2023-04-24 15:06:39 +00:00
coin: int = 0
"""摩拉"""
2023-05-02 10:20:27 +00:00
cost_items: list[ItemCount] = []
2023-04-24 15:06:39 +00:00
"""突破所需材料"""
class AvatarConstellation(BaseModel):
"""角色命座"""
name: str
"""命座名"""
description: str
"""命座描述"""
icon: str
"""命座图标"""
2023-05-02 14:21:08 +00:00
param_list: list[float]
"""命座数据参数列表"""
2023-04-24 15:06:39 +00:00
2023-05-02 10:20:27 +00:00
class AvatarAttribute(BaseModel):
"""角色属性"""
HP: float
"""生命值"""
Attack: float
"""攻击力"""
Defense: float
"""防御力"""
Critical: float
"""暴击率"""
CriticalHurt: float
2023-05-02 10:20:27 +00:00
"""暴击伤害"""
ChargeEfficiency: float
"""元素充能效率"""
2023-04-24 15:06:39 +00:00
class Avatar(BaseModel):
"""角色"""
id: int
"""角色ID"""
name: str
"""名称"""
element: Element
"""元素"""
quality: AvatarQuality
"""品质"""
weapon_type: WeaponType
"""武器类型"""
information: AvatarInfo
"""角色信息"""
2023-05-02 10:20:27 +00:00
attributes: AvatarAttribute
"""角色基础属性"""
2023-05-02 14:21:08 +00:00
talents: AvatarTalents
2023-05-02 03:10:53 +00:00
"""角色天赋信息"""
2023-05-02 10:20:27 +00:00
promotes: list[AvatarPromote]
"""角色突破数据"""
2023-04-24 15:06:39 +00:00
constellations: list[AvatarConstellation]
"""角色命座信息"""