mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-06 19:53:44 +08:00
再加点typing
This commit is contained in:
parent
16942a83a0
commit
070bce4132
@ -1,9 +1,9 @@
|
|||||||
from typing import List
|
from typing import Dict, List
|
||||||
|
|
||||||
from gsuid_core.logger import logger
|
from gsuid_core.logger import logger
|
||||||
|
|
||||||
from ..Base.AvatarBase import BaseAvatar, BaseAvatarBuff
|
from ..Base.AvatarBase import BaseAvatar, BaseAvatarBuff
|
||||||
from ..Base.model import DamageInstanceSkill, DamageInstanceAvatar
|
from ..Base.model import DamageInstanceAvatar, DamageInstanceSkill
|
||||||
|
|
||||||
|
|
||||||
class Seele(BaseAvatar):
|
class Seele(BaseAvatar):
|
||||||
@ -13,8 +13,8 @@ class Seele(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -41,8 +41,8 @@ class JingYuan(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -72,8 +72,8 @@ class Clara(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -98,8 +98,8 @@ class Danhengil(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -129,8 +129,8 @@ class Silverwolf(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -164,8 +164,8 @@ class Kafka(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -189,8 +189,8 @@ class Blade(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -217,8 +217,8 @@ class Fuxuan(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -240,8 +240,8 @@ class Gepard(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -262,8 +262,8 @@ class Yanqing(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -297,8 +297,8 @@ class Welt(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -322,8 +322,8 @@ class Himeko(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -351,8 +351,8 @@ class Qingque(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
@ -383,8 +383,8 @@ class Jingliu(BaseAvatar):
|
|||||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
super().__init__(char=char, skills=skills)
|
super().__init__(char=char, skills=skills)
|
||||||
self.eidolon_attribute = {}
|
self.eidolon_attribute: Dict[str, float] = {}
|
||||||
self.extra_ability_attribute = {}
|
self.extra_ability_attribute: Dict[str, float] = {}
|
||||||
self.eidolons()
|
self.eidolons()
|
||||||
self.extra_ability()
|
self.extra_ability()
|
||||||
|
|
||||||
|
@ -111,66 +111,74 @@ class BaseAvatar:
|
|||||||
skill_info_ = msgspec.convert(skill_info, type=List[Union[str, int]])
|
skill_info_ = msgspec.convert(skill_info, type=List[Union[str, int]])
|
||||||
return skill_info_
|
return skill_info_
|
||||||
|
|
||||||
def Normalnum(self, skill_type: str) -> float:
|
def Normalnum(self, skill_type: str):
|
||||||
return skill_dict[str(self.avatar_id)][skill_type][
|
skill_info = skill_dict[str(self.avatar_id)][skill_type][
|
||||||
self.Skill.Normal_.level - 1
|
self.Skill.Normal_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Normal(self) -> float:
|
def Normal(self):
|
||||||
return skill_dict[str(self.avatar_id)]['Normal'][
|
skill_info = skill_dict[str(self.avatar_id)]['Normal'][
|
||||||
self.Skill.Normal_.level - 1
|
self.Skill.Normal_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def BPSkill(self) -> float:
|
def BPSkill(self):
|
||||||
return skill_dict[str(self.avatar_id)]['BPSkill'][
|
skill_info = skill_dict[str(self.avatar_id)]['BPSkill'][
|
||||||
self.Skill.BPSkill_.level - 1
|
self.Skill.BPSkill_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Ultra(self) -> float:
|
def Ultra(self):
|
||||||
return skill_dict[str(self.avatar_id)]['Ultra'][
|
skill_info = skill_dict[str(self.avatar_id)]['Ultra'][
|
||||||
self.Skill.Ultra_.level - 1
|
self.Skill.Ultra_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Maze(self) -> float:
|
def Maze(self):
|
||||||
return skill_dict[str(self.avatar_id)]['Maze'][
|
skill_info = skill_dict[str(self.avatar_id)]['Maze'][
|
||||||
self.Skill.Maze_.level - 1
|
self.Skill.Maze_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Talent(self) -> float:
|
def Talent(self):
|
||||||
return skill_dict[str(self.avatar_id)]['Talent'][
|
skill_info = skill_dict[str(self.avatar_id)]['Talent'][
|
||||||
self.Skill.Talent_.level - 1
|
self.Skill.Talent_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def BPSkill_num(self, skill_type: str) -> float:
|
def BPSkill_num(self, skill_type: str):
|
||||||
return skill_dict[str(self.avatar_id)][skill_type][
|
skill_info = skill_dict[str(self.avatar_id)][skill_type][
|
||||||
self.Skill.BPSkill_.level - 1
|
self.Skill.BPSkill_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Ultra_num(self, skill_type: str) -> float:
|
def Ultra_num(self, skill_type: str):
|
||||||
return skill_dict[str(self.avatar_id)][skill_type][
|
skill_info = skill_dict[str(self.avatar_id)][skill_type][
|
||||||
self.Skill.Ultra_.level - 1
|
self.Skill.Ultra_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Talent_num(self, skill_type: str) -> float:
|
def Talent_num(self, skill_type: str):
|
||||||
return skill_dict[str(self.avatar_id)][skill_type][
|
skill_info = skill_dict[str(self.avatar_id)][skill_type][
|
||||||
self.Skill.Talent_.level - 1
|
self.Skill.Talent_.level - 1
|
||||||
]
|
]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
|
||||||
def Talent_add(self) -> float:
|
def Talent_add(self):
|
||||||
if self.avatar_id in [1102]:
|
if self.avatar_id in [1102]:
|
||||||
return float(
|
skill_info = skill_dict[str(self.avatar_id)]['Talent'][
|
||||||
skill_dict[str(self.avatar_id)]['Talent'][
|
|
||||||
self.Skill.Talent_.level - 1
|
self.Skill.Talent_.level - 1
|
||||||
]
|
]
|
||||||
)
|
return msgspec.convert(skill_info, type=float)
|
||||||
elif self.avatar_id in [1205]:
|
elif self.avatar_id in [1205]:
|
||||||
return float(
|
skill_info = skill_dict[str(self.avatar_id)]['BPSkill'][
|
||||||
skill_dict[str(self.avatar_id)]['BPSkill'][
|
|
||||||
self.Skill.BPSkill_.level - 1
|
self.Skill.BPSkill_.level - 1
|
||||||
]
|
]
|
||||||
)
|
return msgspec.convert(skill_info, type=float)
|
||||||
else:
|
else:
|
||||||
return float(0)
|
return 0.0
|
||||||
|
|
||||||
def Ultra_Use(self) -> float:
|
def Ultra_Use(self):
|
||||||
return skill_dict[str(self.avatar_id)]['Ultra_Use'][0]
|
skill_info = skill_dict[str(self.avatar_id)]['Ultra_Use'][0]
|
||||||
|
return msgspec.convert(skill_info, type=float)
|
||||||
|
@ -14,7 +14,7 @@ class SingleRelic:
|
|||||||
self.set_id = relic.SetId
|
self.set_id = relic.SetId
|
||||||
self.relic_type = relic.Type
|
self.relic_type = relic.Type
|
||||||
self.relic_level = relic.Level
|
self.relic_level = relic.Level
|
||||||
self.relic_attribute_bonus = {}
|
self.relic_attribute_bonus: Dict[str, float] = {}
|
||||||
|
|
||||||
def get_attribute_(self):
|
def get_attribute_(self):
|
||||||
# MainAffix
|
# MainAffix
|
||||||
@ -51,8 +51,7 @@ class BaseRelicSetSkill:
|
|||||||
if count == 4:
|
if count == 4:
|
||||||
self.pieces4 = True
|
self.pieces4 = True
|
||||||
logger.info(f'Relic {set_id} 4 pieces set activated')
|
logger.info(f'Relic {set_id} 4 pieces set activated')
|
||||||
self.relicSetAttribute: Dict[str, float] = {}
|
self.relicSetAttribute = self.set_skill_property_ability()
|
||||||
self.set_skill_property_ability()
|
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
async def check(
|
async def check(
|
||||||
@ -72,17 +71,22 @@ class BaseRelicSetSkill:
|
|||||||
def set_skill_property_ability(self):
|
def set_skill_property_ability(self):
|
||||||
set_property = ''
|
set_property = ''
|
||||||
set_value = 0
|
set_value = 0
|
||||||
if self.pieces2 and RelicSetSkill[str(self.setId)]['2'] != {}:
|
relic_set_attribute: Dict[str, float] = {}
|
||||||
set_property = RelicSetSkill[str(self.setId)]['2']['Property']
|
if self.pieces2:
|
||||||
set_value = RelicSetSkill[str(self.setId)]['2']['Value']
|
status_add = RelicSetSkill.RelicSet[str(self.setId)]['2']
|
||||||
if self.pieces4 and RelicSetSkill[str(self.setId)]['4'] != {}:
|
if status_add:
|
||||||
set_property = RelicSetSkill[str(self.setId)]['4']['Property']
|
set_property = status_add.Property
|
||||||
set_value = RelicSetSkill[str(self.setId)]['4']['Value']
|
set_value = status_add.Value
|
||||||
|
if self.pieces4:
|
||||||
|
status_add = RelicSetSkill.RelicSet[str(self.setId)]['4']
|
||||||
|
if status_add:
|
||||||
|
set_property = status_add.Property
|
||||||
|
set_value = status_add.Value
|
||||||
if set_property != '':
|
if set_property != '':
|
||||||
if set_property in self.relicSetAttribute:
|
if set_property in relic_set_attribute:
|
||||||
self.relicSetAttribute[set_property] = (
|
relic_set_attribute[set_property] = (
|
||||||
self.relicSetAttribute[set_property] + set_value
|
relic_set_attribute[set_property] + set_value
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.relicSetAttribute[set_property] = set_value
|
relic_set_attribute[set_property] = set_value
|
||||||
return self.relicSetAttribute
|
return relic_set_attribute
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from typing import Dict
|
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
|
from typing import Dict
|
||||||
|
|
||||||
from msgspec import Struct
|
from msgspec import Struct
|
||||||
|
|
||||||
from .model import DamageInstanceWeapon
|
|
||||||
from ....utils.excel.model import EquipmentPromotionConfig
|
from ....utils.excel.model import EquipmentPromotionConfig
|
||||||
from ....utils.map.SR_MAP_PATH import EquipmentID2AbilityProperty
|
from ....utils.map.SR_MAP_PATH import EquipmentID2AbilityProperty
|
||||||
|
from .model import DamageInstanceWeapon
|
||||||
|
|
||||||
|
|
||||||
class BaseWeaponAttribute(Struct):
|
class BaseWeaponAttribute(Struct):
|
||||||
@ -28,7 +28,7 @@ class BaseWeapon:
|
|||||||
self.weapon_rank = weapon.rank
|
self.weapon_rank = weapon.rank
|
||||||
self.weapon_promotion = weapon.promotion
|
self.weapon_promotion = weapon.promotion
|
||||||
self.weapon_base_attribute = self.get_attribute()
|
self.weapon_base_attribute = self.get_attribute()
|
||||||
self.weapon_attribute = {}
|
self.weapon_attribute: Dict[str, float] = {}
|
||||||
self.get_attribute()
|
self.get_attribute()
|
||||||
self.weapon_property_ability()
|
self.weapon_property_ability()
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import json
|
import json
|
||||||
from typing import Dict
|
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
|
from typing import Dict, List
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from ...utils.map.SR_MAP_PATH import RelicSetSkill, EquipmentID2AbilityProperty
|
from ...utils.map.SR_MAP_PATH import EquipmentID2AbilityProperty, RelicSetSkill
|
||||||
|
|
||||||
|
|
||||||
class Character:
|
class Character:
|
||||||
@ -74,7 +74,7 @@ class Character:
|
|||||||
|
|
||||||
async def get_relic_info(self):
|
async def get_relic_info(self):
|
||||||
# 计算圣遗物效果
|
# 计算圣遗物效果
|
||||||
set_id_list = []
|
set_id_list: List[int] = []
|
||||||
for relic in self.char_relic:
|
for relic in self.char_relic:
|
||||||
set_id_list.append(relic['SetId'])
|
set_id_list.append(relic['SetId'])
|
||||||
# 处理主属性
|
# 处理主属性
|
||||||
@ -103,12 +103,16 @@ class Character:
|
|||||||
set_id = item[0]
|
set_id = item[0]
|
||||||
count = item[1]
|
count = item[1]
|
||||||
set_value = 0
|
set_value = 0
|
||||||
if count >= 2 and RelicSetSkill[str(set_id)]['2'] != {}:
|
if count >= 2:
|
||||||
set_property = RelicSetSkill[str(set_id)]['2']['Property']
|
status_add = RelicSetSkill.RelicSet[str(set_id)]['2']
|
||||||
set_value = RelicSetSkill[str(set_id)]['2']['Value']
|
if status_add:
|
||||||
if count == 4 and RelicSetSkill[str(set_id)]['4'] != {}:
|
set_property = status_add.Property
|
||||||
set_property = RelicSetSkill[str(set_id)]['4']['Property']
|
set_value = status_add.Value
|
||||||
set_value = RelicSetSkill[str(set_id)]['4']['Value']
|
if count == 4:
|
||||||
|
status_add = RelicSetSkill.RelicSet[str(set_id)]['4']
|
||||||
|
if status_add:
|
||||||
|
set_property = status_add.Property
|
||||||
|
set_value = status_add.Value
|
||||||
if set_property != '':
|
if set_property != '':
|
||||||
if set_property in self.add_attr:
|
if set_property in self.add_attr:
|
||||||
self.add_attr[set_property] = (
|
self.add_attr[set_property] = (
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Union, TypedDict
|
from typing import Dict, List, TypedDict, Union
|
||||||
|
|
||||||
from msgspec import json as msgjson
|
from msgspec import json as msgjson
|
||||||
|
|
||||||
from ...version import StarRail_version
|
from ...version import StarRail_version
|
||||||
|
from .model.RelicSetSkill import RelicSetSkillModel
|
||||||
|
|
||||||
MAP = Path(__file__).parent / 'data'
|
MAP = Path(__file__).parent / 'data'
|
||||||
|
|
||||||
@ -97,7 +99,8 @@ with Path.open(
|
|||||||
)
|
)
|
||||||
|
|
||||||
with Path.open(MAP / RelicSetSkill_fileName, encoding='UTF-8') as f:
|
with Path.open(MAP / RelicSetSkill_fileName, encoding='UTF-8') as f:
|
||||||
RelicSetSkill = msgjson.decode(f.read(), type=Dict[str, Dict])
|
data = json.load(f)
|
||||||
|
RelicSetSkill = RelicSetSkillModel.from_json(data)
|
||||||
|
|
||||||
with Path.open(MAP / skillId2AttackType_fileName, encoding='UTF-8') as f:
|
with Path.open(MAP / skillId2AttackType_fileName, encoding='UTF-8') as f:
|
||||||
skillId2AttackType = msgjson.decode(f.read(), type=Dict[str, str])
|
skillId2AttackType = msgjson.decode(f.read(), type=Dict[str, str])
|
||||||
|
25
StarRailUID/utils/map/model/RelicSetSkill.py
Normal file
25
StarRailUID/utils/map/model/RelicSetSkill.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from typing import Dict, Union
|
||||||
|
|
||||||
|
from msgspec import Struct
|
||||||
|
|
||||||
|
|
||||||
|
class RelicSetStatusAdd(Struct):
|
||||||
|
Property: str
|
||||||
|
Value: float
|
||||||
|
|
||||||
|
|
||||||
|
class RelicSetSkillModel(Struct):
|
||||||
|
RelicSet: Dict[str, Dict[str, Union[RelicSetStatusAdd, None]]]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_json(cls, data: Dict):
|
||||||
|
return cls(RelicSet={
|
||||||
|
str(k): {
|
||||||
|
str(k2): RelicSetStatusAdd(
|
||||||
|
Property=v2['Property'],
|
||||||
|
Value=v2['Value']
|
||||||
|
) if v2 else None
|
||||||
|
for k2, v2 in v.items()
|
||||||
|
}
|
||||||
|
for k, v in data.items()
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user