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,19 @@
# ca0f0e0e9e1d55b5f9955b03d9dd213c
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,
Hit,
LevelTable,
Operation,
Percent,
Power,
Read,
SkillAttribute,
SkillEffect,
)
prefix = "fighter_male/brawler_male/cn/skillDetail"
@@ -161,7 +174,11 @@ class Skill5(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=['罗网投掷']),
]
# 受身蹲伏
# fighter_male/brawler_male/ce26c6b69d02a440a81b552bec94f03b
@@ -996,9 +1013,14 @@ class Skill30(PassiveSkill):
# 命中率增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 迁移前实现(保留对照):
# associate = [
# {'type': '$*PAtkP', 'data': data0},
# {'type': '$*MAtkP', 'data': data1},
# ]
associate = [
{'type': '$*PAtkP', 'data': data0},
{'type': '$*MAtkP', 'data': data1},
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
# 原角色字段 MAtkP 未被旧引擎支持,原先不生效;本次迁移保留此行为。
]
# 毒针投掷
@@ -1298,7 +1320,11 @@ class Skill36(ActiveSkill):
# 前方挑衅射程 : {value5}px
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{'type': '*skillDamage', 'data': data1}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data1}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
]
# 罗网投掷
# fighter_male/brawler_male/d0cdaca82892e54097f22a1f60817048
@@ -1381,10 +1407,14 @@ class Skill37(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{'type': '+power2', 'data': [0] + [31.3] * self.maxLv, 'skills': ['毒针投掷']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{'type': '+power2', 'data': [0] + [31.3] * self.maxLv, 'skills': ['毒针投掷']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=Power(2), operation=Operation.ADD, value=Percent(LevelTable([0] + [31.3] * maxLv)), skills=['毒针投掷'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 螺旋滑铲
# fighter_male/brawler_male/e0a072e8cef2d77893aad5f68aeed56a
@@ -1467,6 +1497,9 @@ class Skill39(PassiveSkill):
攻击异常状态的敌人时,伤害会更加强大,冲击波范围也会增加 (最多叠加3次)。\n
"""
# 条件声明在未学习时也参与依赖检查,显式提供 VP 输入默认值。
vp = 0
name = '狂 · 霸王拳'
cellPos = (5,9)
learnLv = 40
@@ -1510,12 +1543,20 @@ class Skill39(PassiveSkill):
"""
...
def effect(self, old, new):
self.associate = [{'data': [i - 100 if i > 0 else i for i in self.data0], 'skills': ['伏虎霸王拳']}, {'type': '+hit0', 'data': [0] + [-200] * self.maxLv, 'skills': ['伏虎霸王拳']}, {'data': [i * 3 for i in self.data3], 'skills': ['伏虎霸王拳']}]
if self.vp == 2:
self.associate.append({'data': [0] + [-200] * self.maxLv, 'skills': ['伏虎霸王拳'], 'type': '*cdRatio'})
self.associate.append({'type': '*skillRation', 'data': [0] + [200] * self.maxLv, 'skills': ['伏虎霸王拳']})
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# self.associate = [{'data': [i - 100 if i > 0 else i for i in self.data0], 'skills': ['伏虎霸王拳']}, {'type': '+hit0', 'data': [0] + [-200] * self.maxLv, 'skills': ['伏虎霸王拳']}, {'data': [i * 3 for i in self.data3], 'skills': ['伏虎霸王拳']}]
# if self.vp == 2:
# self.associate.append({'data': [0] + [-200] * self.maxLv, 'skills': ['伏虎霸王拳'], 'type': '*cdRatio'})
# self.associate.append({'type': '*skillRation', 'data': [0] + [200] * self.maxLv, 'skills': ['伏虎霸王拳']})
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i - 100 if i > 0 else i for i in data0])), skills=['伏虎霸王拳']),
SkillEffect(attribute=Hit(0), operation=Operation.ADD, value=Percent(LevelTable([0] + [-200] * maxLv)), skills=['伏虎霸王拳']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * 3 for i in data3])), skills=['伏虎霸王拳']),
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - Percent(LevelTable([0] + [-200] * maxLv)), skills=['伏虎霸王拳'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [200] * maxLv)), skills=['伏虎霸王拳'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 毒雷引爆
# fighter_male/brawler_male/6a1d1f08a6572be420bb3a256c44c015
@@ -1680,9 +1721,14 @@ class Skill42(PassiveSkill):
# 物理、 魔法暴击率增加量 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 迁移前实现(保留对照):
# associate = [
# {'data': data5, 'type': '*skillDamage'},
# {'data': data4, 'type': '*cdReduce', 'skills': ['抛沙', '毒瓶投掷', '毒针投掷', '砖块投掷', '罗网投掷']},
# ]
associate = [
{'data': data5, 'type': '*skillDamage'},
{'data': data4, 'type': '*cdReduce', 'skills': ['抛沙', '毒瓶投掷', '毒针投掷', '砖块投掷', '罗网投掷']},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data5))),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data4)), skills=['抛沙', '毒瓶投掷', '毒针投掷', '砖块投掷', '罗网投掷']),
]
# 天崩地裂
@@ -1797,10 +1843,14 @@ class Skill44(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{'type': '*skillRation', 'data': [0] + [-50] * self.maxLv}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-50] * self.maxLv}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), when=Equals(Read(SkillAttribute.VP), 2)),
]
# 千锁乱舞
# fighter_male/brawler_male/dac8d8207618150c162e4c6f9e168527
@@ -1892,7 +1942,11 @@ class Skill46(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))),
]
# 暗街夺命锁
# fighter_male/brawler_male/2b39a776471c142f581ad3cc8bb89e55
@@ -1975,10 +2029,14 @@ class Skill47(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{'type': '*skillRation', 'data': [0] + [-30] * self.maxLv, 'skills': ['砖块投掷']}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{'type': '*skillRation', 'data': [0] + [-30] * self.maxLv, 'skills': ['砖块投掷']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-30] * maxLv)), skills=['砖块投掷'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 飞沙走石
# fighter_male/brawler_male/b306cc4c67c775ab7ddff9785a3fe6a4
@@ -2054,10 +2112,14 @@ class Skill48(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)),
]
# 燃火轰天炮
# fighter_male/brawler_male/949849d5791944973d60af7e2a7eefb0
@@ -2099,7 +2161,11 @@ class Skill49(ActiveSkill):
data4 = get_data(f'{prefix}/{uuid}', 4)
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{'type': '*skillDamage', 'data': [i * 3 if i > 0 else i for i in data3], 'skills': ['燃火轰天炮']}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': [i * 3 if i > 0 else i for i in data3], 'skills': ['燃火轰天炮']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * 3 if i > 0 else i for i in data3])), skills=['燃火轰天炮']),
]
# 逆道·爆狱
# fighter_male/brawler_male/dec8961c485edb02036ba00c789010f0
@@ -2200,7 +2266,11 @@ class Skill51(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))),
]
# 逆道·幽链之界
# fighter_male/brawler_male/f1fdc6c2482ecc510a2a9f04201ba125
@@ -1,6 +1,14 @@
#ca0f0e0e9e1d55b5f9955b03d9dd213c
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 = "fighter_male/grappler_male/cn/skillDetail"
@@ -76,8 +84,12 @@ class Skill2(PassiveSkill):
# 魔法值消耗量减少率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 迁移前实现(保留对照):
# associate = [
# {"data":data0,"type":"*cdReduce", 'exceptSkills': ['死亡旋律', '一字传承 : 极义震天破', '黑震流·山岳崩颓']}
# ]
associate = [
{"data":data0,"type":"*cdReduce", 'exceptSkills': ['死亡旋律', '一字传承 : 极义震天破', '黑震流·山岳崩颓']}
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['死亡旋律', '一字传承 : 极义震天破', '黑震流·山岳崩颓']),
]
# 后跳
@@ -635,7 +647,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))),
]
# 抛投
# fighter_male/grappler_male/c27418ae613c647527200a7ca17d97fd
@@ -775,9 +791,13 @@ class Skill26(PassiveSkill):
# 暴击伤害额外增加效果持续 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
def effect(self, old, new):
self.associate = [{"data":[(self.data0[i] + self.data1[i]) for i in range(0,self.maxLv + 1)]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# self.associate = [{"data":[(self.data0[i] + self.data1[i]) for i in range(0,self.maxLv + 1)]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0) + LevelTable(data1))),
]
# 折颈
# fighter_male/grappler_male/ecc23c980ea71450c0ad0c3fd232f329
@@ -1314,7 +1334,11 @@ class Skill39(PassiveSkill):
# 基本攻击和抓取攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{"type":"$*PAtkP","data":data0}]
# 迁移前实现(保留对照):
# associate = [{"type":"$*PAtkP","data":data0}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 死亡旋律
# fighter_male/grappler_male/d296043df164385a14cb973c8c7c4d07
@@ -1525,9 +1549,13 @@ class Skill43(PassiveSkill):
data3 = get_data(f'{prefix}/{uuid}', 3)
def effect(self, old, new):
self.associate = [{"data":[(self.data0[i] + self.data2[i]) for i in range(0,self.maxLv + 1)]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# self.associate = [{"data":[(self.data0[i] + self.data2[i]) for i in range(0,self.maxLv + 1)]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0) + LevelTable(data2))),
]
# 黑震旋风
# fighter_male/grappler_male/e6cb8eaa955de77107f746a4e6c731ab
@@ -1743,7 +1771,11 @@ class Skill47(PassiveSkill):
# 基本攻击力和转职技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{"type":"$*PAtkP","data":data0}]
# 迁移前实现(保留对照):
# associate = [{"type":"$*PAtkP","data":data0}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 黑震流·殒灭
# fighter_male/grappler_male/68062215e75d92575958873ac8ede31a
@@ -1,6 +1,16 @@
# ca0f0e0e9e1d55b5f9955b03d9dd213c
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,
Power,
SkillAttribute,
SkillEffect,
)
prefix = "fighter_male/nenmaster_male/cn/skillDetail"
@@ -159,7 +169,11 @@ class Skill5(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=['念兽 : 龙虎啸']),
]
# 受身蹲伏
# fighter_male/nenmaster_male/ce26c6b69d02a440a81b552bec94f03b
@@ -752,9 +766,14 @@ class Skill23(ActiveSkill):
# 施放速度增加 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
# 迁移前实现(保留对照):
# associate = [
# {'type': '$*PAtkM', 'data': [0] + [48.7] * maxLv},
# {'data': [0] + [21] * maxLv},
# ]
associate = [
{'type': '$*PAtkM', 'data': [0] + [48.7] * maxLv},
{'data': [0] + [21] * maxLv},
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable([0] + [48.7] * maxLv))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [21] * maxLv))),
]
# 念气环绕
@@ -796,7 +815,11 @@ class Skill24(ActiveSkill):
data5 = data2
hit5 = 0
associate = [{'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
mode = ['常规', '御']
@@ -837,7 +860,11 @@ class Skill25(PassiveSkill):
# 发射速度增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'type': '*power0', 'data': data0, 'skills': ['念气波']}]
# 迁移前实现(保留对照):
# associate = [{'type': '*power0', 'data': data0, 'skills': ['念气波']}]
associate = [
SkillEffect(attribute=Power(0), value=1 + Percent(LevelTable(data0)), skills=['念气波']),
]
# 疾风连击
# fighter_male/nenmaster_male/8572675ec6a1f50b6eff6a867376c2de
@@ -1061,7 +1088,12 @@ class Skill32(PassiveSkill):
# 分身爆炸大小比率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'type': '*skillDamage', 'data': data0, 'skills': ['分身'], 'ratio': 1}, {'type': '+cd', 'data': [0] + [5] * maxLv, 'skills': ['分身'], 'ratio': 1}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data0, 'skills': ['分身'], 'ratio': 1}, {'type': '+cd', 'data': [0] + [5] * maxLv, 'skills': ['分身'], 'ratio': 1}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + LevelTable(data0), skills=['分身']),
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ADD, value=LevelTable([0] + [5] * maxLv), skills=['分身']),
]
# 念兽 : 龙虎啸
# fighter_male/nenmaster_male/1b1cfab062e0768bcc889e33e1f30dbf
@@ -1133,7 +1165,11 @@ class Skill33(ActiveSkill):
# 范围比率 : {value15}%
data15 = get_data(f'{prefix}/{uuid}', 15)
associate = [{'type': '*skillDamage', 'data': data12}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data12}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data12))),
]
mode = ['一轮平x', '前冲', '跳跃']
@@ -1178,7 +1214,11 @@ class Skill34(ActiveSkill):
# 范围比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'type': '*power5', 'data': [i - 100 if i > 0 else i for i in data0], 'skills': ['念气环绕']}]
# 迁移前实现(保留对照):
# associate = [{'type': '*power5', 'data': [i - 100 if i > 0 else i for i in data0], 'skills': ['念气环绕']}]
associate = [
SkillEffect(attribute=Power(5), value=1 + Percent(LevelTable([i - 100 if i > 0 else i for i in data0])), skills=['念气环绕']),
]
# 狮子吼
# fighter_male/nenmaster_male/9cb6f9ed646fa87f9b7680a42ce83d1a
@@ -1467,7 +1507,11 @@ class Skill39(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))),
]
# 念兽 : 审判之金雷虎
# fighter_male/nenmaster_male/51a08fd0c90f0a5276cd552047fac93d
@@ -1741,7 +1785,12 @@ class Skill44(ActiveSkill):
data1 = get_data(f'{prefix}/{uuid}', 1)
# [念气环绕 : 袭]、 [念气环绕 : 御]的念气球范围增加 : 50%
associate = [{'data': data0}, {'data': data1, 'skills': ['狮子吼', '天雷虎踢', '螺旋念气场', '念兽 : 猛虎震地', '念兽 : 审判之金雷虎', '念之战矛', '冲云念气场', '奔雷螺旋击', '禅语·形灭']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}, {'data': data1, 'skills': ['狮子吼', '天雷虎踢', '螺旋念气场', '念兽 : 猛虎震地', '念兽 : 审判之金雷虎', '念之战矛', '冲云念气场', '奔雷螺旋击', '禅语·形灭']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['狮子吼', '天雷虎踢', '螺旋念气场', '念兽 : 猛虎震地', '念兽 : 审判之金雷虎', '念之战矛', '冲云念气场', '奔雷螺旋击', '禅语·形灭']),
]
# [念气环绕 : 袭]、 [念气环绕 : 御]的念气球范围增加 : 50%
# 风雷引
@@ -1946,7 +1995,11 @@ class Skill48(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))),
]
# 禅语·形灭
# fighter_male/nenmaster_male/33ad4930f4724a7d025c3046c6f6074b
@@ -1,6 +1,14 @@
#ca0f0e0e9e1d55b5f9955b03d9dd213c
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 = "fighter_male/striker_male/cn/skillDetail"
@@ -626,8 +634,12 @@ class Skill20(PassiveSkill):
# 冷却时间减少率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 迁移前实现(保留对照):
# associate = [
# {"data":data0,"type":"*cdReduce", 'exceptSkills': ['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']}
# ]
associate = [
{"data":data0,"type":"*cdReduce", 'exceptSkills': ['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']}
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']),
]
# 强拳
@@ -867,8 +879,12 @@ class Skill28(PassiveSkill):
# [鹰踏]攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 迁移前实现(保留对照):
# associate = [
# {"type":"*skillDamage","data":data0,"skills":["鹰踏"]},
# ]
associate = [
{"type":"*skillDamage","data":data0,"skills":["鹰踏"]},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['鹰踏']),
]
# 弱点感知
@@ -960,7 +976,11 @@ class Skill31(PassiveSkill):
# - [决斗场] -
# 起始冷却时间 : 10秒
associate = [{"type":"*skillDamage","data":data2}]
# 迁移前实现(保留对照):
# associate = [{"type":"*skillDamage","data":data2}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
]
# - [决斗场] -
# 起始冷却时间 : 10秒
@@ -1280,7 +1300,11 @@ class Skill38(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))),
]
# 烈焰焚步
# fighter_male/striker_male/01384bbfc346775d1267fa0bc4ca605f
@@ -1327,9 +1351,14 @@ class Skill39(ActiveSkill):
# [柔化肌肉]蓄气时间减少 : {value9}秒
data9 = get_data(f'{prefix}/{uuid}', 9)
# 迁移前实现(保留对照):
# associate = [
# {"data":data1,"type":"*cdReduce", 'exceptSkills': ['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']},
# {"type":"*skillDamage","data":data5},
# ]
associate = [
{"data":data1,"type":"*cdReduce", 'exceptSkills': ['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']},
{"type":"*skillDamage","data":data5},
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), except_skills=['双重释放', '烈焰焚步', '极武霸皇踢', '焚火逐日拳']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data5))),
]
# 双重释放
@@ -1565,7 +1594,11 @@ class Skill44(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))),
]
# 烈火强拳
# fighter_male/striker_male/e1daab884dd07fc9e70d08b83d1790eb
@@ -1681,7 +1714,11 @@ class Skill47(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))),
]
# 炼狱坠星腿
# fighter_male/striker_male/5536486eaf9b13c9a8283447cb5e77ab