mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-05 19:23:45 +08:00
修复托帕伤害计算错误,添加部分角色计算
This commit is contained in:
parent
6aabc82254
commit
b89b32ad87
@ -848,6 +848,40 @@ class Clara(BaseAvatar):
|
||||
damagelist4[2] += damage3
|
||||
skill_info_list.append({'name': '强化反击', 'damagelist': damagelist4})
|
||||
|
||||
# 计算1+1托帕反击伤害
|
||||
skill_multiplier = self.Skill_num('Talent', 'Talent')
|
||||
add_attr_bonus = copy.deepcopy(attribute_bonus)
|
||||
add_attr_bonus['Talent_DmgRatio'] = add_attr_bonus.get('Talent_DmgRatio', 0) + 0.5
|
||||
add_attr_bonus['Talent_CriticalDamageBase'] = add_attr_bonus.get('Talent_CriticalDamageBase', 0) + 0.74
|
||||
damagelist5 = await calculate_damage(
|
||||
base_attr,
|
||||
add_attr_bonus,
|
||||
'Talent',
|
||||
'Talent',
|
||||
self.avatar_element,
|
||||
skill_multiplier,
|
||||
self.avatar_level,
|
||||
)
|
||||
damagelist5[2] += damage3
|
||||
skill_info_list.append({'name': '(1+1托帕)反击', 'damagelist': damagelist5})
|
||||
|
||||
# 计算反击伤害
|
||||
skill_multiplier = self.Skill_num('Talent', 'Talent') + self.Skill_num('Ultra', 'Talent1')
|
||||
add_attr_bonus = copy.deepcopy(attribute_bonus)
|
||||
add_attr_bonus['Talent_DmgRatio'] = add_attr_bonus.get('Talent_DmgRatio', 0) + 0.5
|
||||
add_attr_bonus['Talent_CriticalDamageBase'] = add_attr_bonus.get('Talent_CriticalDamageBase', 0) + 0.74
|
||||
damagelist6 = await calculate_damage(
|
||||
base_attr,
|
||||
add_attr_bonus,
|
||||
'Talent',
|
||||
'Talent',
|
||||
self.avatar_element,
|
||||
skill_multiplier,
|
||||
self.avatar_level,
|
||||
)
|
||||
damagelist6[2] += damage3
|
||||
skill_info_list.append({'name': '(1+1托帕)强化反击', 'damagelist': damagelist6})
|
||||
|
||||
return skill_info_list
|
||||
|
||||
class Silverwolf(BaseAvatar):
|
||||
@ -1761,7 +1795,7 @@ class Topaz(BaseAvatar):
|
||||
'Talent1_CriticalDamageBase'
|
||||
] = self.Skill_num('Ultra', 'Ultra_CD')
|
||||
logger.info('【负债证明】状态,使其受到的追加攻击伤害提高')
|
||||
self.extra_ability_attribute['TalentDmgAdd'] = self.Skill_num(
|
||||
self.extra_ability_attribute['Talent_DmgRatio'] = self.Skill_num(
|
||||
'BPSkill', 'BPSkill_add'
|
||||
)
|
||||
|
||||
@ -2462,11 +2496,121 @@ class Natasha(BaseAvatar):
|
||||
|
||||
return skill_info_list
|
||||
|
||||
class Mar7th(BaseAvatar):
|
||||
Buff: BaseAvatarBuff
|
||||
|
||||
def __init__(
|
||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||
):
|
||||
super().__init__(char=char, skills=skills)
|
||||
self.eidolon_attribute: Dict[str, float] = {}
|
||||
self.extra_ability_attribute: Dict[str, float] = {}
|
||||
self.eidolons()
|
||||
self.extra_ability()
|
||||
|
||||
def Technique(self):
|
||||
pass
|
||||
|
||||
def eidolons(self):
|
||||
pass
|
||||
|
||||
def extra_ability(self):
|
||||
pass
|
||||
|
||||
async def getdamage(
|
||||
self,
|
||||
base_attr: Dict[str, float],
|
||||
attribute_bonus: Dict[str, float],
|
||||
):
|
||||
damage1, damage2, damage3 = await calculate_damage(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
'fujia',
|
||||
'fujia',
|
||||
'Thunder',
|
||||
0.44,
|
||||
self.avatar_level,
|
||||
)
|
||||
|
||||
skill_info_list = []
|
||||
# 计算普攻伤害
|
||||
skill_multiplier = self.Skill_num('Normal', 'Normal')
|
||||
damagelist1 = await calculate_damage(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
'Normal',
|
||||
'Normal',
|
||||
self.avatar_element,
|
||||
skill_multiplier,
|
||||
self.avatar_level,
|
||||
)
|
||||
damagelist1[2] += damage3
|
||||
skill_info_list.append({'name': '普攻', 'damagelist': damagelist1})
|
||||
|
||||
# 计算战技护盾
|
||||
skill_multiplier = self.Skill_num('BPSkill', 'BPSkill')
|
||||
skill_num = self.Skill_num('BPSkill', 'BPSkill_G')
|
||||
damagelist2 = await calculate_shield(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
skill_multiplier,
|
||||
skill_num,
|
||||
)
|
||||
skill_info_list.append({'name': '战技护盾量', 'damagelist': damagelist2})
|
||||
|
||||
# 计算终结技
|
||||
skill_multiplier = self.Skill_num('Ultra', 'Ultra')
|
||||
damagelist3 = await calculate_damage(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
'Ultra',
|
||||
'Ultra',
|
||||
self.avatar_element,
|
||||
skill_multiplier,
|
||||
self.avatar_level,
|
||||
)
|
||||
damagelist3[2] += damage3
|
||||
skill_info_list.append({'name': '终结技', 'damagelist': damagelist3})
|
||||
|
||||
# 计算追加攻击
|
||||
skill_multiplier = self.Skill_num('Talent', 'Talent')
|
||||
damagelist4 = await calculate_damage(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
'Talent',
|
||||
'Talent',
|
||||
self.avatar_element,
|
||||
skill_multiplier,
|
||||
self.avatar_level,
|
||||
)
|
||||
damagelist4[2] += damage3
|
||||
if self.avatar_rank >= 4:
|
||||
defence = base_attr['defence'] * (1 + attribute_bonus['DefenceAddedRatio']) + attribute_bonus['DefenceDelta']
|
||||
damage_add = defence * 0.3
|
||||
damagelist4[0] += damage_add
|
||||
damagelist4[1] += damage_add
|
||||
damagelist4[2] += damage_add
|
||||
skill_info_list.append({'name': '追加攻击', 'damagelist': damagelist4})
|
||||
|
||||
# 计算2命护盾
|
||||
if self.avatar_rank >= 2:
|
||||
damagelist5 = await calculate_shield(
|
||||
base_attr,
|
||||
attribute_bonus,
|
||||
0.24,
|
||||
320,
|
||||
)
|
||||
skill_info_list.append({'name': '开场护盾(2命)', 'damagelist': damagelist5})
|
||||
|
||||
return skill_info_list
|
||||
|
||||
class AvatarDamage:
|
||||
@classmethod
|
||||
def create(
|
||||
cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||
):
|
||||
if char.id_ == 1001:
|
||||
return Mar7th(char, skills)
|
||||
if char.id_ == 1105:
|
||||
return Natasha(char, skills)
|
||||
if char.id_ == 1110:
|
||||
|
@ -798,5 +798,36 @@
|
||||
],
|
||||
"Maze": [20],
|
||||
"Ultra_Use": [100]
|
||||
},
|
||||
"1001": {
|
||||
"Normal": [
|
||||
0.5000000004656613, 0.6000000005587935, 0.7000000006519258,
|
||||
0.8000000007450581, 0.9000000008381903, 1.0000000000931323,
|
||||
1.1000000000931323, 1.2000000001862645, 1.3000000002793968
|
||||
],
|
||||
"BPSkill": [
|
||||
0.3800000003539026, 0.40375000098720193, 0.4275000002235174,
|
||||
0.45125000085681677, 0.47500000009313226, 0.4940000001806766,
|
||||
0.5130000002682209, 0.5320000003557652, 0.5510000004433095,
|
||||
0.5700000005308539, 0.5889999999199063, 0.6080000000074506,
|
||||
0.6270000000949949, 0.6460000001825392, 0.6650000002700835
|
||||
],
|
||||
"BPSkill_G": [190, 304, 389, 475, 532, 589, 631, 674, 717, 760, 803, 845, 888, 931, 973],
|
||||
"Ultra": [
|
||||
0.9000000008381903, 0.9600000008940697, 1.0200000000186265,
|
||||
1.0800000000745058, 1.1400000001303852, 1.2000000001862645,
|
||||
1.2749999999068677, 1.350000000325963, 1.4250000000465661,
|
||||
1.5000000004656613, 1.5600000005215406, 1.62000000057742,
|
||||
1.6800000006332994, 1.7400000006891787, 1.800000000745058
|
||||
],
|
||||
"Talent": [
|
||||
0.5000000004656613, 0.5500000005122274, 0.6000000005587935,
|
||||
0.6500000006053597, 0.7000000006519258, 0.7500000006984919,
|
||||
0.8125000009313226, 0.8750000004656613, 0.9375000006984919,
|
||||
1, 1.0500000000465661, 1.1000000000931323,
|
||||
1.1500000001396984, 1.2000000001862645, 1.2500000002328306
|
||||
],
|
||||
"Maze": [20],
|
||||
"Ultra_Use": [100]
|
||||
}
|
||||
}
|
||||
|
@ -581,19 +581,19 @@ async def draw_char_img(char_data: Dict, sr_uid: str, msg: str):
|
||||
relic_img, RELIC_POS[str(relic['Type'])], relic_img
|
||||
)
|
||||
relic_score += single_relic_score
|
||||
if relic_score > 230:
|
||||
if relic_score > 210:
|
||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconSSS.png')
|
||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||
elif relic_score > 210:
|
||||
elif relic_score > 190:
|
||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconSS.png')
|
||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||
elif relic_score > 180:
|
||||
elif relic_score > 160:
|
||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconS.png')
|
||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||
elif relic_score > 150:
|
||||
elif relic_score > 130:
|
||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconA.png')
|
||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||
elif relic_score > 100:
|
||||
elif relic_score > 80:
|
||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconB.png')
|
||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||
elif relic_score > 0:
|
||||
|
Loading…
x
Reference in New Issue
Block a user