mirror of
https://github.com/PaiGramTeam/StarRailDamageCal.git
synced 2024-12-01 03:11:02 +00:00
78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
from typing import List, Union
|
|
|
|
from msgspec import Struct, convert
|
|
|
|
from starrail_damage_cal.excel.read_excel import (
|
|
AvatarPromotion,
|
|
EquipmentPromotion,
|
|
RelicMainAffix,
|
|
RelicSubAffix,
|
|
)
|
|
|
|
|
|
class PromotionCost(Struct):
|
|
ItemID: int
|
|
ItemNum: int
|
|
|
|
|
|
class PromotionAttr(Struct):
|
|
Value: float
|
|
|
|
|
|
class SingleAvatarPromotion(Struct):
|
|
AvatarID: int
|
|
PromotionCostList: List[PromotionCost]
|
|
MaxLevel: int
|
|
# WorldLevelRequire: Union[int, None]
|
|
AttackBase: PromotionAttr
|
|
AttackAdd: PromotionAttr
|
|
DefenceBase: PromotionAttr
|
|
DefenceAdd: PromotionAttr
|
|
HPBase: PromotionAttr
|
|
HPAdd: PromotionAttr
|
|
SpeedBase: PromotionAttr
|
|
CriticalChance: PromotionAttr
|
|
CriticalDamage: PromotionAttr
|
|
BaseAggro: PromotionAttr
|
|
Promotion: Union[int, None] = None
|
|
PlayerLevelRequire: Union[int, None] = None
|
|
|
|
|
|
class SingleEquipmentPromotion(Struct):
|
|
EquipmentID: int
|
|
PromotionCostList: List[PromotionCost]
|
|
MaxLevel: int
|
|
# WorldLevelRequire: Union[int, None]
|
|
BaseHP: PromotionAttr
|
|
BaseHPAdd: PromotionAttr
|
|
BaseAttack: PromotionAttr
|
|
BaseAttackAdd: PromotionAttr
|
|
BaseDefence: PromotionAttr
|
|
BaseDefenceAdd: PromotionAttr
|
|
Promotion: Union[int, None] = None
|
|
PlayerLevelRequire: Union[int, None] = None
|
|
|
|
|
|
class SingleRelicMainAffix(Struct):
|
|
GroupID: int
|
|
AffixID: int
|
|
Property: str
|
|
BaseValue: PromotionAttr
|
|
LevelAdd: PromotionAttr
|
|
IsAvailable: bool
|
|
|
|
|
|
class SingleRelicSubAffix(Struct):
|
|
GroupID: int
|
|
AffixID: int
|
|
Property: str
|
|
BaseValue: PromotionAttr
|
|
StepValue: PromotionAttr
|
|
StepNum: int
|
|
|
|
|
|
AvatarPromotionConfig = convert(AvatarPromotion, List[SingleAvatarPromotion])
|
|
EquipmentPromotionConfig = convert(EquipmentPromotion, List[SingleEquipmentPromotion])
|
|
RelicMainAffixConfig = convert(RelicMainAffix, List[SingleRelicMainAffix])
|
|
RelicSubAffixConfig = convert(RelicSubAffix, List[SingleRelicSubAffix])
|