修正伤害系数

This commit is contained in:
2025-04-07 19:10:45 +08:00
parent 9227b67915
commit 649e342a3b
8 changed files with 80 additions and 35 deletions
+24 -17
View File
@@ -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)
+6 -2
View File
@@ -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
@@ -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):
Binary file not shown.
+2
View File
@@ -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):
+1
View File
@@ -13,6 +13,7 @@ export interface IResultSkill {
ratio: number
cd: number
damage: number
mode: string
}
export interface IResultUserInfo {
@@ -2,21 +2,21 @@
<div class="bg-hex-000000/60 p-4 border-solid border-#FFFF/15" v-if="data && data.length > 0">
<div class="bg-hex-000000/40 text-white border-solid border-#FFFF/15 border-t-0">
<div class="flex px-1px gap-1px">
<div class="item-head w-150px">技能</div>
<div class="item-head w-200px">技能</div>
<div class="item-head w-80px">CD</div>
<div class="item-head w-150px">伤害</div>
<div class="item-head w-150px">秒伤</div>
</div>
<div class="overflow-y-auto max-h-600px">
<div class="flex px-1px gap-1px h-8.5" v-for="skill in data" :key="skill.name">
<div class="flex w-150px items-center gap-10px">
<div class="flex px-1px gap-1px h-8.5" v-for="(skill,_) in data" :key="_">
<div class="flex w-200px items-center gap-10px">
<div class="w-28px h-28px relative">
<img :src="getImageURL(skill.icon)" alt="" class="w-28px h-28px" />
<div v-if="skill.lv" class="skill-lv-min" :data-text="`Lv ${skill.lv}`">
Lv {{ skill.lv }}
</div>
</div>
<div>{{ skill.name }}</div>
<div>{{ skill.name }} {{ !skill.mode ? '' : `[${skill.mode}]` }}</div>
</div>
<div class="w-80px flex items-center justify-center">{{ skill.cd.toFixed(1) }}s</div>
<!-- <div class="flex">
+13 -10
View File
@@ -31,14 +31,14 @@ export interface IConfigEquip {
export interface IConfig {
skills: Record<string, { lv: number }>
equips: Record<
equips: Record<string, IConfigEquip>
jades: Record<
string,
IConfigEquip
{
id: number
value: number
}
>
jades: Record<string, {
id:number
value: number
}>
avatar: Record<
string,
{
@@ -81,6 +81,8 @@ export const useConfigStore = defineStore('configStore', () => {
avatar: {},
})
const skillCountConfig = ref<Record<string, { count: number }>>({})
const loadConfig = () => {
const infoStore = useInfoStore()
const alter = infoStore.infos?.alter
@@ -125,15 +127,16 @@ export const useConfigStore = defineStore('configStore', () => {
(config.value.skills[id] = {
lv: infoStore.skills.find((skill) => skill.id.toString() === id)?.maxLearnLv ?? 0,
})
});
})
(["0", "1", "2", "3"].filter((key) => !Object.keys(config.value.jades).includes(key)) ?? []).forEach((key) => {
;(
['0', '1', '2', '3'].filter((key) => !Object.keys(config.value.jades).includes(key)) ?? []
).forEach((key) => {
config.value.jades[key] = {
id: -1,
value: 0,
}
}
)
})
}
const saveConfig = () => {