mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-06 03:33:45 +08:00
修复托帕伤害计算错误,添加部分角色计算
This commit is contained in:
parent
6aabc82254
commit
b89b32ad87
@ -848,6 +848,40 @@ class Clara(BaseAvatar):
|
|||||||
damagelist4[2] += damage3
|
damagelist4[2] += damage3
|
||||||
skill_info_list.append({'name': '强化反击', 'damagelist': damagelist4})
|
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
|
return skill_info_list
|
||||||
|
|
||||||
class Silverwolf(BaseAvatar):
|
class Silverwolf(BaseAvatar):
|
||||||
@ -1761,7 +1795,7 @@ class Topaz(BaseAvatar):
|
|||||||
'Talent1_CriticalDamageBase'
|
'Talent1_CriticalDamageBase'
|
||||||
] = self.Skill_num('Ultra', 'Ultra_CD')
|
] = self.Skill_num('Ultra', 'Ultra_CD')
|
||||||
logger.info('【负债证明】状态,使其受到的追加攻击伤害提高')
|
logger.info('【负债证明】状态,使其受到的追加攻击伤害提高')
|
||||||
self.extra_ability_attribute['TalentDmgAdd'] = self.Skill_num(
|
self.extra_ability_attribute['Talent_DmgRatio'] = self.Skill_num(
|
||||||
'BPSkill', 'BPSkill_add'
|
'BPSkill', 'BPSkill_add'
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -2462,11 +2496,121 @@ class Natasha(BaseAvatar):
|
|||||||
|
|
||||||
return skill_info_list
|
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:
|
class AvatarDamage:
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(
|
def create(
|
||||||
cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||||
):
|
):
|
||||||
|
if char.id_ == 1001:
|
||||||
|
return Mar7th(char, skills)
|
||||||
if char.id_ == 1105:
|
if char.id_ == 1105:
|
||||||
return Natasha(char, skills)
|
return Natasha(char, skills)
|
||||||
if char.id_ == 1110:
|
if char.id_ == 1110:
|
||||||
|
@ -798,5 +798,36 @@
|
|||||||
],
|
],
|
||||||
"Maze": [20],
|
"Maze": [20],
|
||||||
"Ultra_Use": [100]
|
"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_img, RELIC_POS[str(relic['Type'])], relic_img
|
||||||
)
|
)
|
||||||
relic_score += single_relic_score
|
relic_score += single_relic_score
|
||||||
if relic_score > 230:
|
if relic_score > 210:
|
||||||
relic_value_level = Image.open(TEXT_PATH / 'CommonIconSSS.png')
|
relic_value_level = Image.open(TEXT_PATH / 'CommonIconSSS.png')
|
||||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
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')
|
relic_value_level = Image.open(TEXT_PATH / 'CommonIconSS.png')
|
||||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
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')
|
relic_value_level = Image.open(TEXT_PATH / 'CommonIconS.png')
|
||||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
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')
|
relic_value_level = Image.open(TEXT_PATH / 'CommonIconA.png')
|
||||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
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')
|
relic_value_level = Image.open(TEXT_PATH / 'CommonIconB.png')
|
||||||
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
char_info.paste(relic_value_level, (825, 963), relic_value_level)
|
||||||
elif relic_score > 0:
|
elif relic_score > 0:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user