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,12 @@
#0c1b401bb09241570d364420b3ba3fd7
from core.basic.skill import PassiveBufferSkill,ActiveBufferSkill,ActiveSkill,PassiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
LevelTable,
Operation,
)
prefix = "priest_female/crusader_female/cn/skillDetail"
@@ -636,7 +642,11 @@ class Skill21(PassiveBufferSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
INT = data0
associate = [{"data":data0,"type":"$+INT","ratio":1}]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"type":"$+INT","ratio":1}]
associate = [
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(data0)),
]
# 光杖精通
# priest_female/crusader_female/9cb6f9ed646fa87f9b7680a42ce83d1a
@@ -664,7 +674,11 @@ class Skill22(PassiveSkill):
# [装备光杖时]
# 施放速度增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{"data": data0, "type": "$*PATKI"}]
# 迁移前实现(保留对照):
# associate = [{"data": data0, "type": "$*PATKI"}]
associate = [
# 原角色字段 PATKI 未被旧引擎支持,原先不生效;本次迁移保留此行为。
]
# 胜利之矛
# priest_female/crusader_female/3d8f3d438405d79f8d3ed68072674d1e
@@ -1422,8 +1436,12 @@ class Skill38(PassiveBufferSkill):
STRINT = data0
INT = data0
# 迁移前实现(保留对照):
# associate = [
# {"data":INT,"type":"$+INT","ratio":1}
# ]
associate = [
{"data":INT,"type":"$+INT","ratio":1}
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(INT)),
]
# 圣光天启
@@ -1679,8 +1697,12 @@ class Skill43(PassiveBufferSkill):
INT = data0
# 迁移前实现(保留对照):
# associate = [
# {"data":data0 ,"type":"$+INT","ratio":1}
# ]
associate = [
{"data":data0 ,"type":"$+INT","ratio":1}
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(data0)),
]
# 圣佑之阵
@@ -1883,8 +1905,12 @@ class Skill47(PassiveBufferSkill):
INT = data1
# 迁移前实现(保留对照):
# associate = [
# {"data":data1,"type":"$+INT","ratio":1}
# ]
associate = [
{"data":data1,"type":"$+INT","ratio":1}
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(data1)),
]
# 圣言十字
@@ -1,6 +1,17 @@
#0c1b401bb09241570d364420b3ba3fd7
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,
Read,
SkillAttribute,
SkillEffect,
)
prefix = "priest_female/infighter_female/cn/skillDetail"
@@ -54,7 +65,11 @@ class Skill1(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=['上勾拳', '圣拳连击']),
]
# 受身蹲伏
# priest_female/infighter_female/ce26c6b69d02a440a81b552bec94f03b
@@ -457,7 +472,11 @@ class Skill15(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))),
]
# 圣拳连击
# priest_female/infighter_female/87a918bb22cfc959a16e0bf939bb6c24
@@ -658,7 +677,11 @@ class Skill21(PassiveSkill):
# 战意释放结束缓冲时间 : {value5}秒
data5 = get_data(f'{prefix}/{uuid}', 5)
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=['圣拳锤击', '蓄劲轰拳', '巨力炮拳', '泯灭之怒', '拳震八方', '怒气贯地击', '致命冲拳', '炽拳 : 以暴制暴', '意志之拳 : 与神同行']),
]
# 圣拳锤击
# priest_female/infighter_female/ca2536eb56df0e812c88c59cabd38be0
@@ -756,7 +779,11 @@ class Skill24(PassiveSkill):
# 回避率增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [ {'type': '$*PAtkP', 'data': data0}, ]
# 迁移前实现(保留对照):
# associate = [ {'type': '$*PAtkP', 'data': data0}, ]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 神体合一
# priest_female/infighter_female/c1dd8b776fb1dd24c6373c678ef1dd2e
@@ -1042,10 +1069,14 @@ class Skill30(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{'type': '*skillRation', 'data': [0] + [-16.7] * self.maxLv, 'skills': ['腹部重击']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-16.7] * self.maxLv, 'skills': ['腹部重击']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-16.7] * maxLv)), skills=['腹部重击'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 巨力炮拳
# priest_female/infighter_female/b860cbf5979b4bcc6beea725636b915e
@@ -1102,13 +1133,18 @@ class Skill31(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [
{'data': [0] + [100] * self.maxLv, 'skills': ['蓄劲轰拳']},
{'type': '=cd','data': [25] + [50] * self.maxLv,'ratio': 1, 'skills': ['蓄劲轰拳']}
]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [
# {'data': [0] + [100] * self.maxLv, 'skills': ['蓄劲轰拳']},
# {'type': '=cd','data': [25] + [50] * self.maxLv,'ratio': 1, 'skills': ['蓄劲轰拳']}
# ]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [100] * maxLv)), skills=['蓄劲轰拳'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ASSIGN, value=LevelTable([25] + [50] * maxLv), skills=['蓄劲轰拳'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 潜藏暴戾
# priest_female/infighter_female/37cf7b7a269058dc02bef5b5bc9de282
@@ -1135,7 +1171,11 @@ class Skill32(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))),
]
# 泯灭之怒
# priest_female/infighter_female/97972dba4694d6c0fcd2f7e8efb3a499
@@ -1302,10 +1342,14 @@ class Skill35(ActiveSkill):
self.cd = 20
self.skillRation *= 0.5
def effect(self, old, new):
if self.vp == 1:
self.associate = [{'type': '*skillRation', 'data': [0] + [-28.6] * self.maxLv, 'skills': ['圣拳锤击']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 1:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-28.6] * self.maxLv, 'skills': ['圣拳锤击']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-28.6] * maxLv)), skills=['圣拳锤击'], when=Equals(Read(SkillAttribute.VP), 1)),
]
# 斗志沸腾
# priest_female/infighter_female/4e9e8942841b9767f683fb23c1ef1435
@@ -1330,7 +1374,11 @@ class Skill36(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))),
]
# 怒气贯地击
# priest_female/infighter_female/ef896bbdc68660c22b6e60502044d690
@@ -1544,7 +1592,11 @@ class Skill40(PassiveSkill):
# 敌人强制控制时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 圣光三重破
# priest_female/infighter_female/f8226512ea3dbcb1fe1374baa0c6bbee
@@ -1,6 +1,14 @@
# 0c1b401bb09241570d364420b3ba3fd7
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,
Percent,
SkillAttribute,
SkillEffect,
)
prefix = "priest_female/inquistor/cn/skillDetail"
@@ -111,7 +119,11 @@ class Skill3(PassiveSkill):
data1 = get_data(f'{prefix}/{uuid}', 1)
# 跳跃攻击力变化率 : {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=['神焰']),
]
# 受身蹲伏
# priest_female/inquistor/ce26c6b69d02a440a81b552bec94f03b
@@ -629,7 +641,11 @@ class Skill20(PassiveSkill):
# 命中率增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'type': '$*PAtkP', 'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'type': '$*PAtkP', 'data': data0}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 裁决之击
# priest_female/inquistor/01384bbfc346775d1267fa0bc4ca605f
@@ -780,7 +796,12 @@ class Skill24(ActiveSkill):
# 攻击范围比率 : {value8}%
data8 = get_data(f'{prefix}/{uuid}', 8)
associate = [{'data': data1}, {'data': data4, 'exceptSkills': ['火焰精华']}]
# 迁移前实现(保留对照):
# associate = [{'data': data1}, {'data': data4, 'exceptSkills': ['火焰精华']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), except_skills=['火焰精华']),
]
# 狂热信仰
# priest_female/inquistor/e49e57b2e8fbeceb0a2c56a0c63fe6c5
@@ -1244,7 +1265,11 @@ class Skill34(PassiveSkill):
# 基本攻击力和技能攻击力增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data1, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data1, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
]
# 火之净化
# priest_female/inquistor/1fadde0eece18649caddbca7bd58cc2f
@@ -1439,7 +1464,13 @@ class Skill38(PassiveSkill):
# [神焰]、 [火焰精华]技能冷却时间减少率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['火焰精华']}, {'data': data1, 'type': '*skillDamage', 'exceptSkills': ['火焰精华']}, {'data': data2, 'type': '*cdReduce', 'skills': ['神焰', '火焰精华']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['火焰精华']}, {'data': data1, 'type': '*skillDamage', 'exceptSkills': ['火焰精华']}, {'data': data2, 'type': '*cdReduce', 'skills': ['神焰', '火焰精华']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['火焰精华']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), except_skills=['火焰精华']),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data2)), skills=['神焰', '火焰精华']),
]
# 裁决轮回斩
# priest_female/inquistor/1812a1ece67bb37b6b44b54766450064
@@ -1642,7 +1673,12 @@ class Skill42(PassiveSkill):
data4 = get_data(f'{prefix}/{uuid}', 4)
# [审判重击]火焰地带持续时间 : 2秒
associate = [{'data': data0, 'type': '*skillDamage'}, {'data': [(i * j) for i, j in zip(data3, data4)], 'type': '*skillDamage', 'skills': ['审判重击']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}, {'data': [(i * j) for i, j in zip(data3, data4)], 'type': '*skillDamage', 'skills': ['审判重击']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * j for i, j in zip(data3, data4)])), skills=['审判重击']),
]
# [审判重击]火焰地带持续时间 : 2秒
# 补赎逆十字
@@ -1,6 +1,14 @@
#0c1b401bb09241570d364420b3ba3fd7
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,
Percent,
SkillAttribute,
SkillEffect,
)
prefix = "priest_female/mistress/cn/skillDetail"
@@ -557,7 +565,11 @@ class Skill18(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# 回避率增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 负罪者镰刀精通
# priest_female/mistress/ecc23c980ea71450c0ad0c3fd232f329
@@ -590,7 +602,11 @@ class Skill19(PassiveSkill):
data2 = get_data(f'{prefix}/{uuid}', 2)
# 命中率增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"type":"$*PAtkM","data":data0}]
# 迁移前实现(保留对照):
# associate = [{"type":"$*PAtkM","data":data0}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable(data0))),
]
# 镰勾旋击
# priest_female/mistress/f0cc2c950f3bdf4103c75fa496bcac34
@@ -764,8 +780,12 @@ class Skill22(ActiveSkill):
# [暴食之噬] - 生命值恢复量增加率 : {value31}%
data31 = get_data(f'{prefix}/{uuid}', 31)
# 迁移前实现(保留对照):
# associate = [
# {"data":data12,"skills":['欲望之手', '傲慢之堕', '怠惰之息', '贪婪之刺', '愤怒之袭', '嫉妒之吻', '暴食之噬']}
# ]
associate = [
{"data":data12,"skills":['欲望之手', '傲慢之堕', '怠惰之息', '贪婪之刺', '愤怒之袭', '嫉妒之吻', '暴食之噬']}
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data12)), skills=['欲望之手', '傲慢之堕', '怠惰之息', '贪婪之刺', '愤怒之袭', '嫉妒之吻', '暴食之噬']),
]
# 暴击
@@ -1181,7 +1201,11 @@ class Skill31(PassiveSkill):
# 魔法暴击率增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{"data":data1}]
# 迁移前实现(保留对照):
# associate = [{"data":data1}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
]
# 原罪释放·净化
# priest_female/mistress/a2d943797daca862a6f321aca6ac9bfa
@@ -1428,7 +1452,11 @@ class Skill36(ActiveSkill):
# [原罪释放·净化]冷却时间最大减少 : {value5}秒
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
def getSkillCD(self, mode=None):
return 2.0
@@ -1614,7 +1642,11 @@ class Skill40(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# [怠惰之息] - 聚拢敌人速度和范围比率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 至高之刑
# priest_female/mistress/8b08f9504167a9c0f3a1d29d71b7943e
@@ -1,6 +1,20 @@
# 0c1b401bb09241570d364420b3ba3fd7
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
LevelTable,
Percent,
ProfessionAttribute,
SkillAttribute,
SkillEffect,
)
class SorceressAttribute(ProfessionAttribute):
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
PEARL_CD_REDUCE = 'cdReduceP'
"""巫女:神龙如意珠的专用冷却参数。"""
prefix = "priest_female/sorceress/cn/skillDetail"
@@ -108,7 +122,11 @@ class Skill3(PassiveSkill):
data1 = get_data(f'{prefix}/{uuid}', 1)
# 跳跃攻击力变化率 : {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=['念珠连射']),
]
# 受身蹲伏
# priest_female/sorceress/ce26c6b69d02a440a81b552bec94f03b
@@ -714,7 +732,11 @@ class Skill23(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))),
]
# 和合之玉
# priest_female/sorceress/2a3c96b88d02372505692da0a8b54743
@@ -781,7 +803,11 @@ class Skill25(PassiveSkill):
data2 = get_data(f'{prefix}/{uuid}', 2)
# 施放速度增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 聚魂吸星符
# priest_female/sorceress/b163d099c8cc27fdb6fd3639c2ee6df9
@@ -1058,7 +1084,11 @@ class Skill30(ActiveSkill):
# [范围信息]
# 追加打击大小比率 : {value3}%
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 self.cd * (1 - self.cdReduceP)
@@ -1258,10 +1288,16 @@ class Skill34(PassiveSkill):
# 所受伤害减少效果冷却时间 : {value5}秒
data5 = get_data(f'{prefix}/{uuid}', 5)
# 迁移前实现(保留对照):
# associate = [
# {'data': data0},
# {'data': data1, 'skills': ['念珠连射']},
# {'data': data2, 'skills': ['神龙如意珠'], 'type': '*cdReduceP'},
# ]
associate = [
{'data': data0},
{'data': data1, 'skills': ['念珠连射']},
{'data': data2, 'skills': ['神龙如意珠'], 'type': '*cdReduceP'},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['念珠连射']),
SkillEffect(attribute=SorceressAttribute.PEARL_CD_REDUCE, value=1 - Percent(LevelTable(data2)), skills=['神龙如意珠']),
]
# 退魔阴阳符
@@ -1454,7 +1490,11 @@ class Skill38(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))),
]
# 天泽神龙阵
# priest_female/sorceress/d429147c372b549c3dadcabcba50787f