mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-05 19:23:45 +08:00
🐛 修复一些bug
This commit is contained in:
parent
ac3f219db8
commit
d853d60aca
@ -1,5 +1,6 @@
|
||||
"""Mihomo.me api 包装
|
||||
"""
|
||||
from .models import MihomoData as MihomoData
|
||||
from .requests import get_char_card_info as requests
|
||||
|
||||
__all__ = ["requests", "MihomoData"]
|
||||
|
@ -1,35 +1,19 @@
|
||||
import re
|
||||
import json
|
||||
import math
|
||||
import re
|
||||
from pathlib import Path
|
||||
from typing import Dict, Union
|
||||
|
||||
from mpmath import mp, nstr
|
||||
from PIL import Image, ImageDraw
|
||||
|
||||
from gsuid_core.logger import logger
|
||||
from gsuid_core.utils.image.convert import convert_img
|
||||
from gsuid_core.utils.image.image_tools import draw_text_by_line
|
||||
|
||||
from .to_data import api_to_dict
|
||||
from .effect.Role import RoleInstance
|
||||
from .mono.Character import Character
|
||||
from ..utils.error_reply import CHAR_HINT
|
||||
from ..utils.fonts.first_world import fw_font_28
|
||||
from ..utils.excel.read_excel import light_cone_ranks
|
||||
from ..utils.map.name_covert import name_to_avatar_id, alias_to_char_name
|
||||
from ..utils.map.SR_MAP_PATH import (
|
||||
RelicId2Rarity,
|
||||
AvatarRelicScore,
|
||||
avatarId2Name,
|
||||
avatarId2DamageType,
|
||||
)
|
||||
from ..utils.resource.RESOURCE_PATH import (
|
||||
RELIC_PATH,
|
||||
SKILL_PATH,
|
||||
PLAYER_PATH,
|
||||
WEAPON_PATH,
|
||||
CHAR_PORTRAIT_PATH,
|
||||
)
|
||||
from ..utils.fonts.first_world import fw_font_28
|
||||
from ..utils.fonts.starrail_fonts import (
|
||||
sr_font_20,
|
||||
sr_font_23,
|
||||
@ -39,6 +23,23 @@ from ..utils.fonts.starrail_fonts import (
|
||||
sr_font_34,
|
||||
sr_font_38,
|
||||
)
|
||||
from ..utils.map.name_covert import alias_to_char_name, name_to_avatar_id
|
||||
from ..utils.map.SR_MAP_PATH import (
|
||||
AvatarRelicScore,
|
||||
RelicId2Rarity,
|
||||
avatarId2DamageType,
|
||||
avatarId2Name,
|
||||
)
|
||||
from ..utils.resource.RESOURCE_PATH import (
|
||||
CHAR_PORTRAIT_PATH,
|
||||
PLAYER_PATH,
|
||||
RELIC_PATH,
|
||||
SKILL_PATH,
|
||||
WEAPON_PATH,
|
||||
)
|
||||
from .effect.Role import RoleInstance
|
||||
from .mono.Character import Character
|
||||
from .to_data import api_to_dict
|
||||
|
||||
Excel_path = Path(__file__).parent / 'effect'
|
||||
with Path.open(Excel_path / 'Excel' / 'seele.json', encoding='utf-8') as f:
|
||||
@ -744,7 +745,7 @@ async def cal(char_data: Dict):
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
skill_info_list.append(im_tmp)
|
||||
if char.char_id == 1205:
|
||||
elif char.char_id == 1205:
|
||||
for skill_type in ['Normal', 'Normal1', 'Ultra']:
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
|
@ -1,12 +1,13 @@
|
||||
from mpmath import mp
|
||||
|
||||
from gsuid_core.logger import logger
|
||||
|
||||
from .Avatar.Avatar import Avatar
|
||||
from .Weapon.Weapon import Weapon
|
||||
from .utils import merge_attribute
|
||||
from ..mono.Character import Character
|
||||
from .Avatar.Avatar import Avatar
|
||||
from .Base.model import DamageInstance
|
||||
from .Relic.Relic import RelicSet, SingleRelic
|
||||
from .utils import merge_attribute
|
||||
from .Weapon.Weapon import Weapon
|
||||
|
||||
mp.dps = 14
|
||||
|
||||
@ -176,6 +177,8 @@ class RoleInstance:
|
||||
|
||||
# 检查是否有对某一个技能的属性加成
|
||||
logger.info('检查是否有对某一个技能的属性加成')
|
||||
if self.attribute_bonus is None:
|
||||
raise Exception('attribute_bonus is None')
|
||||
for attr in self.attribute_bonus:
|
||||
# 攻击加成
|
||||
if attr.__contains__('AttackAddedRatio'):
|
||||
@ -209,6 +212,7 @@ class RoleInstance:
|
||||
self.base_attr, self.attribute_bonus
|
||||
)
|
||||
logger.info(f'{merged_attr}')
|
||||
skill_info_list = []
|
||||
# 技能类型为攻击
|
||||
if skill_info[0] == 'attack':
|
||||
skill_multiplier = skill_multiplier / skill_info[2]
|
||||
@ -216,6 +220,8 @@ class RoleInstance:
|
||||
attack = merged_attr['attack']
|
||||
logger.info(f'攻击力: {attack}')
|
||||
damage_add = 0
|
||||
hp_multiplier = 0
|
||||
hp_num = 0
|
||||
if self.raw_data.avatar.id_ == 1205:
|
||||
hp_num = merged_attr['hp']
|
||||
if skill_type == 'Normal1':
|
||||
|
@ -1,36 +1,36 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import List, Union, Optional
|
||||
from typing import List, Optional, Union
|
||||
|
||||
from mpmath import mp
|
||||
from httpx import ReadTimeout
|
||||
from mpmath import mp
|
||||
|
||||
from ..utils.error_reply import UID_HINT
|
||||
from ..sruid_utils.api.mihomo import MihomoData
|
||||
from ..sruid_utils.api.mihomo.models import Avatar
|
||||
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
|
||||
from ..sruid_utils.api.mihomo.requests import get_char_card_info
|
||||
|
||||
# from gsuid_core.utils.api.minigg.request import get_weapon_info
|
||||
from .cal_value import cal_relic_sub_affix, cal_relic_main_affix
|
||||
from ..utils.error_reply import UID_HINT
|
||||
from ..utils.excel.read_excel import AvatarPromotion, EquipmentPromotion
|
||||
from ..utils.map.SR_MAP_PATH import (
|
||||
SetId2Name,
|
||||
EquipmentID2Name,
|
||||
EquipmentID2Rarity,
|
||||
ItemId2Name,
|
||||
Property2Name,
|
||||
RelicId2SetId,
|
||||
EquipmentID2Name,
|
||||
EquipmentID2Rarity,
|
||||
rankId2Name,
|
||||
skillId2Name,
|
||||
avatarId2Name,
|
||||
skillId2Effect,
|
||||
SetId2Name,
|
||||
avatarId2DamageType,
|
||||
avatarId2EnName,
|
||||
avatarId2Name,
|
||||
avatarId2Rarity,
|
||||
characterSkillTree,
|
||||
rankId2Name,
|
||||
skillId2AttackType,
|
||||
avatarId2DamageType,
|
||||
skillId2Effect,
|
||||
skillId2Name,
|
||||
)
|
||||
from ..utils.resource.RESOURCE_PATH import PLAYER_PATH
|
||||
|
||||
# from gsuid_core.utils.api.minigg.request import get_weapon_info
|
||||
from .cal_value import cal_relic_main_affix, cal_relic_sub_affix
|
||||
|
||||
mp.dps = 14
|
||||
|
||||
@ -148,22 +148,7 @@ async def get_data(char: Avatar, sr_data: MihomoData, sr_uid: str):
|
||||
extra_ability_temp = {}
|
||||
extra_ability_temp['extraAbilityId'] = behavior['pointId']
|
||||
extra_ability_temp['extraAbilityLevel'] = behavior['level']
|
||||
status_add = characterSkillTree[str(char['avatarId'])][
|
||||
str(behavior['pointId'])
|
||||
]['levels'][behavior['level'] - 1]['properties']
|
||||
extra_ability_temp['statusAdd'] = {}
|
||||
if status_add:
|
||||
for property_ in status_add:
|
||||
extra_ability_temp['statusAdd']['property'] = property_[
|
||||
'type'
|
||||
]
|
||||
extra_ability_temp['statusAdd']['name'] = Property2Name[
|
||||
property_['type']
|
||||
]
|
||||
extra_ability_temp['statusAdd']['value'] = property_[
|
||||
'value'
|
||||
]
|
||||
char_data['avatarExtraAbility'].append(extra_ability_temp)
|
||||
char_data['avatarExtraAbility'].append(extra_ability_temp)
|
||||
|
||||
# 处理技能树中的属性加成
|
||||
if f'{char["avatarId"]}2' == str(behavior['pointId'])[0:5]:
|
||||
@ -246,6 +231,25 @@ async def get_data(char: Avatar, sr_data: MihomoData, sr_uid: str):
|
||||
rank_temp.append(rankTemp)
|
||||
char_data['rankList'] = rank_temp
|
||||
|
||||
# 处理命座中的 level_up_skills
|
||||
level_up_skills = []
|
||||
for rank_item in char_data['rankList']:
|
||||
rank_id = rank_item['rankId']
|
||||
# 121303 -> 1213003
|
||||
behavior_id = str(rank_id)[0:5] + '0' + str(rank_id)[-1]
|
||||
char_skill_tree_data = characterSkillTree[str(char['avatarId'])][behavior_id]
|
||||
if char_skill_tree_data['level_up_skills'] != []:
|
||||
for skill in char_skill_tree_data['level_up_skills']:
|
||||
skill_id = char_skill_tree_data['level_up_skills']['id']
|
||||
skill_up_num = char_skill_tree_data['level_up_skills']['num']
|
||||
# 查找skill_id在不在avatarSkill中
|
||||
for skill_item in char_data['avatarSkill']:
|
||||
if skill_id == skill_item['skillId']:
|
||||
skill_item['skillLevel'] += skill_up_num
|
||||
level_up_skills.append(skill_item)
|
||||
break
|
||||
|
||||
|
||||
# 处理基础属性
|
||||
base_attributes = {}
|
||||
avatar_promotion_base = AvatarPromotion[str(char['avatarId'])][
|
||||
|
Loading…
x
Reference in New Issue
Block a user