feat:优化职业技能关联实现
This commit is contained in:
@@ -1,6 +1,14 @@
|
||||
#b9cb48777665de22c006fabaf9a560b3
|
||||
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 = "archer/chimera/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -98,7 +106,11 @@ class Skill2(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/chimera/ce26c6b69d02a440a81b552bec94f03b
|
||||
@@ -180,7 +192,11 @@ class Skill5(PassiveSkill):
|
||||
# 回收武器后,移动速度提升持续时间 : {value2}秒
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [ {"type":"*cdRatio","data":data0,"skills":['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']}, ]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [ {"type":"*cdRatio","data":data0,"skills":['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']}, ]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - Percent(LevelTable(data0)), skills=['投掷匕首', '首足连击', '空翻刃袭', '利剑四重奏', '土星环', '环形毒液', '狂锯旋斧', '刺猬困境', '王冠粉碎者', '巨镰斯诺克', '环阿拉德狂飙']),
|
||||
]
|
||||
|
||||
# 技能连招
|
||||
# archer/chimera/10b31c7e8cd2d60b9bcf3b1d3ada4b0a
|
||||
@@ -559,9 +575,14 @@ class Skill18(ActiveSkill):
|
||||
# 异常状态持续时间 : {value2}秒
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {"type":"*skillDamage","data":data0},
|
||||
# {"type":"*skillDamage","data":data1,"exceptSkills":["华丽回收"]},
|
||||
# ]
|
||||
associate = [
|
||||
{"type":"*skillDamage","data":data0},
|
||||
{"type":"*skillDamage","data":data1,"exceptSkills":["华丽回收"]},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), except_skills=['华丽回收']),
|
||||
]
|
||||
|
||||
# 空翻刃袭
|
||||
@@ -718,7 +739,11 @@ class Skill23(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))),
|
||||
]
|
||||
|
||||
# 土星环
|
||||
# archer/chimera/e862146efac2fce3de3a12f038f4116b
|
||||
@@ -832,10 +857,14 @@ class Skill25(ActiveSkill):
|
||||
"""
|
||||
...
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 2:
|
||||
self.associate = [{"data":[0]+[-26]*self.maxLv,"skills":["瞬影"]}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 2:
|
||||
# self.associate = [{"data":[0]+[-26]*self.maxLv,"skills":["瞬影"]}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-26] * maxLv)), skills=['瞬影'], when=Equals(Read(SkillAttribute.VP), 2)),
|
||||
]
|
||||
|
||||
# 环形毒液
|
||||
# archer/chimera/854997c3bdfc3a2b498b4c4001f69e06
|
||||
@@ -1038,7 +1067,11 @@ class Skill29(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))),
|
||||
]
|
||||
|
||||
# 重力加速度
|
||||
# archer/chimera/94c450d6214cafdc673f763badceeaf1
|
||||
@@ -1198,7 +1231,11 @@ class Skill33(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))),
|
||||
]
|
||||
|
||||
# 巨镰斯诺克
|
||||
# archer/chimera/0dbdeaf846356f8b9380f8fbb8e97377
|
||||
@@ -1430,7 +1467,11 @@ class Skill37(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))),
|
||||
]
|
||||
|
||||
# 颠倒之浩劫
|
||||
# archer/chimera/bbc15561bec24f9c1e79e23d715b1dd2
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
#944b9aab492c15a8474f96947ceeb9e4
|
||||
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 = "archer/muse/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -515,7 +521,11 @@ class Skill15(PassiveBufferSkill):
|
||||
data13 = get_data(f'{prefix}/{uuid}', 13)
|
||||
|
||||
Spirit = data0
|
||||
associate = [{"data":data0,"type":"$+Spirit","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0,"type":"$+Spirit","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data0)),
|
||||
]
|
||||
CarryRatio = [0]+ [((1 + i / 100) ** 3) * 100 - 100 for i in data8]# noqa: E501
|
||||
|
||||
# 乐力全开 : 力
|
||||
@@ -1261,7 +1271,11 @@ class Skill33(PassiveBufferSkill):
|
||||
|
||||
STRINT = data0
|
||||
Spirit = data1
|
||||
associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
|
||||
# 梦想的舞台
|
||||
# archer/muse/c61f5a010370101402b05b21916c2071
|
||||
@@ -1511,7 +1525,11 @@ class Skill38(PassiveBufferSkill):
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
Spirit = data0
|
||||
associate = [{"data": data0,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data0,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data0)),
|
||||
]
|
||||
|
||||
# 巨星登场
|
||||
# archer/muse/1721e94897e9961d5c98130a13392f17
|
||||
@@ -1758,7 +1776,11 @@ class Skill43(PassiveBufferSkill):
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
Spirit = data1
|
||||
associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
|
||||
# 梦幻三重奏
|
||||
# archer/muse/51a08fd0c90f0a5276cd552047fac93d
|
||||
|
||||
@@ -1,6 +1,31 @@
|
||||
# b9cb48777665de22c006fabaf9a560b3
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
All,
|
||||
CharacterAttribute,
|
||||
CharacterEffect,
|
||||
Equals,
|
||||
GreaterThan,
|
||||
LevelTable,
|
||||
MissingTargetPolicy,
|
||||
Not,
|
||||
Operation,
|
||||
Percent,
|
||||
ProfessionAttribute,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
|
||||
class TravelerAttribute(ProfessionAttribute):
|
||||
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
|
||||
TRAVELER_CDR = 'travelerCDR'
|
||||
"""旅人:装载模式的冷却缩减参数。"""
|
||||
TRAVELER_DAMAGE = 'travelerDamage'
|
||||
"""旅人:装载模式的伤害加成参数。"""
|
||||
|
||||
|
||||
prefix = "archer/traveler/cn/skillDetail"
|
||||
|
||||
@@ -172,7 +197,11 @@ 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': ['迷雾箭雨']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# 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/traveler/ce26c6b69d02a440a81b552bec94f03b
|
||||
@@ -592,7 +621,11 @@ class Skill17(PassiveSkill):
|
||||
# 命中率增加 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
associate = [{'type': '$*PAtkP', 'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '$*PAtkP', 'data': data0}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 暴击
|
||||
# archer/traveler/fc1262c19f3d0477ee8eda47b8db8696
|
||||
@@ -790,7 +823,11 @@ class Skill23(ActiveSkill):
|
||||
# 暴击伤害增加率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
associate = [ {"data": data3}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [ {"data": data3}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3))),
|
||||
]
|
||||
|
||||
# 高原雾花
|
||||
# archer/traveler/42c82812f86ff6704ae9952a2e6093a4
|
||||
@@ -932,7 +969,11 @@ class Skill26(ActiveSkill):
|
||||
# 空中施放技能结束后霸体护甲持续时间 : {value2}秒
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data0, 'type': '=travelerDamage', 'skills': ['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '=travelerDamage', 'skills': ['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=TravelerAttribute.TRAVELER_DAMAGE, operation=Operation.ASSIGN, value=LevelTable(data0), skills=['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星'], missing_target=MissingTargetPolicy.SKIP),
|
||||
]
|
||||
|
||||
# 浓雾暴雨
|
||||
# archer/traveler/ade01c1d6afc8a05055225045e89fe49
|
||||
@@ -1106,7 +1147,11 @@ class Skill29(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))),
|
||||
]
|
||||
|
||||
# 旷野火炎
|
||||
# archer/traveler/506e7ed77d517419a6e1c437a2cedb17
|
||||
@@ -1175,7 +1220,11 @@ class Skill31(PassiveSkill):
|
||||
# 增益最大持续时间 : {value1}秒
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
associate = [{'data': data0, 'type': '=travelerCDR', 'skills': ['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '=travelerCDR', 'skills': ['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=TravelerAttribute.TRAVELER_CDR, operation=Operation.ASSIGN, value=LevelTable(data0), skills=['装置驱动', '浓雾暴雨', '登跃飞锚', '神雾兵仗·妖旋风', '流雾疾风', '装载 : 烟花漫天', '装置驱动·星云', '神雾兵仗·流星'], missing_target=MissingTargetPolicy.SKIP),
|
||||
]
|
||||
|
||||
# 登跃飞锚
|
||||
# archer/traveler/a5fa08f5d509e6ff2ebc68856a470b5a
|
||||
@@ -1311,10 +1360,14 @@ class Skill33(TravelerActiveSkill):
|
||||
self.cd = 22.5
|
||||
self.skillRation *= 0.5
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 2:
|
||||
self.associate = [{'type': '*skillRation', 'data': [0] + [-17] * self.maxLv, 'skills': ['绝技袭击']}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 2:
|
||||
# self.associate = [{'type': '*skillRation', 'data': [0] + [-17] * self.maxLv, 'skills': ['绝技袭击']}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-17] * maxLv)), skills=['绝技袭击'], when=Equals(Read(SkillAttribute.VP), 2)),
|
||||
]
|
||||
|
||||
# 流浪之星的纹章
|
||||
# archer/traveler/8ee0099656df08a0b39225f8a21d514b
|
||||
@@ -1343,12 +1396,17 @@ class Skill34(PassiveSkill):
|
||||
# [神雾兵仗·流星]冷却时间减少率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.char.GetSkillByName('自动操作模式').lv > 0 and self.char.GetSkillByName('神雾兵仗·流星').vp != 2:
|
||||
self.associate = [{'data': self.data0, 'type': '*skillDamage'}]
|
||||
else:
|
||||
self.associate = [{'data': self.data0, 'type': '*skillDamage'}, {'data': self.data1, 'type': '*cdReduce', 'skills': ['神雾兵仗·流星']}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.char.GetSkillByName('自动操作模式').lv > 0 and self.char.GetSkillByName('神雾兵仗·流星').vp != 2:
|
||||
# self.associate = [{'data': self.data0, 'type': '*skillDamage'}]
|
||||
# else:
|
||||
# self.associate = [{'data': self.data0, 'type': '*skillDamage'}, {'data': self.data1, 'type': '*cdReduce', 'skills': ['神雾兵仗·流星']}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), skills=['神雾兵仗·流星'], when=Not(All([GreaterThan(Read(SkillAttribute.LEVEL, '自动操作模式'), 0), Not(Equals(Read(SkillAttribute.VP, '神雾兵仗·流星'), 2))]))),
|
||||
]
|
||||
|
||||
# 流雾疾风
|
||||
# archer/traveler/da6e37c1e3f0e8867f70007d89c239ff
|
||||
@@ -1486,10 +1544,14 @@ class Skill37(TravelerActiveSkill):
|
||||
- [装置驱动]爆炸时追加小型烟花漫天\n
|
||||
"""
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 2:
|
||||
self.associate = [{'type': '*skillRation', 'data': [0] + [-26.6] * self.maxLv, 'skills': ['装置驱动']}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 2:
|
||||
# self.associate = [{'type': '*skillRation', 'data': [0] + [-26.6] * self.maxLv, 'skills': ['装置驱动']}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-26.6] * maxLv)), skills=['装置驱动'], when=Equals(Read(SkillAttribute.VP), 2)),
|
||||
]
|
||||
|
||||
# 神雾兵仗·北极星
|
||||
# archer/traveler/a6c8f69107f8c4f5d1a0c7a57d000290
|
||||
@@ -1567,7 +1629,11 @@ class Skill39(TravelerActiveSkill):
|
||||
# 基本攻击力和转职技能攻击力增加率 : {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/traveler/03bb5314ffd41e9458d67ef924fef38f
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
# b9cb48777665de22c006fabaf9a560b3
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
LevelTable,
|
||||
Percent,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
prefix = "archer/vigilante/cn/skillDetail"
|
||||
|
||||
@@ -192,7 +198,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=['妖爪']),
|
||||
]
|
||||
|
||||
# 受身蹲伏
|
||||
# archer/vigilante/ce26c6b69d02a440a81b552bec94f03b
|
||||
@@ -653,7 +663,11 @@ class Skill19(PassiveSkill):
|
||||
# 妖兽形物理/魔法防御力增加 : {value2}
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 暴击
|
||||
# archer/vigilante/fc1262c19f3d0477ee8eda47b8db8696
|
||||
@@ -1015,7 +1029,11 @@ class Skill28(PassiveSkill):
|
||||
# 命中率增加 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 狂妖风暴
|
||||
# archer/vigilante/8e358ecf99ac9df31a6132aeafe378a9
|
||||
@@ -1191,7 +1209,11 @@ class Skill31(PassiveSkill):
|
||||
# [鲜活宴场]生命值恢复量增加率 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 鲜活宴场
|
||||
# archer/vigilante/0e409ac3e1c1f3976b3ef2bfe4c13069
|
||||
@@ -1380,7 +1402,11 @@ class Skill35(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/vigilante/527cdc3ecca985e18ef819d456532b26
|
||||
@@ -1581,7 +1607,11 @@ class Skill39(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/vigilante/dd32a9825ec1af42a91f2223be6658e5
|
||||
|
||||
Reference in New Issue
Block a user