dev
This commit is contained in:
@@ -553,6 +553,7 @@ class Character(CharacterProperty):
|
||||
|
||||
def calc_init(self, setInfo: dict[str, dict]):
|
||||
self.equ_options = setInfo.get('options', {})
|
||||
self.setInfo = setInfo
|
||||
# 打造信息导入
|
||||
self.SetDetail(setInfo)
|
||||
# 技能等级设置
|
||||
@@ -568,7 +569,7 @@ class Character(CharacterProperty):
|
||||
skill.up = skills[key].get('up', 0)
|
||||
if skill.hasVP:
|
||||
skill.vp = skills[key].get('vp', 0)
|
||||
skill.lv = skills[key].get('lv', 0)
|
||||
skill.lv += skills[key].get('lv', 0)
|
||||
pass
|
||||
|
||||
def load_skills(self) -> None:
|
||||
|
||||
@@ -208,7 +208,7 @@ class Skill:
|
||||
else:
|
||||
setattr(skill, type[1:], getattr(skill, type[1:]) * (1 + data[new] / ratio) / (1 + data[old] / ratio))
|
||||
elif type.startswith('+'):
|
||||
if type[1:] == 'lv' and skill.lv == 0:
|
||||
if type[1:] == 'lv' and self.char.setInfo.get('skills', {}).get(str(skill.id),{}).get('lv',0) == 0:
|
||||
return
|
||||
else:
|
||||
setattr(skill, type[1:], getattr(skill, type[1:]) + data[new] / ratio - data[old] / ratio)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -181,7 +181,7 @@ class Skill11(ActiveSkill):
|
||||
uuid = "eb71e1d82d92c7e1d40500a0dcd77aa6"
|
||||
|
||||
data0 = [0, 3179, 3502, 3823, 4146, 4471, 4791, 5117, 5442, 5765, 6086, 6409, 6732, 7055, 7376, 7699, 8024, 8345, 8670, 8991, 9314, 9637, 9960, 10282, 10605, 10931, 11254, 11579, 11898, 12221, 12546, 12869, 13189, 13512, 13838, 14159, 14481, 14805, 15128, 15450, 15773, 16096, 16417, 16742, 17068, 17389, 17712, 18035, 18358, 18681, 19003, 19326, 19652, 19972, 20295, 20618, 20942, 21262, 21585, 21910, 22231, 22554, 22879, 23202, 23523, 23849, 24171, 24492, 24817, 25140, 25461]# noqa: E501
|
||||
hit0 = 2
|
||||
hit0 = 1
|
||||
|
||||
# associate = [{"type":"+dataplus0","data":data0,"skills":["心灵反击","溃灭回射"],"ratio":1}]# noqa: E501
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,23 +1,50 @@
|
||||
#1645c45aabb008c98406b3a16447040d
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
prefix = "swordman_female/sword_master/cn/skillDetail"
|
||||
|
||||
|
||||
# 冥思 냉정함
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/d89f26862e348a801b30bb9fd7125db5?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
# 冥思
|
||||
# swordman_female/sword_master/d89f26862e348a801b30bb9fd7125db5
|
||||
# 1645c45aabb008c98406b3a16447040d/d89f26862e348a801b30bb9fd7125db5
|
||||
class Skill0(PassiveSkill):
|
||||
"""
|
||||
进行战斗期间, 将根据连击数按比例增加物理或魔法暴击率。\n
|
||||
增益效果可以重复触发, 但是有触发次数上限。 增益效果重复触发时, 更新现有增益效果的持续时间。
|
||||
"""
|
||||
name = "冥思"
|
||||
learnLv = 1
|
||||
masterLv = 1
|
||||
maxLv = 1
|
||||
position = 5 #TODO
|
||||
position = 0 #TODO
|
||||
rangeLv = 3
|
||||
uuid = "d89f26862e348a801b30bb9fd7125db5"
|
||||
hasVP = False
|
||||
hasUP = False
|
||||
|
||||
# 触发增益效果所需连击数 : {value0}
|
||||
# REMOVE: data0 = [0, 5]# noqa: E501
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0, lambda x = None: x)
|
||||
# 暴击率增加 : {value1}%
|
||||
# REMOVE: data1 = [0, 1]# noqa: E501
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1, lambda x = None: x)
|
||||
# 暴击率增加上限 : {value2}%
|
||||
# REMOVE: data2 = [0, 5]# noqa: E501
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2, lambda x = None: x)
|
||||
# 增益效果持续时间 : {value3}秒
|
||||
# REMOVE: data3 = [0, 5]# noqa: E501
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3, lambda x = None: x)
|
||||
|
||||
|
||||
# 帝国剑术 제국검술
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/b89c9ab317bc0a443f6497b7cca2f6a8?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
# 帝国剑术
|
||||
# swordman_female/sword_master/b89c9ab317bc0a443f6497b7cca2f6a8
|
||||
# 1645c45aabb008c98406b3a16447040d/b89c9ab317bc0a443f6497b7cca2f6a8
|
||||
class Skill1(ActiveSkill):
|
||||
"""
|
||||
只传授给帝国剑士的秘密剑术。 根据佩戴的武器不同基本攻击的招式会发生变化。\n
|
||||
可以结合基本攻击使用, 但施放最后一击后无法衔接基本攻击或[帝国剑术]。\n
|
||||
可使用[驭剑术]强制中断[帝国剑术]并施放转职技能。
|
||||
"""
|
||||
name = "帝国剑术"
|
||||
learnLv = 1
|
||||
masterLv = 1
|
||||
@@ -52,9 +79,14 @@ class Skill1(ActiveSkill):
|
||||
self.hit3 = 3
|
||||
|
||||
|
||||
# 基础精通 기본기 숙련
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/5a56514f35cf0270ae8d6c65f8fefd78?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
# 基础精通
|
||||
# swordman_female/sword_master/5a56514f35cf0270ae8d6c65f8fefd78
|
||||
# 1645c45aabb008c98406b3a16447040d/5a56514f35cf0270ae8d6c65f8fefd78
|
||||
class Skill2(PassiveSkill):
|
||||
"""
|
||||
增加基本攻击、 前冲攻击、 跳跃攻击、 [浮空击]的攻击力。\n
|
||||
在决斗场中, 增益/减益技能、 被动技能的技能攻击力增加效果对[基础精通]无影响。
|
||||
"""
|
||||
name = "基础精通"
|
||||
learnLv = 1
|
||||
masterLv = 115
|
||||
@@ -64,42 +96,65 @@ class Skill2(PassiveSkill):
|
||||
uuid = "5a56514f35cf0270ae8d6c65f8fefd78"
|
||||
icon = "$common/$uuid"
|
||||
|
||||
data0 = [0, 150, 158.7, 167.3, 176, 184.5, 193.2, 201.8, 210.5, 219.2, 227.7, 236.4, 245, 253.7, 262.2, 270.9, 284.3, 297.6, 311, 324.3, 337.7, 350.9, 364.2, 377.6, 390.9, 404.3, 417.6, 431, 444.3, 457.7, 471, 484.2, 497.6, 510.9, 524.3, 537.6, 551, 564.3, 577.7, 591, 604.4, 617.7, 630.9, 644.3, 657.6, 671, 684.3, 697.7, 711, 724.4, 737.7, 751.1, 764.3, 777.6, 791, 804.3, 817.7, 831, 844.4, 857.7, 871.1, 884.4, 897.8, 911, 924.3, 937.7, 951, 964.4, 977.7, 991.1, 1004.4, 1017.8, 1031.1, 1044.5, 1057.7, 1071, 1084.4, 1097.7, 1111.1, 1124.4, 1137.8, 1151.1, 1164.5, 1177.8, 1191, 1204.4, 1217.7, 1231.1, 1244.4, 1257.8, 1271.1, 1284.5, 1297.8, 1311.2, 1324.5, 1337.7, 1351.1, 1364.4, 1377.8, 1391.1, 1404.5, 1417.8, 1431.2, 1444.5, 1457.9, 1471.2, 1484.6, 1497.9, 1511.3, 1524.6, 1538, 1551.3, 1564.7, 1578, 1591.4, 1604.7, 1618.1, 1631.4, 1644.8, 1658.1, 1671.5, 1684.8, 1698.2, 1711.5, 1724.9, 1738.2, 1751.6, 1764.9, 1778.3, 1791.6, 1805, 1818.3, 1831.7, 1845, 1858.4, 1871.7, 1885.1, 1898.4, 1911.8, 1925.1, 1938.5, 1951.8, 1965.2, 1978.5, 1991.9, 2005.2, 2018.6, 2031.9, 2045.3, 2058.6, 2072, 2085.3, 2098.7, 2112, 2125.4, 2138.7, 2152.1, 2165.4, 2178.8, 2192.1, 2205.5, 2218.8, 2232.2, 2245.5, 2258.9, 2272.2, 2285.6, 2298.9, 2312.3, 2325.6, 2339, 2352.3, 2365.7, 2379, 2392.4, 2405.7, 2419.1, 2432.4, 2445.8, 2459.1, 2472.5, 2485.8, 2499.2, 2512.5, 2525.9, 2539.2, 2552.6, 2565.9, 2579.3, 2592.6, 2606, 2619.3, 2632.7, 2646, 2659.4, 2672.7, 2686.1, 2699.4, 2712.8, 2726.1, 2739.5]# noqa: E501
|
||||
hit0 = 1 #TODO
|
||||
data0 = data0 = get_data(f'{prefix}/{uuid}', 0, lambda x = None: x)
|
||||
|
||||
associate = [{"type":"*skillRation","data":[i-100 if i>0 else 0 for i in data0],"skills":["帝国剑术"]}]
|
||||
|
||||
|
||||
# 招架反击 반격
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/2f5d03c7848effbc0a23f4df45d9ca46?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
# 招架反击
|
||||
# swordman_female/sword_master/2f5d03c7848effbc0a23f4df45d9ca46
|
||||
# 1645c45aabb008c98406b3a16447040d/2f5d03c7848effbc0a23f4df45d9ca46
|
||||
class Skill3(ActiveSkill):
|
||||
"""
|
||||
[招架]成功后可激活该技能; 使用后, 可以进行2次快速斩击。
|
||||
"""
|
||||
name = "招架反击"
|
||||
learnLv = 15
|
||||
masterLv = 60
|
||||
maxLv = 70
|
||||
position = 8 #TODO
|
||||
rangeLv = 2
|
||||
cdList = [0,2, 2, 2, 2, 2, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.9]
|
||||
cdList = [0, 2, 2, 2, 2, 2, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.3, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.5, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.6, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.7, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.9]
|
||||
uuid = "2f5d03c7848effbc0a23f4df45d9ca46"
|
||||
|
||||
damage = False
|
||||
hasVP = False
|
||||
hasUP = True
|
||||
|
||||
# 斩击攻击力 : {value0}%
|
||||
# REMOVE: data0 = [0, 2454, 2703, 2952, 3201, 3450, 3699, 3948, 4197, 4446, 4695, 4944, 5193, 5441, 5690, 5939, 6188, 6437, 6686, 6935, 7184, 7433, 7682, 7931, 8180, 8429, 8678, 8927, 9176, 9425, 9674, 9923, 10172, 10421, 10670, 10919, 11167, 11416, 11665, 11914, 12163, 12412, 12661, 12910, 13159, 13408, 13657, 13906, 14155, 14404, 14653, 14902, 15151, 15400, 15649, 15898, 16147, 16396, 16645, 16893, 17142, 17391, 17640, 17889, 18138, 18387, 18636, 18885, 19134, 19383, 19632]# noqa: E501
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0, lambda x = None: x)
|
||||
# [范围信息]
|
||||
# 反击范围比率 : {value1}%
|
||||
# REMOVE: data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]# noqa: E501
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1, lambda x = None: x)
|
||||
|
||||
|
||||
def getSkillCD(self,mode=None):
|
||||
self.cd = self.cdList[self.lv]
|
||||
return super().getSkillCD()
|
||||
|
||||
|
||||
# 剑术精通 납도
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/4224f9b0b8c7c903e9a1e0f9d9f6d04d?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
# 武器熟练
|
||||
# swordman_female/sword_master/4224f9b0b8c7c903e9a1e0f9d9f6d04d
|
||||
# 1645c45aabb008c98406b3a16447040d/4224f9b0b8c7c903e9a1e0f9d9f6d04d
|
||||
class Skill4(PassiveSkill):
|
||||
name = "剑术精通"
|
||||
"""
|
||||
驭剑士精通各种武器, 能够极致地发挥每种武器的特性。\n
|
||||
学习后, 增加所有武器的精通等级。\n
|
||||
首次学习时, 可使所有武器精通各提升2级; 以后技能每提升1级时, 武器精通提升1级。\n
|
||||
可以使用驭剑士专属的基础攻击动作。
|
||||
"""
|
||||
name = "武器熟练"
|
||||
learnLv = 15
|
||||
masterLv = 1
|
||||
maxLv = 11
|
||||
masterLv = 20
|
||||
maxLv = 30
|
||||
position = 0 #TODO
|
||||
rangeLv = 2
|
||||
rangeLv = 3
|
||||
uuid = "4224f9b0b8c7c903e9a1e0f9d9f6d04d"
|
||||
hasVP = False
|
||||
hasUP = False
|
||||
|
||||
associate = [{"type":"+lv","data":[i + 1 if i > 0 else i for i in range(0, maxLv + 2)],"ratio":1,"skills":["波动之钝器精通","血影之太刀精通","毁灭之巨剑精通","魔性之短剑精通"]}]
|
||||
|
||||
# 驭剑术 발검술
|
||||
# https://api.neople.co.kr/df/skills/1645c45aabb008c98406b3a16447040d/78bd107acd474518b606be1e4fd38239?apikey=fdvit1Kj64EAJm0qfB3JEAD8FLExLDD0
|
||||
@@ -162,7 +217,7 @@ class Skill6(ActiveSkill):
|
||||
class Skill8(PassiveSkill):
|
||||
name = "魔性之短剑精通"
|
||||
learnLv = 15
|
||||
masterLv = 30
|
||||
masterLv = 1
|
||||
maxLv = 40
|
||||
position = 1 #TODO
|
||||
rangeLv = 3
|
||||
@@ -192,7 +247,7 @@ class Skill8(PassiveSkill):
|
||||
class Skill9(PassiveSkill):
|
||||
name = "血影之太刀精通"
|
||||
learnLv = 15
|
||||
masterLv = 30
|
||||
masterLv = 1
|
||||
maxLv = 40
|
||||
position = 2 #TODO
|
||||
rangeLv = 3
|
||||
@@ -227,7 +282,7 @@ class Skill9(PassiveSkill):
|
||||
class Skill10(PassiveSkill):
|
||||
name = "毁灭之巨剑精通"
|
||||
learnLv = 15
|
||||
masterLv = 30
|
||||
masterLv = 1
|
||||
maxLv = 40
|
||||
position = 4 #TODO
|
||||
rangeLv = 3
|
||||
@@ -257,7 +312,7 @@ class Skill10(PassiveSkill):
|
||||
class Skill11(PassiveSkill):
|
||||
name = "波动之钝器精通"
|
||||
learnLv = 15
|
||||
masterLv = 30
|
||||
masterLv = 1
|
||||
maxLv = 40
|
||||
position = 5 #TODO
|
||||
rangeLv = 3
|
||||
@@ -950,3 +1005,15 @@ class classChange(Character):
|
||||
self.职业 = '驭剑士'
|
||||
|
||||
super().__init__(equVersion, __name__)
|
||||
|
||||
def AddSkillLv(self, min: int, max: int, lv: int, type=-1, exceptSkills:list[str]=[]) -> None:
|
||||
"""
|
||||
增加技能等级
|
||||
type: -1 全部, 0 被动, 1 主动
|
||||
"""
|
||||
for skill in self.skills:
|
||||
# 四个武器精通不享受技能范围等级加成
|
||||
if min <= skill.learnLv <= max and skill.name not in ["波动之钝器精通","血影之太刀精通","毁灭之巨剑精通","魔性之短剑精通"] + exceptSkills:
|
||||
skillType = "all" if type == -1 else ("active" if type == 1 else "passive")
|
||||
if (skillType == "all" or skill.type == skillType) and skill.lv > 0:
|
||||
skill.lv += lv
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
from .avatar import get_dress_list,calc_dress_effect
|
||||
from .avatar import get_dress_list, calc_dress_effect
|
||||
from . import equ
|
||||
from . import stone
|
||||
from . import jade
|
||||
@@ -9,13 +9,7 @@ from . import suit
|
||||
|
||||
from .register import execture
|
||||
|
||||
options = [
|
||||
{'id': 1, 'name': '龙战八荒', 'options': ['BUFF OFF', 'BUFF ON', '期望']},
|
||||
{'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']},
|
||||
{'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']},
|
||||
{'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']},
|
||||
{'id': 5,'name':'传世手杖','options':['BUFF ON', 'BUFF OFF', '期望']}
|
||||
]
|
||||
options = [{'id': 1, 'name': '龙战八荒', 'options': ['BUFF OFF', 'BUFF ON', '期望']}, {'id': 2, 'name': '混沌净化', 'options': ['净化', '堕落']}, {'id': 3, 'name': '群猎美学', 'options': ['单刷', '组队']}, {'id': 4, 'name': '魔攻核', 'options': ['普通', '追击']}, {'id': 5, 'name': '传世手杖', 'options': ['BUFF ON', 'BUFF OFF', '期望']}, {'id': 6, 'name': '传世嵌合弓', 'options': ['本能飞跃', '非理性着陆']}]
|
||||
|
||||
sundryList = {
|
||||
'medal_rarity': {'id': 0, 'options': [{'name': f'品质:{i}', 'value': idx} for idx, i in enumerate(['普通', '高级', '稀有', '神器', '传说', '史诗'])]},
|
||||
@@ -34,5 +28,4 @@ sundryList = {
|
||||
'costume_card': {'id': 13, 'options': [{'name': f'{i}', 'value': idx} for idx, i in enumerate(['无', '四维(3)|三速(1%)'])]},
|
||||
}
|
||||
|
||||
__all__= [get_dress_list, calc_dress_effect, options , execture, sundryList, equ, stone, jade, emblem, enchant, sundry, suit]
|
||||
|
||||
__all__ = [get_dress_list, calc_dress_effect, options, execture, sundryList, equ, stone, jade, emblem, enchant, sundry, suit]
|
||||
|
||||
@@ -12571,6 +12571,49 @@ def equ_876(char: CharacterProperty):
|
||||
equ_414(char)
|
||||
pass
|
||||
|
||||
@register
|
||||
def equ_877(char: CharacterProperty):
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_878(char: CharacterProperty):
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_879(char: CharacterProperty):
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_880(char: CharacterProperty):
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_881(char: CharacterProperty):
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_882(char: CharacterProperty):
|
||||
if char.equ_options.get('6', 0) == 0:
|
||||
char.SetStatus(SkillAttack=0.123)
|
||||
elif char.equ_options.get('6', 0) == 1:
|
||||
char.SetSkillCD(cd=0.2)
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_883(char: CharacterProperty):
|
||||
if char.equ_options.get('6', 0) == 0:
|
||||
char.SetStatus(SkillAttack=0.123)
|
||||
elif char.equ_options.get('6', 0) == 1:
|
||||
char.SetSkillCD(cd=0.2)
|
||||
...
|
||||
|
||||
@register
|
||||
def equ_884(char: CharacterProperty):
|
||||
if char.equ_options.get('6', 0) == 0:
|
||||
char.SetStatus(SkillAttack=0.123)
|
||||
elif char.equ_options.get('6', 0) == 1:
|
||||
char.SetSkillCD(cd=0.2)
|
||||
...
|
||||
|
||||
# endregion
|
||||
# region 秘宝装备
|
||||
|
||||
Binary file not shown.
@@ -15,6 +15,7 @@ def custom_route_mapper(route: HTTPRoute, mcp_type: MCPType) -> MCPType | None:
|
||||
mcp = FastMCP.from_fastapi(
|
||||
app=application,
|
||||
name="Dcalc_MCP",
|
||||
instructions="DNF相关的MCP服务",
|
||||
timeout=60,
|
||||
port=config.MCPPORT,
|
||||
route_map_fn=custom_route_mapper,
|
||||
|
||||
@@ -89,7 +89,7 @@ export default defineComponent({
|
||||
|
||||
const renderSkillDetail = () => (
|
||||
<>
|
||||
<div class="title">基本信息</div>
|
||||
<div class="skill_title">基本信息</div>
|
||||
<div class="flex flex-col gap-2px">
|
||||
{basic.value.map(
|
||||
(item) =>
|
||||
@@ -101,7 +101,7 @@ export default defineComponent({
|
||||
),
|
||||
)}
|
||||
</div>
|
||||
<div class="title">技能描述</div>
|
||||
<div class="skill_title">技能描述</div>
|
||||
<div class="h-auto max-h-250px">
|
||||
<div class="h-full overflow-y-auto bg-#161816 p-2px">
|
||||
{desc.value?.map((item) => item.startsWith("[") ? (<div class="min-h-10px">{item}</div>) :(
|
||||
@@ -109,7 +109,7 @@ export default defineComponent({
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">技能属性</div>
|
||||
<div class="skill_title">技能属性</div>
|
||||
<div class="flex-1 overflow-y-auto">
|
||||
<div class=" flex flex-col gap-2px">
|
||||
{detail.value?.map((item) => (
|
||||
@@ -127,8 +127,8 @@ export default defineComponent({
|
||||
{skillInfo.value?.evolution?.map((item) => (
|
||||
<>
|
||||
<div class="flex flex-col gap-2px">
|
||||
<div class="skill_vp_title">{item.name}</div>
|
||||
<div class="title">技能描述</div>
|
||||
<div class="skill_vp_skill_title">{item.name}</div>
|
||||
<div class="skill_title">技能描述</div>
|
||||
<div class="h-auto max-h-200px">
|
||||
<div class="h-full bg-#161816 p-2px" style="white-space: pre-wrap;">
|
||||
{item.descDetail}
|
||||
@@ -151,7 +151,7 @@ export default defineComponent({
|
||||
return () => (
|
||||
<>
|
||||
<div class="flex flex-col gap-2px mx-2px text-#907B54 h-full">
|
||||
<div class="skill_title h-20px">{skillInfo.value?.name}</div>
|
||||
<div class="skill_name h-20px">{skillInfo.value?.name}</div>
|
||||
<div class="relative">
|
||||
<CalcTabs v-model={curTab.value}>
|
||||
<CalcTab class="flex-1 flex justify-center" value={0}>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.skill_title {
|
||||
.skill_name {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-image-source: linear-gradient(90deg, #7d5f07 0%, #2e302e 100%);
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.title{
|
||||
.skill_title{
|
||||
border: 1px solid #3e4040;
|
||||
color: #c1a238;
|
||||
background: linear-gradient(180deg, #2b292b 0%, #0b0b0b 100%);
|
||||
|
||||
@@ -235,10 +235,10 @@ export default defineComponent({
|
||||
|
||||
return () => (
|
||||
<>
|
||||
<div onClick={() => (activeSkill.value = -1)} class="pb-40px">
|
||||
<div onClick={() => (activeSkill.value = -1)}>
|
||||
{((getSkill(0, 15, -1) ?? []) as ISkill[]).length > 0 && (
|
||||
<>
|
||||
<div class="skill-tree-line flex items-center gap-10px px-10px">
|
||||
<div class="skill-tree-line flex items-center gap-8px px-5px">
|
||||
<div class="w-34px h-34px flex items-center justify-center text-white">
|
||||
其<br />余
|
||||
</div>
|
||||
@@ -251,7 +251,7 @@ export default defineComponent({
|
||||
|
||||
{lvList.map((lv, index) =>
|
||||
((getSkill(lv, lvList[index + 1] ?? 150, -1) as ISkill[])?.length ?? 0) > 0 ? (
|
||||
<div class="skill-tree-line flex items-center gap-10px px-10px" key={index}>
|
||||
<div class="skill-tree-line flex items-center gap-8px px-5px" key={index}>
|
||||
{lv == 1 || lv % 10 == 0 ? (
|
||||
<div class="w-34px h-34px flex items-center justify-center text-white">{lv}</div>
|
||||
) : (
|
||||
@@ -261,7 +261,7 @@ export default defineComponent({
|
||||
const skill = getSkill(lv, lvList[index + 1] ?? 150, column) as ISkill
|
||||
return skill ? renderSkill(skill, index) : <div class="w-34px h-34px"></div>
|
||||
})}
|
||||
<div class="w-20px h-34px" onClick={() => (activeSkill.value = -1)}></div>
|
||||
<div class="w-5px h-34px" onClick={() => (activeSkill.value = -1)}></div>
|
||||
</div>
|
||||
) : (
|
||||
<></>
|
||||
|
||||
@@ -147,7 +147,7 @@ export default defineComponent({
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="title text-16px text-center leading-48px">目标技能</div>
|
||||
<div class="flex flex-wrap gap-8px content-start h-110px overflow-y-auto mb-8px w-275px">
|
||||
<div class="flex flex-wrap gap-8px content-start h-110px overflow-y-auto mb-8px w-245px m-auto">
|
||||
{renderList(skills().value, (item) => (
|
||||
<div
|
||||
key={item.id}
|
||||
@@ -156,7 +156,7 @@ export default defineComponent({
|
||||
<img src={getImageURL(item.icon)} alt={item.name} />
|
||||
</div>
|
||||
))}
|
||||
{renderList(35 - skills().value.length, (item) => (
|
||||
{renderList(36 - skills().value.length, (item) => (
|
||||
<div
|
||||
key={item}
|
||||
class="w-[28px] h-[28px] rounded-[1px] border-[1px] border-solid border-[#6d4e2b] bg-[linear-gradient(180deg,_#191919_0%,_#000000_100%)] [box-shadow:0px_4px_4px_#00000040_inset] rounded-4px"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.skill-up {
|
||||
width: 550px;
|
||||
width: 540px;
|
||||
// height: 334px;
|
||||
// background-image: url('./img/bg.png');
|
||||
// background-size: 100% 100%;
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
.right {
|
||||
.title {
|
||||
width: 271px;
|
||||
width: 261px;
|
||||
height: 48px;
|
||||
background: url('./img/title.png') no-repeat center center;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="flex">
|
||||
<div>
|
||||
<div class="flex flex-col">
|
||||
<div class="flex bg-#101012 h-40px text-#6C5E4A font-bold">
|
||||
<div
|
||||
class="flex-1 text-15px flex items-center justify-center"
|
||||
@@ -18,8 +18,8 @@
|
||||
技能定制
|
||||
</div>
|
||||
</div>
|
||||
<div class="h-90vh w-570px overflow-x-hidden bg-#101012">
|
||||
<div class="overflow-y-auto h-full" v-if="tab === 0">
|
||||
<div class="flex-1 w-550px overflow-x-hidden bg-#101012">
|
||||
<div class="overflow-y-auto h-full box-border" v-if="tab === 0">
|
||||
<SkillTree
|
||||
:skills="infoStore.skills"
|
||||
v-model:lvInfo="configStore.config.skills"
|
||||
@@ -28,9 +28,7 @@
|
||||
></SkillTree>
|
||||
</div>
|
||||
<div v-if="tab === 1" class="flex flex-col overflow-y-hidden h-full">
|
||||
<div class="item-head" @click="linkColg">
|
||||
技能进化<span class="font-bold text-white">[形态爆料演示戳我]</span>
|
||||
</div>
|
||||
<div class="item-head" 角色等级>技能进化</div>
|
||||
<SkillUP
|
||||
class="flex-1"
|
||||
:skills="infoStore.skills"
|
||||
@@ -38,9 +36,7 @@
|
||||
v-model:bindAwake="configStore.config.bindAwake"
|
||||
:buffer="infoStore.infos?.buffer"
|
||||
></SkillUP>
|
||||
<div class="item-head" @click="linkColg">
|
||||
技能突破<span class="font-bold text-white">[形态爆料演示戳我]</span>
|
||||
</div>
|
||||
<div class="item-head" 角色等级>技能突破</div>
|
||||
<div class="flex-1 overflow-y-auto w-full">
|
||||
<SkillVP
|
||||
:skills="infoStore.skills"
|
||||
@@ -52,12 +48,26 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-#101012 w-250px h-full overflow-x-auto" v-if="curCurrentSkill.skillId && curCurrentSkill.level > 0">
|
||||
<SkillDetail
|
||||
:skillId="curCurrentSkill.skillId"
|
||||
:level="curCurrentSkill.level"
|
||||
></SkillDetail>
|
||||
<div
|
||||
class="bg-#101012 w-250px h-full overflow-x-auto"
|
||||
v-if="curCurrentSkill.skillId && curCurrentSkill.level > 0"
|
||||
>
|
||||
<SkillDetail :skillId="curCurrentSkill.skillId" :level="curCurrentSkill.level"></SkillDetail>
|
||||
</div>
|
||||
<!-- <div class="absolute right--60px">
|
||||
<div class="text-#AE8D5A h-60px bg-black p-1px box-border flex pl-2">
|
||||
<div
|
||||
class="border-1px border-solid border-#322E20 border-l-none flex p-1px box-border pl-0"
|
||||
>
|
||||
<div
|
||||
class="border-1px border-#514531 border-solid rounded-2px"
|
||||
style="background: linear-gradient(to bottom, #313330 0%, #0f110f 100%)"
|
||||
>
|
||||
技能详细
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -78,15 +88,15 @@ const configStore = useConfigStore()
|
||||
const curSkillId = ref()
|
||||
|
||||
const curCurrentSkill = computed(() => {
|
||||
const skill = infoStore.skills.find(skill => skill.uuid === curSkillId.value)
|
||||
const skill = infoStore.skills.find((skill) => skill.uuid === curSkillId.value)
|
||||
return {
|
||||
skillId: skill?.uuid ?? "",
|
||||
skillId: skill?.uuid ?? '',
|
||||
level: configStore.config.skills[skill?.id || 0]?.lv || 0,
|
||||
}
|
||||
})
|
||||
|
||||
const setCurrentSkill = (skillId: number) => {
|
||||
curSkillId.value = infoStore.skills.find(skill => skill.id === skillId)?.uuid || ''
|
||||
curSkillId.value = infoStore.skills.find((skill) => skill.id === skillId)?.uuid || ''
|
||||
}
|
||||
|
||||
const linkColg = () => {
|
||||
|
||||
Reference in New Issue
Block a user