feat:优化职业技能关联实现
This commit is contained in:
@@ -3,6 +3,23 @@ from core.basic.roleinfo import CharacterEquipInfo
|
||||
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,
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
ProfessionAttribute,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
|
||||
class BattleMageAttribute(ProfessionAttribute):
|
||||
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
|
||||
USE_CHANGE = 'useChange'
|
||||
"""战斗法师:是否启用煌龙偃月的替代形态。"""
|
||||
|
||||
prefix = "mage_female/battle_mage/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -111,7 +128,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=['炫纹']),
|
||||
]
|
||||
|
||||
# 受身蹲伏
|
||||
# mage_female/battle_mage/ce26c6b69d02a440a81b552bec94f03b
|
||||
@@ -435,8 +456,12 @@ class Skill14(PassiveSkill):
|
||||
# 物理、 魔法暴击率增加 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 落花掌
|
||||
@@ -617,7 +642,11 @@ class Skill19(ActiveSkill):
|
||||
# 暴击率增加 : {value9}%
|
||||
data9 = get_data(f'{prefix}/{uuid}', 9)
|
||||
|
||||
associate = [{'type': '*skillDamage', 'data': data6}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '*skillDamage', 'data': data6}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data6))),
|
||||
]
|
||||
|
||||
# 实战型替身草人
|
||||
# mage_female/battle_mage/fc30c667a58e1dd54b5d214e04f4f23c
|
||||
@@ -645,7 +674,11 @@ class Skill20(PassiveSkill):
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
# 替身草人冷却时间减少 : {value3}秒
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
associate = [{'type': '+cdCut', 'skills': ['替身草人'], 'data': data3, 'ratio': 1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '+cdCut', 'skills': ['替身草人'], 'data': data3, 'ratio': 1}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_CUT, operation=Operation.ADD, value=LevelTable(data3), skills=['替身草人']),
|
||||
]
|
||||
|
||||
# 战斗法师武器精通
|
||||
# mage_female/battle_mage/27bade584bb42fef68148d3a0b72bace
|
||||
@@ -685,10 +718,16 @@ class Skill21(PassiveSkill):
|
||||
data5 = get_data(f'{prefix}/{uuid}', 5)
|
||||
# 装备矛时,技能攻击范围增加率 : {value6}%
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '$*PAtkP', 'data': data0},
|
||||
# {'type': '$*PAtkM', 'data': data0},
|
||||
# {'type': '*cdReduce', 'data': data2, 'exceptSkills': ['星纹陨爆', '一骑当千碎霸', '太古星河·殒灭']},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '$*PAtkP', 'data': data0},
|
||||
{'type': '$*PAtkM', 'data': data0},
|
||||
{'type': '*cdReduce', 'data': data2, 'exceptSkills': ['星纹陨爆', '一骑当千碎霸', '太古星河·殒灭']},
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data2)), except_skills=['星纹陨爆', '一骑当千碎霸', '太古星河·殒灭']),
|
||||
]
|
||||
|
||||
# 双重锤击
|
||||
@@ -1153,7 +1192,11 @@ class Skill32(PassiveSkill):
|
||||
rangeLv = 2
|
||||
uuid = '573723c8c0614f5b1218ca9ff992115b'
|
||||
|
||||
associate = [{'type': '+useChange', 'data': [0, 100], 'skills': ['煌龙偃月']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '+useChange', 'data': [0, 100], 'skills': ['煌龙偃月']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=BattleMageAttribute.USE_CHANGE, operation=Operation.ADD, value=Percent(LevelTable([0, 100])), skills=['煌龙偃月']),
|
||||
]
|
||||
|
||||
|
||||
# 斗神意志
|
||||
@@ -1203,8 +1246,12 @@ class Skill33(PassiveSkill):
|
||||
# 回避率增加 : {value12}%
|
||||
data12 = get_data(f'{prefix}/{uuid}', 12)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 星纹陨爆
|
||||
@@ -1363,8 +1410,12 @@ class Skill37(PassiveSkill):
|
||||
# 物理暴击率和魔法暴击率补正比率 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 炫纹簇
|
||||
@@ -1632,8 +1683,12 @@ class Skill44(PassiveSkill):
|
||||
# 基本攻击力和转职技能攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0},
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 炫纹之源 : 太古神光
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
#3909d0b188e9c95311399f776e331da5
|
||||
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,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
prefix = "mage_female/elementalist/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -914,11 +924,16 @@ class Skill25(ActiveSkill):
|
||||
|
||||
ratio = 1.0
|
||||
|
||||
associate = [{"type":"*cdRatio","data":data1,"skills":['冰墙', '元素之门', '元素之幕', '元素震荡', '圣灵水晶', '烈焰冲击','天雷', '雷旋', '杰克降临', '湮灭黑洞', '极冰盛宴', '虚无之球', '光与暗的交响']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"*cdRatio","data":data1,"skills":['冰墙', '元素之门', '元素之幕', '元素震荡', '圣灵水晶', '烈焰冲击','天雷', '雷旋', '杰克降临', '湮灭黑洞', '极冰盛宴', '虚无之球', '光与暗的交响']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - (Percent(LevelTable(data1)) * Read(SkillAttribute.RATIO)), skills=['冰墙', '元素之门', '元素之幕', '元素震荡', '圣灵水晶', '烈焰冲击', '天雷', '雷旋', '杰克降临', '湮灭黑洞', '极冰盛宴', '虚无之球', '光与暗的交响']),
|
||||
]
|
||||
|
||||
# 技能等级变化的时候,系数对应的数值变化
|
||||
def update_skill_attribute(self, skill, type, old, new, data, ratio=100, weapon=(), weapon_type=None, weapon_options=()):
|
||||
super().update_skill_attribute(skill, type, old, new, data, ratio / self.ratio, weapon, weapon_type, weapon_options)
|
||||
# 迁移前实现(保留对照):
|
||||
# def update_skill_attribute(self, skill, type, old, new, data, ratio=100, weapon=(), weapon_type=None, weapon_options=()):
|
||||
# super().update_skill_attribute(skill, type, old, new, data, ratio / self.ratio, weapon, weapon_type, weapon_options)
|
||||
|
||||
# 虚无之球
|
||||
# mage_female/elementalist/5dc7008b12a459325b548b0715c6b73c
|
||||
@@ -1126,11 +1141,16 @@ class Skill31(PassiveSkill):
|
||||
|
||||
ratio = 1.0
|
||||
|
||||
associate = [{"type":"*skillDamage","data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"*skillDamage","data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + (Percent(LevelTable(data0)) * Read(SkillAttribute.RATIO))),
|
||||
]
|
||||
|
||||
# 技能等级变化的时候,系数对应的数值变化
|
||||
def update_skill_attribute(self, skill, type, old, new, data, ratio=100, weapon=(), weapon_type=None, weapon_options=()):
|
||||
super().update_skill_attribute(skill, type, old, new, data, ratio / self.ratio, weapon, weapon_type, weapon_options)
|
||||
# 迁移前实现(保留对照):
|
||||
# def update_skill_attribute(self, skill, type, old, new, data, ratio=100, weapon=(), weapon_type=None, weapon_options=()):
|
||||
# super().update_skill_attribute(skill, type, old, new, data, ratio / self.ratio, weapon, weapon_type, weapon_options)
|
||||
|
||||
# 天雷
|
||||
# mage_female/elementalist/d2c6df5105577fb59fb92529a36165a0
|
||||
@@ -1228,9 +1248,14 @@ class Skill33(PassiveSkill):
|
||||
# [天雷]攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# [天雷]发射间隔减少率 : 50%
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {"type":"+cd","data":[0,5],"skills":["天雷"],"ratio":1},
|
||||
# {"type":"*skillDamage","data":data0,"skills":["天雷"]}
|
||||
# ]
|
||||
associate = [
|
||||
{"type":"+cd","data":[0,5],"skills":["天雷"],"ratio":1},
|
||||
{"type":"*skillDamage","data":data0,"skills":["天雷"]}
|
||||
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ADD, value=LevelTable([0, 5]), skills=['天雷']),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['天雷']),
|
||||
]
|
||||
# [天雷]发射间隔减少率 : 50%
|
||||
|
||||
@@ -1465,7 +1490,11 @@ class Skill37(PassiveSkill):
|
||||
# 魔法暴击率增加率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
associate = [{"type":"$*PAtkM","data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"$*PAtkM","data":data0}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_M, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 陨星幻灭
|
||||
# mage_female/elementalist/b3659936a9a74c4ed6f7faf07cca1f9e
|
||||
@@ -1672,7 +1701,11 @@ class Skill41(PassiveSkill):
|
||||
# [杰克降临]大小增加率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
associate = [{"type":"*skillDamage","data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"*skillDamage","data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 圣灵符文
|
||||
# mage_female/elementalist/bb34e8854a93fd250347a1c64119f7ab
|
||||
@@ -1709,9 +1742,14 @@ class Skill42(ActiveSkill):
|
||||
# 魔法暴击率增加量 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {"type":"+ratio","data":data0,"skills":["魔法秀"]},
|
||||
# {"type":"+ratio","data":data2,"skills":["属性精通"]}
|
||||
# ]
|
||||
associate = [
|
||||
{"type":"+ratio","data":data0,"skills":["魔法秀"]},
|
||||
{"type":"+ratio","data":data2,"skills":["属性精通"]}
|
||||
SkillEffect(attribute=SkillAttribute.RATIO, operation=Operation.ADD, value=Percent(LevelTable(data0)), skills=['魔法秀']),
|
||||
SkillEffect(attribute=SkillAttribute.RATIO, operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['属性精通']),
|
||||
]
|
||||
|
||||
# 圣灵水晶
|
||||
@@ -1907,7 +1945,11 @@ class Skill46(PassiveSkill):
|
||||
# 融合虚无之球多段攻击力 : 虚无之球多段攻击力的40%
|
||||
# 融合虚无之球爆炸攻击力 : 虚无之球多段攻击力的240%
|
||||
|
||||
associate = [{"type":"*skillDamage","data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"*skillDamage","data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
# 融合虚无之球多段攻击力 : 虚无之球多段攻击力的40%
|
||||
# 融合虚无之球爆炸攻击力 : 虚无之球多段攻击力的240%
|
||||
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
#3909d0b188e9c95311399f776e331da5
|
||||
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 = "mage_female/enchantress/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -891,7 +897,11 @@ class Skill25(PassiveBufferSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
INT = data0
|
||||
associate = [{"data":INT,"type":"$+INT","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":INT,"type":"$+INT","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(INT)),
|
||||
]
|
||||
|
||||
# 疯狂乱抓
|
||||
# mage_female/enchantress/6bbf76bcd2ed3ca25f21b760db4342ad
|
||||
@@ -1662,7 +1672,11 @@ class Skill43(PassiveBufferSkill):
|
||||
INT = data3
|
||||
STRINT = data3
|
||||
|
||||
associate = [{"data":INT,"type":"$+INT","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":INT,"type":"$+INT","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(INT)),
|
||||
]
|
||||
|
||||
# 开幕! 人偶剧场
|
||||
# mage_female/enchantress/56fca6cff74d828e92301a40cd2148b9
|
||||
@@ -1968,7 +1982,11 @@ class Skill49(PassiveBufferSkill):
|
||||
data7 = get_data(f'{prefix}/{uuid}', 7)
|
||||
|
||||
INT = data0
|
||||
associate = [{"data":INT ,"type":"$+INT","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":INT ,"type":"$+INT","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(INT)),
|
||||
]
|
||||
CarryRatio = [0]+ [(1.05 ** 3) * 100 - 100]*maxLv# noqa: E501
|
||||
|
||||
# 苦痛庭院
|
||||
@@ -2157,7 +2175,11 @@ class Skill53(PassiveBufferSkill):
|
||||
# [疯熊守护]防御冷却时间 : 30秒
|
||||
|
||||
INT = data1
|
||||
associate = [{"data": data1,"type": "$+INT","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data1,"type": "$+INT","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.INT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
# [疯熊守护]防御冷却时间 : 30秒
|
||||
|
||||
# 挚爱囚笼
|
||||
|
||||
@@ -2,9 +2,17 @@
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data, _get_skill_damage_suffixes
|
||||
from core.basic.character import Character
|
||||
|
||||
prefix = "mage_female/summoner/cn/skillDetail"
|
||||
|
||||
from enum import Enum
|
||||
from core.basic.skill_effect_types import (
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
prefix = "mage_female/summoner/cn/skillDetail"
|
||||
|
||||
class EnumDataType(Enum):
|
||||
A = '附灵'
|
||||
@@ -1056,35 +1064,39 @@ class Skill27(PassiveSkill):
|
||||
# 物防和魔防的增加 : {value4}%
|
||||
data4 = get_data(f'{prefix}/{uuid}', 4)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {
|
||||
# 'data': data3,
|
||||
# 'type': '*skillDamage',
|
||||
# 'skills': [
|
||||
# '契约召唤 : 赫德尔',
|
||||
# '精灵召唤 : 亚德炎',
|
||||
# '精灵召唤 : 冰奈斯',
|
||||
# '精灵召唤 : 瑟冥特克',
|
||||
# '精灵召唤 : 雷沃斯',
|
||||
# '契约召唤 : 弗利特',
|
||||
# '契约召唤 : 桑德尔',
|
||||
# '精灵召唤 : 亡魂默克尔',
|
||||
# '精灵召唤 : 极光格雷林',
|
||||
# '精灵召唤 : 冰影阿奎利斯',
|
||||
# '精灵召唤 : 火焰赫瑞克',
|
||||
# '契约召唤 : 路易丝',
|
||||
# '精灵召唤 : 伊伽贝拉',
|
||||
# '契约召唤 : 牛头王库鲁塔',
|
||||
# '契约召唤 : 征服者卡西利亚斯',
|
||||
# '必杀剑·千鬼杀',
|
||||
# '狂化黑月',
|
||||
# '传说召唤 : 月蚀之影',
|
||||
# '传说召唤 : 逆月者拉莫斯',
|
||||
# '咒令 : 逆月之蚀',
|
||||
# '至高精灵王',
|
||||
# '魔月·德拉里昂',
|
||||
# ],
|
||||
# }
|
||||
# ]
|
||||
associate = [
|
||||
{
|
||||
'data': data3,
|
||||
'type': '*skillDamage',
|
||||
'skills': [
|
||||
'契约召唤 : 赫德尔',
|
||||
'精灵召唤 : 亚德炎',
|
||||
'精灵召唤 : 冰奈斯',
|
||||
'精灵召唤 : 瑟冥特克',
|
||||
'精灵召唤 : 雷沃斯',
|
||||
'契约召唤 : 弗利特',
|
||||
'契约召唤 : 桑德尔',
|
||||
'精灵召唤 : 亡魂默克尔',
|
||||
'精灵召唤 : 极光格雷林',
|
||||
'精灵召唤 : 冰影阿奎利斯',
|
||||
'精灵召唤 : 火焰赫瑞克',
|
||||
'契约召唤 : 路易丝',
|
||||
'精灵召唤 : 伊伽贝拉',
|
||||
'契约召唤 : 牛头王库鲁塔',
|
||||
'契约召唤 : 征服者卡西利亚斯',
|
||||
'必杀剑·千鬼杀',
|
||||
'狂化黑月',
|
||||
'传说召唤 : 月蚀之影',
|
||||
'传说召唤 : 逆月者拉莫斯',
|
||||
'咒令 : 逆月之蚀',
|
||||
'至高精灵王',
|
||||
'魔月·德拉里昂',
|
||||
],
|
||||
}
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3)), skills=['契约召唤 : 赫德尔', '精灵召唤 : 亚德炎', '精灵召唤 : 冰奈斯', '精灵召唤 : 瑟冥特克', '精灵召唤 : 雷沃斯', '契约召唤 : 弗利特', '契约召唤 : 桑德尔', '精灵召唤 : 亡魂默克尔', '精灵召唤 : 极光格雷林', '精灵召唤 : 冰影阿奎利斯', '精灵召唤 : 火焰赫瑞克', '契约召唤 : 路易丝', '精灵召唤 : 伊伽贝拉', '契约召唤 : 牛头王库鲁塔', '契约召唤 : 征服者卡西利亚斯', '必杀剑·千鬼杀', '狂化黑月', '传说召唤 : 月蚀之影', '传说召唤 : 逆月者拉莫斯', '咒令 : 逆月之蚀', '至高精灵王', '魔月·德拉里昂']),
|
||||
]
|
||||
|
||||
# 伺机而动
|
||||
@@ -1140,7 +1152,11 @@ class Skill29(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))),
|
||||
]
|
||||
|
||||
# 召唤下级精灵
|
||||
# mage_female/summoner/f8226512ea3dbcb1fe1374baa0c6bbee
|
||||
@@ -1199,7 +1215,11 @@ class Skill31(ActiveSkill):
|
||||
# 蓄气时间上限减少率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
associate = [{'type': '*cdRatio', 'data': data1, 'skills': ['精灵献祭', '咒令 : 愤怒咆哮']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '*cdRatio', 'data': data1, 'skills': ['精灵献祭', '咒令 : 愤怒咆哮']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - Percent(LevelTable(data1)), skills=['精灵献祭', '咒令 : 愤怒咆哮']),
|
||||
]
|
||||
|
||||
# 精灵献祭
|
||||
# mage_female/summoner/c27418ae613c647527200a7ca17d97fd
|
||||
@@ -1518,7 +1538,11 @@ class Skill38(PassiveSkill):
|
||||
# [鞭挞]增益效果持续时间增加 : {value0}秒
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
associate = [{'data': [0] + [2] * maxLv, 'type': '+cd', 'skills': ['鞭挞'], 'ratio': 1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': [0] + [2] * maxLv, 'type': '+cd', 'skills': ['鞭挞'], 'ratio': 1}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ADD, value=LevelTable([0] + [2] * maxLv), skills=['鞭挞']),
|
||||
]
|
||||
|
||||
# 契约召唤 : 袄索
|
||||
# mage_female/summoner/e4c354a89c337310aeb7041d5e742828
|
||||
@@ -2131,7 +2155,11 @@ class Skill46(SummonSkill):
|
||||
# 自身强化
|
||||
skillDamage = 1.3
|
||||
|
||||
associate = [{'type': '*skillDamage', 'data': data13, 'skills': ['精灵召唤 : 亡魂默克尔', '精灵召唤 : 极光格雷林', '精灵召唤 : 冰影阿奎利斯', '精灵召唤 : 火焰赫瑞克']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '*skillDamage', 'data': data13, 'skills': ['精灵召唤 : 亡魂默克尔', '精灵召唤 : 极光格雷林', '精灵召唤 : 冰影阿奎利斯', '精灵召唤 : 火焰赫瑞克']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data13)), skills=['精灵召唤 : 亡魂默克尔', '精灵召唤 : 极光格雷林', '精灵召唤 : 冰影阿奎利斯', '精灵召唤 : 火焰赫瑞克']),
|
||||
]
|
||||
|
||||
def vp_1(self):
|
||||
"""
|
||||
@@ -2359,7 +2387,11 @@ class Skill50(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))),
|
||||
]
|
||||
|
||||
# 契约召唤 : 征服者卡西利亚斯
|
||||
# mage_female/summoner/0b8db1e10b3abbd24d38564e708675d5
|
||||
@@ -2530,7 +2562,11 @@ class Skill54(ActiveSkill):
|
||||
# 速度增加光环范围 : {value6}px
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
|
||||
associate = [{'data': data2, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data2, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
|
||||
]
|
||||
|
||||
def vp_1(self):
|
||||
"""
|
||||
@@ -2647,7 +2683,11 @@ class Skill56(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))),
|
||||
]
|
||||
|
||||
# 狂化黑月
|
||||
# mage_female/summoner/8572675ec6a1f50b6eff6a867376c2de
|
||||
@@ -2961,7 +3001,11 @@ class Skill61(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))),
|
||||
]
|
||||
|
||||
# 至高精灵王
|
||||
# mage_female/summoner/13e8c4ad93473b5fcea11e81ce9456f5
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
# 3909d0b188e9c95311399f776e331da5
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
Equals,
|
||||
LevelTable,
|
||||
MissingTargetPolicy,
|
||||
Operation,
|
||||
Percent,
|
||||
ProfessionAttribute,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
|
||||
class WitchAttribute(ProfessionAttribute):
|
||||
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
|
||||
FAIL_POWER = 'powerFail'
|
||||
"""魔道学者:失败形态伤害倍率。"""
|
||||
SUCCESS_POWER = 'powerSuccess'
|
||||
"""魔道学者:成功形态伤害倍率。"""
|
||||
|
||||
|
||||
prefix = "mage_female/witch/cn/skillDetail"
|
||||
|
||||
@@ -897,7 +917,11 @@ class Skill24(PassiveSkill):
|
||||
# [改良魔法星弹]探索范围增加率 : {value10}%
|
||||
data10 = get_data(f'{prefix}/{uuid}', 10)
|
||||
|
||||
associate = [{'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 扫把掌握
|
||||
# mage_female/witch/5152480fdde81362575a488d4cec4af9
|
||||
@@ -1080,7 +1104,11 @@ class Skill28(ActiveSkill):
|
||||
# 蓄气时间上限减少率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
associate = [{'type': '*cdRatio', 'data': data1, 'skills': ['改良魔法星弹', '改良舒露露', '熔岩药瓶', '魔道酸雨云', '旋转扫把', '电鳗碰撞机', '暴炎加热炉', '冰霜钻孔车', '反重力装置', '光电兔', '雪人刨冰', '糖果大作战 : 捣蛋杰克']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '*cdRatio', 'data': data1, 'skills': ['改良魔法星弹', '改良舒露露', '熔岩药瓶', '魔道酸雨云', '旋转扫把', '电鳗碰撞机', '暴炎加热炉', '冰霜钻孔车', '反重力装置', '光电兔', '雪人刨冰', '糖果大作战 : 捣蛋杰克']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.CD_RATIO, value=1 - Percent(LevelTable(data1)), skills=['改良魔法星弹', '改良舒露露', '熔岩药瓶', '魔道酸雨云', '旋转扫把', '电鳗碰撞机', '暴炎加热炉', '冰霜钻孔车', '反重力装置', '光电兔', '雪人刨冰', '糖果大作战 : 捣蛋杰克']),
|
||||
]
|
||||
|
||||
# 魔幻粉末
|
||||
# mage_female/witch/7e904ea3d2a9faa054604e55120a9268
|
||||
@@ -1268,7 +1296,11 @@ class Skill33(PassiveSkill):
|
||||
# 基本攻击力、 技能攻击力增加率 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
associate = [{'data': data2}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data2}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
|
||||
]
|
||||
|
||||
# 魔道酸雨云
|
||||
# mage_female/witch/b89c9ab317bc0a443f6497b7cca2f6a8
|
||||
@@ -1489,10 +1521,16 @@ class Skill37(PassiveSkill):
|
||||
# [冰霜钻孔车]失败攻击力增加率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': data1, 'type': '+powerFail', 'skills': ['熔岩药瓶']},
|
||||
# {'data': data2, 'type': '+powerFail', 'skills': ['暴炎加热炉']},
|
||||
# {'data': data3, 'type': '+powerFail', 'skills': ['冰霜钻孔车']},
|
||||
# ]
|
||||
associate = [
|
||||
{'data': data1, 'type': '+powerFail', 'skills': ['熔岩药瓶']},
|
||||
{'data': data2, 'type': '+powerFail', 'skills': ['暴炎加热炉']},
|
||||
{'data': data3, 'type': '+powerFail', 'skills': ['冰霜钻孔车']},
|
||||
SkillEffect(attribute=WitchAttribute.FAIL_POWER, operation=Operation.ADD, value=Percent(LevelTable(data1)), skills=['熔岩药瓶']),
|
||||
SkillEffect(attribute=WitchAttribute.FAIL_POWER, operation=Operation.ADD, value=Percent(LevelTable(data2)), skills=['暴炎加热炉']),
|
||||
SkillEffect(attribute=WitchAttribute.FAIL_POWER, operation=Operation.ADD, value=Percent(LevelTable(data3)), skills=['冰霜钻孔车']),
|
||||
]
|
||||
|
||||
# 旋转扫把
|
||||
@@ -2101,7 +2139,11 @@ class Skill44(PassiveSkill):
|
||||
# 魔法暴击率增加量 : {value5}%
|
||||
data5 = get_data(f'{prefix}/{uuid}', 5)
|
||||
|
||||
associate = [{'data': data4}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data4}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4))),
|
||||
]
|
||||
|
||||
# 技艺融合
|
||||
# mage_female/witch/3fb8395ae3b81bd608e0c4223a8eb534
|
||||
@@ -2185,10 +2227,14 @@ class Skill46(ActiveSkill):
|
||||
# 苍蝇拍大小比率 : {value6}%
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 1:
|
||||
self.associate = [{'data': [0] + [-17.6] * self.maxLv, 'skills': ['变异苍蝇拍']}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 1:
|
||||
# self.associate = [{'data': [0] + [-17.6] * self.maxLv, 'skills': ['变异苍蝇拍']}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-17.6] * maxLv)), skills=['变异苍蝇拍'], when=Equals(Read(SkillAttribute.VP), 1)),
|
||||
]
|
||||
|
||||
def vp_1(self):
|
||||
"""
|
||||
@@ -2503,7 +2549,12 @@ class Skill49(ActiveSkill):
|
||||
# 重力加速装置束缚时间 : {value28}秒
|
||||
data28 = get_data(f'{prefix}/{uuid}', 28)
|
||||
|
||||
associate = [{'data': data3, 'skills': ['变异苍蝇拍', '超级苍蝇拍', '改良舒露露', '改良魔法星弹', '暗影斗篷', '技艺融合', '超级棒棒糖', '光电兔', '雪人刨冰', '乌洛波洛斯之环', '糖果大作战精怪乐园', '糖果大作战捣蛋杰克']}, {'data': data4, 'type': '+powerFail', 'skills': ['熔岩药瓶', '暴炎加热炉', '冰霜钻孔车']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data3, 'skills': ['变异苍蝇拍', '超级苍蝇拍', '改良舒露露', '改良魔法星弹', '暗影斗篷', '技艺融合', '超级棒棒糖', '光电兔', '雪人刨冰', '乌洛波洛斯之环', '糖果大作战精怪乐园', '糖果大作战捣蛋杰克']}, {'data': data4, 'type': '+powerFail', 'skills': ['熔岩药瓶', '暴炎加热炉', '冰霜钻孔车']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3)), skills=['变异苍蝇拍', '超级苍蝇拍', '改良舒露露', '改良魔法星弹', '暗影斗篷', '技艺融合', '超级棒棒糖', '光电兔', '雪人刨冰', '乌洛波洛斯之环', '糖果大作战精怪乐园', '糖果大作战捣蛋杰克'], missing_target=MissingTargetPolicy.SKIP),
|
||||
SkillEffect(attribute=WitchAttribute.FAIL_POWER, operation=Operation.ADD, value=Percent(LevelTable(data4)), skills=['熔岩药瓶', '暴炎加热炉', '冰霜钻孔车']),
|
||||
]
|
||||
|
||||
level_source = '贤者之石'
|
||||
|
||||
@@ -2582,7 +2633,12 @@ class Skill50(PassiveSkill):
|
||||
# [冰霜钻孔车]攻击力增加率 : {value8}%
|
||||
data8 = get_data(f'{prefix}/{uuid}', 8)
|
||||
|
||||
associate = [{'data': data0, 'type': '+powerSuccess', 'skills': ['改良舒露露', '改良魔法星弹', '魔道酸雨云', '电鳗碰撞机', '反重力装置', '熔岩药瓶', '暴炎加热炉']}, {'data': data8, 'skills': ['冰霜钻孔车']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '+powerSuccess', 'skills': ['改良舒露露', '改良魔法星弹', '魔道酸雨云', '电鳗碰撞机', '反重力装置', '熔岩药瓶', '暴炎加热炉']}, {'data': data8, 'skills': ['冰霜钻孔车']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=WitchAttribute.SUCCESS_POWER, operation=Operation.ADD, value=Percent(LevelTable(data0)), skills=['改良舒露露', '改良魔法星弹', '魔道酸雨云', '电鳗碰撞机', '反重力装置', '熔岩药瓶', '暴炎加热炉']),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data8)), skills=['冰霜钻孔车']),
|
||||
]
|
||||
|
||||
# 超级棒棒糖
|
||||
# mage_female/witch/9bc30e0f6e22b0333762d04acae7d252
|
||||
@@ -2750,7 +2806,11 @@ class Skill53(PassiveSkill):
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
# 冰霜云冰冻持续时间 : {value2}秒
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
associate = [{'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 糖果大作战 : 捣蛋杰克
|
||||
# mage_female/witch/fa7f1a3dc90600456cbe010e5714bef3
|
||||
|
||||
Reference in New Issue
Block a user