This commit is contained in:
2025-06-09 00:18:57 +08:00
parent e3dbe8a7d3
commit 8226a78482
10 changed files with 196 additions and 92 deletions
+46 -35
View File
@@ -1,16 +1,22 @@
from enum import Enum
from pydantic import BaseModel, Field
from typing import Generic, TypeVar
from pydantic.generics import GenericModel
from api.core.Response import Return as Response
class SkillInfo(BaseModel):
skillId: str = Field(..., description='技能ID')
"""技能ID"""
skillName: str = Field(..., description='技能名称')
"""技能名称"""
job: str = Field(..., description='职业')
"""职业"""
jobGrow: str = Field(..., description='转职')
"""转职"""
jobId: str = Field(..., description='职业Id')
"""职业Id"""
jobName: str = Field(..., description='职业名称')
"""职业名称"""
jobGrowId: str = Field(..., description='转职Id')
"""转职Id"""
jobGrowName: str = Field(..., description='转职名称')
"""转职名称"""
class SkillType(str, Enum):
@@ -33,36 +39,38 @@ class IConsumeItem(BaseModel):
"""物品ID"""
itemName: str = Field(..., description='物品名称')
"""物品名称"""
value: str = Field(..., description='物品类型')
value: int = Field(..., description='物品类型')
"""物品类型"""
class IPreSkill(BaseModel):
level: str = Field(..., description='前置技能等级')
level: int = Field(..., description='前置技能等级')
"""前置技能等级"""
name: str = Field(..., description='前置技能名称')
"""前置技能名称"""
skillId: int = Field(..., description='前置技能ID')
skillId: str = Field(..., description='前置技能ID')
"""前置技能ID"""
class IAttribute(BaseModel):
castingTime: float | None = Field(..., description='施放时间')
castingTime: float | None = Field(None, description='施放时间')
"""施放时间"""
coolTime: float | None = Field(..., description='冷却时间')
coolTime: float | None = Field(None, description='冷却时间')
"""冷却时间"""
consumeMp: int | None = Field(..., description='魔法值')
consumeMp: int | None = Field(None, description='魔法值')
"""魔法值"""
detail: str | None = Field(..., description='技能描述')
detail: str | None = Field(None, description='技能描述')
"""技能描述"""
level: int | None = Field(..., description='技能等级')
level: int | None = Field(None, description='技能等级')
"""技能等级"""
optionDesc: str | None = Field(..., description='技能选项描述')
optionDesc: str | None = Field(None, description='技能选项描述')
"""技能选项描述"""
optionValue: dict[str, float] | None = Field(..., description='技能选项值')
optionValue: dict[str, float | str] | None = Field(None, description='技能选项值')
class ILevelInfo(BaseModel):
optionDesc: str | None = Field(..., description='技能选项描述')
rows: list[IAttribute] | None = Field(..., description='技能等级信息')
optionDesc: str | None = Field(None, description='技能选项描述')
rows: list[IAttribute] | None = Field(None, description='技能等级信息')
class IEvolution(BaseModel):
@@ -70,23 +78,23 @@ class IEvolution(BaseModel):
"""进化类型"""
name: str = Field(..., description='进化名称')
"""进化名称"""
desc: str | None = Field(..., description='进化简介')
desc: str = Field(..., description='进化简介')
"""进化简介"""
descDetail: str | None = Field(..., description='进化详细描述')
descDetail: str = Field(..., description='进化详细描述')
"""进化详细描述"""
class IKeyValues(BaseModel):
name: str = Field(..., description='名称')
"""名称"""
value: str | None = Field(..., description='数值')
value: str = Field(..., description='数值')
"""数值"""
class IEnhancement(BaseModel):
type: str = Field(..., description='强化类型')
type: int = Field(None, description='强化类型')
"""强化类型"""
status: list[IKeyValues] | None = Field(..., description='强化状态')
status: list[IKeyValues] = Field(None, description='强化状态')
class SkillDetail(BaseModel):
@@ -94,31 +102,34 @@ class SkillDetail(BaseModel):
"""技能名称"""
type: SkillType = Field(..., description='技能类型')
"""技能类型"""
desc: str | None = Field(..., description='技能描述')
desc: str | None = Field(None, description='技能描述')
"""技能描述"""
descDetail: str | None = Field(..., description='技能详细描述')
descDetail: str | None = Field(None, description='技能详细描述')
"""技能详细描述"""
consumeItem: IConsumeItem | None = Field(..., description='消耗物品')
consumeItem: IConsumeItem | None = Field(None, description='消耗物品')
"""消耗物品"""
descSpecial: str | None = Field(..., description='特殊功能')
descSpecial: list[str] | None = Field(None, description='特殊功能')
"""特殊功能"""
maxLevel: int = Field(..., description='等级上限')
"""等级上限"""
requiredLevel: int = Field(1, description='学习等级')
requiredLevel: int = Field(..., description='学习等级')
"""学习等级"""
requiredLevelRange: str | None = Field(..., description='学习间隔')
requiredLevelRange: int = Field(..., description='学习间隔')
"""学习间隔"""
preRequiredSkill: list[IPreSkill] | None = Field(..., description='前置技能')
preRequiredSkill: list[IPreSkill] | None = Field(None, description='前置技能')
"""前置技能"""
jobId: str | None = Field(..., description='职业ID')
jobId: str = Field(..., description='职业ID')
"""职业ID"""
jobName: str | None = Field(..., description='职业名称')
jobName: str = Field(..., description='职业名称')
"""职业名称"""
levelInfo: list[ILevelInfo] | None = Field(..., description='技能等级信息')
levelInfo: list[ILevelInfo] | None = Field(None, description='技能等级信息')
"""技能等级信息"""
attribute: IAttribute | None = Field(..., description='技能属性')
attribute: IAttribute | None = Field(None, description='技能属性')
"""技能属性"""
evolution: list[IEvolution] | None = Field(..., description='技能进化信息')
evolution: list[IEvolution] | None = Field(None, description='技能进化信息')
"""技能进化信息"""
enhancement: list[IEnhancement] | None = Field(..., description='技能强化信息')
enhancement: list[IEnhancement] | None = Field(None, description='技能强化信息')
"""技能强化信息"""
SkillDetailResponse = Response[SkillDetail]
SkillsListResponse = Response[list[SkillInfo]]