mirror of
https://github.com/baiqwerdvd/StarRailDamageCal.git
synced 2025-05-09 05:25:51 +08:00
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
from typing import List, Union
|
|
|
|
from msgspec import Struct, field
|
|
|
|
from ...model import (
|
|
MohomoAvatarAttributeBonus,
|
|
MohomoAvatarExtraAbility,
|
|
MohomoAvatarSkill,
|
|
Relic,
|
|
)
|
|
from ...mono.Character import Character
|
|
|
|
|
|
class DamageInstanceWeapon(Struct):
|
|
id_: int = field(name="id")
|
|
level: int
|
|
rank: int
|
|
promotion: int
|
|
|
|
|
|
class DamageInstanceAvatar(Struct):
|
|
id_: int = field(name="id")
|
|
level: int
|
|
rank: int
|
|
element: str
|
|
promotion: int
|
|
attribute_bonus: List[MohomoAvatarAttributeBonus]
|
|
extra_ability: List[MohomoAvatarExtraAbility]
|
|
|
|
|
|
class DamageInstance:
|
|
avatar: DamageInstanceAvatar
|
|
weapon: Union[DamageInstanceWeapon, None]
|
|
relic: List[Relic]
|
|
skill: List[MohomoAvatarSkill]
|
|
|
|
def __init__(self, char: Character):
|
|
self.avatar = DamageInstanceAvatar(
|
|
id_=char.char_id,
|
|
level=char.char_level,
|
|
rank=char.char_rank,
|
|
element=char.char_element,
|
|
promotion=char.char_promotion,
|
|
attribute_bonus=char.attribute_bonus,
|
|
extra_ability=char.extra_ability,
|
|
)
|
|
self.weapon = DamageInstanceWeapon(
|
|
id_=char.equipment.equipmentID,
|
|
level=char.equipment.equipmentLevel,
|
|
rank=char.equipment.equipmentRank,
|
|
promotion=char.equipment.equipmentPromotion,
|
|
)
|
|
self.relic = char.char_relic
|
|
self.skill = char.char_skill
|