diff --git a/backend/core/basic/character.py b/backend/core/basic/character.py index 07db9cab..0457eaeb 100644 --- a/backend/core/basic/character.py +++ b/backend/core/basic/character.py @@ -333,6 +333,8 @@ class Character: self.HitP += 命中率 + kwargs.get('HitP', 0) self.Hit += 命中 + kwargs.get('Hit', 0) self.Attack += 攻击强化 + kwargs.get('Attack', 0) + if kwargs.get('Attack', 0) > 0: + print(kwargs.get('Attack', 0)) self.AttackP += 攻击强化P + kwargs.get('AttackP', 0.0) self.Buffer += 增益量 + kwargs.get('Buffer', 0) self.BufferP += 增益量P + kwargs.get('BufferP', 0) @@ -773,22 +775,26 @@ class Character: skillInfos = [] 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], - } - ) + for mode in i.mode: + temp = i.skillInfo(mode) + skillInfos.append( + { + 'name': i.name, + 'icon': i.icon, + 'lv': i.lv, + 'data': temp[0], + 'ratio': temp[1], + 'cd': temp[2], + 'mode': mode, + } + ) 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 ratios: + print(i) + 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: - i['damage'] = ratio_char_skill * i['data'] * i['ratio'] + i['damage'] = ratio_char_skill * i['data'] * i['ratio'] / 100 for i in self.equ_effect: skillInfos.append( { @@ -798,7 +804,8 @@ class Character: 'data': i.data, 'ratio': 10.0, 'cd': i.cd, - 'damage': ratuio_equ_skill * i.data * 10 * self.EquEffectRatio, + 'damage': ratuio_equ_skill * i.data * 10 * self.EquEffectRatio / 100, + 'mode':'' } ) attrs = [] @@ -864,9 +871,9 @@ class Character: # BUFF系数 ratio_5 = self.buff # 技攻系数 - ratio_6 = self.SkillAttack *( self.jade_effect.SkillAttack + 1) + ratio_6 = self.SkillAttack * (self.jade_effect.SkillAttack + 1) # 攻击强化 - ratio_7 = 1 + self.Attack * (self.AttackP + self.jade_effect.AttackP) + ratio_7 = 1 + self.Attack / 100 * (self.AttackP + self.jade_effect.AttackP) # 防御系数,暂定145沙袋防御 monster_defense = 75068627484 ratio_8 = 1 - monster_defense / (monster_defense + 200 * 100) diff --git a/backend/core/basic/skill.py b/backend/core/basic/skill.py index 2a7d7a44..07f4ca33 100644 --- a/backend/core/basic/skill.py +++ b/backend/core/basic/skill.py @@ -60,6 +60,8 @@ class Skill: skills: 关联技能 默认 '*' exceptSkills: 例外技能 默认[] """ + mode : list[str] = [''] + """技能模式""" def __init__(self, char): self.char = char @@ -142,6 +144,9 @@ class Skill: elif type.startswith('+'): setattr(skill, type[1:], getattr(skill, type[1:]) + data[new] / 100 - data[old] / 100) + def skillInfo(self, mode: str | None = None): + pass + class ActiveSkill(Skill): type: str = 'active' """技能类型 active主动 passive被动""" @@ -152,7 +157,6 @@ class ActiveSkill(Skill): super().__init__(char) def skillInfo(self, mode: str | None = None): - basic = self if mode is not None: basic = deepcopy(self) basic.setMode(mode) @@ -160,7 +164,7 @@ class ActiveSkill(Skill): basic = self date = basic.getSkillDate(self.lv) cd = basic.getSkillCD() - return date * self.skillRation , self.skillDamage ,cd + return date * basic.skillRation , basic.skillDamage ,cd def setMode(self, mode: str): pass diff --git a/backend/core/character/GF/gunner_female/spitfire_female.py b/backend/core/character/GF/gunner_female/spitfire_female.py index b255ceb9..4eaaa35f 100644 --- a/backend/core/character/GF/gunner_female/spitfire_female.py +++ b/backend/core/character/GF/gunner_female/spitfire_female.py @@ -33,6 +33,15 @@ class Skill1(ActiveSkill): data0 = [0, 751, 830, 904, 981, 1057, 1132, 1210, 1287, 1362, 1438, 1516, 1591, 1668, 1746, 1819, 1897, 1972, 2049, 2127, 2202, 2278, 2355, 2429, 2508, 2584, 2659, 2735, 2814, 2888, 2965, 3041, 3116, 3194, 3271, 3346, 3422, 3500, 3575, 3652, 3732, 3806, 3883, 3961, 4034, 4112, 4189, 4264, 4342, 4418, 4493, 4570, 4648, 4723, 4799, 4876, 4950, 5029, 5105, 5180, 5256, 5335, 5409, 5486, 5562, 5637, 5715, 5792, 5867, 5943, 6021]# noqa: E501 hit0 = 1 + mode = ['普通','强化'] + + def setMode(self, mode): + if mode == '普通': + return + if mode == '强化': + self.skillRation *= 1.3 + return + # 单兵推进器 니트로 모터 # https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/4224f9b0b8c7c903e9a1e0f9d9f6d04d?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0 class Skill2(PassiveSkill): @@ -102,11 +111,11 @@ class Skill5(PassiveSkill): rangeLv = 3 data0 = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200] # noqa: E501 - data1 = [0] + [(1+1+1.2)/3] * 20 + # data1 = [0] + [(1+1+1.2)/3] * 20 associate = [ {'type': '*skillRation', 'data': data0, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}, - {'type': '*skillRation', 'data': data1, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}, + # {'type': '*skillRation', 'data': data1, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}, ] # M18阔剑地雷 M18 클레이모어 @@ -157,6 +166,16 @@ class Skill8(ActiveSkill): data1 = [0, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150]# noqa: E501 hit1 = 1 + mode = ['普通','强化'] + + def setMode(self, mode): + if mode == '普通': + return + if mode == '强化': + self.skillRation *= 1.3 + return + + # 爆裂弹 폭발탄 # https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/3c5604bdbb0240b8f130f59ab40509c3?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0 class Skill9(ActiveSkill): @@ -194,6 +213,15 @@ class Skill10(ActiveSkill): data0 = [0, 1996, 2196, 2400, 2603, 2803, 3009, 3208, 3414, 3616, 3817, 4021, 4221, 4423, 4629, 4830, 5034, 5234, 5437, 5642, 5841, 6047, 6248, 6450, 6652, 6854, 7060, 7259, 7463, 7665, 7868, 8070, 8272, 8475, 8675, 8881, 9083, 9285, 9488, 9688, 9892, 10096, 10299, 10501, 10702, 10906, 11108, 11310, 11514, 11713, 11919, 12121, 12322, 12526, 12726, 12932, 13134, 13335, 13539, 13739, 13943, 14147, 14346, 14552, 14753, 14957, 15159, 15360, 15565, 15764, 15968]# noqa: E501 hit0 = 1 + mode = ['普通','强化'] + + def setMode(self, mode): + if mode == '普通': + return + if mode == '强化': + self.skillRation *= 1.3 + return + # C4飞弹 C4 # https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/a2d943797daca862a6f321aca6ac9bfa?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0 class Skill11(ActiveSkill): diff --git a/backend/dataFiles/dcalc_0.db b/backend/dataFiles/dcalc_0.db index 9eefcfd5..4b6be3c1 100644 Binary files a/backend/dataFiles/dcalc_0.db and b/backend/dataFiles/dcalc_0.db differ diff --git a/backend/database/models.py b/backend/database/models.py index aaf8b77a..b5279358 100644 --- a/backend/database/models.py +++ b/backend/database/models.py @@ -22,8 +22,10 @@ class SuitData(Base): count = Column(Integer) SkillAttack = Column(Float) Attack = Column(Float) + Buffer = Column(Float) imageUrl = Column(Text) value = Column(Text) + fame = Column(Integer) class EquData(Base): diff --git a/frontend/src/api/calc/type.ts b/frontend/src/api/calc/type.ts index dc9c8a84..4c58f8df 100644 --- a/frontend/src/api/calc/type.ts +++ b/frontend/src/api/calc/type.ts @@ -13,6 +13,7 @@ export interface IResultSkill { ratio: number cd: number damage: number + mode: string } export interface IResultUserInfo { diff --git a/frontend/src/pages/Character/Result/components/Skill.vue b/frontend/src/pages/Character/Result/components/Skill.vue index 2e2e8ae3..95acb8d4 100644 --- a/frontend/src/pages/Character/Result/components/Skill.vue +++ b/frontend/src/pages/Character/Result/components/Skill.vue @@ -2,21 +2,21 @@
-
技能
+
技能
CD
伤害
秒伤
-
-
+
+
Lv {{ skill.lv }}
-
{{ skill.name }}
+
{{ skill.name }} {{ !skill.mode ? '' : `[${skill.mode}]` }}
{{ skill.cd.toFixed(1) }}s