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
+119 -24
View File
@@ -1,6 +1,16 @@
#f6a4ad30555b99b499c07835f87ce522
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 = "priest_male/avenger/cn/skillDetail"
@@ -357,7 +367,12 @@ class Skill11(ActiveSkill):
# [范围信息]
# 手大小比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
associate = [{"data":data4,"skills":[name]},{"data":data5,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data4,"skills":[name]},{"data":data5,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=[name]),
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data5)), skills=[name]),
]
# 强化 - 后跳
# priest_male/avenger/2b340542e776818b78f3212af184bd6b
@@ -572,7 +587,12 @@ class Skill17(ActiveSkill):
data2 = get_data(f'{prefix}/{uuid}', 2)
# 冷却时间增加率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data2,"skills":[name]},{"data":data3,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data2,"skills":[name]},{"data":data3,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2)), skills=[name]),
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data3)), skills=[name]),
]
# 半魔化
# priest_male/avenger/5c00ce6d7dbbb5e9a0f6e1071d486832
@@ -683,7 +703,11 @@ class Skill20(PassiveSkill):
data3 = get_data(f'{prefix}/{uuid}', 3)
# 光属性抗性减少 : {value4}
data4 = get_data(f'{prefix}/{uuid}', 4)
associate = [{"data":data0,"type":"$*PAtkM"}]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"type":"$*PAtkM"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable(data0))),
]
# 裂地锤
# priest_male/avenger/0c3a468aee1f7ce06bf91eb3319518c1
@@ -719,7 +743,11 @@ class Skill21(ActiveSkill):
data2 = get_data(f'{prefix}/{uuid}', 2)
# 冷却时间增加率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data3,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data3,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data3)), skills=[name]),
]
# 暴击
# priest_male/avenger/fc1262c19f3d0477ee8eda47b8db8696
@@ -791,7 +819,12 @@ class Skill23(ActiveSkill):
# [范围信息]
# [魔化 : 末日守卫者]状态下,攻击范围比率 : {value10}%
data10 = get_data(f'{prefix}/{uuid}', 10)
associate = [{"data":data8,"skills":[name]},{"data":data9,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data8,"skills":[name]},{"data":data9,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data8)), skills=[name]),
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data9)), skills=[name]),
]
# 堕落之魂
# priest_male/avenger/527cdc3ecca985e18ef819d456532b26
@@ -863,7 +896,11 @@ class Skill25(ActiveSkill):
# [范围信息]
# 大小比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
associate = [{"data":data3,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data3,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data3)), skills=[name]),
]
# 恶魔诅咒
# priest_male/avenger/002cbdd9bfd0f0b970451ae8d48d029e
@@ -894,7 +931,11 @@ class Skill26(PassiveSkill):
# [恶魔诅咒]持续时间 : {value3}秒
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data0,"exceptSkills":["魔化 : 末日守卫者"]}]
# 迁移前实现(保留对照):
# associate = [{"data":data0,"exceptSkills":["魔化 : 末日守卫者"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['魔化 : 末日守卫者']),
]
# 厄运之轮
# priest_male/avenger/ac21c02567f04a92b54dd85c091d1e5a
@@ -944,7 +985,12 @@ class Skill27(ActiveSkill):
# [魔化 : 末日守卫者]状态下攻击范围比率 : {value8}%
data8 = get_data(f'{prefix}/{uuid}', 8)
associate = [{"data":data3,"skills":[name]},{"data":data4,"skills":[name],"type":"*cd"}]
# 迁移前实现(保留对照):
# associate = [{"data":data3,"skills":[name]},{"data":data4,"skills":[name],"type":"*cd"}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3)), skills=[name]),
SkillEffect(attribute=SkillAttribute.CD, value=1 + Percent(LevelTable(data4)), skills=[name]),
]
def vp_1(self):
"""
@@ -1221,11 +1267,17 @@ class Skill31(PassiveSkill):
# 技能攻击力增加率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 迁移前实现(保留对照):
# associate = [
# {"data":data1,"skills":["魔化 : 末日守卫者"]},
# {"data":data2,"skills":["审判"]},
# {"data":data3,"exceptSkills":["审判","魔化 : 末日守卫者"]},
# ]
associate = [
{"data":data1,"skills":["魔化 : 末日守卫者"]},
{"data":data2,"skills":["审判"]},
{"data":data3,"exceptSkills":["审判","魔化 : 末日守卫者"]},
]
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['魔化 : 末日守卫者']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2)), skills=['审判']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3)), except_skills=['审判', '魔化 : 末日守卫者']),
]
# 魔化 : 末日守卫者
# priest_male/avenger/5cac3411ccef1af333953e0ded5e942d
@@ -1303,7 +1355,11 @@ class Skill32(ActiveSkill):
mode = ["x","z","z蓄力"]
associate = [{"data":data4,"type":"$*PAtkM"}]
# 迁移前实现(保留对照):
# associate = [{"data":data4,"type":"$*PAtkM"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable(data4))),
]
def setMode(self, mode):
if mode == "x":
@@ -1381,7 +1437,11 @@ class Skill33(ActiveSkill):
data11 = get_data(f'{prefix}/{uuid}', 11)
data12 = get_data(f'{prefix}/{uuid}', 12)
associate = [{"data": [0] + [10]*maxLv,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data": [0] + [10]*maxLv,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [10] * maxLv)), skills=[name]),
]
level_source = '魔化 : 末日守卫者'
@@ -1475,7 +1535,11 @@ class Skill36(ActiveSkill):
# [范围信息]
# 发射距离比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data2,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data":data2,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2)), skills=[name]),
]
def vp_1(self):
"""
@@ -1531,7 +1595,11 @@ class Skill37(ActiveSkill):
# 冲击波范围比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{"data":data1,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data":data1,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=[name]),
]
def vp_1(self):
"""
@@ -1667,10 +1735,15 @@ class Skill39(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# 基本攻击和除[恶魔之力]外所有技能攻击力增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 迁移前实现(保留对照):
# associate = [
# {"data":data1,"exceptSkills":["恶魔之力"]},
# {"data":data0,"skills":["恶魔之力"]}
# ]
associate = [
{"data":data1,"exceptSkills":["恶魔之力"]},
{"data":data0,"skills":["恶魔之力"]}
]
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), except_skills=['恶魔之力']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['恶魔之力']),
]
# 毁灭强击
# priest_male/avenger/b1732acfaf117f8e9ff130f47d3ed0e7
@@ -1724,7 +1797,11 @@ class Skill40(ActiveSkill):
# 爆炸大小比率 : {value7}%
data7 = get_data(f'{prefix}/{uuid}', 7)
associate = [{"data":data6,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data":data6,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data6)), skills=[name]),
]
def vp_1(self):
"""
@@ -1799,7 +1876,12 @@ class Skill41(ActiveSkill):
# - [半魔化状态下] -
# 恶魔能量消耗量减少 : 100%
associate = [{"data":data9,"skills":[name]},{"data":data7,"skills":[name],"type":"+power5"}]
# 迁移前实现(保留对照):
# associate = [{"data":data9,"skills":[name]},{"data":data7,"skills":[name],"type":"+power5"}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data9)), skills=[name]),
SkillEffect(attribute=Power(5), operation=Operation.ADD, value=Percent(LevelTable(data7)), skills=[name]),
]
# - [半魔化状态下] -
# 恶魔能量消耗量减少 : 100%
@@ -1838,7 +1920,11 @@ class Skill42(PassiveSkill):
# [回旋飞镰]镰刀回收最大攻击数 : {value5}次
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{"data":data0}]
# 迁移前实现(保留对照):
# associate = [{"data":data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 极恶洪流
# priest_male/avenger/7f9ffcd296361f1367b8b74e773d5e99
@@ -1881,7 +1967,12 @@ class Skill43(ActiveSkill):
data5 = get_data(f'{prefix}/{uuid}', 5)
# [半魔化]状态下施放时
# 恶魔能量消耗量减少 : 100%
associate = [{"data":data5,"skills":[name]},{"data":data4,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data":data5,"skills":[name]},{"data":data4,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data5)), skills=[name]),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=[name]),
]
# [半魔化]状态下施放时
# 恶魔能量消耗量减少 : 100%
@@ -1930,7 +2021,11 @@ class Skill44(ActiveSkill):
# 压制力 (4人队伍) : {value5}秒 ({value6}秒)
data5 = get_data(f'{prefix}/{uuid}', 5)
data6 = get_data(f'{prefix}/{uuid}', 6)
associate = [{"data":data4,"skills":[name]}]
# 迁移前实现(保留对照):
# associate = [{"data":data4,"skills":[name]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=[name]),
]
class classChange(Character):
def __init__(self, equVersion):
@@ -1,6 +1,14 @@
#f6a4ad30555b99b499c07835f87ce522
from core.basic.skill import PassiveSkill, ActiveSkill, get_data, ActiveBufferSkill, PassiveBufferSkill
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
Constant,
LevelTable,
Operation,
Percent,
)
prefix = "priest_male/crusader_male/cn/skillDetail"
@@ -538,9 +546,14 @@ class Skill17(PassiveBufferSkill):
Vitality = data0
Spirit = data1
# 迁移前实现(保留对照):
# associate = [
# {"data":data0,"type":"$+Vitality","ratio":1},
# {"data":data1,"type":"$+Spirit","ratio":1}
# ]
associate = [
{"data":data0,"type":"$+Vitality","ratio":1},
{"data":data1,"type":"$+Spirit","ratio":1}
CharacterEffect(attribute=CharacterAttribute.VITALITY, operation=Operation.ADD, value=LevelTable(data0)),
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
]
CarryRatio = [0]+[(1.055 ** 3) * 100 - 100]*maxLv# noqa: E501
@@ -781,7 +794,12 @@ class Skill23(ActiveBufferSkill):
Vitality = data3
Spirit = data4
associate = [{"type":"$+Vitality","value":data3,"ratio":1},{"type":"$+Spirit","value":data4,"ratio":1}]
# 迁移前实现(保留对照):
# associate = [{"type":"$+Vitality","value":data3,"ratio":1},{"type":"$+Spirit","value":data4,"ratio":1}]
associate = [
CharacterEffect(attribute=CharacterAttribute.VITALITY, operation=Operation.ADD, value=Constant(0)),
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=Constant(0)),
]
# 圣光守护
# priest_male/crusader_male/ff171dc487807bb9aa28900ca9a46b41
@@ -1758,7 +1776,12 @@ class Skill44(ActiveBufferSkill):
Vitality = data0
Spirit = data0
associate = [{"data": Vitality, "type": "$+Vitality"}, {"data": Spirit, "type": "$+Spirit"}]
# 迁移前实现(保留对照):
# associate = [{"data": Vitality, "type": "$+Vitality"}, {"data": Spirit, "type": "$+Spirit"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.VITALITY, operation=Operation.ADD, value=Percent(LevelTable(Vitality))),
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=Percent(LevelTable(Spirit))),
]
def vp_1(self):
"""
@@ -2004,7 +2027,12 @@ class Skill49(PassiveBufferSkill):
Vitality = Spirit = data1
associate = [{"data": Vitality, "type": "$+Vitality"}, {"data": Spirit, "type": "$+Spirit"}]
# 迁移前实现(保留对照):
# associate = [{"data": Vitality, "type": "$+Vitality"}, {"data": Spirit, "type": "$+Spirit"}]
associate = [
CharacterEffect(attribute=CharacterAttribute.VITALITY, operation=Operation.ADD, value=Percent(LevelTable(Vitality))),
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=Percent(LevelTable(Spirit))),
]
# 生命礼赞 : 神威
# priest_male/crusader_male/a81e5b7defa1819263ed8e86f69fd06f
@@ -1,6 +1,13 @@
#f6a4ad30555b99b499c07835f87ce522
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
LevelTable,
Percent,
Power,
SkillAttribute,
SkillEffect,
)
prefix = "priest_male/crusader_male/cn/skillDetail"
# 空斩打
@@ -128,13 +135,22 @@ 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': ['空斩打', '光之正义']},
# {'type': '*power2', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
# {'type': '*power3', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
# {'type': '*power4', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
# {'type': '*power6', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
# {'type': '*power7', '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': ['空斩打', '光之正义']},
{'type': '*power2', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
{'type': '*power3', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
{'type': '*power4', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
{'type': '*power6', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']},
{'type': '*power7', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['惩罚之锤']}
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['空斩打', '光之正义']),
SkillEffect(attribute=Power(2), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['惩罚之锤']),
SkillEffect(attribute=Power(3), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['惩罚之锤']),
SkillEffect(attribute=Power(4), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['惩罚之锤']),
SkillEffect(attribute=Power(6), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['惩罚之锤']),
SkillEffect(attribute=Power(7), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['惩罚之锤']),
]
@@ -265,7 +281,11 @@ class Skill16(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))),
]
@@ -359,7 +379,11 @@ class Skill19(PassiveSkill):
# 队员魔法值恢复量 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{'data': data2}]
# 迁移前实现(保留对照):
# associate = [{'data': data2}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
]
# 胜利之矛
# priest_male/crusader_male/8510294202d0e042dd29a2422fc6770d
@@ -601,7 +625,11 @@ class Skill30(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_male/crusader_male/9bff7f2559e003766fee2853dca00631
@@ -748,7 +776,11 @@ class Skill32(PassiveSkill):
# 眩晕范围 : {value4}px
data4 = get_data(f'{prefix}/{uuid}', 4)
associate = [{'data': [0, 92.5 - 100], 'skills': ['圣光球']}]
# 迁移前实现(保留对照):
# associate = [{'data': [0, 92.5 - 100], 'skills': ['圣光球']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0, 92.5 - 100])), skills=['圣光球']),
]
# 圣光聚合
# priest_male/crusader_male/dacd5c2848a1eb33489e5471f1a73759
@@ -1116,7 +1148,11 @@ class Skill38(PassiveSkill):
# 光环范围 : {value5}px
data5 = get_data(f'{prefix}/{uuid}', 5)
associate = [{'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 天启之光
# priest_male/crusader_male/dcb31a63ef58954f44ff2070c42a9a98
@@ -1622,7 +1658,11 @@ class Skill45(ActiveSkill):
# [雷霆粉碎]冲击波攻击力 : {value9}
data9 = get_data(f'{prefix}/{uuid}', 9)
associate = [{'data': data1}]
# 迁移前实现(保留对照):
# associate = [{'data': data1}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
]
mode = ["平X一轮","空斩打","落凤锤"]
@@ -1822,7 +1862,11 @@ class Skill49(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_male/crusader_male/a81e5b7defa1819263ed8e86f69fd06f
@@ -2,6 +2,16 @@
from core.basic.formula import 武器冷却惩罚
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,
Percent,
Read,
SkillAttribute,
SkillEffect,
)
prefix = "priest_male/exorcist/cn/skillDetail"
@@ -134,7 +144,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=['空斩打', '疾风打']),
]
# 受身蹲伏
# priest_male/exorcist/ce26c6b69d02a440a81b552bec94f03b
@@ -712,7 +726,11 @@ class Skill22(PassiveSkill):
# 物理、 魔法攻击力增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data1, 'type': '$*PAtkP'}]
# 迁移前实现(保留对照):
# associate = [{'data': data1, 'type': '$*PAtkP'}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data1))),
]
# 升天阵
# priest_male/exorcist/b89c9ab317bc0a443f6497b7cca2f6a8
@@ -908,7 +926,12 @@ class Skill28(PassiveSkill):
data0 = get_data(f'{prefix}/{uuid}', 0)
# 冷却时间减少率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data0}, {'data': data1, 'type': '*cdReduce', 'exceptSkills': ['四座千泰门', '真龙焚天', '雷鸣怒海·火啸山崩']}]
# 迁移前实现(保留对照):
# associate = [{'data': data0}, {'data': data1, 'type': '*cdReduce', 'exceptSkills': ['四座千泰门', '真龙焚天', '雷鸣怒海·火啸山崩']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), except_skills=['四座千泰门', '真龙焚天', '雷鸣怒海·火啸山崩']),
]
# 式神 : 空之白虎
# priest_male/exorcist/0ed3148658fe37b3336ccb718dc0fdb0
@@ -1096,13 +1119,18 @@ class Skill31(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [
{'type': '*skillRation', 'data': [0] + [150] * self.maxLv, 'skills': ['式神 : 热炎朱雀']},
{'type': '*cdReduce', 'data': [0] + [-150] * self.maxLv, 'skills': ['式神 : 热炎朱雀']},
]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [
# {'type': '*skillRation', 'data': [0] + [150] * self.maxLv, 'skills': ['式神 : 热炎朱雀']},
# {'type': '*cdReduce', 'data': [0] + [-150] * self.maxLv, 'skills': ['式神 : 热炎朱雀']},
# ]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [150] * maxLv)), skills=['式神 : 热炎朱雀'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable([0] + [-150] * maxLv)), skills=['式神 : 热炎朱雀'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 无双击
# priest_male/exorcist/d53301bb328baf12a3ae482cc6a565dd
@@ -1180,7 +1208,11 @@ class Skill33(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_male/exorcist/5892d1fa4462e561ac8f8d2c74892b0a
@@ -1362,7 +1394,11 @@ class Skill37(PassiveSkill):
# 驱魔师和队友所有速度增加 : {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_male/exorcist/328867949b763ce73e243da84fd59157
@@ -1389,7 +1425,11 @@ class Skill38(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_male/exorcist/5197b141332a65a89d452adf227c2f30
@@ -1585,7 +1625,11 @@ class Skill42(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_male/exorcist/3153ca0e6752a6283412c59c5ec8e002
@@ -1,6 +1,14 @@
#f6a4ad30555b99b499c07835f87ce522
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 = "priest_male/infighter/cn/skillDetail"
@@ -599,7 +607,12 @@ class Skill18(ActiveSkill):
# 离开[意念驱动]范围后增益效果持续时间 : {value6}秒
data6 = get_data(f'{prefix}/{uuid}', 6)
associate = [{"data":data2},{"data":data5,"type":"*cdReduce","exceptSkills":["泯灭神击","制裁 : 怒火疾风","正义执行 : 雷米迪奥斯的圣座"]}]
# 迁移前实现(保留对照):
# associate = [{"data":data2},{"data":data5,"type":"*cdReduce","exceptSkills":["泯灭神击","制裁 : 怒火疾风","正义执行 : 雷米迪奥斯的圣座"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data5)), except_skills=['泯灭神击', '制裁 : 怒火疾风', '正义执行 : 雷米迪奥斯的圣座']),
]
# 百炼成刚
# priest_male/infighter/da6e37c1e3f0e8867f70007d89c239ff
@@ -744,14 +757,23 @@ class Skill22(PassiveSkill):
data15 = get_data(f'{prefix}/{uuid}', 15)
data16 = get_data(f'{prefix}/{uuid}', 16)
# 迁移前实现(保留对照):
# associate = [
# {"data":data0},
# {"data":[i*j for i,j in zip(data9,data10)],"skills":["俯冲直拳"]},
# {"data":[i*j for i,j in zip(data11,data12)],"skills":["俯冲腹拳"]},
# {"data":[i*j for i,j in zip(data13,data14)],"skills":["俯冲翔拳"]},
# {"data":[i*j for i,j in zip(data15,data16)],"skills":["圣拳连击"]},
# {"data":data6,type:"=preRatio", "skills":["神圣反击"]},
# ]
associate = [
{"data":data0},
{"data":[i*j for i,j in zip(data9,data10)],"skills":["俯冲直拳"]},
{"data":[i*j for i,j in zip(data11,data12)],"skills":["俯冲腹拳"]},
{"data":[i*j for i,j in zip(data13,data14)],"skills":["俯冲翔拳"]},
{"data":[i*j for i,j in zip(data15,data16)],"skills":["圣拳连击"]},
{"data":data6,type:"=preRatio", "skills":["神圣反击"]},
]
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * j for i, j in zip(data9, data10)])), skills=['俯冲直拳']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * j for i, j in zip(data11, data12)])), skills=['俯冲腹拳']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * j for i, j in zip(data13, data14)])), skills=['俯冲翔拳']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i * j for i, j in zip(data15, data16)])), skills=['圣拳连击']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data6)), skills=['神圣反击']),
]
# 俯冲腹拳
# priest_male/infighter/c61f5a010370101402b05b21916c2071
@@ -1413,7 +1435,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_male/infighter/dbf8b30c7057032af0d68fcfa289fdae
@@ -1516,10 +1542,14 @@ class Skill40(ActiveSkill):
"""
...
def effect(self, old, new):
if self.vp == 2:
self.associate = [{"data":[0]+[-28.5]*self.maxLv,"skills":["刺拳猛击"]}]
return super().effect(old, new)
# 迁移前实现(保留对照):
# def effect(self, old, new):
# if self.vp == 2:
# self.associate = [{"data":[0]+[-28.5]*self.maxLv,"skills":["刺拳猛击"]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-28.5] * maxLv)), skills=['刺拳猛击'], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 破坏之拳
# priest_male/infighter/0fbb8de70002ad34f046c94c2cb3e863
@@ -1657,7 +1687,11 @@ class Skill43(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_male/infighter/d204ec03a0aed2f20211fb6ccc48d46d
@@ -1785,7 +1819,11 @@ class Skill46(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_male/infighter/87a918bb22cfc959a16e0bf939bb6c24