diff --git a/backend/core/basic/character.py b/backend/core/basic/character.py index 1bbccf4f..b77c80c3 100644 --- a/backend/core/basic/character.py +++ b/backend/core/basic/character.py @@ -12,7 +12,7 @@ from core.basic.equipment import get_equipment, EquEffect, Equ # from core.basic.equipment import equipments # from core.basic.skill import Skill, ActiveSkill, PassiveSkill -from .formula import 增幅计算, 强化技攻, 武器强化计算, 精通计算, 获取基础属性, 耳环计算, 左右计算, 锻造计算 +from .formula import 增幅计算, 强化技攻, 武器强化计算, 精通计算, 获取唤醒属性, 获取基础属性, 耳环计算, 左右计算, 锻造计算 from .roleinfo import CharacterEquipInfo, get_key_by_value # from .property import 精通计算, 角色基础, CharacterInfo @@ -229,8 +229,9 @@ class Character(CharacterProperty): """设角色基础属性""" # 角色四维 temp = 获取基础属性(self.角色, self.职业) + 唤醒 = 获取唤醒属性() for index, i in enumerate([get_key_by_value(i) for i in ['力量', '体力', '智力', '精神']]): - setattr(self, i, getattr(self,i) + temp[index]) + setattr(self, i, getattr(self,i) + temp[index] + 唤醒) # 角色属性抗性 pass # 角色异常抗性 @@ -826,7 +827,20 @@ class Character(CharacterProperty): info = self.get_buffer_info() pass else: - skillInfos = self.calc_carry_skills() + # 如果存在 + if len(self.输出类型选项) > 1: + temp = self.输出类型选项[0] + if '固伤' in temp: + if self.INT > self.STR: + self.输出类型 = '魔法固伤' + else: + self.输出类型 = '物理固伤' + else: + if self.INT > self.STR or self.AtkM > self.AtkP: + self.输出类型 = '魔法百分比' + else: + self.输出类型 = '物理百分比' + skillInfos = self.calc_carry_skills(setInfo.get("DSB", False),setInfo.get("BUFF", False)) info = self.get_carry_info() return { 'uuid': uuid1().hex, @@ -840,7 +854,7 @@ class Character(CharacterProperty): # region 输出计算项 - def calc_damage_ration(self): + def calc_damage_ration(self,DSB:bool,BUFF:bool): """计算属性系数""" # 计算最终属性 # 力/智 攻击力 攻击力%(特效不吃这部分) @@ -854,9 +868,13 @@ class Character(CharacterProperty): if self.输出类型 == '魔法固伤': attrs.extend(['INT', 'AtkI', 'PAtkI']) # 力智系数 - ratio_0: float = getattr(self, attrs[0]) / 250 + 1 + value0_1 = getattr(self, attrs[0]) + value0_2 = 获取基础属性(self.角色, self.职业)[0] if attrs[0] == 'STR' else 获取基础属性(self.角色, self.职业)[1] + # 系统奶及奶系增幅 + value = value0_1 + ((value0_1 - value0_2) * 3.08 + 2886) * (1 if DSB else 0) + (170000 + 300000) * (1 if BUFF else 0) + ratio_0: float = value / 250 + 1 # 物理/魔法/独立攻击力 - ratio_1: float = getattr(self, attrs[1]) + ratio_1: float = getattr(self, attrs[1]) + 30000 * (1 if BUFF else 0) # 技能 物理/魔法/独立攻击力% ratio_2: float = getattr(self, attrs[2]) # 属强系数 @@ -876,7 +894,7 @@ class Character(CharacterProperty): 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) - def calc_carry_skills(self): + def calc_carry_skills(self,DSB:bool,BUFF:bool): skillInfos = [] for i in self.skills: if i.damage and i.lv > 0: @@ -895,7 +913,7 @@ class Character(CharacterProperty): 'learnLv': i.learnLv, } ) - ratios = self.calc_damage_ration() + ratios = self.calc_damage_ration(DSB,BUFF) ratio_char_skill = ratios[0] * ratios[1] * ratios[2] * ratios[3] * ratios[4] * ratios[5] * ratios[6] * ratios[7] * ratios[8] * ratios[9] / 1000 ratuio_equ_skill = ratios[0] * ratios[1] * ratios[3] * ratios[4] * ratios[6] * ratios[7] * ratios[8] * ratios[9] / 1000 for i in skillInfos: diff --git a/backend/core/basic/formula.py b/backend/core/basic/formula.py index 0592650a..7f4c03f5 100644 --- a/backend/core/basic/formula.py +++ b/backend/core/basic/formula.py @@ -572,15 +572,14 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca def 获取基础属性(角色, 职业): 角色数据 = 角色基础系数[角色] 职业数据 = 职业基础数据[职业 + '-' + 角色] - - 唤醒 = 335 if 当前等级 >= 75 else (145 if 当前等级 >= 15 else 0) - - 力量 = int(角色数据[4] + 角色数据[0] * min(14, 当前等级 - 1) + 职业数据[0] * max(当前等级 - 15, 0) + 唤醒 + 93 + 当前等级) - 体力 = int(角色数据[5] + 角色数据[1] * min(14, 当前等级 - 1) + 职业数据[1] * max(当前等级 - 15, 0) + 唤醒 + 93 + 当前等级) - 智力 = int(角色数据[6] + 角色数据[2] * min(14, 当前等级 - 1) + 职业数据[2] * max(当前等级 - 15, 0) + 唤醒 + 93 + 当前等级) - 精神 = int(角色数据[7] + 角色数据[3] * min(14, 当前等级 - 1) + 职业数据[3] * max(当前等级 - 15, 0) + 唤醒 + 93 + 当前等级) + 力量 = int(角色数据[4] + 角色数据[0] * min(14, 当前等级 - 1) + 职业数据[0] * max(当前等级 - 15, 0) + 93 + 当前等级) + 体力 = int(角色数据[5] + 角色数据[1] * min(14, 当前等级 - 1) + 职业数据[1] * max(当前等级 - 15, 0) + 93 + 当前等级) + 智力 = int(角色数据[6] + 角色数据[2] * min(14, 当前等级 - 1) + 职业数据[2] * max(当前等级 - 15, 0) + 93 + 当前等级) + 精神 = int(角色数据[7] + 角色数据[3] * min(14, 当前等级 - 1) + 职业数据[3] * max(当前等级 - 15, 0) + 93 + 当前等级) return (力量, 智力, 体力, 精神) +def 获取唤醒属性(): + return 335 if 当前等级 >= 75 else (145 if 当前等级 >= 15 else 0) def 获取属性抗性基础(角色, 职业): return 职业属性抗性数据[职业 + '-' + 角色] diff --git a/backend/core/character/GF/gunner_male/spitfire_male.py b/backend/core/character/GF/gunner_male/spitfire_male.py index 8d82d1bb..4016a4e8 100644 --- a/backend/core/character/GF/gunner_male/spitfire_male.py +++ b/backend/core/character/GF/gunner_male/spitfire_male.py @@ -562,8 +562,8 @@ class classChange(Character): self.role = 'gunner_male' self.武器选项 = ['手弩', '步枪','左轮枪','自动手枪','手炮'] - self.输出类型选项 = ['物理固伤','魔法固伤'] - self.输出类型 = '物理固伤' + self.输出类型选项 = ['物理百分比','魔法百分比'] + self.输出类型 = '物理百分比' self.防具精通属性 = ['智力', '力量'] self.防具类型 = '皮甲' self.buff = 1.84 diff --git a/frontend/src/pages/Character/Index.vue b/frontend/src/pages/Character/Index.vue index 02308ea8..777ff3d7 100644 --- a/frontend/src/pages/Character/Index.vue +++ b/frontend/src/pages/Character/Index.vue @@ -11,11 +11,14 @@
-
+
- + @@ -76,9 +79,9 @@ onUnmounted(() => { .footer { display: flex; align-items: center; - justify-content: end; z-index: 2; height: 40px; + gap : 10px; } .content { diff --git a/frontend/src/stores/config.ts b/frontend/src/stores/config.ts index 40d5db62..3dd1c6d1 100644 --- a/frontend/src/stores/config.ts +++ b/frontend/src/stores/config.ts @@ -52,6 +52,10 @@ export interface IConfig { > sundry: Record bindAwake: number + /** 系统奶 */ + DSB : boolean + /** 奶 */ + BUFF : boolean } const defaultEqusConfig = { @@ -83,7 +87,9 @@ export const useConfigStore = defineStore('configStore', () => { jades: {}, avatar: {}, sundry: {}, - bindAwake: 50 + bindAwake: 50, + DSB: true, + BUFF: true, }) const skillCountConfig = ref([]) @@ -109,7 +115,9 @@ export const useConfigStore = defineStore('configStore', () => { jades: {}, avatar: {}, sundry: {}, - bindAwake: 50 + bindAwake: 50, + DSB: true, + BUFF: true, } if (!config.value?.equips) config.value.equips = {} if (!config.value?.skills) config.value.skills = {}