mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-05 19:23:45 +08:00
完成刃卡芙卡伤害计算 (#69)
* 完成刃卡芙卡伤害计算
* 完成刃卡芙卡伤害计算
* 🚨 `pre-commit-ci`修复格式错误
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
6d1d4e656f
commit
ac3f219db8
@ -50,7 +50,6 @@ TEXT_PATH = Path(__file__).parent / 'texture2D'
|
||||
|
||||
bg_img = Image.open(TEXT_PATH / "bg.png")
|
||||
white_color = (213, 213, 213)
|
||||
yellow_color = (255, 255, 0)
|
||||
NUM_MAP = {0: '零', 1: '一', 2: '二', 3: '三', 4: '四', 5: '五', 6: '六', 7: '七'}
|
||||
|
||||
RANK_MAP = {
|
||||
@ -90,7 +89,7 @@ async def draw_char_info_img(raw_mes: str, sr_uid: str):
|
||||
return char_data
|
||||
char = await cal_char_info(char_data)
|
||||
damage_len = 0
|
||||
if char.char_id in [1102, 1204, 1107, 1213, 1006]:
|
||||
if char.char_id in [1102, 1204, 1107, 1213, 1006, 1005, 1205]:
|
||||
skill_list = skill_dict[str(char.char_id)]['skilllist']
|
||||
damage_len = len(skill_list)
|
||||
# print(damage_len)
|
||||
@ -585,12 +584,14 @@ async def draw_char_info_img(raw_mes: str, sr_uid: str):
|
||||
)
|
||||
|
||||
if damage_len > 0:
|
||||
damage_title_img = Image.open(TEXT_PATH / 'base_info_pure.png')
|
||||
char_info.paste(damage_title_img, (0, 2028), damage_title_img)
|
||||
damage_list = await cal(char_data)
|
||||
# 写伤害
|
||||
char_img_draw.text(
|
||||
(55, 2048),
|
||||
'角色动作',
|
||||
yellow_color,
|
||||
white_color,
|
||||
sr_font_26,
|
||||
'lm',
|
||||
)
|
||||
@ -598,7 +599,7 @@ async def draw_char_info_img(raw_mes: str, sr_uid: str):
|
||||
char_img_draw.text(
|
||||
(370, 2048),
|
||||
'暴击值',
|
||||
yellow_color,
|
||||
white_color,
|
||||
sr_font_26,
|
||||
'lm',
|
||||
)
|
||||
@ -606,7 +607,7 @@ async def draw_char_info_img(raw_mes: str, sr_uid: str):
|
||||
char_img_draw.text(
|
||||
(560, 2048),
|
||||
'期望值',
|
||||
yellow_color,
|
||||
white_color,
|
||||
sr_font_26,
|
||||
'lm',
|
||||
)
|
||||
@ -614,13 +615,20 @@ async def draw_char_info_img(raw_mes: str, sr_uid: str):
|
||||
char_img_draw.text(
|
||||
(750, 2048),
|
||||
'满配辅助末日兽',
|
||||
yellow_color,
|
||||
white_color,
|
||||
sr_font_26,
|
||||
'lm',
|
||||
)
|
||||
damage_num = 0
|
||||
for damage_info in damage_list:
|
||||
damage_num = damage_num + 1
|
||||
if damage_num % 2 == 0:
|
||||
damage_img = Image.open(TEXT_PATH / 'attack_1.png')
|
||||
else:
|
||||
damage_img = Image.open(TEXT_PATH / 'attack_2.png')
|
||||
char_info.paste(
|
||||
damage_img, (0, 2028 + damage_num * 48), damage_img
|
||||
)
|
||||
char_img_draw.text(
|
||||
(55, 2048 + damage_num * 48),
|
||||
f'{damage_info[0]}',
|
||||
@ -719,7 +727,7 @@ async def cal(char_data: Dict):
|
||||
char = await cal_char_info(char_data)
|
||||
|
||||
skill_info_list = []
|
||||
if char.char_id in [1102, 1204, 1107, 1213, 1006]:
|
||||
if char.char_id in [1102, 1204, 1107, 1213, 1006, 1005, 1205]:
|
||||
if char.char_id == 1213:
|
||||
for skill_type in [
|
||||
'Normal',
|
||||
@ -731,12 +739,22 @@ async def cal(char_data: Dict):
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
skill_info_list.append(im_tmp)
|
||||
elif char.char_id == 1005:
|
||||
for skill_type in ['Normal', 'BPSkill', 'Ultra', 'DOT']:
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
skill_info_list.append(im_tmp)
|
||||
if char.char_id == 1205:
|
||||
for skill_type in ['Normal', 'Normal1', 'Ultra']:
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
skill_info_list.append(im_tmp)
|
||||
else:
|
||||
for skill_type in ['Normal', 'BPSkill', 'Ultra']:
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage(skill_type)
|
||||
skill_info_list.append(im_tmp)
|
||||
if char.char_id in [1204, 1107]:
|
||||
if char.char_id in [1204, 1107, 1005, 1205]:
|
||||
role = RoleInstance(char)
|
||||
im_tmp = await role.cal_damage('Talent')
|
||||
skill_info_list.append(im_tmp)
|
||||
|
@ -28,7 +28,7 @@ class Seele(BaseAvatar):
|
||||
if self.avatar_rank < 2:
|
||||
self.eidolon_attribute['SpeedAddedRatio'] = mp.mpf(0.25)
|
||||
if self.avatar_rank >= 1:
|
||||
self.eidolon_attribute['CriticalDamageBase'] = mp.mpf(0.15)
|
||||
self.eidolon_attribute['CriticalChanceBase'] = mp.mpf(0.15)
|
||||
if self.avatar_rank >= 2:
|
||||
self.eidolon_attribute['SpeedAddedRatio'] = mp.mpf(0.5)
|
||||
|
||||
@ -150,23 +150,80 @@ class Silverwolf(BaseAvatar):
|
||||
logger.info('额外能力')
|
||||
logger.info('战技降抗')
|
||||
logger.info('战技使目标全属性抗性降低的效果额外降低3%')
|
||||
enemy_status_resistance = self.BPSkill_d() + 0.03
|
||||
enemy_status_resistance = self.BPSkill_num('BPSkill_D') + 0.03
|
||||
self.extra_ability_attribute['QuantumResistancePenetration'] = mp.mpf(
|
||||
enemy_status_resistance
|
||||
)
|
||||
logger.info('终结技降防')
|
||||
ultra_defence = self.Ultra_d()
|
||||
ultra_defence = self.Ultra_num('Ultra_D')
|
||||
logger.info('天赋降防')
|
||||
talent_defence = self.Talent()
|
||||
ignore_defence = ultra_defence + talent_defence
|
||||
self.extra_ability_attribute['ignore_defence'] = mp.mpf(ignore_defence)
|
||||
|
||||
|
||||
class Kafka(BaseAvatar):
|
||||
Buff: BaseAvatarBuff
|
||||
|
||||
def __init__(
|
||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||
):
|
||||
super().__init__(char=char, skills=skills)
|
||||
self.eidolon_attribute = {}
|
||||
self.extra_ability_attribute = {}
|
||||
self.eidolons()
|
||||
self.extra_ability()
|
||||
|
||||
def Technique(self):
|
||||
pass
|
||||
|
||||
def eidolons(self):
|
||||
if self.avatar_rank >= 1:
|
||||
self.extra_ability_attribute['DOTDmgAdd'] = mp.mpf(0.3)
|
||||
if self.avatar_rank >= 2:
|
||||
self.extra_ability_attribute['DOTDmgAdd'] = mp.mpf(0.55)
|
||||
|
||||
def extra_ability(self):
|
||||
pass
|
||||
|
||||
|
||||
class Blade(BaseAvatar):
|
||||
Buff: BaseAvatarBuff
|
||||
|
||||
def __init__(
|
||||
self, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||
):
|
||||
super().__init__(char=char, skills=skills)
|
||||
self.eidolon_attribute = {}
|
||||
self.extra_ability_attribute = {}
|
||||
self.eidolons()
|
||||
self.extra_ability()
|
||||
|
||||
def Technique(self):
|
||||
pass
|
||||
|
||||
def eidolons(self):
|
||||
if self.avatar_rank >= 2:
|
||||
self.eidolon_attribute['CriticalChanceBase'] = mp.mpf(0.15)
|
||||
|
||||
if self.avatar_rank >= 4:
|
||||
self.extra_ability_attribute['HPAddedRatio'] = mp.mpf(0.4)
|
||||
|
||||
def extra_ability(self):
|
||||
logger.info('额外能力')
|
||||
logger.info('天赋施放的追加攻击伤害提高20%')
|
||||
self.extra_ability_attribute['TalentDmgAdd'] = mp.mpf(0.2)
|
||||
|
||||
|
||||
class Avatar:
|
||||
@classmethod
|
||||
def create(
|
||||
cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]
|
||||
):
|
||||
if char.id_ == 1205:
|
||||
return Blade(char, skills)
|
||||
if char.id_ == 1005:
|
||||
return Kafka(char, skills)
|
||||
if char.id_ == 1006:
|
||||
return Silverwolf(char, skills)
|
||||
if char.id_ == 1213:
|
||||
|
@ -134,20 +134,27 @@ class BaseAvatar:
|
||||
]
|
||||
)
|
||||
|
||||
def BPSkill_d(self):
|
||||
def BPSkill_num(self, skill_type):
|
||||
return mp.mpf(
|
||||
skill_dict[str(self.avatar_id)]['BPSkill_D'][
|
||||
skill_dict[str(self.avatar_id)][skill_type][
|
||||
self.Skill.BPSkill_.level - 1
|
||||
]
|
||||
)
|
||||
|
||||
def Ultra_d(self):
|
||||
def Ultra_num(self, skill_type):
|
||||
return mp.mpf(
|
||||
skill_dict[str(self.avatar_id)]['Ultra_D'][
|
||||
skill_dict[str(self.avatar_id)][skill_type][
|
||||
self.Skill.Ultra_.level - 1
|
||||
]
|
||||
)
|
||||
|
||||
def Talent_num(self, skill_type):
|
||||
return mp.mpf(
|
||||
skill_dict[str(self.avatar_id)][skill_type][
|
||||
self.Skill.Talent_.level - 1
|
||||
]
|
||||
)
|
||||
|
||||
def Talent_add(self):
|
||||
if self.avatar_id in [1102]:
|
||||
return mp.mpf(
|
||||
@ -155,6 +162,12 @@ class BaseAvatar:
|
||||
self.Skill.Talent_.level - 1
|
||||
]
|
||||
)
|
||||
elif self.avatar_id in [1205]:
|
||||
return mp.mpf(
|
||||
skill_dict[str(self.avatar_id)]['BPSkill'][
|
||||
self.Skill.BPSkill_.level - 1
|
||||
]
|
||||
)
|
||||
else:
|
||||
return mp.mpf(0)
|
||||
|
||||
|
@ -81,8 +81,13 @@ class DamageInstance:
|
||||
rank=char.char_rank,
|
||||
element=char.char_element,
|
||||
promotion=char.char_promotion,
|
||||
attribute_bonus=msgspec.from_builtins(char.attribute_bonus, Union[List[DamageInstanceAvatarAttributeBouns], None]),
|
||||
extra_ability=msgspec.from_builtins(char.extra_ability, Union[List, None]),
|
||||
attribute_bonus=msgspec.from_builtins(
|
||||
char.attribute_bonus,
|
||||
Union[List[DamageInstanceAvatarAttributeBouns], None],
|
||||
),
|
||||
extra_ability=msgspec.from_builtins(
|
||||
char.extra_ability, Union[List, None]
|
||||
),
|
||||
)
|
||||
self.weapon = DamageInstanceWeapon(
|
||||
id_=char.equipment['equipmentID'],
|
||||
|
@ -444,5 +444,230 @@
|
||||
"BPSkill": ["attack","战技", 1],
|
||||
"Ultra": ["attack","终结技", 1]
|
||||
}
|
||||
},
|
||||
"1005": {
|
||||
"Normal": [
|
||||
0.5000000004656613,
|
||||
0.6000000005587935,
|
||||
0.7000000006519258,
|
||||
0.8000000007450581,
|
||||
0.9000000008381903,
|
||||
1.0000000000931323,
|
||||
1.1000000001862645,
|
||||
1.2000000002793968
|
||||
],
|
||||
"BPSkill": [
|
||||
0.8000000004656613,
|
||||
0.8800000004656613,
|
||||
0.9600000005587935,
|
||||
1.0400000005587935,
|
||||
1.1200000006519258,
|
||||
1.2000000006519258,
|
||||
1.3000000007450581,
|
||||
1.4000000007450581,
|
||||
1.5000000008381903,
|
||||
1.6000000008381903,
|
||||
1.6800000000931323,
|
||||
1.7600000000931323,
|
||||
1.8400000001862645,
|
||||
1.9200000001862645,
|
||||
2.0000000002793968
|
||||
],
|
||||
"Ultra": [
|
||||
0.4800000003725290,
|
||||
0.5120000003725290,
|
||||
0.5440000003725290,
|
||||
0.5760000003725290,
|
||||
0.6080000003725290,
|
||||
0.6400000003725290,
|
||||
0.6800000003725290,
|
||||
0.7200000003725290,
|
||||
0.7600000003725290,
|
||||
0.8000000003725290,
|
||||
0.8320000003725290,
|
||||
0.8640000003725290,
|
||||
0.8960000003725290,
|
||||
0.9280000003725290,
|
||||
0.9600000003725290
|
||||
],
|
||||
"DOT": [
|
||||
1.1600000004656613,
|
||||
1.2688000004656613,
|
||||
1.3775000005587935,
|
||||
1.4863000005587935,
|
||||
1.5950000006519258,
|
||||
1.7581000006519258,
|
||||
1.9756000007450581,
|
||||
2.2475000007450581,
|
||||
2.5738000008381903,
|
||||
2.9000000008381903,
|
||||
3.0414000000931323,
|
||||
3.1828000000931323,
|
||||
3.3241000001862645,
|
||||
3.4655000001862645,
|
||||
3.6069000002793968
|
||||
],
|
||||
"Talent": [
|
||||
0.4200000003725290,
|
||||
0.5180000003725290,
|
||||
0.6160000003725290,
|
||||
0.7140000003725290,
|
||||
0.8120000003725290,
|
||||
0.9100000003725290,
|
||||
1.0325000003725290,
|
||||
1.1550000003725290,
|
||||
1.2775000003725290,
|
||||
1.4000000003725290,
|
||||
1.4980000003725290,
|
||||
1.5960000003725290,
|
||||
1.6940000003725290,
|
||||
1.7920000003725290,
|
||||
1.8900000003725290
|
||||
],
|
||||
"Maze": [
|
||||
20
|
||||
],
|
||||
"Ultra_Use": [
|
||||
110
|
||||
],
|
||||
"skilllist": {
|
||||
"Normal": ["attack","普攻", 1],
|
||||
"BPSkill": ["attack","战技", 1],
|
||||
"Ultra": ["attack","终结技", 1],
|
||||
"DOT": ["attack","单次持续伤害", 1],
|
||||
"Talent": ["attack","追加攻击", 1]
|
||||
}
|
||||
},
|
||||
"1205": {
|
||||
"Normal": [
|
||||
0.5000000004656613,
|
||||
0.6000000005587935,
|
||||
0.7000000006519258,
|
||||
0.8000000007450581,
|
||||
0.9000000008381903,
|
||||
1.0000000000931323,
|
||||
1.1000000001862645,
|
||||
1.2000000002793968,
|
||||
1.3000000002793968
|
||||
],
|
||||
"Normal1": [
|
||||
0.2000000004656613,
|
||||
0.2400000005587935,
|
||||
0.2800000006519258,
|
||||
0.3200000007450581,
|
||||
0.3600000008381903,
|
||||
0.4000000000931323,
|
||||
0.4400000001862645,
|
||||
0.4800000002793968,
|
||||
0.5200000002793968
|
||||
],
|
||||
"Normal1_HP": [
|
||||
0.5000000004656613,
|
||||
0.6000000005587935,
|
||||
0.7000000006519258,
|
||||
0.8000000007450581,
|
||||
0.9000000008381903,
|
||||
1.0000000000931323,
|
||||
1.1000000001862645,
|
||||
1.2000000002793968,
|
||||
1.3000000002793968
|
||||
],
|
||||
"BPSkill": [
|
||||
0.1200000004656613,
|
||||
0.1480000004656613,
|
||||
0.1760000005587935,
|
||||
0.2040000003725290,
|
||||
0.2320000003725290,
|
||||
0.2600000003725290,
|
||||
0.2950000003725290,
|
||||
0.3300000003725290,
|
||||
0.3650000003725290,
|
||||
0.4000000003725290,
|
||||
0.4280000003725290,
|
||||
0.4560000003725290,
|
||||
0.4840000003725290,
|
||||
0.5120000003725290,
|
||||
0.5400000003725290
|
||||
],
|
||||
"Ultra": [
|
||||
0.2400000003725290,
|
||||
0.2560000003725290,
|
||||
0.2720000003725290,
|
||||
0.2880000003725290,
|
||||
0.3040000003725290,
|
||||
0.3200000003725290,
|
||||
0.3400000003725290,
|
||||
0.3600000003725290,
|
||||
0.3800000003725290,
|
||||
0.4000000003725290,
|
||||
0.4160000003725290,
|
||||
0.4320000003725290,
|
||||
0.4480000003725290,
|
||||
0.4640000003725290,
|
||||
0.4800000003725290
|
||||
],
|
||||
"Ultra_HP": [
|
||||
1.5000000003725290,
|
||||
1.5400000003725290,
|
||||
1.5800000003725290,
|
||||
1.6200000003725290,
|
||||
1.6600000003725290,
|
||||
1.7000000003725290,
|
||||
1.7500000003725290,
|
||||
1.8000000003725290,
|
||||
1.8500000003725290,
|
||||
1.9000000003725290,
|
||||
1.9400000003725290,
|
||||
1.9800000003725290,
|
||||
2.0200000003725290,
|
||||
2.0600000003725290,
|
||||
2.1000000003725290
|
||||
],
|
||||
"Talent": [
|
||||
0.2200000003725290,
|
||||
0.2420000003725290,
|
||||
0.2640000003725290,
|
||||
0.2860000003725290,
|
||||
0.3080000003725290,
|
||||
0.3300000003725290,
|
||||
0.3575000003725290,
|
||||
0.3850000003725290,
|
||||
0.4125000003725290,
|
||||
0.4400000003725290,
|
||||
0.4620000003725290,
|
||||
0.4840000003725290,
|
||||
0.5060000003725290,
|
||||
0.5280000003725290,
|
||||
0.5500000003725290
|
||||
],
|
||||
"Talent_HP": [
|
||||
0.5500000003725290,
|
||||
0.6050000003725290,
|
||||
0.6600000003725290,
|
||||
0.7150000003725290,
|
||||
0.7700000003725290,
|
||||
0.8250000003725290,
|
||||
0.8938000003725290,
|
||||
0.9625000003725290,
|
||||
1.0313000003725290,
|
||||
1.1000000003725290,
|
||||
1.1550000003725290,
|
||||
1.2100000003725290,
|
||||
1.2650000003725290,
|
||||
1.3200000003725290,
|
||||
1.3750000003725290
|
||||
],
|
||||
"Maze": [
|
||||
20
|
||||
],
|
||||
"Ultra_Use": [
|
||||
110
|
||||
],
|
||||
"skilllist": {
|
||||
"Normal": ["attack","普攻", 1],
|
||||
"Normal1": ["attack","无间剑树", 1],
|
||||
"Ultra": ["attack","终结技", 1],
|
||||
"Talent": ["attack","追加攻击", 1]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ class RoleInstance:
|
||||
logger.info(self.base_attr)
|
||||
logger.info('attribute_bonus')
|
||||
logger.info(self.attribute_bonus)
|
||||
|
||||
logger.info(skill_type)
|
||||
# 技能区
|
||||
skill_info = self.avatar.Skill_Info(skill_type)
|
||||
if skill_type == 'Normal':
|
||||
@ -151,6 +151,12 @@ class RoleInstance:
|
||||
if self.raw_data.avatar.id_ == 1213:
|
||||
skill_multiplier = self.avatar.Normalnum(skill_type)
|
||||
skill_type = 'Normal'
|
||||
elif self.raw_data.avatar.id_ == 1005:
|
||||
skill_multiplier = self.avatar.Ultra_num(skill_type)
|
||||
if self.raw_data.avatar.rank >= 6:
|
||||
skill_multiplier = skill_multiplier + 1.56
|
||||
elif self.raw_data.avatar.id_ == 1205:
|
||||
skill_multiplier = self.avatar.Normalnum(skill_type)
|
||||
else:
|
||||
raise Exception('skill type error')
|
||||
|
||||
@ -202,13 +208,34 @@ class RoleInstance:
|
||||
merged_attr = await merge_attribute(
|
||||
self.base_attr, self.attribute_bonus
|
||||
)
|
||||
|
||||
logger.info(f'{merged_attr}')
|
||||
# 技能类型为攻击
|
||||
if skill_info[0] == 'attack':
|
||||
skill_multiplier = skill_multiplier / skill_info[2]
|
||||
logger.info(f'技能区单段: {skill_multiplier}')
|
||||
attack = merged_attr['attack']
|
||||
logger.info(f'攻击力: {attack}')
|
||||
damage_add = 0
|
||||
if self.raw_data.avatar.id_ == 1205:
|
||||
hp_num = merged_attr['hp']
|
||||
if skill_type == 'Normal1':
|
||||
hp_multiplier = self.avatar.Normalnum('Normal1_HP')
|
||||
skill_type = 'Normal'
|
||||
elif skill_type == 'Ultra':
|
||||
hp_multiplier = self.avatar.Ultra_num('Ultra_HP')
|
||||
if self.raw_data.avatar.rank >= 1:
|
||||
hp_multiplier += 0.9
|
||||
elif skill_type == 'Talent':
|
||||
hp_multiplier = self.avatar.Talent_num('Talent_HP')
|
||||
if self.raw_data.avatar.rank >= 6:
|
||||
damage_add = hp_num * 0.5
|
||||
else:
|
||||
hp_multiplier = 0
|
||||
attack = (skill_multiplier * attack) + (hp_multiplier * hp_num)
|
||||
skill_multiplier = 1
|
||||
logger.info(f'混伤区: {attack}')
|
||||
|
||||
logger.info(f'额外伤害: {damage_add}')
|
||||
# 模拟 同属性弱点 同等级 的怪物
|
||||
# 韧性条减伤
|
||||
enemy_damage_reduction = 0.1
|
||||
@ -283,7 +310,6 @@ class RoleInstance:
|
||||
|
||||
# 易伤区
|
||||
logger.info('检查是否有易伤加成')
|
||||
logger.info(f'{merged_attr}')
|
||||
damage_ratio = merged_attr.get('DmgRatio', 0)
|
||||
# 检查是否有对特定技能的易伤加成
|
||||
# Talent_DmgRatio
|
||||
@ -299,6 +325,9 @@ class RoleInstance:
|
||||
logger.info(f'易伤: {damage_ratio}')
|
||||
|
||||
# 爆伤区
|
||||
if skill_type == 'DOT':
|
||||
critical_damage_base = 0
|
||||
else:
|
||||
logger.info('检查是否有爆伤加成')
|
||||
logger.info(f'{merged_attr}')
|
||||
critical_damage_base = merged_attr['CriticalDamageBase']
|
||||
@ -357,6 +386,7 @@ class RoleInstance:
|
||||
* resistance_area
|
||||
* damage_reduction
|
||||
* (critical_damage + critical_damage_add)
|
||||
+ damage_add
|
||||
)
|
||||
damage_cd_z += damage_cd
|
||||
damage_qw = (
|
||||
@ -368,6 +398,7 @@ class RoleInstance:
|
||||
* resistance_area
|
||||
* damage_reduction
|
||||
* qiwang_damage
|
||||
+ damage_add
|
||||
)
|
||||
damage_qw_z += damage_qw
|
||||
|
||||
@ -378,6 +409,10 @@ class RoleInstance:
|
||||
* (1 + self.attribute_bonus['AttackAddedRatio'] + 2.144)
|
||||
+ self.attribute_bonus['AttackDelta']
|
||||
)
|
||||
if self.raw_data.avatar.id_ == 1205:
|
||||
attack_tz = (skill_multiplier * attack_tz) + (
|
||||
hp_multiplier * hp_num
|
||||
)
|
||||
injury_add_tz = 0
|
||||
if self.avatar.avatar_element == 'Imaginary':
|
||||
injury_add_tz = 0.12
|
||||
@ -391,6 +426,7 @@ class RoleInstance:
|
||||
* damage_reduction
|
||||
* (critical_damage + critical_damage_add + 1.594)
|
||||
* 10
|
||||
+ damage_add
|
||||
)
|
||||
|
||||
damage_tz_z += damage_tz
|
||||
|
BIN
StarRailUID/starrailuid_charinfo/texture2D/attack_1.png
Normal file
BIN
StarRailUID/starrailuid_charinfo/texture2D/attack_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
StarRailUID/starrailuid_charinfo/texture2D/attack_2.png
Normal file
BIN
StarRailUID/starrailuid_charinfo/texture2D/attack_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
StarRailUID/starrailuid_charinfo/texture2D/base_info_pure.png
Normal file
BIN
StarRailUID/starrailuid_charinfo/texture2D/base_info_pure.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
Loading…
x
Reference in New Issue
Block a user