修正伤害系数
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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.
@@ -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):
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
Reference in New Issue
Block a user