# ddc49e9ad1ff72a00b53c6cff5b1e920 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, Constant, Hit, LevelTable, Operation, Percent, ProfessionAttribute, SkillAttribute, SkillEffect, ) from core.character.refs.thief.rogue import RogueSkillRef as Ref class RogueAttribute(ProfessionAttribute): """本职业专用的最终效果属性;字段含义与技能实现保持一致。""" END_POWER = 'endpower' """刺客:终结追击分组的伤害倍率。""" 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 = '翔击' ref = Ref.RISINGCUT 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 = "投掷苦无" ref = Ref.SHURIKEN 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 = "后跳" ref = Ref.BACKSTEP 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 = '基础精通' ref = Ref.BASICATTACKUP 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 = "受身蹲伏" ref = Ref.QUICKSTANDING 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 = "技能连招" ref = Ref.SKILLPRESETTYPE1 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 = "防具精通" ref = Ref.ARMORMASTERYETC 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 = "切割" ref = Ref.SLICER 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 = "焰刃" ref = Ref.FLAMECUT 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 = "影袭" ref = Ref.SHADOWCUT 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 = "暗魂波" ref = Ref.DARKSOUL 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 = '弧光闪' ref = Ref.SHININGCUT 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 = "骨盾" ref = Ref.BONESHIELD 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 = "忍法 : 影分身" ref = Ref.SKINTAKEOFF 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 = '碎踝' ref = Ref.ANKLECUT 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 = "强化 - 后跳" ref = Ref.ESCAPEBACKSTEP 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 = "跃翔" ref = Ref.JUMPPOWERUP 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 = '疾空踏' ref = Ref.DIVINGARROW 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 = "忍法 : 飞鼠" ref = Ref.FLYINGSQUIRREL 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 = "天诛" ref = Ref.ERASER 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 = '终结之击' ref = Ref.HITEND 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'}] associate = [ SkillEffect(attribute=RogueAttribute.END_POWER, value=1 + Percent(LevelTable(data0))), SkillEffect(attribute=RogueAttribute.END_POWER, value=1 + Percent(Constant(0))), ] # 迁移前实现(保留对照): # 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) # 原第二条关联未提供 data,旧引擎默认零表,不进入空表分支;保留原有效倍率。 # 诅咒之箭 # thief/rogue/547ab2b2bd860d3e37355a9cfbc1077c # ddc49e9ad1ff72a00b53c6cff5b1e920/547ab2b2bd860d3e37355a9cfbc1077c class Skill21(ActiveSkill): """ 召唤暗属性的诅咒之箭后,向前方敌人发射; 被诅咒之箭命中的敌人会受到暗属性多段魔法伤害,并有一定几率进入诅咒状态。\n """ name = "诅咒之箭" ref = Ref.CURSESPEAR 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 = '弧光连闪' ref = Ref.SHININGCUTAERIAL 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': ['弧光闪']}] associate = [ SkillEffect(attribute=Hit(0), operation=Operation.ADD, value=LevelTable(data0), skills=[Ref.SHININGCUT]), ] # 迅影 # thief/rogue/1b1cfab062e0768bcc889e33e1f30dbf # ddc49e9ad1ff72a00b53c6cff5b1e920/1b1cfab062e0768bcc889e33e1f30dbf class Skill23(PassiveSkill): """ 使暗星的行动变得更加敏捷,可增加命中率、 回避率、 攻击速度和移动速度,并且可在后跳过程中按攻击键发动跳跃攻击。\n 强制中断后施放的技能命中敌人时,可以获得连击点数。\n 每个技能都存在单次命中收集的攻击点数、 单次施放时可收集的攻击点数上限。 攻击点数每10点可以转换为1点连击点数。\n 学习[暗星武器精通]达到一定等级以上,可以增加攻击点数收集量。\n """ name = '迅影' ref = Ref.SWIFT 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 = '绝心击' ref = Ref.VANDITCUT 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 = '空跃' ref = Ref.AERIALJUMP 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 = '双刃穿刺' ref = Ref.DOUBLEPIERCE 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 = '暗星武器精通' ref = Ref.ROGUEWEAPONRMASTERY 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': ['终结之击']}, # ] associate = [ CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))), SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), except_skills=[]), SkillEffect(attribute=SkillAttribute.MAX_LAYER, operation=Operation.ADD, value=LevelTable(data2), skills=[Ref.HITEND]), ] # 旋舞斩 # thief/rogue/c7bf7ccab413009640e65ca6f2f0263a # ddc49e9ad1ff72a00b53c6cff5b1e920/c7bf7ccab413009640e65ca6f2f0263a class Skill28(ActiveSkill): """ 在原地快速旋转并攻击周围敌人。\n 在地上施放转职技能时,可强制中断当前进行的技能动作,并立即施放[旋舞斩]。\n 可消耗1点连击点数发动[终结之击]。 [终结之击]发动后若存在连击点数,则可以继续发动[终结之击]。\n """ name = '旋舞斩' ref = Ref.SWORDDANCE 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 = "暴击" ref = Ref.PHYSICALCRITICALHITUP 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 = '旋刃' ref = Ref.CHAINSAW 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 = '疾驰' ref = Ref.BREAKINGRUSH 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 = '剑刃风暴' ref = Ref.HURRICANE 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 = '侧步' ref = Ref.SIDESTEP 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 = '暗掠' ref = Ref.SHAKEDOWN 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 向前移动过程中,若再次按技能键或键,则直接向下进行强力攻击并形成冲击波; 此时,可以消耗连击点数发动[终结之击]。\n """ name = '螺旋穿刺' ref = Ref.VERTICALSPIRAL 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 = '雷光刃影' ref = Ref.LIGHTNINGARROW 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 = '疾风乱舞' ref = Ref.SONICASSAULT 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 class Skill38(ActiveSkill): """ 施放[剑刃风暴]时,由风暴中心向外呈环形投掷匕首。\n """ name = '死亡风暴' ref = Ref.DEATHHURRICANE 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.GetSkill(Ref.HURRICANE).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 = '绝境瞬狱袭' ref = Ref.EXCELSTRIKE 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 = '月弧' ref = Ref.MOONARC 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}] associate = [ SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))), ] # 月轮舞 # thief/rogue/c61f5a010370101402b05b21916c2071 # ddc49e9ad1ff72a00b53c6cff5b1e920/c61f5a010370101402b05b21916c2071 class Skill41(ActiveSkill): """ 施放[月轮舞]后,会进入月舞模式并持续一定时间。 在月舞模式下,增加攻击范围,且基本攻击、 前冲攻击和跳跃攻击变成多段攻击; 获得连击点数时,增加攻击速度和移动速度。\n 在月舞模式下,基本攻击、 跳跃攻击和前冲攻击不受[基础精通]的影响。 增加攻击速度和移动速度的增益效果可以重叠一定次数。\n 施放技能动作中,进入无敌状态; 可以在空中施放。\n """ name = '月轮舞' ref = Ref.SILVERSTREAM 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 = '月舞终结' ref = Ref.STREAMCLOSER 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 = '旋刃冲击' ref = Ref.CHAINSAWEX 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 = '陨落螺旋刺' ref = Ref.VERTICALSPIRALEX 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 = '极限追击' ref = Ref.HITBLEED 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'}] associate = [ CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))), ] # 乱空杀 # thief/rogue/5cac3411ccef1af333953e0ded5e942d # ddc49e9ad1ff72a00b53c6cff5b1e920/5cac3411ccef1af333953e0ded5e942d class Skill46(ActiveSkill): """ 以极快的速度掠过敌人进行攻击。\n 下劈后,可以通1过消耗连击点数使用[终结之击]。\n """ name = '乱空杀' ref = Ref.EXOTICRAMPANT 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 = '月影突袭' ref = Ref.DISTRIBUTION 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 = '天渊星狱' ref = Ref.NOVAREMNANT 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) hit0 = 8 # 存在波动 7~8 # 爆炸攻击力 : {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 = '幻灭瞬杀' ref = Ref.VANISHINGILLUSION 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 = '绝命时刻' ref = Ref.MOMENTPANIC 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}] associate = [ SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))), ] # 影·万古星辰 # thief/rogue/ef9d26746effee9199b54541f01b8752 # ddc49e9ad1ff72a00b53c6cff5b1e920/ef9d26746effee9199b54541f01b8752 class Skill51(ActiveSkill): """ 集中精神后,暂时突破身体的极限,将力量强化到极致。 然后,凝聚星辰能量,如光速般移动。\n 移动时,隐夜·暗星以极快的速度对范围内最强的敌人进行多次旋转斩击。\n 可以在地上和空中施放,施放时,连击点数累积到上限。\n 可以在旋转斩击后,消耗连击点数发动[终结之击]。\n [三次觉醒技能]\n 使用三次觉醒技能时,与关联的技能共享冷却时间。\n 若关联的技能还在冷却中,则无法使用三次觉醒技能。\n """ name = '影·万古星辰' ref = Ref.ADESPHANTOM 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__)