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
+63 -17
View File
@@ -1,6 +1,14 @@
# 0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
LevelTable,
Operation,
Percent,
Power,
SkillAttribute,
SkillEffect,
)
prefix = "knight/chaos/cn/skillDetail"
@@ -864,7 +872,11 @@ class Skill26(PassiveSkill):
# 命中率增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'data': data0, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 魔灵随行
# knight/chaos/dbf8b30c7057032af0d68fcfa289fdae
@@ -915,7 +927,11 @@ class Skill28(PassiveSkill):
# 特定技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['军团列队', '魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['军团列队', '魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['军团列队', '魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']),
]
# 魔灵召唤 : 狂暴布洛克
# knight/chaos/6e33d47e6622ce03b6defdd912140270
@@ -1079,7 +1095,11 @@ class Skill31(ActiveSkill):
self.cd = self.cdList[self.lv]
return super().getSkillCD(mode)
associate = [{'type': '*skillDamage', 'data': data7, 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 迪克老爹']}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data7, 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 迪克老爹']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data7)), skills=['魔灵召唤 : 波拉斯', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 迪克老爹']),
]
# 暴击
# knight/chaos/fc1262c19f3d0477ee8eda47b8db8696
@@ -1209,17 +1229,30 @@ class Skill35(ActiveSkill):
# [魔灵炸弹]、 [毁灭突进]、 [碎灵之击]魔灵攻击力增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 迁移前实现(保留对照):
# associate = [
# {'type': '*skillDamage', 'data': data1, 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']},
# {'type': '+power2', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power3', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power5', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power7', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power12', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power13', 'data': data2, 'skills': ['魔灵炸弹']},
# {'type': '+power2', 'data': data2, 'skills': ['毁灭突进']},
# {'type': '+power3', 'data': data2, 'skills': ['毁灭突进']},
# {'type': '*ratio', 'data': data2, 'skills': ['碎灵之击']},
# ]
associate = [
{'type': '*skillDamage', 'data': data1, 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']},
{'type': '+power2', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power3', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power5', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power7', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power12', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power13', 'data': data2, 'skills': ['魔灵炸弹']},
{'type': '+power2', 'data': data2, 'skills': ['毁灭突进']},
{'type': '+power3', 'data': data2, 'skills': ['毁灭突进']},
{'type': '*ratio', 'data': data2, 'skills': ['碎灵之击']},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']),
SkillEffect(attribute=Power(2), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(3), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(5), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(7), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(12), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(13), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['魔灵炸弹']),
SkillEffect(attribute=Power(2), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['毁灭突进']),
SkillEffect(attribute=Power(3), operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['毁灭突进']),
SkillEffect(attribute=SkillAttribute.RATIO, value=1 + Percent(LevelTable(data2)), skills=['碎灵之击']),
]
# 魔幻旋风
@@ -1890,7 +1923,11 @@ class Skill48(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))),
]
# 魔神百裂拳
# knight/chaos/6a1d1f08a6572be420bb3a256c44c015
@@ -2087,9 +2124,14 @@ class Skill52(PassiveSkill):
# 魔法暴击几率增加 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 迁移前实现(保留对照):
# associate = [
# {'data': data0, 'type': '*skillDamage', 'skills': ['魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']},
# {'data': data1, 'type': '*skillDamage', 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']},
# ]
associate = [
{'data': data0, 'type': '*skillDamage', 'skills': ['魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']},
{'data': data1, 'type': '*skillDamage', 'skills': ['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['魔幻旋风', '毁灭突进', '翔空剑', '聚灵升空剑', '魔神百裂拳', '黑暗冲击', '午夜嘉年华', '绚丽耀光', '魔灵乱舞', '黑曜之眸 : 亚丁降临', '绽放·终章', '盛宴·恶之祭典']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['魔灵召唤 : 波拉斯', '魔灵召唤 : 瓦尔琪', '魔灵召唤 : 狂暴布洛克', '魔灵召唤 : 假面杰森', '魔灵召唤 : 大画家芭芘', '魔灵召唤 : 旋转小冯', '魔灵召唤 : 小吸血鬼夏伊', '魔灵召唤 : 大富翁鲁邦', '魔灵召唤 : 迪克老爹', '魔灵召唤 : 红心女皇艾莉莎']),
]
# 绚丽耀光
@@ -2270,7 +2312,11 @@ class Skill56(PassiveSkill):
# [魔幻旋风]盾牌挥击攻击力 : [魔幻旋风]攻击力总和的{value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data0, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 绽放·终章
# knight/chaos/ca2536eb56df0e812c88c59cabd38be0
@@ -1,6 +1,15 @@
# 0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
LevelTable,
Operation,
Percent,
SkillAttribute,
SkillEffect,
)
prefix = "knight/dragon_knight/cn/skillDetail"
@@ -119,7 +128,11 @@ class Skill3(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=['龙人剑术']),
]
# 受身蹲伏
# knight/dragon_knight/ce26c6b69d02a440a81b552bec94f03b
@@ -708,7 +721,11 @@ class Skill22(ActiveSkill):
# 冲击波大小比率 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{'type': '$*PAtkI', 'data': data1}]
# 迁移前实现(保留对照):
# associate = [{'type': '$*PAtkI', 'data': data1}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_I, value=1 + Percent(LevelTable(data1))),
]
# 暴击
# knight/dragon_knight/fc1262c19f3d0477ee8eda47b8db8696
@@ -1101,7 +1118,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))),
]
# 龙刃无双
# knight/dragon_knight/5c45f69c9ebc7a784e994369d2cc3c66
@@ -1292,7 +1313,11 @@ class Skill35(ActiveSkill):
# 空中施放技能所需最低高度的减少 : {value3}px
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
def getSkillCD(self, mode=None):
return 3.0
@@ -1548,9 +1573,14 @@ class Skill39(PassiveSkill):
# [超级跳跃]后霸体持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 迁移前实现(保留对照):
# associate = [
# {'data': data1},
# {'type': '+cd', 'data': [0] + [-1] * maxLv, 'skills': ['龙翼', '龙翼突袭'], 'ratio': 1},
# ]
associate = [
{'data': data1},
{'type': '+cd', 'data': [0] + [-1] * maxLv, 'skills': ['龙翼', '龙翼突袭'], 'ratio': 1},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ADD, value=LevelTable([0] + [-1] * maxLv), skills=['龙翼', '龙翼突袭']),
]
# 魔龙星落
@@ -1781,7 +1811,11 @@ class Skill43(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))),
]
# 龙哮雷鸣
# knight/dragon_knight/573723c8c0614f5b1218ca9ff992115b
@@ -1,6 +1,25 @@
# 0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
Equals,
LevelTable,
Operation,
Percent,
ProfessionAttribute,
Read,
SkillAttribute,
SkillEffect,
)
class ElvenKnightAttribute(ProfessionAttribute):
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
CHAIN_POWER = 'chain_power'
"""精灵骑士:每层剑盾猛攻对应的伤害加成。"""
prefix = "knight/elven_knight/cn/skillDetail"
@@ -187,7 +206,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=['骑乘召唤']),
]
# 受身蹲伏
# knight/elven_knight/ce26c6b69d02a440a81b552bec94f03b
@@ -1024,7 +1047,12 @@ class Skill24(PassiveSkill):
# 装备巨剑时魔法值消耗量减少 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{'data': data0, 'type': '*cdReduce', 'exceptSkills': ['天马流星落', '暮光之灵 : 黄昏独角兽', '生命之律·神木擎天']}, {'data': data1, 'type': '$*PAtkP'}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*cdReduce', 'exceptSkills': ['天马流星落', '暮光之灵 : 黄昏独角兽', '生命之律·神木擎天']}, {'data': data1, 'type': '$*PAtkP'}]
associate = [
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['天马流星落', '暮光之灵 : 黄昏独角兽', '生命之律·神木擎天']),
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data1))),
]
# 伟大的意志
# knight/elven_knight/506e7ed77d517419a6e1c437a2cedb17
@@ -1273,7 +1301,11 @@ class Skill31(ActiveSkill):
mode = ['挥盾', '推进']
associate = [{'type': '+chain_power', 'data': data3}]
# 迁移前实现(保留对照):
# associate = [{'type': '+chain_power', 'data': data3}]
associate = [
SkillEffect(attribute=ElvenKnightAttribute.CHAIN_POWER, operation=Operation.ADD, value=Percent(LevelTable(data3))),
]
def setMode(self, mode):
if mode == '挥盾':
@@ -1673,10 +1705,14 @@ class Skill38(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{"type":"*skillRation","data":[0] + [40]*self.maxLv,"skills":["生命审判"]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{"type":"*skillRation","data":[0] + [40]*self.maxLv,"skills":["生命审判"]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [40] * maxLv)), skills=['生命审判'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 自然恩泽
# knight/elven_knight/4b2c90ec226fd40e967875aa5eabefb2
@@ -1715,7 +1751,14 @@ class Skill39(PassiveSkill):
# [生命之律·神木擎天]攻击力增加率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
associate = [{'data': data0, 'type': '*skillDamage'}, {'data': data4, 'type': '*skillDamage', 'skills': ['天马流星落']}, {'data': data5, 'type': '*skillDamage', 'skills': ['暮光之灵 : 黄昏独角兽']}, {'data': data6, 'type': '*skillDamage', 'skills': ['生命之律·神木擎天']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}, {'data': data4, 'type': '*skillDamage', 'skills': ['天马流星落']}, {'data': data5, 'type': '*skillDamage', 'skills': ['暮光之灵 : 黄昏独角兽']}, {'data': data6, 'type': '*skillDamage', 'skills': ['生命之律·神木擎天']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=['天马流星落']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data5)), skills=['暮光之灵 : 黄昏独角兽']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data6)), skills=['生命之律·神木擎天']),
]
# 天马流星落
# knight/elven_knight/1fadde0eece18649caddbca7bd58cc2f
@@ -1886,10 +1929,14 @@ class Skill42(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 1:
self.associate = [{'type': '*skillRation', 'data': [0] + [-14.3] * self.maxLv, 'skills': ['愤怒冲撞']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 1:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-14.3] * self.maxLv, 'skills': ['愤怒冲撞']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-14.3] * maxLv)), skills=['愤怒冲撞'], when=Equals(Read(SkillAttribute.VP), 1)),
]
# 信仰鼓舞
# knight/elven_knight/2c9d9a36c8401bddff6cdb80fab8dc24
@@ -1919,7 +1966,11 @@ class Skill43(PassiveSkill):
# 连锁数上限增加 : {value2}
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'data': data1, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data1, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
]
# 剑盾强袭
# knight/elven_knight/b89c9ab317bc0a443f6497b7cca2f6a8
@@ -2122,7 +2173,11 @@ class Skill47(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# [剑盾猛攻]能量持续时间 : +5秒
associate = [{'data': data0, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# [剑盾猛攻]能量持续时间 : +5秒
# 荆棘之城
+44 -5
View File
@@ -1,6 +1,23 @@
#0ee8fa5dc525c1a1f23fc6911e921e4a
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
LevelTable,
Operation,
Percent,
ProfessionAttribute,
SkillAttribute,
SkillEffect,
)
class PaladinAttribute(ProfessionAttribute):
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
LITTLE_POWER = 'powerLittle'
"""帕拉丁:神光喷涌特殊形态倍率。"""
prefix = "knight/paladin/cn/skillDetail"
@@ -519,7 +536,11 @@ class Skill16(PassiveSkill):
data1 = get_data(f'{prefix}/{uuid}', 1)
# 霸体持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{"data":data1,"type":"$*PAtkP"}]
# 迁移前实现(保留对照):
# associate = [{"data":data1,"type":"$*PAtkP"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data1))),
]
# 天使光翼
# knight/paladin/9dc8438e4572d39243c97da31c113acc
@@ -632,7 +653,12 @@ class Skill17(PassiveSkill):
# 拥有7个天使光翼时 : 5%
# 拥有8个天使光翼时 : 10%
associate = [{"data":data0,"type":"$*PAtkP"},{"data":data1,"type":"*cdReduce"}]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"type":"$*PAtkP"},{"data":data1,"type":"*cdReduce"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1))),
]
# 神光冲击
# knight/paladin/3fb8395ae3b81bd608e0c4223a8eb534
@@ -1166,7 +1192,11 @@ class Skill31(PassiveSkill):
# 物理攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 天使光翼获得量 : 2个
associate = [{"data":data0,"type":"$*PAtkP"}]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"type":"$*PAtkP"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 天使光翼获得量 : 2个
# 信仰聚合 : 神光惩戒
@@ -1386,7 +1416,11 @@ class Skill36(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))),
]
# 神光回旋斩
# knight/paladin/0e3da11226dd30c2aaef52e36eff7f3f
@@ -1554,7 +1588,12 @@ class Skill40(PassiveSkill):
# 天使光翼获得量 : {value4}个
data4 = get_data(f'{prefix}/{uuid}', 4)
associate = [{"data":data0},{"data":data1,"type":"+powerLittle","skills":["神光喷涌"]}]
# 迁移前实现(保留对照):
# associate = [{"data":data0},{"data":data1,"type":"+powerLittle","skills":["神光喷涌"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=PaladinAttribute.LITTLE_POWER, operation=Operation.ADD, value=Percent(LevelTable(data1)), skills=['神光喷涌']),
]
# 神光耀世
# knight/paladin/481348575c1e141925c836b59c5db3ca