feat:优化职业技能关联实现

This commit is contained in:
2026-10-13 17:10:08 +08:00
parent 7dc5f4cde5
commit 927866d366
78 changed files with 5242 additions and 1011 deletions
+72 -18
View File
@@ -1,6 +1,16 @@
#ddc49e9ad1ff72a00b53c6cff5b1e920
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
Equals,
LevelTable,
Operation,
Percent,
Power,
Read,
SkillAttribute,
SkillEffect,
)
prefix = "thief/necro/cn/skillDetail"
@@ -780,7 +790,11 @@ class Skill22(PassiveSkill):
# [装备手杖时]
# 施放速度增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"type":"*cdReduce","data":data0,"exceptSkills":["千魂祭","亡者君临 : 巴拉克之戮","命运殇痕·摩罗斯之咒"]}]
# 迁移前实现(保留对照):
# associate = [{"type":"*cdReduce","data":data0,"exceptSkills":["千魂祭","亡者君临 : 巴拉克之戮","命运殇痕·摩罗斯之咒"]}]
associate = [
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['千魂祭', '亡者君临 : 巴拉克之戮', '命运殇痕·摩罗斯之咒']),
]
# 驱使枯灵
# thief/necro/d0cdaca82892e54097f22a1f60817048
@@ -895,7 +909,11 @@ class Skill24(ActiveSkill):
# 黑夜术士魔法防御力增加 : {value4}
data4 = get_data(f'{prefix}/{uuid}', 4)
associate = [{"data":data1,"skills":["降临 : 尼古拉斯"]}]
# 迁移前实现(保留对照):
# associate = [{"data":data1,"skills":["降临 : 尼古拉斯"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['降临 : 尼古拉斯']),
]
# 暴击
# thief/necro/fc1262c19f3d0477ee8eda47b8db8696
@@ -1032,7 +1050,11 @@ class Skill29(PassiveSkill):
# 属性攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 百鬼夜行
# thief/necro/04883563896fe1adac7505c6146b5f59
@@ -1148,7 +1170,11 @@ class Skill32(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# [复苏者之缚]范围增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"data":data0,"exceptSkills":["降临 : 尼古拉斯"]},]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"exceptSkills":["降临 : 尼古拉斯"]},]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['降临 : 尼古拉斯']),
]
# 降临 : 暴君巴拉克
# thief/necro/dcd536f1674630f01fc9667bb202b851
@@ -1247,12 +1273,19 @@ class Skill33(ActiveSkill):
self.setMode("x3")
...
# 迁移前实现(保留对照):
# associate = [
# {"type":"+power0","data":data6,"skills":["暗击拳"],"ratio":1},
# {"type":"+power1","data":data7,"skills":["暗击拳"],"ratio":1},
# {"type":"+power0","data":data8,"skills":["狂野乱舞"],"ratio":1},
# {"type":"+power0","data":data9,"skills":["巴拉克强击"],"ratio":1}
# ]
associate = [
{"type":"+power0","data":data6,"skills":["暗击拳"],"ratio":1},
{"type":"+power1","data":data7,"skills":["暗击拳"],"ratio":1},
{"type":"+power0","data":data8,"skills":["狂野乱舞"],"ratio":1},
{"type":"+power0","data":data9,"skills":["巴拉克强击"],"ratio":1}
]
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data6), skills=['暗击拳']),
SkillEffect(attribute=Power(1), operation=Operation.ADD, value=LevelTable(data7), skills=['暗击拳']),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data8), skills=['狂野乱舞']),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data9), skills=['巴拉克强击']),
]
# 暗击拳
# thief/necro/1c1a9606eb702ebe5a7bb4397f3aeae0
@@ -1478,7 +1511,11 @@ class Skill39(PassiveSkill):
# 技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 巴拉克的愤怒
# thief/necro/0ed3148658fe37b3336ccb718dc0fdb0
@@ -1642,7 +1679,11 @@ class Skill42(PassiveSkill):
data2 = get_data(f'{prefix}/{uuid}', 2)
# 暴击伤害增加率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data2}]
# 迁移前实现(保留对照):
# associate = [{"data":data2}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
]
# 千魂祭
# thief/necro/2a3c96b88d02372505692da0a8b54743
@@ -1878,10 +1919,14 @@ class Skill46(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{"data":[0]+[-50]*self.maxLv,"skills":["降临 : 莱迪娅"]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{"data":[0]+[-50]*self.maxLv,"skills":["降临 : 莱迪娅"]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=['降临 : 莱迪娅'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 亡魂之息
# thief/necro/78b86e64fbb74c1db1b71c50a5ac21cd
@@ -1907,9 +1952,14 @@ class Skill47(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# [暗魂波]、 [诅咒之箭]攻击力增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 迁移前实现(保留对照):
# associate = [
# {"data":data0,"exceptSkills":["暗魂波","诅咒之箭"]},
# {"data":data1,"skills":["暗魂波","诅咒之箭"]}
# ]
associate = [
{"data":data0,"exceptSkills":["暗魂波","诅咒之箭"]},
{"data":data1,"skills":["暗魂波","诅咒之箭"]}
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['暗魂波', '诅咒之箭']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['暗魂波', '诅咒之箭']),
]
# 暴君湮灭斩
@@ -2021,7 +2071,11 @@ class Skill50(PassiveSkill):
# 基本攻击和转职技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 亡者之茧
# thief/necro/b1ccbd90d0b40f543ece3b18fcef827f