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
+53 -12
View File
@@ -1,6 +1,14 @@
#b9cb48777665de22c006fabaf9a560b3
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
Equals,
LevelTable,
Percent,
Read,
SkillAttribute,
SkillEffect,
)
prefix = "archer/chimera/cn/skillDetail"
@@ -98,7 +106,11 @@ class Skill2(PassiveSkill):
# 跳跃攻击力变化率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{"type":"*skillDamage","data":[i-100 if i>0 else 0 for i in data0],"skills":["华丽回收"]}]
# 迁移前实现(保留对照):
# associate = [{"type":"*skillDamage","data":[i-100 if i>0 else 0 for i in data0],"skills":["华丽回收"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['华丽回收']),
]
# 受身蹲伏
# archer/chimera/ce26c6b69d02a440a81b552bec94f03b
@@ -180,7 +192,11 @@ class Skill5(PassiveSkill):
# 回收武器后,移动速度提升持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [ {"type":"*cdRatio","data":data0,"skills":['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']}, ]
# 迁移前实现(保留对照):
# associate = [ {"type":"*cdRatio","data":data0,"skills":['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']}, ]
associate = [
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - Percent(LevelTable(data0)), skills=['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']),
]
# 技能连招
# archer/chimera/10b31c7e8cd2d60b9bcf3b1d3ada4b0a
@@ -559,9 +575,14 @@ class Skill18(ActiveSkill):
# 异常状态持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 迁移前实现(保留对照):
# associate = [
# {"type":"*skillDamage","data":data0},
# {"type":"*skillDamage","data":data1,"exceptSkills":["华丽回收"]},
# ]
associate = [
{"type":"*skillDamage","data":data0},
{"type":"*skillDamage","data":data1,"exceptSkills":["华丽回收"]},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), except_skills=['华丽回收']),
]
# 空翻刃袭
@@ -718,7 +739,11 @@ class Skill23(PassiveSkill):
# 移动速度增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [ {"type":"*skillDamage","data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"type":"*skillDamage","data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 土星环
# archer/chimera/e862146efac2fce3de3a12f038f4116b
@@ -832,10 +857,14 @@ class Skill25(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{"data":[0]+[-26]*self.maxLv,"skills":["瞬影"]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{"data":[0]+[-26]*self.maxLv,"skills":["瞬影"]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-26] * maxLv)), skills=['瞬影'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 环形毒液
# archer/chimera/854997c3bdfc3a2b498b4c4001f69e06
@@ -1038,7 +1067,11 @@ class Skill29(PassiveSkill):
# 物理防御力增加 : {value1}
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [ {"type":"*skillDamage","data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"type":"*skillDamage","data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 重力加速度
# archer/chimera/94c450d6214cafdc673f763badceeaf1
@@ -1198,7 +1231,11 @@ class Skill33(PassiveSkill):
# 物理暴击率增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [ {"type":"*skillDamage","data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"type":"*skillDamage","data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 巨镰斯诺克
# archer/chimera/0dbdeaf846356f8b9380f8fbb8e97377
@@ -1430,7 +1467,11 @@ class Skill37(PassiveSkill):
# 基本攻击力和技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [ {"type":"*skillDamage","data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"type":"*skillDamage","data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 颠倒之浩劫
# archer/chimera/bbc15561bec24f9c1e79e23d715b1dd2