Files
dcalc/backend/core/character/GF/thief/rogue.py
T
2026-09-30 12:32:03 +08:00

2228 lines
75 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ddc49e9ad1ff72a00b53c6cff5b1e920
from core.basic.skill import PassiveSkill, ActiveSkill, get_data, _get_skill_damage_suffixes, _get_skill_dataplus_suffixes
from core.basic.character import Character
prefix = "thief/rogue/cn/skillDetail"
class PassiveSkill(PassiveSkill):
endpower = 1
class ActiveSkill(ActiveSkill):
endpower = 1
def getSkillData(self, lv: int = 0):
res = 0
for i in _get_skill_damage_suffixes(self.__class__):
data = getattr(self, f'data{i}', [])
plus = getattr(self, f'plus{i}', 0)
if len(data) == 0:
break
if lv < len(data):
hit = getattr(self, f'hit{i}', 0)
power = getattr(self, f'power{i}', 1)
group = getattr(self, f'group{i}', 'normal')
res += hit * power * (data[lv] + plus) * (self.endpower if group == 'end' else 1)
for i in _get_skill_dataplus_suffixes(self.__class__):
data = getattr(self, f'dataplus{i}', 0)
hit = getattr(self, f'hitplus{i}', 1)
power = getattr(self, f'powerplus{i}', 1)
group = getattr(self, f'groupplus{i}', 'normal')
res += hit * power * data * (self.endpower if group == 'end' else 1)
return res
# 翔击
# thief/rogue/3c5604bdbb0240b8f130f59ab40509c3
# ddc49e9ad1ff72a00b53c6cff5b1e920/3c5604bdbb0240b8f130f59ab40509c3
class Skill0(ActiveSkill):
"""
向敌人发出向上的切割攻击,并使敌人浮空。\n
在空中也可以使用[翔击],且按住技能键的时间越长,[翔击]的跳跃高度就越高。\n
可消耗连击点数发动[终结之击]。\n
"""
name = '翔击'
cellPos = (5,1)
learnLv = 1
masterLv = 10
maxLv = 20
position = 5
rangeLv = 3
cd = 2
uuid = '3c5604bdbb0240b8f130f59ab40509c3'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 浮空力比率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力 : {value2}% X {value3}
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 5
data3 = get_data(f'{prefix}/{uuid}', 3)
# [终结之击]浮空力比率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 投掷苦无
# thief/rogue/506e7ed77d517419a6e1c437a2cedb17
# ddc49e9ad1ff72a00b53c6cff5b1e920/506e7ed77d517419a6e1c437a2cedb17
class Skill1(ActiveSkill):
"""
向敌人投掷苦无,使远距离的敌人受到无属性物理伤害。\n
苦无具有略微的诱导性和穿透力,可以在跳跃状态中投掷。\n
技能等级越高,被苦无命中的敌人的僵直时间越长。\n
"""
name = "投掷苦无"
learnLv = 1
masterLv = 60
maxLv = 70
cellPos = (3,1)
position = 3
rangeLv = 2
cd = 2.5
mp = [8, 91]
uuid = "506e7ed77d517419a6e1c437a2cedb17"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 苦无投掷个数 : {value1}个
data1 = get_data(f'{prefix}/{uuid}', 1)
# 僵直时间增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 最大穿透次数 : {value3}次
data3 = get_data(f'{prefix}/{uuid}', 3)
# [范围信息]
# 苦无大小 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 后跳
# thief/rogue/7822d6d52e10964a6755f142c666b494
# ddc49e9ad1ff72a00b53c6cff5b1e920/7822d6d52e10964a6755f142c666b494
class Skill2(ActiveSkill):
"""
使自身向后方小跳并避开敌人的攻击。\n
"""
name = "后跳"
learnLv = 1
masterLv = 1
maxLv = 1
cellPos = (3,0)
position = 3
rangeLv = None
cd = []
uuid = "7822d6d52e10964a6755f142c666b494"
icon = "$common/$uuid"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 基础精通
# thief/rogue/5a56514f35cf0270ae8d6c65f8fefd78
# ddc49e9ad1ff72a00b53c6cff5b1e920/5a56514f35cf0270ae8d6c65f8fefd78
class Skill3(PassiveSkill):
"""
增加基本攻击、 前冲攻击、 跳跃攻击、 [翔击]的攻击力。\n
在决斗场中,增益/减益技能、 被动技能的技能攻击力增加效果对[基础精通]无影响。\n
"""
name = '基础精通'
cellPos = (1,0)
learnLv = 1
masterLv = 115
maxLv = 200
position = 1
rangeLv = 1
uuid = '5a56514f35cf0270ae8d6c65f8fefd78'
icon = '$common/$uuid'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 基本攻击力变化率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 前冲攻击力变化率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 跳跃攻击力变化率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 受身蹲伏
# thief/rogue/ce26c6b69d02a440a81b552bec94f03b
# ddc49e9ad1ff72a00b53c6cff5b1e920/ce26c6b69d02a440a81b552bec94f03b
class Skill4(ActiveSkill):
"""
使自身在倒地状态下迅速起身并采取蹲伏姿势; 蹲伏状态下,自身会进入无敌状态,效果持续一定时间。\n
"""
name = "受身蹲伏"
learnLv = 1
masterLv = 1
maxLv = 20
cellPos = (2,0)
position = 2
rangeLv = None
cd = 5
mp = [1, 1]
uuid = "ce26c6b69d02a440a81b552bec94f03b"
icon = "$common/$uuid"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 蹲伏姿势最短无敌时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 蹲伏姿势最长无敌时间 : {value1}秒
data1 = get_data(f'{prefix}/{uuid}', 1)
# 起身时霸体时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 技能连招
# thief/rogue/10b31c7e8cd2d60b9bcf3b1d3ada4b0a
# ddc49e9ad1ff72a00b53c6cff5b1e920/10b31c7e8cd2d60b9bcf3b1d3ada4b0a
class Skill5(ActiveSkill):
"""
可以最多指定4个角色技能进行排列组合,并通过一个技能栏快捷键施放。\n
点击技能连招下方的图标,可以设置技能顺序和调整初始化时间。\n
- 可将技能连招图标设置到技能栏快捷键中使用。\n
- 仅限在城镇及修炼场中进行设置。\n
按顺序施放添加在连招栏位中的技能。\n
- 具有再输入功能的技能,需结束所有再输入后,再切换至下一个技能。\n
- 若所有技能均在冷却中,则显示冷却时间最短的技能。\n
当前序部署的技能冷却结束后,经过一定时间,将切换至该前序技能。\n
- 切换至前序技能的时间可自行调整。 (0~5秒)\n
- 设置为0秒时,技能冷却结束后将立即切换至前序部署的技能。\n
- 设置为0秒时,可重复使用填充型技能及无冷却时间的技能。\n
包括觉醒技能在内的部分特殊技能将被排除在目标技能列表外,无法添加到技能连招中。\n
决斗场中无法使用技能连招。\n
"""
name = "技能连招"
learnLv = 1
masterLv = 1
maxLv = 1
cellPos = (8,0)
position = 8
rangeLv = None
cd = []
uuid = "10b31c7e8cd2d60b9bcf3b1d3ada4b0a"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 防具精通
# thief/rogue/892ef624d8bf3d7fc045f84825fd6104
# ddc49e9ad1ff72a00b53c6cff5b1e920/892ef624d8bf3d7fc045f84825fd6104
class Skill6(PassiveSkill):
"""
穿戴防具时,可以增加各种属性。\n
穿戴的防具越多,效果越强; 可根据转职,增加不同的属性种类及数值。\n
"""
name = "防具精通"
learnLv = 1
masterLv = 1
maxLv = 1
cellPos = (0,1)
position = 0
rangeLv = None
cd = []
uuid = "892ef624d8bf3d7fc045f84825fd6104"
icon = "$common/$uuid"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 切割
# thief/rogue/9dda3f4a849dba1a288dd65e116860f2
# ddc49e9ad1ff72a00b53c6cff5b1e920/9dda3f4a849dba1a288dd65e116860f2
class Skill7(ActiveSkill):
"""
前冲攻击中输入攻击键时,施放追加斩击。\n
攻击力、 攻击范围、 前进速度和前进距离随技能等级增加而增大。\n
"""
name = "切割"
learnLv = 5
masterLv = 1
maxLv = 6
cellPos = (4,2)
position = 4
rangeLv = 2
cd = 2.5
mp = [6, 56]
uuid = "9dda3f4a849dba1a288dd65e116860f2"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 前冲速度和距离比率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# [范围信息]
# 攻击范围比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 焰刃
# thief/rogue/eb71e1d82d92c7e1d40500a0dcd77aa6
# ddc49e9ad1ff72a00b53c6cff5b1e920/eb71e1d82d92c7e1d40500a0dcd77aa6
class Skill8(ActiveSkill):
"""
火属性近身魔法技能; 聚集火焰的力量对敌人进行强力攻击并把敌人击飞。\n
攻击力、 击飞力、 发动速度和攻击范围随技能等级增加而增大。\n
"""
name = "焰刃"
learnLv = 5
masterLv = 60
maxLv = 70
cellPos = (2,2)
position = 2
rangeLv = 2
cd = 5
mp = [15, 168]
uuid = "eb71e1d82d92c7e1d40500a0dcd77aa6"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 击飞力比率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 发动速度增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# [范围信息]
# 范围 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 影袭
# thief/rogue/c9664191611af31142e052dfaef84530
# ddc49e9ad1ff72a00b53c6cff5b1e920/c9664191611af31142e052dfaef84530
class Skill9(ActiveSkill):
"""
以无视敌人硬直的斩击攻击敌人,使敌人受到无属性物理伤害的同时进入僵直状态; 之后移动到敌人身后,伺机进行下一次攻击。\n
转职为影舞者时,可以强制控制敌人。\n
在决斗场中,无法强制控制敌人,但是相比其他暗夜使者,可以使敌人进入更长时间的僵直状态。\n
"""
name = "影袭"
learnLv = 5
masterLv = 60
maxLv = 70
cellPos = (8,2)
position = 8
rangeLv = 2
cd = 6
mp = [15, 168]
uuid = "c9664191611af31142e052dfaef84530"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 敌人僵直时间 : {value1}秒
data1 = get_data(f'{prefix}/{uuid}', 1)
# - [转职为影舞者时] -
# 僵直时间比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 压制力 (4人队伍) : {value3}秒 ({value4}秒)
data3 = get_data(f'{prefix}/{uuid}', 3)
data4 = get_data(f'{prefix}/{uuid}', 4)
# 暗魂波
# thief/rogue/ade01c1d6afc8a05055225045e89fe49
# ddc49e9ad1ff72a00b53c6cff5b1e920/ade01c1d6afc8a05055225045e89fe49
class Skill10(ActiveSkill):
"""
向敌人发射暗属性球体。\n
球体会自动寻找敌人,发现敌人后对敌人造成伤害,最后球体爆炸。\n
- [转职为黑夜术士后附加效果] -\n
施放[降临 : 暴君巴拉克]的状态下,可以蓄气施放[暗魂波]。\n
蓄气施放[暗魂波]时,球体变大且增加攻击力。\n
在决斗场中,地图内球体的存在时间减少。\n
"""
name = "暗魂波"
learnLv = 5
masterLv = 60
maxLv = 70
cellPos = (6,2)
position = 6
rangeLv = 2
cd = 3.5
mp = [15, 161]
uuid = "ade01c1d6afc8a05055225045e89fe49"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 多段攻击次数上限 : {value0}次
data0 = get_data(f'{prefix}/{uuid}', 0)
# 多段攻击攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 爆炸攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 诱导力比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# [转职为黑夜术士后]
# 蓄气时攻击力增加率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 地图内球体存在时间 : {value5}秒
data5 = get_data(f'{prefix}/{uuid}', 5)
# [冥河之钥]
# 多段攻击力 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 弧光闪
# thief/rogue/0969cd4054d93da07708108c0cc1c4b5
# ddc49e9ad1ff72a00b53c6cff5b1e920/0969cd4054d93da07708108c0cc1c4b5
class Skill11(ActiveSkill):
"""
急速冲向前方的敌人并对其进行闪电般的攻击。\n
按上下方向键可向Y轴移动; 若急速前冲过程中按跳跃键,则可停止移动。\n
暗星可以连续发动两次[弧光闪]; 可在空中施放[弧光闪]; 可强制中断转职技能,并施放[弧光闪]; 可消耗连击点数发动可控制左右方向的[终结之击]; 学习[弧光连闪]后,增加追加攻击的可发动次数。\n
转职为影舞者后,可以强制中断技能并施放[追影步]; 学习[潜行教义]后,可以再次按技能键发动追加攻击。\n
可以利用方向键调整移动方向。\n
"""
name = '弧光闪'
cellPos = (5,3)
learnLv = 10
masterLv = 60
maxLv = 70
position = 5
rangeLv = 2
cd = 6
mp = [18, 190]
uuid = '0969cd4054d93da07708108c0cc1c4b5'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# [终结之击]攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1 # TODO
# 发动速度比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 僵直时间比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
group1 = 'end'
# 骨盾
# thief/rogue/ff171dc487807bb9aa28900ca9a46b41
# ddc49e9ad1ff72a00b53c6cff5b1e920/ff171dc487807bb9aa28900ca9a46b41
class Skill12(ActiveSkill):
"""
在自身或队员周围召唤由骨头碎片形成的骨盾,可以增加被骨盾守护的角色的物理防御力和魔法防御力。\n
该角色被攻击时,骨头碎片会自动飞向敌人,并使敌人受到无属性魔法伤害。\n
每次被攻击时,骨头碎片会逐块消失。 当骨头碎片全部消失时,增加的物理防御力和魔法防御力效果就会消失。\n
[转职为黑夜术士后功能变更]\n
减少骨盾的持续时间。\n
学习后减少所受伤害,施放技能后被攻击一定次数内附加霸体护甲。\n
可以在其他动作中施放,不受冷却时间减少效果的影响。\n
在决斗场中,不适用持续时间减少和霸体护甲效果,施放技能时减少所受伤害。\n
"""
name = "骨盾"
learnLv = 10
masterLv = 5
maxLv = 7
cellPos = (1,3)
position = 1
rangeLv = 3
cd = 15
mp = [20, 400]
uuid = "ff171dc487807bb9aa28900ca9a46b41"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 骨盾持续时间 : {value1}秒
data1 = get_data(f'{prefix}/{uuid}', 1)
# 骨头碎片数量 : {value2}
data2 = get_data(f'{prefix}/{uuid}', 2)
# 魔法防御力增加 : {value3}
data3 = get_data(f'{prefix}/{uuid}', 3)
# 物理防御力增加 : {value4}
data4 = get_data(f'{prefix}/{uuid}', 4)
# 发射骨头碎片冷却时间 : {value5}秒
data5 = get_data(f'{prefix}/{uuid}', 5)
# [转职为黑夜术士后]
# 持续时间减少率 : 85%
# 所受伤害减少率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 霸体护甲生效次数 : {value7}次
data7 = get_data(f'{prefix}/{uuid}', 7)
# 忍法 : 影分身
# thief/rogue/a5fa08f5d509e6ff2ebc68856a470b5a
# ddc49e9ad1ff72a00b53c6cff5b1e920/a5fa08f5d509e6ff2ebc68856a470b5a
class Skill13(ActiveSkill):
"""
把自己的影分身留在原地的同时,向空中瞬移,可用左右方向键控制瞬移地点。\n
被攻击时,也可以使用此技能。\n
留在地上的影分身会挑衅一定领域内的敌人; 影分身经过一段时间或受到一定伤害后,会爆炸并使敌人受到无属性魔法伤害。\n
"""
name = "忍法 : 影分身"
learnLv = 10
masterLv = 40
maxLv = 50
cellPos = (3,3)
position = 3
rangeLv = 3
cd = [30, 29.387755, 28.77551, 28.163265, 27.55102, 26.938776, 26.326531, 25.714286, 25.102041, 24.489796, 23.877551, 23.265306, 22.653061, 22.040816, 21.428571, 20.816327, 20.204082, 19.591837, 18.979592, 18.367347, 17.755102, 17.142857, 16.530612, 15.918367, 15.306122, 14.693878, 14.081633, 13.469388, 12.857143, 12.244898, 11.632653, 11.020408, 10.408163, 9.795918, 9.183673, 8.571429, 7.959184, 7.346939, 6.734694, 6.122449, 5.510204, 4.897959, 4.285714, 3.673469, 3.061224, 2.44898, 1.836735, 1.22449, 0.612245, 0]
mp = [20, 231]
uuid = "a5fa08f5d509e6ff2ebc68856a470b5a"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 分身生命值 : {value1}
data1 = get_data(f'{prefix}/{uuid}', 1)
# 分身持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 挑衅范围 : {value3}px
data3 = get_data(f'{prefix}/{uuid}', 3)
# 碎踝
# thief/rogue/5dc7008b12a459325b548b0715c6b73c
# ddc49e9ad1ff72a00b53c6cff5b1e920/5dc7008b12a459325b548b0715c6b73c
class Skill14(ActiveSkill):
"""
用强力的扫腿踢攻击敌人的脚踝。\n
被扫腿踢命中的敌人将受到无属性物理伤害,且有一定几率进入减速状态。\n
"""
name = '碎踝'
cellPos = (7,3)
learnLv = 10
masterLv = 60
maxLv = 70
position = 7
rangeLv = 2
cd = 7
mp = [15, 168]
uuid = '5dc7008b12a459325b548b0715c6b73c'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 减速几率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 减速持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 移动速度减少率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 攻击速度减少率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 强化 - 后跳
# thief/rogue/2b340542e776818b78f3212af184bd6b
# ddc49e9ad1ff72a00b53c6cff5b1e920/2b340542e776818b78f3212af184bd6b
class Skill15(PassiveSkill):
"""
施放技能期间、 被击或倒地的状态下,可以施放无敌状态的[后跳]。\n
该能力适用与[后跳]不同的冷却时间,并且不受冷却时间减少效果的影响。\n
根据施放情况的不同(强制中断技能和被敌人攻击),进入不同冷却时间。\n
无法强制中断觉醒技能和跳跃超过一定高度的技能。\n
"""
name = "强化 - 后跳"
learnLv = 10
masterLv = 1
maxLv = 1
cellPos = (4,0)
position = 4
rangeLv = None
cd = 30
uuid = "2b340542e776818b78f3212af184bd6b"
icon = "$common/$uuid"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 强制中断技能时的冷却时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 被击或倒地期间施放时的冷却时间 : {value1}秒
data1 = get_data(f'{prefix}/{uuid}', 1)
# 跃翔
# thief/rogue/1fea5a626f15230237946a11a9d11582
# ddc49e9ad1ff72a00b53c6cff5b1e920/1fea5a626f15230237946a11a9d11582
class Skill16(ActiveSkill):
"""
增加自身20%的跳跃力,效果持续一定时间。\n
效果持续期间内,再次按技能键可以结束。\n
"""
name = "跃翔"
learnLv = 10
masterLv = 1
maxLv = 1
cellPos = (6,0)
position = 6
rangeLv = 3
cd = 5
mp = [13, 13]
uuid = "1fea5a626f15230237946a11a9d11582"
icon = "$common/$uuid"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 持续时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 疾空踏
# thief/rogue/717f1e2104fe4b796f800352fa143ecc
# ddc49e9ad1ff72a00b53c6cff5b1e920/717f1e2104fe4b796f800352fa143ecc
class Skill17(ActiveSkill):
"""
从空中快速下降并向敌人发出连续踢击。\n
连续踢击结束前,输入Z键可以发动最后一击。\n
只能在空中使用,且在下落过程中有敌人时才能施放连续踢击。\n
终结攻击会引发冲击波,被命中的敌人会被击飞。\n
连续踢击过程中连续按下攻击键时,会增加连续踢击的速度和命中次数。\n
"""
name = '疾空踏'
cellPos = (4,4)
learnLv = 15
masterLv = 60
maxLv = 70
position = 4
rangeLv = 2
cd = 6.5
mp = [22, 235]
uuid = '717f1e2104fe4b796f800352fa143ecc'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 连续踢击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 13
# 连续踢击次数 : {value1}次~{value2}次
data1 = get_data(f'{prefix}/{uuid}', 1)
data2 = get_data(f'{prefix}/{uuid}', 2)
# 最后一击攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1
# 冲击波攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 1
# 最后一击浮空力比率 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
# [范围信息]
# 冲击波范围比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 忍法 : 飞鼠
# thief/rogue/4655101518604f874721b3cc249aae10
# ddc49e9ad1ff72a00b53c6cff5b1e920/4655101518604f874721b3cc249aae10
class Skill18(ActiveSkill):
"""
快速跳向敌人并引爆炸弹,给予敌人火属性魔法伤害的同时使敌人浮空。\n
该技能可以在地上和空中使用,且命中敌人后可以进行追击。\n
攻击力和爆炸范围随攻击次数递增,最后一击时增幅更大。\n
"""
name = "忍法 : 飞鼠"
learnLv = 15
masterLv = 60
maxLv = 70
cellPos = (2,4)
position = 2
rangeLv = 2
cd = 10
mp = [10, 84]
uuid = "4655101518604f874721b3cc249aae10"
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 使用次数上限 : {value1}次
data1 = get_data(f'{prefix}/{uuid}', 1)
# 最后一击浮空力比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 每次追击时攻击力增加率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 最后一击时攻击力增加率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 每次追击时爆炸范围增加率 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
# 最后一击爆炸范围增加率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# [范围信息]
# 爆炸范围比率 : {value7}%
data7 = get_data(f'{prefix}/{uuid}', 7)
# 天诛
# thief/rogue/f2fb27162beb0b87a7cb9af7900e95f2
# ddc49e9ad1ff72a00b53c6cff5b1e920/f2fb27162beb0b87a7cb9af7900e95f2
class Skill19(ActiveSkill):
"""
抓取一名敌人后向其头部进行刺击,被刺击命中的敌人将受到无属性伤害。\n
若[天诛]背击敌人时,则会追加一次刺击,且最后还会追加一次高伤害的切割攻击。\n
"""
name = "天诛"
learnLv = 15
masterLv = 60
maxLv = 70
cellPos = (7,4)
position = 7
rangeLv = 2
cd = 7
mp = [28, 308]
uuid = "f2fb27162beb0b87a7cb9af7900e95f2"
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 刺击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 刺击次数 : {value1}次
data1 = get_data(f'{prefix}/{uuid}', 1)
# 切割攻击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 压制力 (4人队伍) : {value3}秒 ({value4}秒)
data3 = get_data(f'{prefix}/{uuid}', 3)
data4 = get_data(f'{prefix}/{uuid}', 4)
# 终结之击
# thief/rogue/cfacda0647b9a0f595df2c2aad30c18d
# ddc49e9ad1ff72a00b53c6cff5b1e920/cfacda0647b9a0f595df2c2aad30c18d
class Skill20(ActiveSkill):
"""
[终结之击]只能在有连击点数的情况下施放,施放后将消耗所有连击点数并发动追加攻击。\n
消耗的连击点数越多,该技能给予敌人的伤害就越大。\n
"""
name = '终结之击'
cellPos = (6,4)
learnLv = 15
masterLv = 20
maxLv = 30
position = 6
rangeLv = 2
mp = [18, 56]
uuid = 'cfacda0647b9a0f595df2c2aad30c18d'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# [终结之击]攻击力比率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# - 消耗连击点数后,攻击力增加比率 -
# 1点 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 2点 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 3点 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 4点 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 5点 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
# 6点 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 7点 : {value7}%
data7 = get_data(f'{prefix}/{uuid}', 7)
_maxLayer = 6
associate = [{'type': '*endpower', 'data': data0}, {'type': '*endpower'}]
@property
def maxLayer(self):
return self._maxLayer
@maxLayer.setter
def maxLayer(self, value):
if self._maxLayer != value:
skills = self.char.GetSkillNames('all', True)
if self.lv > 0:
raito = (getattr(self, f'data{int(value)}')[self.lv] - 100) / (getattr(self, f'data{int(self.maxLayer)}')[self.lv] - 100)
for name in skills:
skill = self.char.GetSkillByName(name)
if skill.type == 'active' and skill.damage:
skill.endpower *= raito
self._maxLayer = value
def update_skill_attribute(self, skill, type, old, new, data, ratio=100, weapon=(), weapon_type=None, weapon_options=()):
if len(data) == 0:
data = getattr(self, f'data{int(self.maxLayer)}')
data = [i - 100 if i > 100 else 0 for i in data]
super().update_skill_attribute(skill, type, old, new, data, ratio, weapon, weapon_type, weapon_options)
# 诅咒之箭
# thief/rogue/547ab2b2bd860d3e37355a9cfbc1077c
# ddc49e9ad1ff72a00b53c6cff5b1e920/547ab2b2bd860d3e37355a9cfbc1077c
class Skill21(ActiveSkill):
"""
召唤暗属性的诅咒之箭后,向前方敌人发射; 被诅咒之箭命中的敌人会受到暗属性多段魔法伤害,并有一定几率进入诅咒状态。\n
"""
name = "诅咒之箭"
learnLv = 15
masterLv = 60
maxLv = 70
cellPos = (10,4)
position = 10
rangeLv = 2
cd = 10
mp = [22, 235]
uuid = "547ab2b2bd860d3e37355a9cfbc1077c"
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 发射数量 : {value1}发
data1 = get_data(f'{prefix}/{uuid}', 1)
# 诅咒几率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 诅咒持续时间 : {value3}秒
data3 = get_data(f'{prefix}/{uuid}', 3)
# 多段攻击次数上限 : {value4}
data4 = get_data(f'{prefix}/{uuid}', 4)
# 弧光连闪
# thief/rogue/4b2c90ec226fd40e967875aa5eabefb2
# ddc49e9ad1ff72a00b53c6cff5b1e920/4b2c90ec226fd40e967875aa5eabefb2
class Skill22(PassiveSkill):
"""
增加[弧光闪]的追加攻击发动次数。\n
"""
name = '弧光连闪'
cellPos = (4,6)
learnLv = 15
masterLv = 1
maxLv = 10
position = 4
rangeLv = 2
uuid = '4b2c90ec226fd40e967875aa5eabefb2'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# [弧光闪]追加攻击发动次数增加 : {value0}
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{'type': '+hit0', 'data': data0, 'ratio': 1, 'skills': ['弧光闪']}]
# 迅影
# thief/rogue/1b1cfab062e0768bcc889e33e1f30dbf
# ddc49e9ad1ff72a00b53c6cff5b1e920/1b1cfab062e0768bcc889e33e1f30dbf
class Skill23(PassiveSkill):
"""
使暗星的行动变得更加敏捷,可增加命中率、 回避率、 攻击速度和移动速度,并且可在后跳过程中按攻击键发动跳跃攻击。\n
强制中断后施放的技能命中敌人时,可以获得连击点数。\n
每个技能都存在单次命中收集的攻击点数、 单次施放时可收集的攻击点数上限。 攻击点数每10点可以转换为1点连击点数。\n
学习[暗星武器精通]达到一定等级以上,可以增加攻击点数收集量。\n
"""
name = '迅影'
cellPos = (0,4)
learnLv = 15
masterLv = 10
maxLv = 20
position = 0
rangeLv = 5
uuid = '1b1cfab062e0768bcc889e33e1f30dbf'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 攻击速度增加 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 移动速度增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 命中率增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 回避率增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# [每个技能命中敌人时可收集的攻击点数 / 攻击点数收集上限]
# 基本攻击 : {value4}P / {value5}P
data4 = get_data(f'{prefix}/{uuid}', 4)
data5 = get_data(f'{prefix}/{uuid}', 5)
# 前冲攻击 : {value6}P / {value7}P
data6 = get_data(f'{prefix}/{uuid}', 6)
data7 = get_data(f'{prefix}/{uuid}', 7)
# 跳跃攻击 : {value8}P / {value9}P
data8 = get_data(f'{prefix}/{uuid}', 8)
data9 = get_data(f'{prefix}/{uuid}', 9)
# [翔击] : {value10}P / {value11}P
data10 = get_data(f'{prefix}/{uuid}', 10)
data11 = get_data(f'{prefix}/{uuid}', 11)
# [弧光闪] : {value12}P / {value13}P
data12 = get_data(f'{prefix}/{uuid}', 12)
data13 = get_data(f'{prefix}/{uuid}', 13)
# [双刃穿刺] : {value14}P / {value15}P
data14 = get_data(f'{prefix}/{uuid}', 14)
data15 = get_data(f'{prefix}/{uuid}', 15)
# [绝心击] : {value16}P / {value17}P
data16 = get_data(f'{prefix}/{uuid}', 16)
data17 = get_data(f'{prefix}/{uuid}', 17)
# [旋舞斩] : {value18}P / {value19}P
data18 = get_data(f'{prefix}/{uuid}', 18)
data19 = get_data(f'{prefix}/{uuid}', 19)
# [旋刃] : {value20}P / {value21}P
data20 = get_data(f'{prefix}/{uuid}', 20)
data21 = get_data(f'{prefix}/{uuid}', 21)
# [剑刃风暴] : {value22}P / {value23}P
data22 = get_data(f'{prefix}/{uuid}', 22)
data23 = get_data(f'{prefix}/{uuid}', 23)
# [雷光刃影] : {value24}P / {value25}P
data24 = get_data(f'{prefix}/{uuid}', 24)
data25 = get_data(f'{prefix}/{uuid}', 25)
# [螺旋穿刺] : {value26}P / {value27}P
data26 = get_data(f'{prefix}/{uuid}', 26)
data27 = get_data(f'{prefix}/{uuid}', 27)
# [疾风乱舞] : {value28}P / {value29}P
data28 = get_data(f'{prefix}/{uuid}', 28)
data29 = get_data(f'{prefix}/{uuid}', 29)
# [绝境瞬狱袭] : {value30}P / {value31}P
data30 = get_data(f'{prefix}/{uuid}', 30)
data31 = get_data(f'{prefix}/{uuid}', 31)
# [旋刃冲击] : {value32}P / {value33}P
data32 = get_data(f'{prefix}/{uuid}', 32)
data33 = get_data(f'{prefix}/{uuid}', 33)
# [陨落螺旋刺] : {value34}P / {value35}P
data34 = get_data(f'{prefix}/{uuid}', 34)
data35 = get_data(f'{prefix}/{uuid}', 35)
# [乱空杀] : {value36}P / {value37}P
data36 = get_data(f'{prefix}/{uuid}', 36)
data37 = get_data(f'{prefix}/{uuid}', 37)
# [月影突袭] : {value38}P / {value39}P
data38 = get_data(f'{prefix}/{uuid}', 38)
data39 = get_data(f'{prefix}/{uuid}', 39)
# [天渊星狱] : {value40}P / {value41}P
data40 = get_data(f'{prefix}/{uuid}', 40)
data41 = get_data(f'{prefix}/{uuid}', 41)
# [幻灭瞬杀] : {value42}P / {value43}P
data42 = get_data(f'{prefix}/{uuid}', 42)
data43 = get_data(f'{prefix}/{uuid}', 43)
# 绝心击
# thief/rogue/4224f9b0b8c7c903e9a1e0f9d9f6d04d
# ddc49e9ad1ff72a00b53c6cff5b1e920/4224f9b0b8c7c903e9a1e0f9d9f6d04d
class Skill24(ActiveSkill):
"""
快速迈进并向前方敌人进行斩击,被斩击命中的敌人将受到伤害,并有一定几率进入眩晕状态。\n
斩击后,可消耗连击点数发动[终结之击]。\n
"""
name = '绝心击'
cellPos = (6,5)
learnLv = 20
masterLv = 60
maxLv = 70
position = 6
rangeLv = 2
cd = 7
mp = [25, 273]
uuid = '4224f9b0b8c7c903e9a1e0f9d9f6d04d'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 斩击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 眩晕几率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 眩晕持续时间 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 踢击攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1 # TODO
# 切割攻击力 : {value4}% X {value5}
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 3
data5 = get_data(f'{prefix}/{uuid}', 5)
# 压制力 (4人队伍) : {value6}秒 ({value7}秒)
data6 = get_data(f'{prefix}/{uuid}', 6)
data7 = get_data(f'{prefix}/{uuid}', 7)
# [范围信息]
# 范围比率 : {value8}%
data8 = get_data(f'{prefix}/{uuid}', 8)
group3 = 'end'
group4 = 'end'
# 空跃
# thief/rogue/d085127b0edd719782bd618d5688f4a1
# ddc49e9ad1ff72a00b53c6cff5b1e920/d085127b0edd719782bd618d5688f4a1
class Skill25(ActiveSkill):
"""
在跳跃中进行再一次跳跃。\n
"""
name = '空跃'
cellPos = (10,5)
learnLv = 20
masterLv = 1
maxLv = 1
position = 10
rangeLv = 1
uuid = 'd085127b0edd719782bd618d5688f4a1'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 双刃穿刺
# thief/rogue/8ee0099656df08a0b39225f8a21d514b
# ddc49e9ad1ff72a00b53c6cff5b1e920/8ee0099656df08a0b39225f8a21d514b
class Skill26(ActiveSkill):
"""
用双手把武器插入敌人身体后,再用脚踢进行攻击。\n
对可抓取的敌人命中刺击时,进入无敌状态并强控敌人。\n
对无法抓取的敌人不适用控制效果。\n
可消耗连击点数发动[终结之击]。\n
"""
name = '双刃穿刺'
cellPos = (3,5)
learnLv = 20
masterLv = 60
maxLv = 70
position = 3
rangeLv = 2
cd = 7
mp = [47, 518]
uuid = '8ee0099656df08a0b39225f8a21d514b'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 双手刺击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 第1次踢击攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1
# 第2次踢击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# [终结之击]攻击力比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1 # TODO
# 周围敌人的伤害比率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# [范围信息]
# 范围比率 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
group3 = 'end'
# 暗星武器精通
# thief/rogue/da6e37c1e3f0e8867f70007d89c239ff
# ddc49e9ad1ff72a00b53c6cff5b1e920/da6e37c1e3f0e8867f70007d89c239ff
class Skill27(PassiveSkill):
"""
学习后,增加物理攻击力,并减少转职技能的冷却时间,同时增加[终结之击]攻击力。 技能达到15级以上时,提升每个技能命中敌人时可收集的攻击点数和攻击点数收集上限,并且在装备匕首和双剑时获得额外效果。\n
[装备匕首时]\n
使用匕首系武器时,增加攻击速度、 回避率、 命中率。\n
[装备双剑时]\n
使用双剑系武器时,增加敌人的僵直率、 回避率、 命中率。\n
"""
name = '暗星武器精通'
cellPos = (0,5)
learnLv = 20
masterLv = 20
maxLv = 30
position = 0
rangeLv = 4
uuid = 'da6e37c1e3f0e8867f70007d89c239ff'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 物理攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 冷却时间减少率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 每次攻击可收集的攻击点数比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 每次攻击可收集的攻击点数最大值比率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# [装备匕首时]
# 攻击速度增加 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
# 回避率增加 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 命中率增加 : {value7}%.
data7 = get_data(f'{prefix}/{uuid}', 7)
# [装备双剑时]
# 敌人僵直率增加 : {value8}%
data8 = get_data(f'{prefix}/{uuid}', 8)
# 回避率增加 : {value9}%
data9 = get_data(f'{prefix}/{uuid}', 9)
# 命中率增加 : {value10}%
data10 = get_data(f'{prefix}/{uuid}', 10)
associate = [
{'type': '$*PAtkP', 'data': data0},
{'type': '*cdReduce', 'data': data1, 'exceptSkills': []},
{'type': '+maxLayer', 'data': data2, 'ratio': 1, 'skills': ['终结追击']},
]
# 旋舞斩
# thief/rogue/c7bf7ccab413009640e65ca6f2f0263a
# ddc49e9ad1ff72a00b53c6cff5b1e920/c7bf7ccab413009640e65ca6f2f0263a
class Skill28(ActiveSkill):
"""
在原地快速旋转并攻击周围敌人。\n
在地上施放转职技能时,可强制中断当前进行的技能动作,并立即施放[旋舞斩]。\n
可消耗1点连击点数发动[终结之击]。 [终结之击]发动后若存在连击点数,则可以继续发动[终结之击]。\n
"""
name = '旋舞斩'
cellPos = (8,5)
learnLv = 20
masterLv = 60
maxLv = 70
position = 8
rangeLv = 2
cd = 7
mp = [25, 273]
uuid = 'c7bf7ccab413009640e65ca6f2f0263a'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 回旋斩击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# [终结之击]攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1 # TODO
# [范围信息]
# 范围比率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
group1 = 'end'
# 暴击
# thief/rogue/fc1262c19f3d0477ee8eda47b8db8696
# ddc49e9ad1ff72a00b53c6cff5b1e920/fc1262c19f3d0477ee8eda47b8db8696
class Skill29(PassiveSkill):
"""
集中精神,提升物理/魔法暴击率。\n
"""
name = "暴击"
learnLv = 20
masterLv = 10
maxLv = 20
cellPos = (5,0)
position = 5
rangeLv = 3
uuid = "fc1262c19f3d0477ee8eda47b8db8696"
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
# 物理/魔法暴击率增加 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 旋刃
# thief/rogue/01384bbfc346775d1267fa0bc4ca605f
# ddc49e9ad1ff72a00b53c6cff5b1e920/01384bbfc346775d1267fa0bc4ca605f
class Skill30(ActiveSkill):
"""
旋转刀锋,以极快速度切割敌人。\n
再次输入技能键或Z键,可以发动第二击和第三击横扫攻击,第三击横扫后消耗连击点数发动[终结之击]。\n
学习[绝命时刻]后,施放时将以极快的速度一次性发动第一击、 第二击、 第三击横扫攻击。\n
"""
name = '旋刃'
cellPos = (7,6)
learnLv = 25
masterLv = 60
maxLv = 70
position = 7
rangeLv = 2
cd = 8
mp = [45, 469]
uuid = '01384bbfc346775d1267fa0bc4ca605f'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 第1次斩击攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 3
data1 = get_data(f'{prefix}/{uuid}', 1)
# 第2次斩击攻击力 : {value2}% X {value3}
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 3
data3 = get_data(f'{prefix}/{uuid}', 3)
# 第3次斩击攻击力 : {value4}% X {value5}
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 3
data5 = get_data(f'{prefix}/{uuid}', 5)
# [终结之击]攻击力 : {value6}% X {value7}
data6 = get_data(f'{prefix}/{uuid}', 6)
hit6 = 3
data7 = get_data(f'{prefix}/{uuid}', 7)
# [范围信息]
# 范围比率 : {value8}%
data8 = get_data(f'{prefix}/{uuid}', 8)
group6 = 'end'
# 疾驰
# thief/rogue/42c82812f86ff6704ae9952a2e6093a4
# ddc49e9ad1ff72a00b53c6cff5b1e920/42c82812f86ff6704ae9952a2e6093a4
class Skill31(ActiveSkill):
"""
用极快的速度向前方冲刺。\n
施放技能时,若按上/下方向键,则可以控制冲刺方向; 移动时,进入无敌状态。\n
可以强制中断冲刺并立即施放基本攻击、 跳跃以及技能; 可以强制中断当前进行的技能动作,并立即施放[疾驰]。\n
"""
name = '疾驰'
cellPos = (4,7)
learnLv = 30
masterLv = 1
maxLv = 1
position = 4
rangeLv = 2
cd = 5
mp = [10, 10]
uuid = '42c82812f86ff6704ae9952a2e6093a4'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 剑刃风暴
# thief/rogue/3829c15bf5f520c13998a3479ba0ce7b
# ddc49e9ad1ff72a00b53c6cff5b1e920/3829c15bf5f520c13998a3479ba0ce7b
class Skill32(ActiveSkill):
"""
快速旋转切割周围的敌人。\n
旋转时,可以用方向键控制移动方向,在空中也可以发动。\n
旋转攻击中可以消耗连击点数发动[终结之击]; 发动[终结之击]时,可以垂直上升并使敌人浮空。\n
学习[绝命时刻]后,增加移动速度和吸附力,减少多段攻击间隔。\n
"""
name = '剑刃风暴'
cellPos = (8,7)
learnLv = 30
masterLv = 60
maxLv = 70
position = 8
rangeLv = 2
cd = 10
mp = [65, 699]
uuid = '3829c15bf5f520c13998a3479ba0ce7b'
hasVP = False
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 旋转攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 10
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# 旋转时移动速度 : {value3}
data3 = get_data(f'{prefix}/{uuid}', 3)
# 压制力 (4人队伍) : {value4}秒 ({value5}秒)
data4 = get_data(f'{prefix}/{uuid}', 4)
data5 = get_data(f'{prefix}/{uuid}', 5)
# [范围信息]
# 范围比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
group2 = 'end'
# 侧步
# thief/rogue/e49e57b2e8fbeceb0a2c56a0c63fe6c5
# ddc49e9ad1ff72a00b53c6cff5b1e920/e49e57b2e8fbeceb0a2c56a0c63fe6c5
class Skill33(ActiveSkill):
"""
向Y轴侧跳移动,按上下方向键可以控制移动方向。 若不按方向键,则默认向下方移动。\n
可以强制中断转职技能并立即施放[侧步]。 施放时可以按攻击键进行跳跃攻击。\n
在决斗场中施放[侧步]时无法进行跳跃攻击。\n
"""
name = '侧步'
cellPos = (3,7)
learnLv = 30
masterLv = 1
maxLv = 1
position = 3
rangeLv = 1
cd = 1.2
mp = [3, 3]
uuid = 'e49e57b2e8fbeceb0a2c56a0c63fe6c5'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 暗掠
# thief/rogue/b501ae53638d33a32351904f31cb6aa3
# ddc49e9ad1ff72a00b53c6cff5b1e920/b501ae53638d33a32351904f31cb6aa3
class Skill34(ActiveSkill):
"""
增加暴击伤害,效果持续一定时间。\n
"""
name = '暗掠'
cellPos = (1,7)
learnLv = 30
masterLv = 10
maxLv = 20
position = 1
rangeLv = 2
cd = 5
uuid = 'b501ae53638d33a32351904f31cb6aa3'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 增益效果持续时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 暴击伤害增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 螺旋穿刺
# thief/rogue/bb34e8854a93fd250347a1c64119f7ab
# ddc49e9ad1ff72a00b53c6cff5b1e920/bb34e8854a93fd250347a1c64119f7ab
class Skill35(ActiveSkill):
"""
向前移动并使自身急速旋转攻击敌人。\n
若在地面上施放该技能,则以抛物线跳跃并旋转; 若在空中施放该技能,则水平前进并发动旋转攻击。\n
向前移动过程中,若再次按技能键或<Z>键,则直接向下进行强力攻击并形成冲击波; 此时,可以消耗连击点数发动[终结之击]。\n
"""
name = '螺旋穿刺'
cellPos = (3,8)
learnLv = 35
masterLv = 60
maxLv = 70
position = 3
rangeLv = 2
cube = 1
cd = 15
mp = [128, 1072]
uuid = 'bb34e8854a93fd250347a1c64119f7ab'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 移动距离 : {value0}px
data0 = get_data(f'{prefix}/{uuid}', 0)
# 旋转攻击力 : {value1}% X {value2}
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 6
data2 = get_data(f'{prefix}/{uuid}', 2)
# 向下强击攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1 # TODO
# 冲击波攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# [终结之击]攻击力 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
hit5 = 1 # TODO
# [范围信息]
# 范围比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
group5 = 'end'
def vp_1(self):
"""
[螺旋穿刺]\n
基本冷却时间变更为30秒\n
- 总攻击力 +100%\n
施放过程中回避率 +50%\n
可以通过按左、 右方向键调整[终结之击]发动方向\n
"""
self.cd = 30
self.skillRation *= 2
...
def vp_2(self):
"""
[螺旋穿刺]\n
攻击范围及移动距离 +60%\n
地面施放时,会跳跃后发动技能\n
旋转攻击强化\n
- 不穿透敌人\n
- 多段攻击次数 +200%\n
- 多段攻击间隔 -67%\n
[终结之击]变更\n
- 旋转攻击中再次按技能键无法发动下劈\n
- 旋转攻击中可以发动[终结之击]\n
- [终结之击]变更为下劈攻击\n
- 下劈攻击及下劈冲击波攻击力合算至[终结之击]\n
总攻击力相同\n
"""
...
# 雷光刃影
# thief/rogue/e4c354a89c337310aeb7041d5e742828
# ddc49e9ad1ff72a00b53c6cff5b1e920/e4c354a89c337310aeb7041d5e742828
class Skill36(ActiveSkill):
"""
抓取敌人后,对其进行连续地突刺攻击,最后再向下猛踢敌人。\n
向下猛踢碰到地面时,生成冲击波; 抓取成功时,进入无敌状态,并使敌人进入强制控制状态。\n
攻击无法抓取的敌人时,将直接进行向下猛踢,增加向下猛踢攻击力且不会控制敌人。 向下猛踢后,可消耗连击点数发动[终结之击]。\n
在决斗场中[终结之击]无法使敌人浮空。\n
"""
name = '雷光刃影'
cellPos = (4,8)
learnLv = 35
masterLv = 60
maxLv = 70
position = 4
rangeLv = 2
cube = 1
cd = 15
mp = [91, 763]
uuid = 'e4c354a89c337310aeb7041d5e742828'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 突刺攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 0
data1 = get_data(f'{prefix}/{uuid}', 1)
# 踢击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 0
# 踢击攻击力 (无法抓取的敌人) : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1
# 踢击冲击波攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 1
# [终结之击]攻击力 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
hit5 = 1
# [范围信息]
# 范围比率 (除踢击冲击波) : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
# 踢击冲击波范围比率 : {value7}%
data7 = get_data(f'{prefix}/{uuid}', 7)
group5 = 'end'
def vp_1(self):
"""
[雷光刃影]\n
固定以对无法抓取目标的形态发动\n
- 踢击攻击下落速度 +40%\n
[月轮舞]\n
使用[雷光刃影]的[终结之击]时,攻击速度和移动速度增加量增加20%,效果持续15秒\n
"""
...
def vp_2(self):
"""
[雷光刃影]\n
吸附周围敌人并抓取\n
攻击范围 +25%\n
抓取失败时冷却时间变更为2秒\n
"""
...
# 疾风乱舞
# thief/rogue/1dad88963abdc96b091fcab185a8820d
# ddc49e9ad1ff72a00b53c6cff5b1e920/1dad88963abdc96b091fcab185a8820d
class Skill37(ActiveSkill):
"""
快速接近前方敌人,并对该敌人进行狂风般的乱舞攻击。\n
突进过程中,按上下方向键可以调整移动方向,成功抓住后进入无敌状态并强控敌人。\n
乱舞攻击时,若按跳跃键,则会向周围的其他敌人瞬移,并对其进行乱舞攻击。此时,会在之前乱舞攻击过的敌人身上留下一个分身; 分身会在一定时间内持续攻击该敌人后消失。\n
后踢后,可消耗连击点数发动[终结之击]。\n
在决斗场中,强制中断基本攻击和技能动作发动时,无法沿Y轴移动。\n
"""
name = '疾风乱舞'
cellPos = (6,9)
learnLv = 40
masterLv = 60
maxLv = 70
position = 6
rangeLv = 2
cube = 1
cd = 25
mp = [164, 1376]
uuid = '1dad88963abdc96b091fcab185a8820d'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 乱舞攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 11
data1 = get_data(f'{prefix}/{uuid}', 1)
# 分身攻击力 : {value2}% X {value3}
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 4
data3 = get_data(f'{prefix}/{uuid}', 3)
# 最后一击攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 1
# [终结之击]攻击力 : {value5}%
data5 = get_data(f'{prefix}/{uuid}', 5)
hit5 = 1
# 瞬移距离上限 : {value6}px
data6 = get_data(f'{prefix}/{uuid}', 6)
# 压制力 (4人队伍) : {value7}秒 ({value8}秒)
data7 = get_data(f'{prefix}/{uuid}', 7)
data8 = get_data(f'{prefix}/{uuid}', 8)
# [范围信息]
# 范围比率 : {value9}%
data9 = get_data(f'{prefix}/{uuid}', 9)
group5 = 'end'
def vp_1(self):
"""
[疾风乱舞]\n
移动功能强化\n
施放时追踪最近的敌人\n
- 突进距离上限 +50%\n
- 瞬移范围 +100%\n
"""
...
def vp_2(self):
"""
[疾风乱舞]\n
突进过程中,进入无敌状态\n
抓取成功时,为600px范围内的所有敌人赋予与暗星的攻击相同的瞬移分身\n
无法通过跳跃键瞬移\n
"""
...
# 死亡风暴
# thief/rogue/c77a417c43de80c4ce32c1ed405d174a
# ddc49e9ad1ff72a00b53c6cff5b1e920/c77a417c43de80c4ce32c1ed405d174a
# TOCHEK-STONE:基础类:Stone 为 PassiveSkill,dcalc 为 ActiveSkill;确认面板、关联与计算行为是否等价。
class Skill38(ActiveSkill):
"""
施放[剑刃风暴]时,由风暴中心向外呈环形投掷匕首。\n
"""
name = '死亡风暴'
cellPos = (8,9)
learnLv = 40
masterLv = 60
maxLv = 70
position = 8
type = 'passive'
rangeLv = 3
uuid = 'c77a417c43de80c4ce32c1ed405d174a'
hasVP = True
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 匕首攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 30
# 投掷匕首数量 : {value1}个
data1 = get_data(f'{prefix}/{uuid}', 1)
def getSkillCD(self, mode=None) -> float:
return self.char.GetSkillByName('剑刃风暴').getSkillCD(mode)
def vp_1(self):
"""
[死亡风暴]\n
向600px范围内最强敌人投掷匕首\n
匕首发射数 -33%\n
- 总攻击力相同\n
[剑刃风暴]\n
每次攻击获得的连击点数 +100%\n
施放[终结之击]时,剩余旋转攻击力合算至[终结之击]攻击力\n
- 学习[陨落风暴]后,合算[陨落螺旋刺]的旋转攻击力\n
"""
...
def vp_2(self):
"""
[死亡风暴]\n
不再投掷匕首,而是在风暴内部生成刀刃飓风\n
- 刀刃飓风多段攻击次数 : 10次\n
- 总攻击力相同\n
[剑刃风暴]\n
- 攻击范围及移动距离 +30%\n
聚集敌人功能强化\n
- 吸附力 +200%\n
- 可以吸附霸体状态的敌人\n
"""
...
# 绝境瞬狱袭
# thief/rogue/128b9ddef2262f40723deae4407bdb42
# ddc49e9ad1ff72a00b53c6cff5b1e920/128b9ddef2262f40723deae4407bdb42
class Skill39(ActiveSkill):
"""
前冲突击使敌人浮空,然后发动连续攻击。\n
前冲和连续攻击过程中,自身进入无敌状态,前冲攻击没有命中敌人时,不会发动连续攻击。\n
可以在地上和空中发动,第3击后可消耗连击点数发动[终结之击]。\n
在决斗场中,无法在空中发动。\n
"""
name = '绝境瞬狱袭'
cellPos = (5,10)
learnLv = 45
masterLv = 60
maxLv = 70
position = 5
rangeLv = 2
cube = 2
cd = 45
mp = [311, 2612]
uuid = '128b9ddef2262f40723deae4407bdb42'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 前冲突击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 第1击攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1
# 第2击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# 第3击攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1
# [终结之击]攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 1
# 压制力 (4人队伍) : {value5}秒 ({value6}秒)
data5 = get_data(f'{prefix}/{uuid}', 5)
data6 = get_data(f'{prefix}/{uuid}', 6)
# [范围信息]
# 范围比率 : {value7}%
data7 = get_data(f'{prefix}/{uuid}', 7)
group4 = 'end'
def vp_1(self):
"""
[绝境瞬狱袭]\n
移动功能强化\n
- 前冲攻击范围 +60%\n
- 前冲攻击时可以Y轴移动\n
施放速度 +20%\n
"""
...
def vp_2(self):
"""
[绝境瞬狱袭]\n
变更为可填充2次的技能\n
- 首次施放后10秒内可以施放第二次\n
- 删除第2击、 第3击攻击\n
- 前冲、 第1击攻击后发动[终结之击]\n
- 发动[终结之击]时命中率增加20%,效果持续10秒\n
- 包括[终结之击]在内的所有攻击可以获得最大连击点数\n
- 总攻击力相同\n
"""
...
# 月弧
# thief/rogue/de3fea2d65c597f4d55c70a02b97fc79
# ddc49e9ad1ff72a00b53c6cff5b1e920/de3fea2d65c597f4d55c70a02b97fc79
class Skill40(PassiveSkill):
"""
获得连击点数时,增加命中率、 回避率、 物理暴击率和暴击伤害,效果持续一定时间。\n
"""
name = '月弧'
cellPos = (6,11)
learnLv = 48
masterLv = 40
maxLv = 50
position = 6
rangeLv = 3
uuid = 'de3fea2d65c597f4d55c70a02b97fc79'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 持续时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 暴击伤害增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 物理暴击率增加 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 回避率增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 命中率增加 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
associate = [{'data': data1}]
# 月轮舞
# thief/rogue/c61f5a010370101402b05b21916c2071
# ddc49e9ad1ff72a00b53c6cff5b1e920/c61f5a010370101402b05b21916c2071
class Skill41(ActiveSkill):
"""
施放[月轮舞]后,会进入月舞模式并持续一定时间。 在月舞模式下,增加攻击范围,且基本攻击、 前冲攻击和跳跃攻击变成多段攻击; 获得连击点数时,增加攻击速度和移动速度。\n
在月舞模式下,基本攻击、 跳跃攻击和前冲攻击不受[基础精通]的影响。 增加攻击速度和移动速度的增益效果可以重叠一定次数。\n
施放技能动作中,进入无敌状态; 可以在空中施放。\n
"""
name = '月轮舞'
cellPos = (5,11)
learnLv = 50
masterLv = 40
maxLv = 50
position = 5
rangeLv = 5
cube = 7
cd = 135
mp = [850, 7000]
uuid = 'c61f5a010370101402b05b21916c2071'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
damage = False
bind = False
# 月舞模式持续时间 : {value0}秒
data0 = get_data(f'{prefix}/{uuid}', 0)
# 普通/跳跃/前冲攻击次数增加 : {value1}次
data1 = get_data(f'{prefix}/{uuid}', 1)
# 效果重叠次数上限 : {value2}次
data2 = get_data(f'{prefix}/{uuid}', 2)
# 每次重叠攻击速度增加 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
# 每次重叠移动速度增加 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
# 月舞终结
# thief/rogue/dec8961c485edb02036ba00c789010f0
# ddc49e9ad1ff72a00b53c6cff5b1e920/dec8961c485edb02036ba00c789010f0
class Skill42(ActiveSkill):
"""
可以在[月轮舞]增益状态下施放,施放时发动强力连续斩击。\n
共发动4次斩击,1~3次斩击命中时,分身进行突进攻击后发动终结斩击。\n
被1~3段斩击命中的敌人会被强制控制并吸附过来,并且可以在空中发动。\n
学习后,技能等级补正为与[月轮舞]相同。\n
"""
name = '月舞终结'
cellPos = (5,12)
learnLv = 50
masterLv = 1
maxLv = 50
position = 5
rangeLv = 5
cd = 135
mp = [850, 7000]
uuid = 'dec8961c485edb02036ba00c789010f0'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 第1次斩击攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 1
# 第2次斩击攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1
# 第3次斩击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# 分身突进攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1
# 最后斩击攻击力 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 1
# 压制力 (4人队伍) : {value5}秒 ({value6}秒)
data5 = get_data(f'{prefix}/{uuid}', 5)
data6 = get_data(f'{prefix}/{uuid}', 6)
# 旋刃冲击
# thief/rogue/6a1d1f08a6572be420bb3a256c44c015
# ddc49e9ad1ff72a00b53c6cff5b1e920/6a1d1f08a6572be420bb3a256c44c015
class Skill43(ActiveSkill):
"""
向前方投掷2个旋转刀刃。\n
旋转刀刃在一定时间内聚拢敌人,造成多段伤害。\n
投掷出的旋转刀刃在触碰到敌人时停止移动,若没有触碰到敌人,则会移动至最大距离。\n
旋转刀刃持续期间,可消耗连击点数发动[终结之击]。 发动[终结之击]时,快速移动到第一次投掷的旋转刀刃的位置,对敌人造成多段伤害。 多次施放技能后发动[终结之击]时,移动到存在的旋转刀刃中最先投掷的刀锋位置。\n
在持续时间内,即使发动[终结之击],旋转刀刃也不会消失。\n
"""
name = '旋刃冲击'
cellPos = (7,12)
learnLv = 60
masterLv = 40
maxLv = 50
position = 7
rangeLv = 2
cube = 2
cd = 30
mp = [400, 1120]
uuid = '6a1d1f08a6572be420bb3a256c44c015'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 旋转刀刃攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 30
# 旋转刀刃持续时间 : {value1}秒
data1 = get_data(f'{prefix}/{uuid}', 1)
# 旋转刀刃多段攻击间隔 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 旋转刀刃投掷距离上限 : {value3}px
data3 = get_data(f'{prefix}/{uuid}', 3)
# [终结之击]攻击力 : {value4}% X {value5}
data4 = get_data(f'{prefix}/{uuid}', 4)
hit4 = 5
data5 = get_data(f'{prefix}/{uuid}', 5)
# [范围信息]
# 范围比率 : {value6}%
data6 = get_data(f'{prefix}/{uuid}', 6)
group4 = 'end'
def vp_1(self):
"""
[旋刃冲击]\n
[双刃穿刺]命中时自动施放[旋刃冲击],并适用以下效果\n
- 可施放[旋刃冲击]时发动\n
- [双刃穿刺]的第2、 3次攻击生成旋转刀刃\n
- 旋转刀刃不吸附敌人\n
[终结之击]攻击强化\n
- 施放速度 +80%\n
- 多段攻击次数 -80%\n
- 总攻击力相同\n
[双刃穿刺]\n
攻击范围 +25%\n
"""
...
def vp_2(self):
"""
[旋刃冲击]\n
范围 +70%\n
旋转刀刃强化\n
- 每次攻击获得的连击点数 +100%\n
- 可获得的连击点数上限 +1100%\n
- 持续时间 +100%\n
- 总攻击力相同\n
[终结之击]攻击时,获得最大连击点数\n
"""
...
# 陨落螺旋刺
# thief/rogue/38612d8f2561edc2eb68d5057a837bfa
# ddc49e9ad1ff72a00b53c6cff5b1e920/38612d8f2561edc2eb68d5057a837bfa
class Skill44(ActiveSkill):
"""
跳跃后,以极快的速度旋转并冲向地面,落地时生成冲击波。\n
在地面发动时,可以使用方向键调整落地位置; 在空中发动时,立即向地面发动旋转攻击。\n
可消耗连击点数发动[终结之击]。\n
"""
name = '陨落螺旋刺'
cellPos = (3,13)
learnLv = 70
masterLv = 40
maxLv = 50
position = 3
rangeLv = 2
cube = 3
cd = 50
mp = [800, 1680]
uuid = '38612d8f2561edc2eb68d5057a837bfa'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 旋转攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 3
# 冲击波攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# [范围信息]
# 范围比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
group2 = 'end'
def vp_1(self):
"""
[陨落螺旋刺]\n
处于可以施放状态下施放[剑刃风暴]时,自动发动[陨落螺旋刺],并适用以下效果\n
- 删除冲击波攻击\n
- 旋转攻击多段攻击次数上限 +7\n
- [剑刃风暴]旋转攻击时,附加[陨落螺旋刺]旋转攻击力\n
- [剑刃风暴]终结之击攻击时,附加[陨落螺旋刺]终结之击攻击力\n
- 以施放[剑刃风暴]终结之击时消耗的连击点数为标准,适用[陨落螺旋刺]终结之击攻击力\n
- 总攻击力相同\n
"""
...
def vp_2(self):
"""
[陨落螺旋刺]\n
攻击范围 +40%\n
降落速度 +300%\n
- 增加落地后可发动[终结之击]的时间\n
- 地面施放时跳跃高度 +50%\n
删除旋转攻击\n
- 每次攻击获得的连击点数 +300%\n
- 总攻击力相同\n
"""
...
# 极限追击
# thief/rogue/0c3a468aee1f7ce06bf91eb3319518c1
# ddc49e9ad1ff72a00b53c6cff5b1e920/0c3a468aee1f7ce06bf91eb3319518c1
class Skill45(PassiveSkill):
"""
将身体能力强化到极致,增加物理攻击力和连击点数上限,并可以强制中断技能后施放。\n
强制中断技能的功能可以在已学的技能栏中,通过鼠标右击进行开启/关闭切换。\n
"""
name = '极限追击'
cellPos = (5,13)
learnLv = 75
masterLv = 40
maxLv = 50
position = 5
rangeLv = 3
uuid = '0c3a468aee1f7ce06bf91eb3319518c1'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 物理攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# 连击点数上限增加量 : {value1}个
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data0, 'type': '$*PAtkP'}]
# 乱空杀
# thief/rogue/5cac3411ccef1af333953e0ded5e942d
# ddc49e9ad1ff72a00b53c6cff5b1e920/5cac3411ccef1af333953e0ded5e942d
class Skill46(ActiveSkill):
"""
以极快的速度掠过敌人进行攻击。\n
下劈后,可以通1过消耗连击点数使用[终结之击]。\n
"""
name = '乱空杀'
cellPos = (7,13)
learnLv = 75
masterLv = 40
maxLv = 50
position = 7
rangeLv = 3
cube = 3
cd = 30
mp = [580, 4500]
uuid = '5cac3411ccef1af333953e0ded5e942d'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 连续斩击攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 6
data1 = get_data(f'{prefix}/{uuid}', 1)
# 向下斩击攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
# [终结之击]攻击力 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
hit3 = 1
# [范围信息]
# 范围比率 : {value4}%
data4 = get_data(f'{prefix}/{uuid}', 4)
group3 = 'end'
def vp_1(self):
"""
[乱空杀]\n
施放以下技能过程中发动时,由分身施放\n
- 适用技能 : [疾驰]、 [旋刃]、 [疾风乱舞]、 [月影突袭]\n
- 分身施放时,无法获得[乱空杀]的连击点数,按最大连击点数适用[终结之击]攻击力\n
- 基本冷却时间变更为24.9秒\n
- 总攻击力 -17%\n
"""
self.cd = 24.9
self.skillRation *= 1 - 0.17
...
def vp_2(self):
"""
[乱空杀]\n
攻击范围 +45%\n
快速地攻击前后方\n
- 连续斩击多段攻击次数 -50%\n
- 每次攻击获得的连击点数 +67%\n
- 总攻击力相同\n
"""
...
# 月影突袭
# thief/rogue/e1daab884dd07fc9e70d08b83d1790eb
# ddc49e9ad1ff72a00b53c6cff5b1e920/e1daab884dd07fc9e70d08b83d1790eb
class Skill47(ActiveSkill):
"""
向前方突进,用肉眼看不见的速度多次斩击。\n
斩击可以将敌人聚集到中央。 多段斩击后,可消耗连击点数发动[终结之击]。\n
"""
name = '月影突袭'
cellPos = (4,14)
learnLv = 80
masterLv = 40
maxLv = 50
position = 4
rangeLv = 2
cube = 5
cd = 50
mp = [800, 6000]
uuid = 'e1daab884dd07fc9e70d08b83d1790eb'
hasVP = True
hasUP = True
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
vps = get_data(f'{prefix}/{uuid}', "vps") # noqa: E501
# 多段斩击攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 10
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1 # TODO
# [范围信息]
# 范围比率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
group2 = 'end'
def vp_1(self):
"""
[月影突袭]\n
可以在空中施放\n
多段攻击强化\n
- 施放速度 +25%\n
- 使敌人进入混乱异常状态,效果持续3秒\n
[终结之击]攻击强化\n
- 施放速度 +25%\n
- 多段攻击后可以立即发动\n
"""
...
def vp_2(self):
"""
[月影突袭]\n
攻击范围 +35%\n
多段攻击可以吸附霸体和无法抓取类型的敌人\n
变更为可填充2次的技能\n
- 每次填充冷却时间 : 25秒\n
- 单次攻击力 -50%\n
"""
self.cd = 25
self.skillRation *= 1 - 0.5
...
# 天渊星狱
# thief/rogue/002cbdd9bfd0f0b970451ae8d48d029e
# ddc49e9ad1ff72a00b53c6cff5b1e920/002cbdd9bfd0f0b970451ae8d48d029e
class Skill48(ActiveSkill):
"""
化为一束星光快速造成多段攻击,随后从空中坠下引起爆炸。\n
吸附多段攻击命中的敌人,可以在空中施放。\n
对无法抓取的敌人不适用控制效果。\n
从空中坠下后,可消耗连击点数发动[终结之击]。\n
"""
name = '天渊星狱'
cellPos = (6,14)
learnLv = 85
masterLv = 40
maxLv = 50
position = 6
rangeLv = 5
cube = 10
cd = 170
mp = [2500, 8000]
uuid = '002cbdd9bfd0f0b970451ae8d48d029e'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 星光多段攻击力 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# TOCHEK-STONE:静态 hit:Stone 为 8,dcalc 为 7;尚需排除形态、VP 与倍率补偿。
hit0 = 7
# 爆炸攻击力 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
hit1 = 1
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
group2 = 'end'
# 幻灭瞬杀
# thief/rogue/9376d04c476cd41d60ed1974ca69ab95
# ddc49e9ad1ff72a00b53c6cff5b1e920/9376d04c476cd41d60ed1974ca69ab95
class Skill49(ActiveSkill):
"""
瞬间释放超越身体极限的力量,向前方突进。 突进时,隐夜·暗星如残影攻击般快速攻击敌人。\n
前方范围内存在敌人时才能施放该技能,可以在地上和空中发动。\n
突进后,可以消耗连击点数发动[终结之击]。\n
"""
name = '幻灭瞬杀'
cellPos = (7,15)
learnLv = 95
masterLv = 40
maxLv = 50
position = 7
rangeLv = 2
cube = 7
cd = 60
mp = [960, 7200]
uuid = '9376d04c476cd41d60ed1974ca69ab95'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 突进残影攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 5
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
group2 = 'end'
# 绝命时刻
# thief/rogue/5536486eaf9b13c9a8283447cb5e77ab
# ddc49e9ad1ff72a00b53c6cff5b1e920/5536486eaf9b13c9a8283447cb5e77ab
class Skill50(PassiveSkill):
"""
激发超越身体极限的力量,获得强大的攻击力和敌人无法感知的行动速度。\n
学习后,增加基本攻击力和转职技能攻击力,[旋刃]和[剑刃风暴]技能附加特殊效果。\n
[旋刃]\n
以极快的速度发动第1击、第2击和第3击。\n
[剑刃风暴]\n
增加移动速度和吸附力。\n
"""
name = '绝命时刻'
cellPos = (5,15)
learnLv = 95
masterLv = 40
maxLv = 50
position = 5
rangeLv = 3
uuid = '5536486eaf9b13c9a8283447cb5e77ab'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 基本攻击力和转职技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
# [剑刃风暴]
# 移动速度增加率 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
# 吸附力增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
# 多段攻击间隔减少率 : {value3}%
data3 = get_data(f'{prefix}/{uuid}', 3)
associate = [{'data': data0}]
# 影·万古星辰
# thief/rogue/ef9d26746effee9199b54541f01b8752
# ddc49e9ad1ff72a00b53c6cff5b1e920/ef9d26746effee9199b54541f01b8752
class Skill51(ActiveSkill):
"""
集中精神后,暂时突破身体的极限,将力量强化到极致。 然后,凝聚星辰能量,如光速般移动。\n
移动时,隐夜·暗星以极快的速度对范围内最强的敌人进行多次旋转斩击。\n
可以在地上和空中施放,施放时,连击点数累积到上限。\n
可以在旋转斩击后,消耗连击点数发动[终结之击]。\n
[三次觉醒技能]\n
使用三次觉醒技能时,与关联的技能共享冷却时间。\n
若关联的技能还在冷却中,则无法使用三次觉醒技能。\n
"""
name = '影·万古星辰'
cellPos = (5,16)
learnLv = 100
masterLv = 40
maxLv = 50
position = 5
rangeLv = 5
cube = 15
cd = 270
mp = [4028, 9667]
uuid = 'ef9d26746effee9199b54541f01b8752'
hasVP = False
hasUP = False
custom = get_data(f'{prefix}/{uuid}', 'custom') # noqa: E501
# 旋转斩击攻击力 : {value0}% X {value1}
data0 = get_data(f'{prefix}/{uuid}', 0)
hit0 = 13
data1 = get_data(f'{prefix}/{uuid}', 1)
# [终结之击]攻击力 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
hit2 = 1
group2 = 'end'
class classChange(Character):
def __init__(self, equVersion):
self.name = 'rogue'
self.nameCN = '隐夜·刺客'
self.role = 'thief'
self.角色 = '暗夜使者'
self.职业 = '刺客'
self.jobId = 'ddc49e9ad1ff72a00b53c6cff5b1e920'
self.jobGrowId = '37495b941da3b1661bc900e68ef3b2c6'
self.武器选项 = ['匕首', '双剑', '手杖']
self.输出类型选项 = ['物理百分比']
self.输出类型 = '物理百分比'
self.防具精通属性 = ['力量']
self.防具类型 = '皮甲'
self.buff = 1.84
super().__init__(equVersion, __name__)