diff --git a/backend/core/basic/character/base.py b/backend/core/basic/character/base.py index a9aa2a7a..3ebf3eaf 100644 --- a/backend/core/basic/character/base.py +++ b/backend/core/basic/character/base.py @@ -307,6 +307,8 @@ class CharacterBase(CharacterProperty): self.Buffer += 增益量 + kget('Buffer', 0) self.BufferP += 增益量P + kget('BufferP', 0) self.EquEffectRatio += kget('EquEffectRatio', 0.0) + self.PINT *= kget('PINT', 1.0) + self.PSTR *= kget('PSTR', 1.0) def AddElementDB(self, element: str, value: float, type: int = 0) -> None: """ diff --git a/backend/core/basic/character/calc_carry.py b/backend/core/basic/character/calc_carry.py index 74da7fff..c6dce630 100644 --- a/backend/core/basic/character/calc_carry.py +++ b/backend/core/basic/character/calc_carry.py @@ -116,7 +116,7 @@ class CalcCarryMixin(CharacterBase): attrs.extend(['Attack', 'AttackP', 'SkillAttack', 'EquEffectRatio', 'ElementDB']) for attr in attrs: temp = getattr(CharacterInfo, attr) - if attr.startswith('Atk'): + if attr.startswith('Atk') or attr in ['INT', 'STR']: info.append({'name': temp.name, 'value': temp.value(getattr(self, attr) * getattr(self, f'P{attr}'))}) else: value = getattr(self, attr) diff --git a/backend/core/basic/skill.py b/backend/core/basic/skill.py index 732cea44..e2a541dc 100644 --- a/backend/core/basic/skill.py +++ b/backend/core/basic/skill.py @@ -390,6 +390,8 @@ class ActiveSkill(Skill): return 1 - cdr def getSkillCD(self, mode=None): + if not isinstance(self.cd, (int, float)) or not self.cd: + return '-' return max(0, round(max(self.cd * 0.3, self.cd * self.cdReduce / self.cdRecover * self.getWeaponCDRatio() * self.getQuickCDRatio()) * self.cdRatio - self.cdCut / self.cdRecover , 2)) def vp_1(self): diff --git a/backend/core/character/GF/extra/dark_knight.py b/backend/core/character/GF/extra/dark_knight.py index cae9e10e..fd13955c 100644 --- a/backend/core/character/GF/extra/dark_knight.py +++ b/backend/core/character/GF/extra/dark_knight.py @@ -2143,7 +2143,6 @@ class Skill55(DarkKnightSkill): # 次元斩击攻击力 : {value0}% data0 = get_data(f'{prefix}/{uuid}', 0) hit0 = 1 - skillDamage = 2 class classChange(Character): def __init__(self, equVersion): @@ -2223,10 +2222,16 @@ class classChange(Character): } ) for comboCol in range(6): - skills = list(filter(lambda x: x['combo'] == comboCol, skillInfos)) - cdList = [x['cd'] for x in skills] - cdRecoverList = [x['cdRecover'] for x in skills] - total = sum(cdList) - totalRecover = sum(cdRecoverList) + comboSkills = list(filter(lambda x: x['combo'] == comboCol, skillInfos)) + skills = [x for i, x in enumerate(comboSkills) if x['name'] not in [y['name'] for y in comboSkills[:i]]] + if len(skills) > 1: + # 如果skills中name的名称相同,取第一个 + cdList = [x['cd'] for x in skills] + cdRecoverList = [x['cdRecover'] for x in skills] + total = sum(cdList) + totalRecover = sum(cdRecoverList) + for skill in comboSkills: + # 总面板显示CD/(技能数量+总恢复加速)*1.2 + skill['cd'] = total / totalRecover * 1.2 return skillInfos \ No newline at end of file diff --git a/backend/core/equipment/version_0/equ.py b/backend/core/equipment/version_0/equ.py index d5860eae..4e4db0ee 100644 --- a/backend/core/equipment/version_0/equ.py +++ b/backend/core/equipment/version_0/equ.py @@ -15311,6 +15311,24 @@ def equ_3016(char: CharacterProperty,effectDamage: list[float] = []): char.SetStatus(SpeedM=0.03, SpeedA=0.03, SpeedR=0.03, AttackP=0.22) pass +@register +def equ_3019(char: CharacterProperty,effectDamage: list[float] = []): + """ + DCALC_REMOVE: equ_3019 -月华遮蔽者 + 三觉被动Lv +1 + 所有属性强化 +25 + 攻击强化增幅 +30% + 暴击率 +12% + 所有速度 +3% + rarity: 稀有 + """ + char.AddSkillLv(15, 35, 1) + char.AddElementDB('火', 15) + char.AddElementDB('冰', 15) + char.AddElementDB('光', 15) + char.AddElementDB('暗', 15) + char.SetStatus(SpeedM=0.03, SpeedA=0.03, SpeedR=0.03, AttackP=0.2,BufferP=0.01) + pass # endregion # region 白嫖 diff --git a/backend/dataFiles/dcalc_0.db b/backend/dataFiles/dcalc_0.db index c20400b5..c46a9ed2 100644 Binary files a/backend/dataFiles/dcalc_0.db and b/backend/dataFiles/dcalc_0.db differ diff --git a/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx b/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx index dfb0a842..65acf22a 100644 --- a/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx +++ b/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx @@ -295,11 +295,9 @@ export default defineComponent({
(activeSkill.value = -1)}> {skillGrid.value.rows.map((row) => (
- {showRowPrefix.value && ( -
- {getRowPrefix(row)} -
- )} +
+ {showRowPrefix.value ? getRowPrefix(row) : ''} +
{skillGrid.value.columns.map((column) => { const skill = skillGrid.value.grid.get(`${row}:${column}`) return skill ? ( diff --git a/frontend/src/pages/Character/Skill/index.vue b/frontend/src/pages/Character/Skill/index.vue index ad478353..aaad4ce7 100644 --- a/frontend/src/pages/Character/Skill/index.vue +++ b/frontend/src/pages/Character/Skill/index.vue @@ -53,7 +53,7 @@