From 5b03724adfb5d8f9873fcddf0a608d6309c44f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E7=93=9C=C2=B0?= Date: Wed, 2 Apr 2025 14:45:14 +0800 Subject: [PATCH] dev --- backend/core/basic/character.py | 178 ++++++++++-------- .../GF/gunner_female/spitfire_female.py | 13 +- backend/core/equipment/version_0/equ.py | 17 +- backend/core/equipment/version_0/suit.py | 151 ++++++++++----- backend/dataFiles/dcalc_0.db | Bin 708608 -> 1007616 bytes .../components/dnf/Equipment/List/index.vue | 4 +- .../Character/Forge/components/equipment.vue | 8 +- frontend/src/pages/Character/Forge/index.vue | 2 +- frontend/src/pages/Character/Index.vue | 2 +- .../Character/Result/components/Skill.vue | 12 +- 10 files changed, 235 insertions(+), 152 deletions(-) diff --git a/backend/core/basic/character.py b/backend/core/basic/character.py index 4a053648..5dd353c6 100644 --- a/backend/core/basic/character.py +++ b/backend/core/basic/character.py @@ -1,6 +1,6 @@ from functools import cache import importlib -from typing import Literal +from typing import Any, Literal, Mapping, Union from core.basic.property import CharacterInfo from core.basic.skill import Skill @@ -13,19 +13,21 @@ from .formula import 增幅计算, 强化技攻, 武器强化计算, 精通计 from .roleinfo import CharacterEquipInfo, get_key_by_value # from .property import 精通计算, 角色基础, CharacterInfo + class Jade: - ElementIncrease:float - '''属性增幅''' - AttackP:float - '''攻击强化%''' - SkillAttack:float - '''技能攻击力%''' + ElementIncrease: float + """属性增幅""" + AttackP: float + """攻击强化%""" + SkillAttack: float + """技能攻击力%""" def __init__(self) -> None: self.ElementIncrease = 0.0 self.AttackP = 0.0 self.SkillAttack = 0.0 + class Character: # region 角色属性 @@ -257,48 +259,47 @@ class Character: 攻击强化P=0, 增益量=0, 增益量P=0, - **kwargs, + **kwargs: Mapping[ + Literal[ + 'STR', + 'INT', + 'AtkP', + 'AtkM', + 'AtkI', + 'PAtkP', + 'PAtkM', + 'PAtkI', + 'PATKIPDamage', + 'PDamageC', + 'PSTR', + 'PINT', + 'PDamageB', + 'ElementA', + 'ElementDB', + 'ElementR', + 'CriticalMP', + 'CriticalM', + 'CriticalPP', + 'CriticalP', + 'EquipmentSkillAttack', + 'SkillAttack', + 'SpeedA', + 'SpeedM', + 'SpeedR', + 'HitP', + 'Hit', + 'Attack', + 'AttackP', + 'Buffer', + 'BufferP', + 'Spirit', + 'Vitality', + 'EquEffectRatio', + ], + Any, + ], ) -> None: """设置角色属性""" - allowed_kwargs = { - 'STR', - 'INT', - 'AtkP', - 'AtkM', - 'AtkI', - 'PAtkP', - 'PAtkM', - 'PAtkI', - 'PATKIPDamage', - 'PDamageC', - 'PSTR', - 'PINT', - 'PDamageB', - 'ElementA', - 'ElementDB', - 'ElementR', - 'CriticalMP', - 'CriticalM', - 'CriticalPP', - 'CriticalP', - 'EquipmentSkillAttack', - 'SkillAttack', - 'SpeedA', - 'SpeedM', - 'SpeedR', - 'HitP', - 'Hit', - 'Attack', - 'AttackP', - 'Buffer', - 'BufferP', - 'Spirit', - 'Vitality', - 'EquEffectRatio' - } - # for key in kwargs: - # if key not in allowed_kwargs: - # raise ValueError(f'Invalid keyword argument: {key}') self.STR += 力量 + kwargs.get('STR', 0) + 四维 + 力智 self.INT += 智力 + kwargs.get('INT', 0) + 四维 + 力智 self.Spirit += 精神 + kwargs.get('Spirit', 0) + 四维 + 体精 @@ -328,7 +329,7 @@ class Character: self.EquEffectRatio *= 1 + kwargs.get('EquEffectRatio', 0.0) pass - def AddElementDB(self, element: str, value: float,type:int=0) -> None: + def AddElementDB(self, element: str, value: float, type: int = 0) -> None: """ 增加属性强化 type: 0 站街 1 进图 @@ -357,6 +358,21 @@ class Character: if min <= skill.learnLv <= max and skill.damage and skill.learnLv not in exclude: skill.cdReduce *= 1 - cd + def SetSkillCDRecover(self, min=1, max=100, cd=0, exclude=[50, 85, 100]) -> None: + """设置技能CD恢复""" + for skill in self.skills: + if min <= skill.learnLv <= max and skill.damage and skill.learnLv not in exclude: + skill.cdRecover += cd + + def SetSkillRation(self, min=1, max=100, ratio=0 ,type = 0) -> None: + """设置技能倍率 0 修改技能面板 1 不修改技能面板""" + for skill in self.skills: + if min <= skill.learnLv <= max and skill.damage: + if type == 0: + skill.skillRation *= (1 + ratio) + else: + skill.skillDamage *= (1 + ratio) + def GetSkillByName(self, name) -> Skill: """通过技能名获取技能""" return self.skills_dict.get(name, None) @@ -525,7 +541,7 @@ class Character: for equ in [item.equInfo for item in filter(lambda x: x.equInfo is not None, self.charEquipInfo.values())]: if equ is None: continue - fun = effects.equ_func_list.get(str(equ.id),None) + fun = effects.equ_func_list.get(str(equ.id), None) if fun is None: continue # 获取装备基础属性 并给角色设置(大写开头属性为角色属性) @@ -534,7 +550,6 @@ class Character: # 获取装备额外属性 fun(self) - def calc_basic(self): """计算基础属性:防具精通、增幅、强化等""" # 防具精通跟随装备品级 @@ -567,10 +582,10 @@ class Character: if part == '武器': # 锻造独立计算 value = 锻造计算(115, '史诗', cur.refine) - self.SetStatus(AtkI = value) + self.SetStatus(AtkI=value) # 传世武器强化系数取所有武器的最高的1.12 if cur.equInfo.categorize == '传世武器': - value = 武器强化计算(115, '史诗', cur.reinforce,cur.equInfo.itemDetailType,'物理',1.12) + value = 武器强化计算(115, '史诗', cur.reinforce, cur.equInfo.itemDetailType, '物理', 1.12) self.SetStatus(AtkP=value, AtkM=value) else: # 强化计算 @@ -581,7 +596,7 @@ class Character: pass if part == '耳环': value = 耳环计算(115, '史诗', cur.reinforce) - self.SetStatus(AtkM=value, AtkP=value,AtkI=value) + self.SetStatus(AtkM=value, AtkP=value, AtkI=value) pass if part in ['辅助装备', '魔法石']: value = 左右计算(115, '史诗', cur.reinforce) @@ -622,33 +637,34 @@ class Character: for i in self.skills: if i.damage and i.lv > 0: temp = i.skillInfo() - skillInfos.append({ - "name":i.name, - "icon":i.icon, - "lv":i.lv, - "data":temp[0], - "ratio":temp[1], - "cd":temp[2], - }) + skillInfos.append( + { + 'name': i.name, + 'icon': i.icon, + 'lv': i.lv, + 'data': temp[0], + 'ratio': temp[1], + 'cd': temp[2], + } + ) ratios = self.calc_damage_ration() ratio_char_skill = ratios[0] * ratios[1] * ratios[2] * ratios[3] * ratios[4] * ratios[5] * ratios[6] * ratios[7] * ratios[8] * ratios[9] / 10000 ratuio_equ_skill = ratios[0] * ratios[1] * ratios[3] * ratios[4] * ratios[6] * ratios[7] * ratios[8] * ratios[9] / 10000 for i in skillInfos: - i["damage"] = ratio_char_skill * i["data"] * i["ratio"] + i['damage'] = ratio_char_skill * i['data'] * i['ratio'] for i in self.equ_effect: - skillInfos.append({ - "name": i.name, - "icon": i.icon, - "lv": 0, - "data": i.data, - "ratio": 10.0, - "cd": i.cd, - "damage": ratuio_equ_skill * i.data * 10, - }) - return { - "skills": skillInfos, - "info":{k: v for k, v in self.__dict__.items() if k[0].isupper()} - } + skillInfos.append( + { + 'name': i.name, + 'icon': i.icon, + 'lv': 0, + 'data': i.data, + 'ratio': 10.0, + 'cd': i.cd, + 'damage': ratuio_equ_skill * i.data * 10, + } + ) + return {'skills': skillInfos, 'info': {k: v for k, v in self.__dict__.items() if k[0].isupper()}} # 技能影响角色的属性,如属强、抗性等 def calc_damage_ration(self): @@ -657,19 +673,19 @@ class Character: # 力/智 攻击力 攻击力%(特效不吃这部分) attrs = [] if self.输出类型 == '物理百分比': - attrs.extend(['STR', 'AtkP','PAtkP']) + attrs.extend(['STR', 'AtkP', 'PAtkP']) if self.输出类型 == '魔法百分比': - attrs.extend(['INT', 'AtkM','PAtkM']) + attrs.extend(['INT', 'AtkM', 'PAtkM']) if self.输出类型 == '物理固伤': attrs.extend(['STR', 'AtkI', 'PAtkI']) if self.输出类型 == '魔法固伤': attrs.extend(['INT', 'AtkI', 'PAtkI']) # 力智系数 - ratio_0 : float = getattr(self, attrs[0]) / 250 + 1 + ratio_0: float = getattr(self, attrs[0]) / 250 + 1 # 物理/魔法/独立攻击力 - ratio_1 : float = getattr(self, attrs[1]) + ratio_1: float = getattr(self, attrs[1]) # 技能 物理/魔法/独立攻击力% - ratio_2 : float = getattr(self, attrs[2]) + ratio_2: float = getattr(self, attrs[2]) # 属强系数 ratio_3 = max(self.ElementDB.values()) * 0.0045 + 1.05 # 暴击系数 @@ -682,7 +698,7 @@ class Character: ratio_7 = 1 + self.Attack * (self.AttackP + self.jade_effect.AttackP) # 防御系数,暂定145沙袋防御 monster_defense = 75068627484 - ratio_8 = (1 - monster_defense / (monster_defense + 200 * 100)) + ratio_8 = 1 - monster_defense / (monster_defense + 200 * 100) # 杂项 斗神、宠物技能、队友增幅等(技能的属性增幅归属到这部分,因为会加成到特效部分,修复后修改为技能攻击力计算) ratio_9 = 1.0 * self.ElementIncrease return (ratio_0, ratio_1, ratio_2, ratio_3, ratio_4, ratio_5, ratio_6, ratio_7, ratio_8, ratio_9) diff --git a/backend/core/character/GF/gunner_female/spitfire_female.py b/backend/core/character/GF/gunner_female/spitfire_female.py index 012e506d..145ebeb4 100644 --- a/backend/core/character/GF/gunner_female/spitfire_female.py +++ b/backend/core/character/GF/gunner_female/spitfire_female.py @@ -63,7 +63,10 @@ class Skill3(PassiveSkill): data0 = [0, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48] # noqa: E501 data1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30] - associate = [{'data': data0, 'type': '$*PAtkI'},{'data': data1, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴','决战之日','终解·制空霸权']}] + associate = [ + {'data': data0, 'type': '$*PAtkI'}, + {'data': data1, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴','决战之日','终解·制空霸权']} + ] # def precondition(self): # weapon = self.char.charEquipInfo['武器'].equInfo @@ -83,6 +86,10 @@ class Skill4(PassiveSkill): data0 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10] # noqa: E501 data1 = [0, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] # noqa: E501 + associate = [ + {'data': data0, 'type': '*skillRation'}, + {'data': data1, 'type': '*skillRation'} + ] # 手雷精通 유탄 마스터리 # https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/0113c8b1306ca76d208f83f2d093dd62?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0 @@ -96,7 +103,9 @@ class Skill5(PassiveSkill): data0 = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200] # noqa: E501 - associate = [{'type': '*skillRation', 'data': data0, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}] + associate = [ + {'type': '*skillRation', 'data': data0, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']} + ] # M18阔剑地雷 M18 클레이모어 # https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/2ff50c35efcf0f287c4c418c8454da48?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0 diff --git a/backend/core/equipment/version_0/equ.py b/backend/core/equipment/version_0/equ.py index 49d16645..4bbd4a30 100644 --- a/backend/core/equipment/version_0/equ.py +++ b/backend/core/equipment/version_0/equ.py @@ -1284,6 +1284,7 @@ def equ_86(char: Character): -所有速度+10% -发动权威光谱效果 """ + char.SetStatus(SpeedA=0.1,SpeedM=0.1,SpeedR=0.1) pass @@ -1298,6 +1299,7 @@ def equ_87(char: Character): -所有速度+15% -发动权威光谱效果 """ + char.SetStatus(SpeedA=0.15,SpeedM=0.15,SpeedR=0.15) pass @@ -1313,6 +1315,7 @@ def equ_88(char: Character): -所有速度+20% -发动权威光谱效果 """ + char.SetStatus(SpeedA=0.2,SpeedM=0.2,SpeedR=0.2) pass @@ -1401,7 +1404,7 @@ def equ_94(char: Character): -静止模式:中止攻击 -冷却时间1秒 """ - char.equ_effects.append(EquEffect(name='冰封的火焰之躯', icon='/equipment/skill/26.png', cd=1, data=7200)) + char.equ_effect.append(EquEffect(name='冰封的火焰之躯', icon='/equipment/skill/26.png', cd=1, data=7200)) pass @@ -1423,8 +1426,8 @@ def equ_95(char: Character): -静止模式:中止攻击 -冷却时间1秒 """ - char.equ_effects.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200)) - char.equ_effects.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200)) + char.equ_effect.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200)) + char.equ_effect.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200)) pass @@ -1448,9 +1451,9 @@ def equ_96(char: Character): -静止模式:中止攻击 -冷却时间1秒 """ - char.equ_effects.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200)) - char.equ_effects.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200)) - char.equ_effects.append(EquEffect(name='箭雨', icon='/equipment/skill/26.png', cd=20, data=45600)) + char.equ_effect.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200)) + char.equ_effect.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200)) + char.equ_effect.append(EquEffect(name='箭雨', icon='/equipment/skill/26.png', cd=20, data=45600)) pass @@ -1584,7 +1587,7 @@ def equ_104(char: Character): skill.skillDamage *= 1.30 if skill.damage and skill.cube == 0: skill.skillDamage *= 1.25 - char.equ_effect.append(EquEffect(name='燃烧', icon='/new_equipment/01_weapon/gunner/musket/musket.img/234.png', cd=0.2, data=480)) + char.equ_effect.append(EquEffect(name='燃烧', icon='/equipment/new_equipment/01_weapon/gunner/musket/musket.img/234.png', cd=0.2, data=480)) pass diff --git a/backend/core/equipment/version_0/suit.py b/backend/core/equipment/version_0/suit.py index fb8fd089..d38579e8 100644 --- a/backend/core/equipment/version_0/suit.py +++ b/backend/core/equipment/version_0/suit.py @@ -324,7 +324,7 @@ def suit_27(char: Character): - 攻击中止/继续攻击 - 冷却时间1秒 """ - char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200)) pass @@ -402,8 +402,8 @@ def suit_32(char: Character): - 被击时,精灵之魂- 5(冷却时间1秒) - 元素释放伤害量:80,400% """ - char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200)) - char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000)) + char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000)) char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=15, data=80400)) pass @@ -520,9 +520,9 @@ def suit_37(char: Character): 一被击时,精灵之魂- 5(冷却时间1秒) - 元素释放伤害量:118,200% """ - char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200)) - char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000)) - char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000)) + char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='/equipment/skill/29.png', cd=2, data=19200)) char.SetStatus(SpeedM=0.15) char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=15, data=118200)) pass @@ -666,12 +666,12 @@ def suit_42(char: Character): 一被击时,精灵之魂- 5(冷却时间1秒) - 元素释放伤害量:118,200% """ - char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200)) - char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000)) - char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200)) + char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000)) + char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='/equipment/skill/29.png', cd=2, data=19200)) char.SetStatus(SpeedM=0.15) char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=10, data=181920)) - char.equ_effect.append(EquEffect(name='精灵女王提泰妮娅', icon='', cd=5, data=47520)) + char.equ_effect.append(EquEffect(name='精灵女王提泰妮娅', icon='/equipment/skill/29.png', cd=5, data=47520)) pass @@ -732,16 +732,16 @@ def suit_48(char: Character): reinforce_3 = 0 """武器""" for part in char.charEquipInfo.keys(): - if char.charEquipInfo[part].id <= 0: + if char.charEquipInfo[part] is None: continue num = char.charEquipInfo[part].reinforce if part == '武器': reinforce_3 += num - if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part): + if part in ['上衣', '头肩', '下装', '腰带', '鞋']: reinforce_0 += num - if ['手镯', '项链', '戒指'].includes(part): + if part in ['手镯', '项链', '戒指']: reinforce_1 += num - if ['耳环', '辅助装备', '魔法石'].includes(part): + if part in ['耳环', '辅助装备', '魔法石']: reinforce_2 += num reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3 char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 7)) @@ -829,16 +829,16 @@ def suit_53(char: Character): reinforce_3 = 0 """武器""" for part in char.charEquipInfo.keys(): - if char.charEquipInfo[part].id <= 0: + if char.charEquipInfo[part] is None: continue num = char.charEquipInfo[part].reinforce if part == '武器': reinforce_3 += num - if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part): + if part in ['上衣', '头肩', '下装', '腰带', '鞋']: reinforce_0 += num - if ['手镯', '项链', '戒指'].includes(part): + if part in ['手镯', '项链', '戒指']: reinforce_1 += num - if ['耳环', '辅助装备', '魔法石'].includes(part): + if part in ['耳环', '辅助装备', '魔法石']: reinforce_2 += num reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3 char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12)) @@ -968,16 +968,16 @@ def suit_58(char: Character): reinforce_3 = 0 """武器""" for part in char.charEquipInfo.keys(): - if char.charEquipInfo[part].id <= 0: + if char.charEquipInfo is None: continue num = char.charEquipInfo[part].reinforce if part == '武器': reinforce_3 += num - if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part): + if part in ['上衣', '头肩', '下装', '腰带', '鞋']: reinforce_0 += num - if ['手镯', '项链', '戒指'].includes(part): + if part in ['手镯', '项链', '戒指']: reinforce_1 += num - if ['耳环', '辅助装备', '魔法石'].includes(part): + if part in ['耳环', '辅助装备', '魔法石']: reinforce_2 += num reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3 char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12)) @@ -997,13 +997,13 @@ def suit_58(char: Character): char.SetSkillCD(Buffer=750 * min((reinforce - 110) // 11, 2)) if reinforce < 88: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=9600)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=9600)) elif reinforce < 110: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=10440)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=10440)) elif reinforce < 132: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=12000)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=12000)) else: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=14400)) pass @@ -1157,16 +1157,16 @@ def suit_63(char: Character): reinforce_3 = 0 """武器""" for part in char.charEquipInfo.keys(): - if char.charEquipInfo[part].id <= 0: + if char.charEquipInfo[part] is None: continue num = char.charEquipInfo[part].reinforce if part == '武器': reinforce_3 += num - if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part): + if part in ['上衣', '头肩', '下装', '腰带', '鞋']: reinforce_0 += num - if ['手镯', '项链', '戒指'].includes(part): + if part in ['手镯', '项链', '戒指']: reinforce_1 += num - if ['耳环', '辅助装备', '魔法石'].includes(part): + if part in ['耳环', '辅助装备', '魔法石']: reinforce_2 += num reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3 char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12)) @@ -1186,13 +1186,13 @@ def suit_63(char: Character): char.SetSkillCD(Buffer=1500 * min((reinforce - 110) // 11, 2)) if reinforce < 88: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=9600)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=9600)) elif reinforce < 110: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=10440)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=10440)) elif reinforce < 132: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=12000)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=12000)) else: - char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=14400)) pass @@ -1296,7 +1296,7 @@ def suit_74(char: Character): * 青龙升天伤害量 : 14,400% """ char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1) - char.equ_effect.append(EquEffect(name='龙之胜战', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='龙之胜战', icon='/equipment/suit/1.png', cd=10, data=14400)) pass @@ -1379,16 +1379,16 @@ def suit_79(char: Character): """ if char.equ_options.get('1', 0) == 0: char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1) - char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400)) elif char.equ_options.get('1', 0) == 1: char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3) char.SetStatus(SkillDamage=0.03) - char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000)) + char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000)) elif char.equ_options.get('1', 0) == 2: char.SetStatus(SpeedA=0.2, SpeedM=0.2, SpeedR=0.2) char.SetStatus(SkillDamage=0.015) - char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000)) - char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000)) + char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400)) pass @@ -1514,12 +1514,12 @@ def suit_84(char: Character): """ if char.equ_options.get('1', 0) == 0: char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1) - char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400)) + char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400)) elif char.equ_options.get('1', 0) == 1: char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3) char.SetStatus(SkillDamage=0.03) - char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000)) - char.equ_effect.append(EquEffect(name='应龙之怒', icon='', cd=4, data=7200)) + char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000)) + char.equ_effect.append(EquEffect(name='应龙之怒', icon='/equipment/suit/1.png', cd=4, data=7200)) pass @@ -1964,7 +1964,11 @@ def suit_116(char: Character): - 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外) - 立即发动[第二次幸运] """ - suit_111(char) + char.SetStatus(SkillDamage=0.03) + char.AddElementDB('火',33,1) + char.AddElementDB('冰',33,1) + char.AddElementDB('光',33,1) + char.AddElementDB('暗',33,1) pass @@ -1981,7 +1985,7 @@ def suit_117(char: Character): - 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外) - 立即发动[第二次幸运] """ - suit_111(char) + suit_116(char) pass @@ -1998,7 +2002,7 @@ def suit_118(char: Character): - 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外) - 立即发动[第二次幸运] """ - suit_111(char) + suit_116(char) pass @@ -2015,7 +2019,7 @@ def suit_119(char: Character): - 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外) - 立即发动[第二次幸运] """ - suit_111(char) + suit_116(char) pass @@ -2032,7 +2036,7 @@ def suit_120(char: Character): - 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外) - 立即发动[第二次幸运] """ - suit_111(char) + suit_116(char) pass @@ -2053,8 +2057,7 @@ def suit_121(char: Character): - 冷却时间:99秒 - 立即发动[第二次幸运] """ - char.SetStatus(SkillDamage=0.03) - char.Set + suit_116(char) pass @@ -2075,6 +2078,7 @@ def suit_122(char: Character): - 冷却时间:100秒 - 立即发动[第二次幸运] """ + suit_116(char) pass @@ -2095,6 +2099,7 @@ def suit_123(char: Character): - 冷却时间:101秒 - 立即发动[第二次幸运] """ + suit_116(char) pass @@ -2115,6 +2120,7 @@ def suit_124(char: Character): - 冷却时间:102秒 - 立即发动[第二次幸运] """ + suit_116(char) pass @@ -2135,6 +2141,7 @@ def suit_125(char: Character): - 冷却时间:103秒 - 立即发动[第二次幸运] """ + suit_116(char) pass @@ -2160,6 +2167,7 @@ def suit_126(char: Character): - 冷却时间:99秒 - 立即发动[第二次幸运] """ + suit_116(char) pass @@ -2211,6 +2219,11 @@ def suit_132(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 30% (辅助职业除外) """ + if not char.buffer: + char.SetSkillCD(50,50,0.3,[]) + char.SetSkillCD(85,85,0.3,[]) + char.SetSkillRation(100,100,0.3) + char.SetSkillRation(85,85,0.3) pass @@ -2223,6 +2236,7 @@ def suit_133(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 30% (辅助职业除外) """ + suit_132(char) pass @@ -2235,6 +2249,7 @@ def suit_134(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 30% (辅助职业除外) """ + suit_132(char) pass @@ -2247,6 +2262,7 @@ def suit_135(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 30% (辅助职业除外) """ + suit_132(char) pass @@ -2259,6 +2275,7 @@ def suit_136(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 30% (辅助职业除外) """ + suit_132(char) pass @@ -2272,6 +2289,12 @@ def suit_137(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 50% (辅助职业除外) """ + if not char.buffer: + char.SetSkillCD(50,50,0.5,[]) + char.SetSkillCD(85,85,0.3,[]) + char.SetSkillCD(100,100,0.5,[]) + char.SetSkillRation(100,100,0.4) + char.SetSkillRation(85,85,0.4) pass @@ -2285,6 +2308,7 @@ def suit_138(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 50% (辅助职业除外) """ + suit_137(char) pass @@ -2298,6 +2322,7 @@ def suit_139(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 50% (辅助职业除外) """ + suit_137(char) pass @@ -2311,6 +2336,7 @@ def suit_140(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 50% (辅助职业除外) """ + suit_137(char) pass @@ -2324,6 +2350,7 @@ def suit_141(char: Character): - 85级技能冷却时间 - 30% (辅助职业除外) - 50级技能冷却时间 - 50% (辅助职业除外) """ + suit_137(char) pass @@ -2346,6 +2373,17 @@ def suit_142(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 240,000% """ + if not char.buffer: + char.SetSkillCD(50,50,0.5,[]) + char.SetSkillCD(85,85,0.3,[]) + char.SetSkillCD(100,100,0.5,[]) + char.SetSkillRation(100,100,0.6) + char.SetSkillRation(85,85,0.5) + char.SetSkillRation(50,50,0.1) + for item in char.skills: + if item.lv == 100: + cd = item.getSkillCD() + char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=240000)) pass @@ -2368,6 +2406,7 @@ def suit_143(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 240,000% """ + suit_142(char) pass @@ -2390,6 +2429,7 @@ def suit_144(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 240,000% """ + suit_142(char) pass @@ -2412,6 +2452,7 @@ def suit_145(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 240,000% """ + suit_142(char) pass @@ -2434,6 +2475,7 @@ def suit_146(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 240,000% """ + suit_142(char) pass @@ -2458,6 +2500,17 @@ def suit_147(char: Character): 最大填充时释放能量造成大量伤害 * 能量释放伤害 : 360,000% """ + if not char.buffer: + char.SetSkillCD(50,50,0.5,[]) + char.SetSkillCD(85,85,0.3,[]) + char.SetSkillCD(100,100,0.5,[]) + char.SetSkillRation(100,100,0.76) + char.SetSkillRation(85,85,0.6) + char.SetSkillRation(50,50,0.15) + for item in char.skills: + if item.lv == 100: + cd = item.getSkillCD() + char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=360000)) pass diff --git a/backend/dataFiles/dcalc_0.db b/backend/dataFiles/dcalc_0.db index 53823f2e1e55554eb48b2e13b685cee2f460c7da..c0cf1667a2ce4507bd0b813150d97f768c9c852d 100644 GIT binary patch delta 17866 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 ZUbBsxB8(gSk>HOMe`MU(d*nXa{|AMjn6Ll< diff --git a/frontend/src/components/dnf/Equipment/List/index.vue b/frontend/src/components/dnf/Equipment/List/index.vue index 575238e3..358a2ad5 100644 --- a/frontend/src/components/dnf/Equipment/List/index.vue +++ b/frontend/src/components/dnf/Equipment/List/index.vue @@ -1,8 +1,8 @@