feat:优化职业技能关联实现
This commit is contained in:
@@ -1,6 +1,27 @@
|
||||
# b9cb48777665de22c006fabaf9a560b3
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data, _get_skill_damage_suffixes, _get_skill_dataplus_suffixes
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
CharacterAttribute,
|
||||
CharacterEffect,
|
||||
Equals,
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
ProfessionAttribute,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
|
||||
class HunterAttribute(ProfessionAttribute):
|
||||
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
|
||||
MARK_RATIO = 'markRation'
|
||||
"""猎人:每层标记对应的技能伤害增量。"""
|
||||
NORMAL_RATIO = 'normalRation'
|
||||
"""猎人:不消耗标记的技能伤害增量。"""
|
||||
|
||||
|
||||
prefix = "archer/hunter/cn/skillDetail"
|
||||
|
||||
@@ -131,7 +152,11 @@ class Skill2(PassiveSkill):
|
||||
# 转职技能冷却时间减少 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
associate = [{'data': data0, 'type': '*cdReduce', 'exceptSkills': ['联合作战 : 围猎', '完美瞄准', '联合作战 : 最终一役']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*cdReduce', 'exceptSkills': ['联合作战 : 围猎', '完美瞄准', '联合作战 : 最终一役']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['联合作战 : 围猎', '完美瞄准', '联合作战 : 最终一役']),
|
||||
]
|
||||
|
||||
# 帕伊卡 : 奇袭
|
||||
# archer/hunter/38612d8f2561edc2eb68d5057a837bfa
|
||||
@@ -250,7 +275,11 @@ class Skill6(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=['急速扳机']),
|
||||
]
|
||||
|
||||
# 受身蹲伏
|
||||
# archer/hunter/ce26c6b69d02a440a81b552bec94f03b
|
||||
@@ -561,7 +590,12 @@ class Skill16(PassiveSkill):
|
||||
# 单个敌人最大可标记层数 : {value4}
|
||||
data4 = get_data(f'{prefix}/{uuid}', 4)
|
||||
|
||||
associate = [{'data': data0, 'type': '+normalRation'}, {'data': data1, 'type': '+markRation'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '+normalRation'}, {'data': data1, 'type': '+markRation'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=HunterAttribute.NORMAL_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=HunterAttribute.MARK_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data1))),
|
||||
]
|
||||
|
||||
# 帕伊卡 : 刃羽
|
||||
# archer/hunter/c77a417c43de80c4ce32c1ed405d174a
|
||||
@@ -758,7 +792,11 @@ class Skill22(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))),
|
||||
]
|
||||
|
||||
# 重型穿甲箭
|
||||
# archer/hunter/8572675ec6a1f50b6eff6a867376c2de
|
||||
@@ -929,8 +967,12 @@ class Skill27(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# [重型穿甲箭]弩箭速度增加量 : 25%
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0, 'skills': ['重型穿甲箭']},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0, 'skills': ['重型穿甲箭']},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['重型穿甲箭']),
|
||||
]
|
||||
# [重型穿甲箭]弩箭速度增加量 : 25%
|
||||
|
||||
@@ -995,10 +1037,14 @@ class Skill28(HunterActiveSkill):
|
||||
self.cd = 24
|
||||
self.skillRation *= 1.6
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 2:
|
||||
self.associate = [{'type': '*skillRation', 'data': [0] + [-20] * self.maxLv, 'skills': ['霰弹之箭']}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 2:
|
||||
# self.associate = [{'type': '*skillRation', 'data': [0] + [-20] * self.maxLv, 'skills': ['霰弹之箭']}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-20] * maxLv)), skills=['霰弹之箭'], when=Equals(Read(SkillAttribute.VP), 2)),
|
||||
]
|
||||
|
||||
# 帕伊卡 : 困兽之网
|
||||
# archer/hunter/5152480fdde81362575a488d4cec4af9
|
||||
@@ -1226,7 +1272,11 @@ class Skill32(PassiveSkill):
|
||||
# 暴击伤害增加率 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data2, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data2, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
|
||||
]
|
||||
|
||||
# 联合作战 : 围猎
|
||||
# archer/hunter/1812a1ece67bb37b6b44b54766450064
|
||||
@@ -1432,7 +1482,11 @@ class Skill36(PassiveSkill):
|
||||
# 基本攻击力和转职技能攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 终结穿刺
|
||||
# archer/hunter/b89c9ab317bc0a443f6497b7cca2f6a8
|
||||
@@ -1635,7 +1689,11 @@ class Skill40(PassiveSkill):
|
||||
# 基本攻击力和转职技能攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 联合作战 : 扭转战局
|
||||
# archer/hunter/e0daa922b19cdc35de879e938361464e
|
||||
|
||||
Reference in New Issue
Block a user