mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-05 19:23:45 +08:00
优化抗性算法
This commit is contained in:
parent
770c85fbf1
commit
66e96bdb14
@ -166,9 +166,7 @@ class RoleInstance:
|
|||||||
skill_multiplier = self.avatar.BPSkill_num(skill_type)
|
skill_multiplier = self.avatar.BPSkill_num(skill_type)
|
||||||
skill_type = 'BPSkill'
|
skill_type = 'BPSkill'
|
||||||
elif self.raw_data.avatar.id_ == 1112:
|
elif self.raw_data.avatar.id_ == 1112:
|
||||||
skill_multiplier = (
|
skill_multiplier = self.avatar.Ultra_num(skill_type) + self.avatar.BPSkill()
|
||||||
self.avatar.Ultra_num(skill_type) + self.avatar.BPSkill()
|
|
||||||
)
|
|
||||||
skill_type = 'Talent'
|
skill_type = 'Talent'
|
||||||
else:
|
else:
|
||||||
raise Exception('skill type error')
|
raise Exception('skill type error')
|
||||||
@ -306,27 +304,25 @@ class RoleInstance:
|
|||||||
enemy_status_resistance = 0.0
|
enemy_status_resistance = 0.0
|
||||||
for attr in merged_attr:
|
for attr in merged_attr:
|
||||||
if attr.__contains__('ResistancePenetration'):
|
if attr.__contains__('ResistancePenetration'):
|
||||||
|
#检查是否有某一属性的抗性穿透
|
||||||
attr_name = attr.split('ResistancePenetration')[0]
|
attr_name = attr.split('ResistancePenetration')[0]
|
||||||
if attr_name in (self.avatar.avatar_element, 'AllDamage'):
|
if attr_name in (self.avatar.avatar_element, 'AllDamage'):
|
||||||
# 先默认触发
|
logger.info(
|
||||||
enemy_status_resistance = merged_attr[attr]
|
f'{attr_name}属性有{merged_attr[attr]}穿透加成'
|
||||||
|
)
|
||||||
|
enemy_status_resistance += merged_attr[attr]
|
||||||
|
#检查是否有某一技能属性的抗性穿透
|
||||||
|
skill_name = attr_name.split('_')[0]
|
||||||
|
skillattr_name = attr_name.split('_')[1]
|
||||||
|
if (
|
||||||
|
skill_name in (skill_type, skill_info[3])
|
||||||
|
and skillattr_name in (self.avatar.avatar_element, 'AllDamage')
|
||||||
|
):
|
||||||
|
enemy_status_resistance += merged_attr[attr]
|
||||||
|
logger.info(
|
||||||
|
f'{skill_name}对{skillattr_name}属性有{merged_attr[attr]}穿透加成'
|
||||||
|
)
|
||||||
resistance_area = 1.0 - (0 - enemy_status_resistance)
|
resistance_area = 1.0 - (0 - enemy_status_resistance)
|
||||||
if self.raw_data.avatar.id_ == 1213:
|
|
||||||
if skill_info[2] == 7:
|
|
||||||
Normal_Penetration = merged_attr.get(
|
|
||||||
'Normal_ImaginaryResistancePenetration', 0
|
|
||||||
)
|
|
||||||
resistance_area = resistance_area - (
|
|
||||||
0 - Normal_Penetration
|
|
||||||
)
|
|
||||||
if self.raw_data.avatar.id_ == 1112:
|
|
||||||
if skill_info[3] == 'Talent1':
|
|
||||||
Talent1_Penetration = merged_attr.get(
|
|
||||||
'Talent1_FireResistancePenetration', 0
|
|
||||||
)
|
|
||||||
resistance_area = resistance_area - (
|
|
||||||
0 - Talent1_Penetration
|
|
||||||
)
|
|
||||||
logger.info(f'抗性区: {resistance_area}')
|
logger.info(f'抗性区: {resistance_area}')
|
||||||
|
|
||||||
# 防御区
|
# 防御区
|
||||||
|
Loading…
x
Reference in New Issue
Block a user