feat:优化职业技能关联实现

This commit was merged in pull request #11.
This commit is contained in:
2026-10-13 18:19:20 +08:00
parent 927866d366
commit 66ff3ff63b
175 changed files with 14299 additions and 440 deletions
+64 -10
View File
@@ -11,6 +11,7 @@ from core.basic.skill_effect_types import (
SkillAttribute,
SkillEffect,
)
from core.character.refs.thief.necro import NecroSkillRef as Ref
prefix = "thief/necro/cn/skillDetail"
@@ -24,6 +25,7 @@ class Skill0(ActiveSkill):
可消耗连击点数发动[终结之击]。\n
"""
name = "翔击"
ref = Ref.RISINGCUT
learnLv = 1
masterLv = 10
maxLv = 20
@@ -57,6 +59,7 @@ class Skill1(ActiveSkill):
技能等级越高,被苦无命中的敌人的僵直时间越长。\n
"""
name = "投掷苦无"
ref = Ref.SHURIKEN
learnLv = 1
masterLv = 60
maxLv = 70
@@ -90,6 +93,7 @@ class Skill2(ActiveSkill):
使自身向后方小跳并避开敌人的攻击。\n
"""
name = "后跳"
ref = Ref.BACKSTEP
learnLv = 1
masterLv = 1
maxLv = 1
@@ -113,6 +117,7 @@ class Skill3(PassiveSkill):
在决斗场中,增益/减益技能、 被动技能的技能攻击力增加效果对[基础精通]无影响。\n
"""
name = "基础精通"
ref = Ref.BASICATTACKUP
learnLv = 1
masterLv = 115
maxLv = 200
@@ -140,6 +145,7 @@ class Skill4(ActiveSkill):
使自身在倒地状态下迅速起身并采取蹲伏姿势; 蹲伏状态下,自身会进入无敌状态,效果持续一定时间。\n
"""
name = "受身蹲伏"
ref = Ref.QUICKSTANDING
learnLv = 1
masterLv = 1
maxLv = 20
@@ -181,6 +187,7 @@ class Skill5(ActiveSkill):
决斗场中无法使用技能连招。\n
"""
name = "技能连招"
ref = Ref.SKILLPRESETTYPE1
learnLv = 1
masterLv = 1
maxLv = 1
@@ -203,6 +210,7 @@ class Skill6(PassiveSkill):
穿戴的防具越多,效果越强; 可根据转职,增加不同的属性种类及数值。\n
"""
name = "防具精通"
ref = Ref.ARMORMASTERYETC
learnLv = 1
masterLv = 1
maxLv = 1
@@ -226,6 +234,7 @@ class Skill7(ActiveSkill):
攻击力、 攻击范围、 前进速度和前进距离随技能等级增加而增大。\n
"""
name = "切割"
ref = Ref.SLICER
cellPos = (0,2)
learnLv = 5
masterLv = 1
@@ -257,6 +266,7 @@ class Skill8(ActiveSkill):
攻击力、 击飞力、 发动速度和攻击范围随技能等级增加而增大。\n
"""
name = "焰刃"
ref = Ref.FLAMECUT
learnLv = 5
masterLv = 60
maxLv = 70
@@ -290,6 +300,7 @@ class Skill9(ActiveSkill):
在决斗场中,无法强制控制敌人,但是相比其他暗夜使者,可以使敌人进入更长时间的僵直状态。\n
"""
name = "影袭"
ref = Ref.SHADOWCUT
learnLv = 5
masterLv = 60
maxLv = 70
@@ -327,6 +338,7 @@ class Skill10(ActiveSkill):
在决斗场中,地图内球体的存在时间减少。\n
"""
name = "暗魂波"
ref = Ref.DARKSOUL
cellPos = (4,2)
learnLv = 5
masterLv = 60
@@ -374,6 +386,7 @@ class Skill11(ActiveSkill):
可以利用方向键调整移动方向。\n
"""
name = "弧光闪"
ref = Ref.SHININGCUT
learnLv = 10
masterLv = 60
maxLv = 70
@@ -411,6 +424,7 @@ class Skill12(ActiveSkill):
在决斗场中,不适用持续时间减少和霸体护甲效果,施放技能时减少所受伤害。\n
"""
name = "骨盾"
ref = Ref.BONESHIELD
cellPos = (5,3)
learnLv = 10
masterLv = 5
@@ -453,6 +467,7 @@ class Skill13(ActiveSkill):
留在地上的影分身会挑衅一定领域内的敌人; 影分身经过一段时间或受到一定伤害后,会爆炸并使敌人受到无属性魔法伤害。\n
"""
name = "忍法 : 影分身"
ref = Ref.SKINTAKEOFF
learnLv = 10
masterLv = 40
maxLv = 50
@@ -484,6 +499,7 @@ class Skill14(ActiveSkill):
被扫腿踢命中的敌人将受到无属性物理伤害,且有一定几率进入减速状态。\n
"""
name = "碎踝"
ref = Ref.ANKLECUT
learnLv = 10
masterLv = 60
maxLv = 70
@@ -519,6 +535,7 @@ class Skill15(PassiveSkill):
无法强制中断觉醒技能和跳跃超过一定高度的技能。\n
"""
name = "强化 - 后跳"
ref = Ref.ESCAPEBACKSTEP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -546,6 +563,7 @@ class Skill16(ActiveSkill):
效果持续期间内,再次按技能键可以结束。\n
"""
name = "跃翔"
ref = Ref.JUMPPOWERUP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -575,6 +593,7 @@ class Skill17(ActiveSkill):
连续踢击过程中连续按下攻击键时,会增加连续踢击的速度和命中次数。\n
"""
name = "疾空踏"
ref = Ref.DIVINGARROW
learnLv = 15
masterLv = 60
maxLv = 70
@@ -613,6 +632,7 @@ class Skill18(ActiveSkill):
攻击力和爆炸范围随攻击次数递增,最后一击时增幅更大。\n
"""
name = "忍法 : 飞鼠"
ref = Ref.FLYINGSQUIRREL
learnLv = 15
masterLv = 60
maxLv = 70
@@ -653,6 +673,7 @@ class Skill19(ActiveSkill):
若[天诛]背击敌人时,则会追加一次刺击,且最后还会追加一次高伤害的切割攻击。\n
"""
name = "天诛"
ref = Ref.ERASER
learnLv = 15
masterLv = 60
maxLv = 70
@@ -684,6 +705,7 @@ class Skill20(ActiveSkill):
召唤暗属性的诅咒之箭后,向前方敌人发射; 被诅咒之箭命中的敌人会受到暗属性多段魔法伤害,并有一定几率进入诅咒状态。\n
"""
name = "诅咒之箭"
ref = Ref.CURSESPEAR
cellPos = (5,4)
learnLv = 15
masterLv = 60
@@ -724,6 +746,7 @@ class Skill21(ActiveSkill):
艾克尼亚 : 释放出艾克尼亚的灵体,造成大量伤害。\n
"""
name = "降临 : 尼古拉斯"
ref = Ref.SUMMONNICOLAS
cellPos = (2,4)
learnLv = 15
masterLv = 60
@@ -774,6 +797,7 @@ class Skill22(PassiveSkill):
除[千魂祭]、 [亡者君临 : 巴拉克之戮]、 [命运殇痕·摩罗斯之咒]的其他技能的冷却时间减少。 装备手杖时,施放速度增加。\n
"""
name = "手杖精通"
ref = Ref.WANDMASTERY
cellPos = (4,4)
learnLv = 15
masterLv = 1
@@ -793,7 +817,7 @@ class Skill22(PassiveSkill):
# 迁移前实现(保留对照):
# associate = [{"type":"*cdReduce","data":data0,"exceptSkills":["千魂祭","亡者君临 : 巴拉克之戮","命运殇痕·摩罗斯之咒"]}]
associate = [
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['千魂祭', '亡者君临 : 巴拉克之戮', '命运殇痕·摩罗斯之咒']),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=[Ref.PHANTOMSTROM, Ref.BALLACREADVENT, Ref.HORROROFMOROS]),
]
# 驱使枯灵
@@ -811,6 +835,7 @@ class Skill23(ActiveSkill):
在决斗场中,适用单独的生命值和防御力。\n
"""
name = "驱使枯灵"
ref = Ref.NICOLASSUMMONZOMBIE
cellPos = (3,5)
learnLv = 20
masterLv = 60
@@ -882,6 +907,7 @@ class Skill24(ActiveSkill):
在决斗场中,守护模式下的尼古拉斯适用霸体状态。\n
"""
name = "服从"
ref = Ref.NICOLASBEHAVIOR
cellPos = (1,5)
learnLv = 20
masterLv = 10
@@ -912,7 +938,7 @@ class Skill24(ActiveSkill):
# 迁移前实现(保留对照):
# associate = [{"data":data1,"skills":["降临 : 尼古拉斯"]}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['降临 : 尼古拉斯']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=[Ref.SUMMONNICOLAS]),
]
# 暴击
@@ -923,6 +949,7 @@ class Skill25(PassiveSkill):
集中精神,提升物理/魔法暴击率。\n
"""
name = "暴击"
ref = Ref.PHYSICALCRITICALHITUP
learnLv = 20
masterLv = 10
maxLv = 20
@@ -945,6 +972,7 @@ class Skill26(ActiveSkill):
用毁灭之爪攻击敌人。\n
"""
name = "毁灭之爪"
ref = Ref.DARKNAIL
cellPos = (5,6)
learnLv = 25
masterLv = 60
@@ -976,6 +1004,7 @@ class Skill27(ActiveSkill):
增加黑夜术士的技能攻击力。\n
"""
name = "暗黑仪式"
ref = Ref.DARKRITUAL
cellPos = (6,6)
learnLv = 25
masterLv = 10
@@ -1004,6 +1033,7 @@ class Skill28(ActiveSkill):
若施放技能时按住技能键,尼古拉斯会瞬移到死灵术士前方展开蛛丝阵。\n
"""
name = "暗影蛛丝阵"
ref = Ref.NICOLASBLACKAREA
cellPos = (2,6)
learnLv = 25
masterLv = 60
@@ -1037,6 +1067,7 @@ class Skill29(PassiveSkill):
学习后,增加属性攻击力。\n
"""
name = "黑暗之环"
ref = Ref.RINGOFDARKNESS
cellPos = (4,6)
learnLv = 25
masterLv = 10
@@ -1067,6 +1098,7 @@ class Skill30(ActiveSkill):
在决斗场中,夜游魂落地瞬间就会出现百鬼之灵。\n
"""
name = "百鬼夜行"
ref = Ref.DARKLURE
cellPos = (5,7)
learnLv = 30
masterLv = 60
@@ -1110,6 +1142,7 @@ class Skill31(ActiveSkill):
敌人受到伤害时,有一定的几率进入减速和减少跳跃力的减益状态。\n
"""
name = "复苏者之怨"
ref = Ref.BLAMEOFDEAD
cellPos = (3,7)
learnLv = 30
masterLv = 60
@@ -1155,6 +1188,7 @@ class Skill32(PassiveSkill):
记载黑魔法知识的书,增加除[降临 : 尼古拉斯]外的技能攻击力,并增加[复苏者之缚]的复苏者区域范围。\n
"""
name = "黑魔法书 : 亡者之魂"
ref = Ref.GRIMGRIMOIRE
cellPos = (4,8)
learnLv = 30
masterLv = 1
@@ -1173,7 +1207,7 @@ class Skill32(PassiveSkill):
# 迁移前实现(保留对照):
# associate = [{"data":data0,"exceptSkills":["降临 : 尼古拉斯"]},]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['降临 : 尼古拉斯']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=[Ref.SUMMONNICOLAS]),
]
# 降临 : 暴君巴拉克
@@ -1190,6 +1224,7 @@ class Skill33(ActiveSkill):
- 增加物理防御力、 魔法防御力和暗属性抗性,但会降低光属性抗性。\n
"""
name = "降临 : 暴君巴拉克"
ref = Ref.APPORTBALLACRE
cellPos = (7,8)
learnLv = 35
masterLv = 60
@@ -1281,10 +1316,10 @@ class Skill33(ActiveSkill):
# {"type":"+power0","data":data9,"skills":["巴拉克强击"],"ratio":1}
# ]
associate = [
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data6), skills=['暗击拳']),
SkillEffect(attribute=Power(1), operation=Operation.ADD, value=LevelTable(data7), skills=['暗击拳']),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data8), skills=['狂野乱舞']),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data9), skills=['巴拉克强击']),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data6), skills=[Ref.GRABCOLLAR]),
SkillEffect(attribute=Power(1), operation=Operation.ADD, value=LevelTable(data7), skills=[Ref.GRABCOLLAR]),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data8), skills=[Ref.MADNESSBALLACRE]),
SkillEffect(attribute=Power(0), operation=Operation.ADD, value=LevelTable(data9), skills=[Ref.BALLACRESTRONGATTACK]),
]
# 暗击拳
@@ -1296,6 +1331,7 @@ class Skill34(ActiveSkill):
只能在前冲时施放。\n
"""
name = "暗击拳"
ref = Ref.GRABCOLLAR
cellPos = (8,9)
learnLv = 35
masterLv = 1
@@ -1327,6 +1363,7 @@ class Skill35(ActiveSkill):
巴拉克向前方移动,挥剑攻击。 命中时将敌人向后击退。\n
"""
name = "狂野乱舞"
ref = Ref.MADNESSBALLACRE
cellPos = (9,9)
learnLv = 35
masterLv = 1
@@ -1354,6 +1391,7 @@ class Skill36(ActiveSkill):
巴拉克连接特定的行动,用剑碾压敌人。\n
"""
name = "巴拉克强击"
ref = Ref.BALLACRESTRONGATTACK
cellPos = (10,9)
learnLv = 35
masterLv = 1
@@ -1383,6 +1421,7 @@ class Skill37(ActiveSkill):
只有在召唤巴拉克的状态下,才能使用该技能。\n
"""
name = "巴拉克的野心"
ref = Ref.AMBITIONOFBALLACRE
cellPos = (7,9)
learnLv = 40
masterLv = 60
@@ -1442,6 +1481,7 @@ class Skill38(ActiveSkill):
施放吸影暗劲波时,若按住技能指令,则尼古拉斯将瞬移到黑夜术士的前方施放吸影暗劲波。 (在决斗场中,恢复尼古拉斯的生命值,不发动瞬移效果,且无法攻击倒地状态的敌人)\n
"""
name = "吸影暗劲波"
ref = Ref.NICOLASBLACKWAVE
cellPos = (2,9)
learnLv = 40
masterLv = 60
@@ -1498,6 +1538,7 @@ class Skill39(PassiveSkill):
学习[巴拉克的盟约]后,施放[巴拉克的野心]和[巴拉克的愤怒]时,立即发动追加攻击。\n
"""
name = "巴拉克的盟约"
ref = Ref.SACRIFICIALPACT
cellPos = (6,9)
learnLv = 40
masterLv = 1
@@ -1527,6 +1568,7 @@ class Skill40(ActiveSkill):
使用该技能时,无法强制中断当前进行的普通攻击动作。\n
"""
name = "巴拉克的愤怒"
ref = Ref.GUILLOTINE
cellPos = (7,10)
learnLv = 45
masterLv = 60
@@ -1590,6 +1632,7 @@ class Skill41(ActiveSkill):
无法在决斗场使用。\n
"""
name = "降临 : 莱迪娅"
ref = Ref.LIVINGDEAD
cellPos = (4,10)
learnLv = 45
masterLv = 60
@@ -1660,6 +1703,7 @@ class Skill42(PassiveSkill):
巴拉克降临时,使灵魂收割者周围的敌人进入恐惧状态,恐惧状态下的敌人受到的暴击伤害大幅增加。 掌握技能后,由于暴君之力的影响,增加灵魂收割者的暴击率。\n
"""
name = "无形之惧"
ref = Ref.FEAROFBALLACRE
cellPos = (7,11)
learnLv = 48
masterLv = 40
@@ -1695,6 +1739,7 @@ class Skill43(ActiveSkill):
只有在召唤巴拉克的状态下,才能使用该技能。\n
"""
name = "千魂祭"
ref = Ref.PHANTOMSTROM
cellPos = (5,11)
learnLv = 50
masterLv = 40
@@ -1746,6 +1791,7 @@ class Skill44(ActiveSkill):
只有在召唤范围内,敌人才会进入束缚状态; 脱离范围或召唤结束时,束缚状态将解除。\n
"""
name = "复苏者之缚"
ref = Ref.BLAMEOFDEADEX
cellPos = (4,12)
learnLv = 60
masterLv = 40
@@ -1804,6 +1850,7 @@ class Skill45(ActiveSkill):
再次按技能键,怨噬之沼再次向前方发动攻击,最多可以发动3次。\n
"""
name = "怨噬之沼"
ref = Ref.HATEFULGHOST
cellPos = (4,13)
learnLv = 70
masterLv = 40
@@ -1866,6 +1913,7 @@ class Skill46(ActiveSkill):
施放暗黑蛛丝引时,若按住技能键,则尼古拉斯将瞬移到黑夜术士的前方施放暗黑蛛丝引。\n
"""
name = "暗黑蛛丝引"
ref = Ref.NICOLASBLACKARACHNIA
cellPos = (2,13)
learnLv = 75
masterLv = 40
@@ -1925,7 +1973,7 @@ class Skill46(ActiveSkill):
# self.associate = [{"data":[0]+[-50]*self.maxLv,"skills":["降临 : 莱迪娅"]}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=['降临 : 莱迪娅'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=[Ref.LIVINGDEAD], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 亡魂之息
@@ -1937,6 +1985,7 @@ class Skill47(PassiveSkill):
[暗魂波]、 [诅咒之箭]适用单独的攻击力增加量。\n
"""
name = "亡魂之息"
ref = Ref.UNHOLYAURA
cellPos = (7,13)
learnLv = 75
masterLv = 40
@@ -1958,8 +2007,8 @@ class Skill47(PassiveSkill):
# {"data":data1,"skills":["暗魂波","诅咒之箭"]}
# ]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['暗魂波', '诅咒之箭']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['暗魂波', '诅咒之箭']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=[Ref.DARKSOUL, Ref.CURSESPEAR]),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=[Ref.DARKSOUL, Ref.CURSESPEAR]),
]
# 暴君湮灭斩
@@ -1971,6 +2020,7 @@ class Skill48(ActiveSkill):
只能在巴拉克降临的状态下施放,并且被[暴君湮灭斩]命中的敌人有一定几率陷入[无形之惧]。\n
"""
name = "暴君湮灭斩"
ref = Ref.EXECUTIONERSLASH
cellPos = (4,14)
learnLv = 80
masterLv = 40
@@ -2024,6 +2074,7 @@ class Skill49(ActiveSkill):
巴拉克登场后,敌人会感受到[无形之惧]。\n
"""
name = "亡者君临 : 巴拉克之戮"
ref = Ref.BALLACREADVENT
cellPos = (6,14)
learnLv = 85
masterLv = 40
@@ -2058,6 +2109,7 @@ class Skill50(PassiveSkill):
[驱使枯灵] : 由黑夜术士直接召唤。\n
"""
name = "冥河之钥"
ref = Ref.KEYOFACERON
cellPos = (5,15)
learnLv = 95
masterLv = 40
@@ -2090,6 +2142,7 @@ class Skill51(ActiveSkill):
对无法抓取的敌人不适用控制效果。\n
"""
name = "亡者之茧"
ref = Ref.COCONOFUNDEAD
cellPos = (7,15)
learnLv = 95
masterLv = 40
@@ -2127,6 +2180,7 @@ class Skill52(ActiveSkill):
若关联的技能还在冷却中,则无法使用三次觉醒技能。\n
"""
name = "命运殇痕·摩罗斯之咒"
ref = Ref.HORROROFMOROS
cellPos = (5,16)
learnLv = 100
masterLv = 40