This commit is contained in:
2025-04-02 14:45:14 +08:00
parent fa4d4f9816
commit 5b03724adf
10 changed files with 235 additions and 152 deletions
+97 -81
View File
@@ -1,6 +1,6 @@
from functools import cache
import importlib
from typing import Literal
from typing import Any, Literal, Mapping, Union
from core.basic.property import CharacterInfo
from core.basic.skill import Skill
@@ -13,19 +13,21 @@ from .formula import 增幅计算, 强化技攻, 武器强化计算, 精通计
from .roleinfo import CharacterEquipInfo, get_key_by_value
# from .property import 精通计算, 角色基础, CharacterInfo
class Jade:
ElementIncrease:float
'''属性增幅'''
AttackP:float
'''攻击强化%'''
SkillAttack:float
'''技能攻击力%'''
ElementIncrease: float
"""属性增幅"""
AttackP: float
"""攻击强化%"""
SkillAttack: float
"""技能攻击力%"""
def __init__(self) -> None:
self.ElementIncrease = 0.0
self.AttackP = 0.0
self.SkillAttack = 0.0
class Character:
# region 角色属性
@@ -257,48 +259,47 @@ class Character:
攻击强化P=0,
增益量=0,
增益量P=0,
**kwargs,
**kwargs: Mapping[
Literal[
'STR',
'INT',
'AtkP',
'AtkM',
'AtkI',
'PAtkP',
'PAtkM',
'PAtkI',
'PATKIPDamage',
'PDamageC',
'PSTR',
'PINT',
'PDamageB',
'ElementA',
'ElementDB',
'ElementR',
'CriticalMP',
'CriticalM',
'CriticalPP',
'CriticalP',
'EquipmentSkillAttack',
'SkillAttack',
'SpeedA',
'SpeedM',
'SpeedR',
'HitP',
'Hit',
'Attack',
'AttackP',
'Buffer',
'BufferP',
'Spirit',
'Vitality',
'EquEffectRatio',
],
Any,
],
) -> None:
"""设置角色属性"""
allowed_kwargs = {
'STR',
'INT',
'AtkP',
'AtkM',
'AtkI',
'PAtkP',
'PAtkM',
'PAtkI',
'PATKIPDamage',
'PDamageC',
'PSTR',
'PINT',
'PDamageB',
'ElementA',
'ElementDB',
'ElementR',
'CriticalMP',
'CriticalM',
'CriticalPP',
'CriticalP',
'EquipmentSkillAttack',
'SkillAttack',
'SpeedA',
'SpeedM',
'SpeedR',
'HitP',
'Hit',
'Attack',
'AttackP',
'Buffer',
'BufferP',
'Spirit',
'Vitality',
'EquEffectRatio'
}
# for key in kwargs:
# if key not in allowed_kwargs:
# raise ValueError(f'Invalid keyword argument: {key}')
self.STR += 力量 + kwargs.get('STR', 0) + 四维 + 力智
self.INT += 智力 + kwargs.get('INT', 0) + 四维 + 力智
self.Spirit += 精神 + kwargs.get('Spirit', 0) + 四维 + 体精
@@ -328,7 +329,7 @@ class Character:
self.EquEffectRatio *= 1 + kwargs.get('EquEffectRatio', 0.0)
pass
def AddElementDB(self, element: str, value: float,type:int=0) -> None:
def AddElementDB(self, element: str, value: float, type: int = 0) -> None:
"""
增加属性强化
type: 0 站街 1 进图
@@ -357,6 +358,21 @@ class Character:
if min <= skill.learnLv <= max and skill.damage and skill.learnLv not in exclude:
skill.cdReduce *= 1 - cd
def SetSkillCDRecover(self, min=1, max=100, cd=0, exclude=[50, 85, 100]) -> None:
"""设置技能CD恢复"""
for skill in self.skills:
if min <= skill.learnLv <= max and skill.damage and skill.learnLv not in exclude:
skill.cdRecover += cd
def SetSkillRation(self, min=1, max=100, ratio=0 ,type = 0) -> None:
"""设置技能倍率 0 修改技能面板 1 不修改技能面板"""
for skill in self.skills:
if min <= skill.learnLv <= max and skill.damage:
if type == 0:
skill.skillRation *= (1 + ratio)
else:
skill.skillDamage *= (1 + ratio)
def GetSkillByName(self, name) -> Skill:
"""通过技能名获取技能"""
return self.skills_dict.get(name, None)
@@ -525,7 +541,7 @@ class Character:
for equ in [item.equInfo for item in filter(lambda x: x.equInfo is not None, self.charEquipInfo.values())]:
if equ is None:
continue
fun = effects.equ_func_list.get(str(equ.id),None)
fun = effects.equ_func_list.get(str(equ.id), None)
if fun is None:
continue
# 获取装备基础属性 并给角色设置(大写开头属性为角色属性)
@@ -534,7 +550,6 @@ class Character:
# 获取装备额外属性
fun(self)
def calc_basic(self):
"""计算基础属性:防具精通、增幅、强化等"""
# 防具精通跟随装备品级
@@ -567,10 +582,10 @@ class Character:
if part == '武器':
# 锻造独立计算
value = 锻造计算(115, '史诗', cur.refine)
self.SetStatus(AtkI = value)
self.SetStatus(AtkI=value)
# 传世武器强化系数取所有武器的最高的1.12
if cur.equInfo.categorize == '传世武器':
value = 武器强化计算(115, '史诗', cur.reinforce,cur.equInfo.itemDetailType,'物理',1.12)
value = 武器强化计算(115, '史诗', cur.reinforce, cur.equInfo.itemDetailType, '物理', 1.12)
self.SetStatus(AtkP=value, AtkM=value)
else:
# 强化计算
@@ -581,7 +596,7 @@ class Character:
pass
if part == '耳环':
value = 耳环计算(115, '史诗', cur.reinforce)
self.SetStatus(AtkM=value, AtkP=value,AtkI=value)
self.SetStatus(AtkM=value, AtkP=value, AtkI=value)
pass
if part in ['辅助装备', '魔法石']:
value = 左右计算(115, '史诗', cur.reinforce)
@@ -622,33 +637,34 @@ class Character:
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],
})
skillInfos.append(
{
'name': i.name,
'icon': i.icon,
'lv': i.lv,
'data': temp[0],
'ratio': temp[1],
'cd': temp[2],
}
)
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 skillInfos:
i["damage"] = ratio_char_skill * i["data"] * i["ratio"]
i['damage'] = ratio_char_skill * i['data'] * i['ratio']
for i in self.equ_effect:
skillInfos.append({
"name": i.name,
"icon": i.icon,
"lv": 0,
"data": i.data,
"ratio": 10.0,
"cd": i.cd,
"damage": ratuio_equ_skill * i.data * 10,
})
return {
"skills": skillInfos,
"info":{k: v for k, v in self.__dict__.items() if k[0].isupper()}
}
skillInfos.append(
{
'name': i.name,
'icon': i.icon,
'lv': 0,
'data': i.data,
'ratio': 10.0,
'cd': i.cd,
'damage': ratuio_equ_skill * i.data * 10,
}
)
return {'skills': skillInfos, 'info': {k: v for k, v in self.__dict__.items() if k[0].isupper()}}
# 技能影响角色的属性,如属强、抗性等
def calc_damage_ration(self):
@@ -657,19 +673,19 @@ class Character:
# 力/智 攻击力 攻击力%(特效不吃这部分)
attrs = []
if self.输出类型 == '物理百分比':
attrs.extend(['STR', 'AtkP','PAtkP'])
attrs.extend(['STR', 'AtkP', 'PAtkP'])
if self.输出类型 == '魔法百分比':
attrs.extend(['INT', 'AtkM','PAtkM'])
attrs.extend(['INT', 'AtkM', 'PAtkM'])
if self.输出类型 == '物理固伤':
attrs.extend(['STR', 'AtkI', 'PAtkI'])
if self.输出类型 == '魔法固伤':
attrs.extend(['INT', 'AtkI', 'PAtkI'])
# 力智系数
ratio_0 : float = getattr(self, attrs[0]) / 250 + 1
ratio_0: float = getattr(self, attrs[0]) / 250 + 1
# 物理/魔法/独立攻击力
ratio_1 : float = getattr(self, attrs[1])
ratio_1: float = getattr(self, attrs[1])
# 技能 物理/魔法/独立攻击力%
ratio_2 : float = getattr(self, attrs[2])
ratio_2: float = getattr(self, attrs[2])
# 属强系数
ratio_3 = max(self.ElementDB.values()) * 0.0045 + 1.05
# 暴击系数
@@ -682,7 +698,7 @@ class Character:
ratio_7 = 1 + self.Attack * (self.AttackP + self.jade_effect.AttackP)
# 防御系数,暂定145沙袋防御
monster_defense = 75068627484
ratio_8 = (1 - monster_defense / (monster_defense + 200 * 100))
ratio_8 = 1 - monster_defense / (monster_defense + 200 * 100)
# 杂项 斗神、宠物技能、队友增幅等(技能的属性增幅归属到这部分,因为会加成到特效部分,修复后修改为技能攻击力计算)
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)
@@ -63,7 +63,10 @@ class Skill3(PassiveSkill):
data0 = [0, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48] # noqa: E501
data1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
associate = [{'data': data0, 'type': '$*PAtkI'},{'data': data1, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴','决战之日','终解·制空霸权']}]
associate = [
{'data': data0, 'type': '$*PAtkI'},
{'data': data1, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴','决战之日','终解·制空霸权']}
]
# def precondition(self):
# weapon = self.char.charEquipInfo['武器'].equInfo
@@ -83,6 +86,10 @@ class Skill4(PassiveSkill):
data0 = [0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10] # noqa: E501
data1 = [0, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] # noqa: E501
associate = [
{'data': data0, 'type': '*skillRation'},
{'data': data1, 'type': '*skillRation'}
]
# 手雷精通 유탄 마스터리
# https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/0113c8b1306ca76d208f83f2d093dd62?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
@@ -96,7 +103,9 @@ class Skill5(PassiveSkill):
data0 = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200] # noqa: E501
associate = [{'type': '*skillRation', 'data': data0, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}]
associate = [
{'type': '*skillRation', 'data': data0, 'skills': ['G-14手雷','G-35L感电手雷','G-18C冰冻手雷']}
]
# M18阔剑地雷 M18 클레이모어
# https://api.neople.co.kr/df/skills/944b9aab492c15a8474f96947ceeb9e4/2ff50c35efcf0f287c4c418c8454da48?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
+10 -7
View File
@@ -1284,6 +1284,7 @@ def equ_86(char: Character):
-所有速度+10%
-发动权威光谱效果
"""
char.SetStatus(SpeedA=0.1,SpeedM=0.1,SpeedR=0.1)
pass
@@ -1298,6 +1299,7 @@ def equ_87(char: Character):
-所有速度+15%
-发动权威光谱效果
"""
char.SetStatus(SpeedA=0.15,SpeedM=0.15,SpeedR=0.15)
pass
@@ -1313,6 +1315,7 @@ def equ_88(char: Character):
-所有速度+20%
-发动权威光谱效果
"""
char.SetStatus(SpeedA=0.2,SpeedM=0.2,SpeedR=0.2)
pass
@@ -1401,7 +1404,7 @@ def equ_94(char: Character):
-静止模式:中止攻击
-冷却时间1秒
"""
char.equ_effects.append(EquEffect(name='冰封的火焰之躯', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effect.append(EquEffect(name='冰封的火焰之躯', icon='/equipment/skill/26.png', cd=1, data=7200))
pass
@@ -1423,8 +1426,8 @@ def equ_95(char: Character):
-静止模式:中止攻击
-冷却时间1秒
"""
char.equ_effects.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effects.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effect.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effect.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200))
pass
@@ -1448,9 +1451,9 @@ def equ_96(char: Character):
-静止模式:中止攻击
-冷却时间1秒
"""
char.equ_effects.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effects.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effects.append(EquEffect(name='箭雨', icon='/equipment/skill/26.png', cd=20, data=45600))
char.equ_effect.append(EquEffect(name='冰弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effect.append(EquEffect(name='火弩', icon='/equipment/skill/26.png', cd=1, data=7200))
char.equ_effect.append(EquEffect(name='箭雨', icon='/equipment/skill/26.png', cd=20, data=45600))
pass
@@ -1584,7 +1587,7 @@ def equ_104(char: Character):
skill.skillDamage *= 1.30
if skill.damage and skill.cube == 0:
skill.skillDamage *= 1.25
char.equ_effect.append(EquEffect(name='燃烧', icon='/new_equipment/01_weapon/gunner/musket/musket.img/234.png', cd=0.2, data=480))
char.equ_effect.append(EquEffect(name='燃烧', icon='/equipment/new_equipment/01_weapon/gunner/musket/musket.img/234.png', cd=0.2, data=480))
pass
+102 -49
View File
@@ -324,7 +324,7 @@ def suit_27(char: Character):
- 攻击中止/继续攻击
- 冷却时间1秒
"""
char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200))
pass
@@ -402,8 +402,8 @@ def suit_32(char: Character):
- 被击时,精灵之魂- 5(冷却时间1秒)
- 元素释放伤害量:80,400%
"""
char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=15, data=80400))
pass
@@ -520,9 +520,9 @@ def suit_37(char: Character):
一被击时,精灵之魂- 5(冷却时间1秒)
- 元素释放伤害量:118,200%
"""
char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='/equipment/skill/29.png', cd=2, data=19200))
char.SetStatus(SpeedM=0.15)
char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=15, data=118200))
pass
@@ -666,12 +666,12 @@ def suit_42(char: Character):
一被击时,精灵之魂- 5(冷却时间1秒)
- 元素释放伤害量:118,200%
"""
char.equ_effect.append(EquEffect(name='火灵安珀', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='火灵安珀', icon='/equipment/skill/29.png', cd=2, data=19200))
char.equ_effect.append(EquEffect(name='水灵阿库娅', icon='/equipment/skill/29.png', cd=3, data=24000))
char.equ_effect.append(EquEffect(name='风灵希尔珂', icon='/equipment/skill/29.png', cd=2, data=19200))
char.SetStatus(SpeedM=0.15)
char.equ_effect.append(EquEffect(name='元素释放', icon='/equipment/skill/29.png', cd=10, data=181920))
char.equ_effect.append(EquEffect(name='精灵女王提泰妮娅', icon='', cd=5, data=47520))
char.equ_effect.append(EquEffect(name='精灵女王提泰妮娅', icon='/equipment/skill/29.png', cd=5, data=47520))
pass
@@ -732,16 +732,16 @@ def suit_48(char: Character):
reinforce_3 = 0
"""武器"""
for part in char.charEquipInfo.keys():
if char.charEquipInfo[part].id <= 0:
if char.charEquipInfo[part] is None:
continue
num = char.charEquipInfo[part].reinforce
if part == '武器':
reinforce_3 += num
if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part):
if part in ['上衣', '头肩', '下装', '腰带', '鞋']:
reinforce_0 += num
if ['手镯', '项链', '戒指'].includes(part):
if part in ['手镯', '项链', '戒指']:
reinforce_1 += num
if ['耳环', '辅助装备', '魔法石'].includes(part):
if part in ['耳环', '辅助装备', '魔法石']:
reinforce_2 += num
reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3
char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 7))
@@ -829,16 +829,16 @@ def suit_53(char: Character):
reinforce_3 = 0
"""武器"""
for part in char.charEquipInfo.keys():
if char.charEquipInfo[part].id <= 0:
if char.charEquipInfo[part] is None:
continue
num = char.charEquipInfo[part].reinforce
if part == '武器':
reinforce_3 += num
if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part):
if part in ['上衣', '头肩', '下装', '腰带', '鞋']:
reinforce_0 += num
if ['手镯', '项链', '戒指'].includes(part):
if part in ['手镯', '项链', '戒指']:
reinforce_1 += num
if ['耳环', '辅助装备', '魔法石'].includes(part):
if part in ['耳环', '辅助装备', '魔法石']:
reinforce_2 += num
reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3
char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12))
@@ -968,16 +968,16 @@ def suit_58(char: Character):
reinforce_3 = 0
"""武器"""
for part in char.charEquipInfo.keys():
if char.charEquipInfo[part].id <= 0:
if char.charEquipInfo is None:
continue
num = char.charEquipInfo[part].reinforce
if part == '武器':
reinforce_3 += num
if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part):
if part in ['上衣', '头肩', '下装', '腰带', '鞋']:
reinforce_0 += num
if ['手镯', '项链', '戒指'].includes(part):
if part in ['手镯', '项链', '戒指']:
reinforce_1 += num
if ['耳环', '辅助装备', '魔法石'].includes(part):
if part in ['耳环', '辅助装备', '魔法石']:
reinforce_2 += num
reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3
char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12))
@@ -997,13 +997,13 @@ def suit_58(char: Character):
char.SetSkillCD(Buffer=750 * min((reinforce - 110) // 11, 2))
if reinforce < 88:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=9600))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=9600))
elif reinforce < 110:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=10440))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=10440))
elif reinforce < 132:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=12000))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=12000))
else:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=14400))
pass
@@ -1157,16 +1157,16 @@ def suit_63(char: Character):
reinforce_3 = 0
"""武器"""
for part in char.charEquipInfo.keys():
if char.charEquipInfo[part].id <= 0:
if char.charEquipInfo[part] is None:
continue
num = char.charEquipInfo[part].reinforce
if part == '武器':
reinforce_3 += num
if ['上衣', '头肩', '下装', '腰带', '鞋'].includes(part):
if part in ['上衣', '头肩', '下装', '腰带', '鞋']:
reinforce_0 += num
if ['手镯', '项链', '戒指'].includes(part):
if part in ['手镯', '项链', '戒指']:
reinforce_1 += num
if ['耳环', '辅助装备', '魔法石'].includes(part):
if part in ['耳环', '辅助装备', '魔法石']:
reinforce_2 += num
reinforce = reinforce_0 + reinforce_1 + reinforce_2 + reinforce_3
char.SetStatus(SkillRange=0.02 * min(reinforce // 11, 12))
@@ -1186,13 +1186,13 @@ def suit_63(char: Character):
char.SetSkillCD(Buffer=1500 * min((reinforce - 110) // 11, 2))
if reinforce < 88:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=9600))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=9600))
elif reinforce < 110:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=10440))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=10440))
elif reinforce < 132:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=12000))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=12000))
else:
char.equ_effect.append(EquEffect(name='淘银热', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='淘银热', icon='/equipment/suit/0.png', cd=10, data=14400))
pass
@@ -1296,7 +1296,7 @@ def suit_74(char: Character):
* 青龙升天伤害量 : 14,400%
"""
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
char.equ_effect.append(EquEffect(name='龙之胜战', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='龙之胜战', icon='/equipment/suit/1.png', cd=10, data=14400))
pass
@@ -1379,16 +1379,16 @@ def suit_79(char: Character):
"""
if char.equ_options.get('1', 0) == 0:
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
elif char.equ_options.get('1', 0) == 1:
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
char.SetStatus(SkillDamage=0.03)
char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000))
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000))
elif char.equ_options.get('1', 0) == 2:
char.SetStatus(SpeedA=0.2, SpeedM=0.2, SpeedR=0.2)
char.SetStatus(SkillDamage=0.015)
char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000))
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000))
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
pass
@@ -1514,12 +1514,12 @@ def suit_84(char: Character):
"""
if char.equ_options.get('1', 0) == 0:
char.SetStatus(SpeedA=0.1, SpeedM=0.1, SpeedR=0.1)
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='', cd=10, data=14400))
char.equ_effect.append(EquEffect(name='烛龙腾霄', icon='/equipment/suit/1.png', cd=10, data=14400))
elif char.equ_options.get('1', 0) == 1:
char.SetStatus(SpeedA=0.3, SpeedM=0.3, SpeedR=0.3)
char.SetStatus(SkillDamage=0.03)
char.equ_effect.append(EquEffect(name='白龙强袭', icon='', cd=3, data=6000))
char.equ_effect.append(EquEffect(name='应龙之怒', icon='', cd=4, data=7200))
char.equ_effect.append(EquEffect(name='白龙强袭', icon='/equipment/suit/1.png', cd=3, data=6000))
char.equ_effect.append(EquEffect(name='应龙之怒', icon='/equipment/suit/1.png', cd=4, data=7200))
pass
@@ -1964,7 +1964,11 @@ def suit_116(char: Character):
- 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外)
- 立即发动[第二次幸运]
"""
suit_111(char)
char.SetStatus(SkillDamage=0.03)
char.AddElementDB('火',33,1)
char.AddElementDB('冰',33,1)
char.AddElementDB('光',33,1)
char.AddElementDB('暗',33,1)
pass
@@ -1981,7 +1985,7 @@ def suit_117(char: Character):
- 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外)
- 立即发动[第二次幸运]
"""
suit_111(char)
suit_116(char)
pass
@@ -1998,7 +2002,7 @@ def suit_118(char: Character):
- 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外)
- 立即发动[第二次幸运]
"""
suit_111(char)
suit_116(char)
pass
@@ -2015,7 +2019,7 @@ def suit_119(char: Character):
- 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外)
- 立即发动[第二次幸运]
"""
suit_111(char)
suit_116(char)
pass
@@ -2032,7 +2036,7 @@ def suit_120(char: Character):
- 剩余冷却时间33秒以下的技能中,初始化剩余时间最短的1个技能(觉醒技能除外)
- 立即发动[第二次幸运]
"""
suit_111(char)
suit_116(char)
pass
@@ -2053,8 +2057,7 @@ def suit_121(char: Character):
- 冷却时间:99秒
- 立即发动[第二次幸运]
"""
char.SetStatus(SkillDamage=0.03)
char.Set
suit_116(char)
pass
@@ -2075,6 +2078,7 @@ def suit_122(char: Character):
- 冷却时间:100秒
- 立即发动[第二次幸运]
"""
suit_116(char)
pass
@@ -2095,6 +2099,7 @@ def suit_123(char: Character):
- 冷却时间:101秒
- 立即发动[第二次幸运]
"""
suit_116(char)
pass
@@ -2115,6 +2120,7 @@ def suit_124(char: Character):
- 冷却时间:102秒
- 立即发动[第二次幸运]
"""
suit_116(char)
pass
@@ -2135,6 +2141,7 @@ def suit_125(char: Character):
- 冷却时间:103秒
- 立即发动[第二次幸运]
"""
suit_116(char)
pass
@@ -2160,6 +2167,7 @@ def suit_126(char: Character):
- 冷却时间:99秒
- 立即发动[第二次幸运]
"""
suit_116(char)
pass
@@ -2211,6 +2219,11 @@ def suit_132(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 30% (辅助职业除外)
"""
if not char.buffer:
char.SetSkillCD(50,50,0.3,[])
char.SetSkillCD(85,85,0.3,[])
char.SetSkillRation(100,100,0.3)
char.SetSkillRation(85,85,0.3)
pass
@@ -2223,6 +2236,7 @@ def suit_133(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 30% (辅助职业除外)
"""
suit_132(char)
pass
@@ -2235,6 +2249,7 @@ def suit_134(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 30% (辅助职业除外)
"""
suit_132(char)
pass
@@ -2247,6 +2262,7 @@ def suit_135(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 30% (辅助职业除外)
"""
suit_132(char)
pass
@@ -2259,6 +2275,7 @@ def suit_136(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 30% (辅助职业除外)
"""
suit_132(char)
pass
@@ -2272,6 +2289,12 @@ def suit_137(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 50% (辅助职业除外)
"""
if not char.buffer:
char.SetSkillCD(50,50,0.5,[])
char.SetSkillCD(85,85,0.3,[])
char.SetSkillCD(100,100,0.5,[])
char.SetSkillRation(100,100,0.4)
char.SetSkillRation(85,85,0.4)
pass
@@ -2285,6 +2308,7 @@ def suit_138(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 50% (辅助职业除外)
"""
suit_137(char)
pass
@@ -2298,6 +2322,7 @@ def suit_139(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 50% (辅助职业除外)
"""
suit_137(char)
pass
@@ -2311,6 +2336,7 @@ def suit_140(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 50% (辅助职业除外)
"""
suit_137(char)
pass
@@ -2324,6 +2350,7 @@ def suit_141(char: Character):
- 85级技能冷却时间 - 30% (辅助职业除外)
- 50级技能冷却时间 - 50% (辅助职业除外)
"""
suit_137(char)
pass
@@ -2346,6 +2373,17 @@ def suit_142(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 240,000%
"""
if not char.buffer:
char.SetSkillCD(50,50,0.5,[])
char.SetSkillCD(85,85,0.3,[])
char.SetSkillCD(100,100,0.5,[])
char.SetSkillRation(100,100,0.6)
char.SetSkillRation(85,85,0.5)
char.SetSkillRation(50,50,0.1)
for item in char.skills:
if item.lv == 100:
cd = item.getSkillCD()
char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=240000))
pass
@@ -2368,6 +2406,7 @@ def suit_143(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 240,000%
"""
suit_142(char)
pass
@@ -2390,6 +2429,7 @@ def suit_144(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 240,000%
"""
suit_142(char)
pass
@@ -2412,6 +2452,7 @@ def suit_145(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 240,000%
"""
suit_142(char)
pass
@@ -2434,6 +2475,7 @@ def suit_146(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 240,000%
"""
suit_142(char)
pass
@@ -2458,6 +2500,17 @@ def suit_147(char: Character):
最大填充时释放能量造成大量伤害
* 能量释放伤害 : 360,000%
"""
if not char.buffer:
char.SetSkillCD(50,50,0.5,[])
char.SetSkillCD(85,85,0.3,[])
char.SetSkillCD(100,100,0.5,[])
char.SetSkillRation(100,100,0.76)
char.SetSkillRation(85,85,0.6)
char.SetSkillRation(50,50,0.15)
for item in char.skills:
if item.lv == 100:
cd = item.getSkillCD()
char.equ_effect.append(EquEffect(name='能量释放', icon='/equipment/suit/4.png', cd=cd, data=360000))
pass
Binary file not shown.
@@ -1,8 +1,8 @@
<template>
<div class="h-180px pos-relative">
<div class="pos-relative w-300px h-full">
<template v-for="part in infoStore.parts" :key="part">
<div
class="pos-absolute text-white w-26px h-26px border-1px border-solid border-#7a7a7a/50 flex items-center justify-center"
class="pos-absolute text-white/50 w-26px h-26px border-1px border-solid border-#7a7a7a/50 flex items-center justify-center"
:style="infoStyle(part)"
@click="choosePart(part)"
>
@@ -111,7 +111,7 @@ export default defineComponent({
const reinforce = currentInfo<string | number>('reinforce')
// 锻造数值
const dz_number = currentInfo<string | number>('dz_number')
const refine = currentInfo<string | number>('refine')
// 调适
const adaptation = currentInfo<string | number>('adaptation')
@@ -129,7 +129,9 @@ export default defineComponent({
return () => {
return (
<>
<EquList v-model:part={part.value}/>
<div class="h-180px flex justify-center items-center">
<EquList v-model:part={part.value}/></div>
<div class="flex flex-wrap equ-profile">
<div class="equ-profile-item">
<div class="mr-10px row-name">当前部位</div>
@@ -157,7 +159,7 @@ export default defineComponent({
))}
</calc-select>
{part.value == '武器' && (
<calc-select v-model={dz_number.value} class="flex-1 !h-20px">
<calc-select v-model={refine.value} class="flex-1 !h-20px">
{renderList(9, (i) => (
<calc-option value={i - 1}>锻造+ {i - 1}</calc-option>
))}
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<div class="w-300px">
<div class="w-400px">
<calc-collapse class="w-100%" title="装备打造(点击人物部位切换)">
<equipment />
</calc-collapse>
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<div class="w-100% h-100% main" :class="props.alter.split('.').slice(-1)">
<div class="w-100% h-100% main" :class="infoStore.infos?.alter">
<div class="header">
<calc-tabs route>
<calc-tab :value="`/character/equipment/${props.alter}`">装备设置</calc-tab>
@@ -1,12 +1,12 @@
<template>
<div class="flex flex-col" v-if="data && data.length > 0">
<div class="flex gap-2 text-white items-center" v-for="skill in data" :key="skill.name">
<div>
<div class="flex flex-col gap-1" v-if="data && data.length > 0">
<div class="flex gap-2 text-white items-center jus" v-for="skill in data" :key="skill.name">
<div class="flex-1 flex items-center">
<img :src="getImageURL(skill.icon)" alt="" class="w-8 h-8" />
</div>
<div>{{ skill.name }}</div>
<div>{{ skill.lv }}</div>
<div>{{ skill.damage.toFixed(0) }}</div>
<div class="w-150px">{{ skill.name }}</div>
<div class="flex-1">{{ skill.cd.toFixed(2) }}s</div>
<div class="flex-1">{{ skill.damage.toFixed(0) }}</div>
</div>
</div>
</template>