feat:优化职业技能关联实现
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user