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
+56 -3
View File
@@ -13,6 +13,7 @@ from core.basic.skill_effect_types import (
SkillAttribute,
SkillEffect,
)
from core.character.refs.thief.rogue import RogueSkillRef as Ref
class RogueAttribute(ProfessionAttribute):
@@ -64,6 +65,7 @@ class Skill0(ActiveSkill):
"""
name = '翔击'
ref = Ref.RISINGCUT
cellPos = (5,1)
learnLv = 1
masterLv = 10
@@ -98,6 +100,7 @@ class Skill1(ActiveSkill):
技能等级越高,被苦无命中的敌人的僵直时间越长。\n
"""
name = "投掷苦无"
ref = Ref.SHURIKEN
learnLv = 1
masterLv = 60
maxLv = 70
@@ -131,6 +134,7 @@ class Skill2(ActiveSkill):
使自身向后方小跳并避开敌人的攻击。\n
"""
name = "后跳"
ref = Ref.BACKSTEP
learnLv = 1
masterLv = 1
maxLv = 1
@@ -155,6 +159,7 @@ class Skill3(PassiveSkill):
"""
name = '基础精通'
ref = Ref.BASICATTACKUP
cellPos = (1,0)
learnLv = 1
masterLv = 115
@@ -182,6 +187,7 @@ class Skill4(ActiveSkill):
使自身在倒地状态下迅速起身并采取蹲伏姿势; 蹲伏状态下,自身会进入无敌状态,效果持续一定时间。\n
"""
name = "受身蹲伏"
ref = Ref.QUICKSTANDING
learnLv = 1
masterLv = 1
maxLv = 20
@@ -223,6 +229,7 @@ class Skill5(ActiveSkill):
决斗场中无法使用技能连招。\n
"""
name = "技能连招"
ref = Ref.SKILLPRESETTYPE1
learnLv = 1
masterLv = 1
maxLv = 1
@@ -245,6 +252,7 @@ class Skill6(PassiveSkill):
穿戴的防具越多,效果越强; 可根据转职,增加不同的属性种类及数值。\n
"""
name = "防具精通"
ref = Ref.ARMORMASTERYETC
learnLv = 1
masterLv = 1
maxLv = 1
@@ -268,6 +276,7 @@ class Skill7(ActiveSkill):
攻击力、 攻击范围、 前进速度和前进距离随技能等级增加而增大。\n
"""
name = "切割"
ref = Ref.SLICER
learnLv = 5
masterLv = 1
maxLv = 6
@@ -298,6 +307,7 @@ class Skill8(ActiveSkill):
攻击力、 击飞力、 发动速度和攻击范围随技能等级增加而增大。\n
"""
name = "焰刃"
ref = Ref.FLAMECUT
learnLv = 5
masterLv = 60
maxLv = 70
@@ -331,6 +341,7 @@ class Skill9(ActiveSkill):
在决斗场中,无法强制控制敌人,但是相比其他暗夜使者,可以使敌人进入更长时间的僵直状态。\n
"""
name = "影袭"
ref = Ref.SHADOWCUT
learnLv = 5
masterLv = 60
maxLv = 70
@@ -368,6 +379,7 @@ class Skill10(ActiveSkill):
在决斗场中,地图内球体的存在时间减少。\n
"""
name = "暗魂波"
ref = Ref.DARKSOUL
learnLv = 5
masterLv = 60
maxLv = 70
@@ -411,6 +423,7 @@ class Skill11(ActiveSkill):
"""
name = '弧光闪'
ref = Ref.SHININGCUT
cellPos = (5,3)
learnLv = 10
masterLv = 60
@@ -450,6 +463,7 @@ class Skill12(ActiveSkill):
在决斗场中,不适用持续时间减少和霸体护甲效果,施放技能时减少所受伤害。\n
"""
name = "骨盾"
ref = Ref.BONESHIELD
learnLv = 10
masterLv = 5
maxLv = 7
@@ -492,6 +506,7 @@ class Skill13(ActiveSkill):
留在地上的影分身会挑衅一定领域内的敌人; 影分身经过一段时间或受到一定伤害后,会爆炸并使敌人受到无属性魔法伤害。\n
"""
name = "忍法 : 影分身"
ref = Ref.SKINTAKEOFF
learnLv = 10
masterLv = 40
maxLv = 50
@@ -524,6 +539,7 @@ class Skill14(ActiveSkill):
"""
name = '碎踝'
ref = Ref.ANKLECUT
cellPos = (7,3)
learnLv = 10
masterLv = 60
@@ -560,6 +576,7 @@ class Skill15(PassiveSkill):
无法强制中断觉醒技能和跳跃超过一定高度的技能。\n
"""
name = "强化 - 后跳"
ref = Ref.ESCAPEBACKSTEP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -587,6 +604,7 @@ class Skill16(ActiveSkill):
效果持续期间内,再次按技能键可以结束。\n
"""
name = "跃翔"
ref = Ref.JUMPPOWERUP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -617,6 +635,7 @@ class Skill17(ActiveSkill):
"""
name = '疾空踏'
ref = Ref.DIVINGARROW
cellPos = (4,4)
learnLv = 15
masterLv = 60
@@ -658,6 +677,7 @@ class Skill18(ActiveSkill):
攻击力和爆炸范围随攻击次数递增,最后一击时增幅更大。\n
"""
name = "忍法 : 飞鼠"
ref = Ref.FLYINGSQUIRREL
learnLv = 15
masterLv = 60
maxLv = 70
@@ -698,6 +718,7 @@ class Skill19(ActiveSkill):
若[天诛]背击敌人时,则会追加一次刺击,且最后还会追加一次高伤害的切割攻击。\n
"""
name = "天诛"
ref = Ref.ERASER
learnLv = 15
masterLv = 60
maxLv = 70
@@ -731,6 +752,7 @@ class Skill20(ActiveSkill):
"""
name = '终结之击'
ref = Ref.HITEND
cellPos = (6,4)
learnLv = 15
masterLv = 20
@@ -786,6 +808,7 @@ class Skill21(ActiveSkill):
召唤暗属性的诅咒之箭后,向前方敌人发射; 被诅咒之箭命中的敌人会受到暗属性多段魔法伤害,并有一定几率进入诅咒状态。\n
"""
name = "诅咒之箭"
ref = Ref.CURSESPEAR
learnLv = 15
masterLv = 60
maxLv = 70
@@ -819,6 +842,7 @@ class Skill22(PassiveSkill):
"""
name = '弧光连闪'
ref = Ref.SHININGCUTAERIAL
cellPos = (4,6)
learnLv = 15
masterLv = 1
@@ -835,7 +859,7 @@ class Skill22(PassiveSkill):
# 迁移前实现(保留对照):
# associate = [{'type': '+hit0', 'data': data0, 'ratio': 1, 'skills': ['弧光闪']}]
associate = [
SkillEffect(attribute=Hit(0), operation=Operation.ADD, value=LevelTable(data0), skills=['弧光闪']),
SkillEffect(attribute=Hit(0), operation=Operation.ADD, value=LevelTable(data0), skills=[Ref.SHININGCUT]),
]
# 迅影
@@ -850,6 +874,7 @@ class Skill23(PassiveSkill):
"""
name = '迅影'
ref = Ref.SWIFT
cellPos = (0,4)
learnLv = 15
masterLv = 10
@@ -941,6 +966,7 @@ class Skill24(ActiveSkill):
"""
name = '绝心击'
ref = Ref.VANDITCUT
cellPos = (6,5)
learnLv = 20
masterLv = 60
@@ -986,6 +1012,7 @@ class Skill25(ActiveSkill):
"""
name = '空跃'
ref = Ref.AERIALJUMP
cellPos = (10,5)
learnLv = 20
masterLv = 1
@@ -1010,6 +1037,7 @@ class Skill26(ActiveSkill):
"""
name = '双刃穿刺'
ref = Ref.DOUBLEPIERCE
cellPos = (3,5)
learnLv = 20
masterLv = 60
@@ -1055,6 +1083,7 @@ class Skill27(PassiveSkill):
"""
name = '暗星武器精通'
ref = Ref.ROGUEWEAPONRMASTERY
cellPos = (0,5)
learnLv = 20
masterLv = 20
@@ -1100,7 +1129,7 @@ class Skill27(PassiveSkill):
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=['终结之击']),
SkillEffect(attribute=SkillAttribute.MAX_LAYER, operation=Operation.ADD, value=LevelTable(data2), skills=[Ref.HITEND]),
]
# 旋舞斩
@@ -1114,6 +1143,7 @@ class Skill28(ActiveSkill):
"""
name = '旋舞斩'
ref = Ref.SWORDDANCE
cellPos = (8,5)
learnLv = 20
masterLv = 60
@@ -1146,6 +1176,7 @@ class Skill29(PassiveSkill):
集中精神,提升物理/魔法暴击率。\n
"""
name = "暴击"
ref = Ref.PHYSICALCRITICALHITUP
learnLv = 20
masterLv = 10
maxLv = 20
@@ -1171,6 +1202,7 @@ class Skill30(ActiveSkill):
"""
name = '旋刃'
ref = Ref.CHAINSAW
cellPos = (7,6)
learnLv = 25
masterLv = 60
@@ -1216,6 +1248,7 @@ class Skill31(ActiveSkill):
"""
name = '疾驰'
ref = Ref.BREAKINGRUSH
cellPos = (4,7)
learnLv = 30
masterLv = 1
@@ -1242,6 +1275,7 @@ class Skill32(ActiveSkill):
"""
name = '剑刃风暴'
ref = Ref.HURRICANE
cellPos = (8,7)
learnLv = 30
masterLv = 60
@@ -1283,6 +1317,7 @@ class Skill33(ActiveSkill):
"""
name = '侧步'
ref = Ref.SIDESTEP
cellPos = (3,7)
learnLv = 30
masterLv = 1
@@ -1306,6 +1341,7 @@ class Skill34(ActiveSkill):
"""
name = '暗掠'
ref = Ref.SHAKEDOWN
cellPos = (1,7)
learnLv = 30
masterLv = 10
@@ -1334,6 +1370,7 @@ class Skill35(ActiveSkill):
"""
name = '螺旋穿刺'
ref = Ref.VERTICALSPIRAL
cellPos = (3,8)
learnLv = 35
masterLv = 60
@@ -1410,6 +1447,7 @@ class Skill36(ActiveSkill):
"""
name = '雷光刃影'
ref = Ref.LIGHTNINGARROW
cellPos = (4,8)
learnLv = 35
masterLv = 60
@@ -1480,6 +1518,7 @@ class Skill37(ActiveSkill):
"""
name = '疾风乱舞'
ref = Ref.SONICASSAULT
cellPos = (6,9)
learnLv = 40
masterLv = 60
@@ -1547,6 +1586,7 @@ class Skill38(ActiveSkill):
"""
name = '死亡风暴'
ref = Ref.DEATHHURRICANE
cellPos = (8,9)
learnLv = 40
masterLv = 60
@@ -1567,7 +1607,7 @@ class Skill38(ActiveSkill):
data1 = get_data(f'{prefix}/{uuid}', 1)
def getSkillCD(self, mode=None) -> float:
return self.char.GetSkillByName('剑刃风暴').getSkillCD(mode)
return self.char.GetSkill(Ref.HURRICANE).getSkillCD(mode)
def vp_1(self):
"""
@@ -1608,6 +1648,7 @@ class Skill39(ActiveSkill):
"""
name = '绝境瞬狱袭'
ref = Ref.EXCELSTRIKE
cellPos = (5,10)
learnLv = 45
masterLv = 60
@@ -1678,6 +1719,7 @@ class Skill40(PassiveSkill):
"""
name = '月弧'
ref = Ref.MOONARC
cellPos = (6,11)
learnLv = 48
masterLv = 40
@@ -1717,6 +1759,7 @@ class Skill41(ActiveSkill):
"""
name = '月轮舞'
ref = Ref.SILVERSTREAM
cellPos = (5,11)
learnLv = 50
masterLv = 40
@@ -1756,6 +1799,7 @@ class Skill42(ActiveSkill):
"""
name = '月舞终结'
ref = Ref.STREAMCLOSER
cellPos = (5,12)
learnLv = 50
masterLv = 1
@@ -1801,6 +1845,7 @@ class Skill43(ActiveSkill):
"""
name = '旋刃冲击'
ref = Ref.CHAINSAWEX
cellPos = (7,12)
learnLv = 60
masterLv = 40
@@ -1874,6 +1919,7 @@ class Skill44(ActiveSkill):
"""
name = '陨落螺旋刺'
ref = Ref.VERTICALSPIRALEX
cellPos = (3,13)
learnLv = 70
masterLv = 40
@@ -1939,6 +1985,7 @@ class Skill45(PassiveSkill):
"""
name = '极限追击'
ref = Ref.HITBLEED
cellPos = (5,13)
learnLv = 75
masterLv = 40
@@ -1970,6 +2017,7 @@ class Skill46(ActiveSkill):
"""
name = '乱空杀'
ref = Ref.EXOTICRAMPANT
cellPos = (7,13)
learnLv = 75
masterLv = 40
@@ -2034,6 +2082,7 @@ class Skill47(ActiveSkill):
"""
name = '月影突袭'
ref = Ref.DISTRIBUTION
cellPos = (4,14)
learnLv = 80
masterLv = 40
@@ -2099,6 +2148,7 @@ class Skill48(ActiveSkill):
"""
name = '天渊星狱'
ref = Ref.NOVAREMNANT
cellPos = (6,14)
learnLv = 85
masterLv = 40
@@ -2135,6 +2185,7 @@ class Skill49(ActiveSkill):
"""
name = '幻灭瞬杀'
ref = Ref.VANISHINGILLUSION
cellPos = (7,15)
learnLv = 95
masterLv = 40
@@ -2172,6 +2223,7 @@ class Skill50(PassiveSkill):
"""
name = '绝命时刻'
ref = Ref.MOMENTPANIC
cellPos = (5,15)
learnLv = 95
masterLv = 40
@@ -2213,6 +2265,7 @@ class Skill51(ActiveSkill):
"""
name = '影·万古星辰'
ref = Ref.ADESPHANTOM
cellPos = (5,16)
learnLv = 100
masterLv = 40