From 696034acc2d2599e463423dce905cb24b75256ac Mon Sep 17 00:00:00 2001 From: KimgiaiiWuyi <444835641@qq.com> Date: Mon, 13 Jun 2022 00:01:08 +0800 Subject: [PATCH] =?UTF-8?q?'=E4=BF=AE=E5=A4=8D=EF=BC=9A=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=AF=95=E4=B8=9A=E5=BA=A6=E6=97=B6=EF=BC=8C`=E7=BB=AB?= =?UTF-8?q?=E4=BA=BA`,`=E7=BB=AB=E5=8D=8E`,`=E8=BF=AA=E5=A5=A5=E5=A8=9C`,`?= =?UTF-8?q?=E9=9C=84=E5=AE=AB`,`=E4=B9=9D=E6=9D=A1`=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=97=AE=E9=A2=98'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- enkaToData/drawCharCard.py | 52 ++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/enkaToData/drawCharCard.py b/enkaToData/drawCharCard.py index 539e5c8a..b2997a69 100644 --- a/enkaToData/drawCharCard.py +++ b/enkaToData/drawCharCard.py @@ -228,7 +228,9 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: img.paste(artifacts_img, (318, 1075), artifacts_img) elif artifactsPos == '时之沙': img.paste(artifacts_img, (618, 1075), artifacts_img) - if '元素' in mainName: + if '伤害加成' in mainName: + equipMain += mainName[0] + elif '元素' in mainName: equipMain += mainName[2] elif '百分比' in mainName: if '血量' in mainName: @@ -239,7 +241,9 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: equipMain += mainName[0] elif artifactsPos == '空之杯': img.paste(artifacts_img, (18, 1447), artifacts_img) - if '元素' in mainName: + if '伤害加成' in mainName: + equipMain += mainName[0] + elif '元素' in mainName: equipMain += mainName[2] elif '百分比' in mainName: if '血量' in mainName: @@ -250,7 +254,9 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: equipMain += mainName[0] elif artifactsPos == '理之冠': img.paste(artifacts_img, (318, 1447), artifacts_img) - if '元素' in mainName: + if '伤害加成' in mainName: + equipMain += mainName[0] + elif '元素' in mainName: equipMain += mainName[2] elif '百分比' in mainName: if '血量' in mainName: @@ -353,9 +359,6 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: effect_prop += 1202 effect_prop += fight_prop['baseAtk'] * 0.25 - if '胡桃' in char_name: - effect_prop += 0.4 * hp if 0.4 * hp <= fight_prop['baseAtk'] * 4 else fight_prop['baseAtk'] * 4 - if '蒸发' in cal['action'] or '融化' in cal['action']: if '蒸发' in cal['action']: if raw_data['avatarElement'] == 'Pyro': @@ -387,18 +390,45 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: else: dmgBonus_cal = dmgBonus - if '魈' in char_name: + critdmg_cal = critdmg + + if '胡桃' in char_name: + effect_prop += 0.4 * hp if 0.4 * hp <= fight_prop['baseAtk'] * 4 else fight_prop['baseAtk'] * 4 + elif '魈' in char_name: dmgBonus_cal += 0.906 + elif '绫华' in char_name: + dmgBonus_cal += 0.18 + elif '霄宫' in char_name: + dmgBonus_cal += 0.5 + elif '九条' in char_name: + effect_prop += 0.9129 * fight_prop['baseAtk'] + critdmg_cal += 0.6 + + if '雾切' in weaponName: + dmgBonus_cal += 0.28 + elif '弓藏' in weaponName and '首' in cal['action']: + dmgBonus_cal += 0.8 + elif '飞雷' in weaponName and '首' in cal['action']: + dmgBonus_cal += 0.4 + elif '试作澹月' in weaponName: + effect_prop += fight_prop['baseAtk'] * 0.72 + elif '冬极' in weaponName: + effect_prop += fight_prop['baseAtk'] * 0.48 + dmgBonus_cal += 0.12 if cal['action'] == '扩散': dmg = 868 * 1.15 * (1+0.6+(16*em)/(em+2000)) elif '霄宫' in char_name: - dmg = effect_prop * cal['power'] * (1 + critdmg) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg * 1.5879 + dmg = effect_prop * cal['power'] * (1 + critdmg_cal) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg * 1.5879 elif cal['action'] == '开Q普攻' and '心海' in char_name: - dmg = (effect_prop * cal['power'] + hp*(0.871+0.15*dmgBonus_cal)) * (1 + critdmg) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg + dmg = (effect_prop * cal['power'] + hp*(0.871+0.15*dmgBonus_cal)) * (1 + critdmg_cal) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg + elif '绫人' in char_name: + dmg = (effect_prop * cal['power'] + 0.0222 * hp) * (1 + critdmg_cal) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg * 1.5879 + elif '迪奥娜' in char_name: + dmg = (effect_prop * cal['power'] + 1905) * 1.9 elif cal['action'] == 'Q开盾天星': effect_prop = attack - dmg = (effect_prop * cal['power'] + 0.33 * hp) * (1 + critdmg) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg + dmg = (effect_prop * cal['power'] + 0.33 * hp) * (1 + critdmg_cal) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg elif isinstance(cal['power'], str): if cal['power'] == '攻击力': dmg = attack @@ -408,7 +438,7 @@ async def draw_char_card(raw_data: dict, charUrl: str = None) -> bytes: power = cal['power'].split('+') dmg = effect_prop * float(power[0]) / 100 + float(power[1]) elif cal['val'] != 'any': - dmg = effect_prop * cal['power'] * (1 + critdmg) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg + dmg = effect_prop * cal['power'] * (1 + critdmg_cal) * (1 + dmgBonus_cal) * 0.5 * 0.9 * add_dmg else: dmg = attack print(dmg)