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
@@ -1,6 +1,14 @@
#8d4d2001cdb357e41633c234eb7501b5
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 = "imperialknight/breaker/cn/skillDetail"
@@ -54,7 +62,11 @@ class Skill1(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=['鸣镝破阵']),
]
# 狂野横扫
# imperialknight/breaker/eb71e1d82d92c7e1d40500a0dcd77aa6
@@ -131,7 +143,11 @@ class Skill4(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=['钩爪突袭']),
]
# 受身蹲伏
# imperialknight/breaker/ce26c6b69d02a440a81b552bec94f03b
@@ -412,7 +428,11 @@ class Skill14(PassiveSkill):
# 物理暴击率增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 枪锚踢击
# imperialknight/breaker/cfacda0647b9a0f595df2c2aad30c18d
@@ -616,7 +636,11 @@ class Skill21(PassiveSkill):
# 命中率增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 激流勇进
# imperialknight/breaker/9cb6f9ed646fa87f9b7680a42ce83d1a
@@ -803,10 +827,14 @@ class Skill25(ActiveSkill):
# self.cd = 7
# self.skillRation *= 1 - 0.5
def effect(self, old, new):
if self.vp == 2:
self.associate = [{'type': '*skillRation', 'data': [0] + [-17.6] * self.maxLv, 'skills': ['钩爪突袭']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-17.6] * self.maxLv, 'skills': ['钩爪突袭']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-17.6] * maxLv)), skills=['钩爪突袭'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 逆浪断空
# imperialknight/breaker/d085127b0edd719782bd618d5688f4a1
@@ -939,7 +967,11 @@ class Skill28(PassiveSkill):
# 部分技能所受伤害额外减少率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [ {"data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 鸣镝破阵
# imperialknight/breaker/ade01c1d6afc8a05055225045e89fe49
@@ -1108,7 +1140,11 @@ class Skill32(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))),
]
# 战栗轰击
# imperialknight/breaker/a5fa08f5d509e6ff2ebc68856a470b5a
@@ -1294,7 +1330,11 @@ class Skill36(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# [激流勇进]所受伤害减少率 : 30%
associate = [ {"data":data0} ]
# 迁移前实现(保留对照):
# associate = [ {"data":data0} ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# [激流勇进]所受伤害减少率 : 30%
# 狂澜风暴舞