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
+55 -2
View File
@@ -11,6 +11,7 @@ from core.basic.skill_effect_types import (
SkillAttribute,
SkillEffect,
)
from core.character.refs.thief.kunoichi import KunoichiSkillRef as Ref
class KunoichiAttribute(ProfessionAttribute):
@@ -37,6 +38,7 @@ class Skill0(ActiveSkill):
可消耗连击点数发动[终结之击]。\n
"""
name = "翔击"
ref = Ref.RISINGCUT
learnLv = 1
masterLv = 10
maxLv = 20
@@ -71,6 +73,7 @@ class Skill1(ActiveSkill):
"""
name = '投掷苦无'
ref = Ref.SHURIKEN
cellPos = (3,1)
learnLv = 1
masterLv = 60
@@ -108,6 +111,7 @@ class Skill2(PassiveSkill):
"""
name = '苦无掌握'
ref = Ref.EQUIPCHAKRAWEAPON
cellPos = (5,1)
learnLv = 1
masterLv = 1
@@ -130,6 +134,7 @@ class Skill3(ActiveSkill):
使自身向后方小跳并避开敌人的攻击。\n
"""
name = "后跳"
ref = Ref.BACKSTEP
learnLv = 1
masterLv = 1
maxLv = 1
@@ -154,6 +159,7 @@ class Skill4(PassiveSkill):
"""
name = '基础精通'
ref = Ref.BASICATTACKUP
cellPos = (1,0)
learnLv = 1
masterLv = 115
@@ -181,6 +187,7 @@ class Skill5(ActiveSkill):
使自身在倒地状态下迅速起身并采取蹲伏姿势; 蹲伏状态下,自身会进入无敌状态,效果持续一定时间。\n
"""
name = "受身蹲伏"
ref = Ref.QUICKSTANDING
learnLv = 1
masterLv = 1
maxLv = 20
@@ -222,6 +229,7 @@ class Skill6(ActiveSkill):
决斗场中无法使用技能连招。\n
"""
name = "技能连招"
ref = Ref.SKILLPRESETTYPE1
learnLv = 1
masterLv = 1
maxLv = 1
@@ -244,6 +252,7 @@ class Skill7(PassiveSkill):
穿戴的防具越多,效果越强; 可根据转职,增加不同的属性种类及数值。\n
"""
name = "防具精通"
ref = Ref.ARMORMASTERYETC
learnLv = 1
masterLv = 1
maxLv = 1
@@ -267,6 +276,7 @@ class Skill8(ActiveSkill):
攻击力、 攻击范围、 前进速度和前进距离随技能等级增加而增大。\n
"""
name = "切割"
ref = Ref.SLICER
learnLv = 5
masterLv = 1
maxLv = 6
@@ -298,6 +308,7 @@ class Skill9(ActiveSkill):
"""
name = '焰刃'
ref = Ref.FLAMECUT
cellPos = (6,2)
learnLv = 5
masterLv = 60
@@ -332,6 +343,7 @@ class Skill10(ActiveSkill):
在决斗场中,无法强制控制敌人,但是相比其他暗夜使者,可以使敌人进入更长时间的僵直状态。\n
"""
name = "影袭"
ref = Ref.SHADOWCUT
learnLv = 5
masterLv = 60
maxLv = 70
@@ -369,6 +381,7 @@ class Skill11(ActiveSkill):
在决斗场中,地图内球体的存在时间减少。\n
"""
name = "暗魂波"
ref = Ref.DARKSOUL
learnLv = 5
masterLv = 60
maxLv = 70
@@ -411,6 +424,7 @@ class Skill12(ActiveSkill):
可以利用方向键调整移动方向。\n
"""
name = "弧光闪"
ref = Ref.SHININGCUT
learnLv = 10
masterLv = 60
maxLv = 70
@@ -448,6 +462,7 @@ class Skill13(ActiveSkill):
在决斗场中,不适用持续时间减少和霸体护甲效果,施放技能时减少所受伤害。\n
"""
name = "骨盾"
ref = Ref.BONESHIELD
learnLv = 10
masterLv = 5
maxLv = 7
@@ -491,6 +506,7 @@ class Skill14(ActiveSkill):
"""
name = '忍法 : 影分身'
ref = Ref.SKINTAKEOFF
cellPos = (4,3)
learnLv = 10
masterLv = 40
@@ -527,6 +543,7 @@ class Skill15(ActiveSkill):
被扫腿踢命中的敌人将受到无属性物理伤害,且有一定几率进入减速状态。\n
"""
name = "碎踝"
ref = Ref.ANKLECUT
learnLv = 10
masterLv = 60
maxLv = 70
@@ -562,6 +579,7 @@ class Skill16(PassiveSkill):
无法强制中断觉醒技能和跳跃超过一定高度的技能。\n
"""
name = "强化 - 后跳"
ref = Ref.ESCAPEBACKSTEP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -589,6 +607,7 @@ class Skill17(ActiveSkill):
效果持续期间内,再次按技能键可以结束。\n
"""
name = "跃翔"
ref = Ref.JUMPPOWERUP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -618,6 +637,7 @@ class Skill18(ActiveSkill):
连续踢击过程中连续按下攻击键时,会增加连续踢击的速度和命中次数。\n
"""
name = "疾空踏"
ref = Ref.DIVINGARROW
learnLv = 15
masterLv = 60
maxLv = 70
@@ -657,6 +677,7 @@ class Skill19(ActiveSkill):
"""
name = '忍法 : 飞鼠'
ref = Ref.FLYINGSQUIRREL
cellPos = (8,4)
learnLv = 15
masterLv = 60
@@ -697,6 +718,7 @@ class Skill20(ActiveSkill):
若[天诛]背击敌人时,则会追加一次刺击,且最后还会追加一次高伤害的切割攻击。\n
"""
name = "天诛"
ref = Ref.ERASER
learnLv = 15
masterLv = 60
maxLv = 70
@@ -728,6 +750,7 @@ class Skill21(ActiveSkill):
召唤暗属性的诅咒之箭后,向前方敌人发射; 被诅咒之箭命中的敌人会受到暗属性多段魔法伤害,并有一定几率进入诅咒状态。\n
"""
name = "诅咒之箭"
ref = Ref.CURSESPEAR
learnLv = 15
masterLv = 60
maxLv = 70
@@ -765,6 +788,7 @@ class Skill22(PassiveSkill):
"""
name = '忍术精通'
ref = Ref.NINJUTSU
cellPos = (4,4)
learnLv = 15
masterLv = 1
@@ -783,7 +807,7 @@ class Skill22(PassiveSkill):
# 迁移前实现(保留对照):
# associate = [{'data': data1, 'type': '*cdReduce', 'skills': ['火遁·豪火球之术', '忍法 : 幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '火遁·风魔手里剑', '八岐大蛇', '天照']}] # noqa: E501
associate = [
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), skills=['火遁·豪火球之术', '忍法 : 幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '火遁·风魔手里剑', '八岐大蛇', '天照']),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data1)), skills=[Ref.FLAMEBALL, Ref.ILUSIONSHURIKEN, Ref.FLAMETORNADO, Ref.BIGKUNAI, Ref.SKYROADS, Ref.GASOLINEFIRE, Ref.FLAMEFLOWER, Ref.FUUMASHURIKEN, Ref.YAMATAOROCHI, Ref.AMATERAS]),
]
# 火遁·豪火球之术
@@ -798,6 +822,7 @@ class Skill23(ActiveSkill):
"""
name = '火遁·豪火球之术'
ref = Ref.FLAMEBALL
cellPos = (6,4)
learnLv = 15
masterLv = 60
@@ -853,6 +878,7 @@ class Skill24(ActiveSkill):
"""
name = '空跃'
ref = Ref.AERIALJUMP
cellPos = (1,5)
learnLv = 20
masterLv = 1
@@ -877,6 +903,7 @@ class Skill25(ActiveSkill):
"""
name = '火遁·红莲'
ref = Ref.FIREHIDE
cellPos = (6,5)
learnLv = 20
masterLv = 10
@@ -910,6 +937,7 @@ class Skill26(ActiveSkill):
"""
name = '忍法 : 幻影手里剑'
ref = Ref.ILUSIONSHURIKEN
cellPos = (3,5)
learnLv = 20
masterLv = 60
@@ -960,6 +988,7 @@ class Skill27(PassiveSkill):
集中精神,提升物理/魔法暴击率。\n
"""
name = "暴击"
ref = Ref.PHYSICALCRITICALHITUP
learnLv = 20
masterLv = 10
maxLv = 20
@@ -987,6 +1016,7 @@ class Skill28(ActiveSkill):
"""
name = '忍法 : 原木分身术'
ref = Ref.WOODMOVE
cellPos = (7,5)
learnLv = 20
masterLv = 1
@@ -1017,6 +1047,7 @@ class Skill29(ActiveSkill):
"""
name = '火遁·飓风煞'
ref = Ref.FLAMETORNADO
cellPos = (6,6)
learnLv = 25
masterLv = 60
@@ -1069,6 +1100,7 @@ class Skill30(PassiveSkill):
"""
name = '苦无精通'
ref = Ref.SHURIKENIMPROVE
cellPos = (3,6)
learnLv = 25
masterLv = 10
@@ -1107,6 +1139,7 @@ class Skill31(PassiveSkill):
"""
name = '烈焰印记'
ref = Ref.MARKOFFLAME
cellPos = (5,6)
learnLv = 25
masterLv = 10
@@ -1145,6 +1178,7 @@ class Skill32(ActiveSkill):
"""
name = '火遁·螺旋手里剑'
ref = Ref.BIGKUNAI
cellPos = (3,7)
learnLv = 30
masterLv = 60
@@ -1197,6 +1231,7 @@ class Skill33(ActiveSkill):
"""
name = '忍法 : 残影术'
ref = Ref.LEAVETRACE
cellPos = (5,8)
learnLv = 35
masterLv = 1
@@ -1234,6 +1269,7 @@ class Skill34(ActiveSkill):
"""
name = '火遁·炎天道'
ref = Ref.SKYROADS
cellPos = (6,8)
learnLv = 35
masterLv = 60
@@ -1333,6 +1369,7 @@ class Skill35(ActiveSkill):
"""
name = '忍法 : 替身术'
ref = Ref.MIGAWARI
cellPos = (3,8)
learnLv = 35
masterLv = 60
@@ -1397,6 +1434,7 @@ class Skill36(ActiveSkill):
"""
name = '忍法 : 六道轮回'
ref = Ref.DEITIESREBIRTH
cellPos = (5,9)
learnLv = 40
masterLv = 1
@@ -1443,6 +1481,7 @@ class Skill37(ActiveSkill):
"""
name = '火遁·蟾蜍油炎弹'
ref = Ref.GASOLINEFIRE
cellPos = (7,9)
learnLv = 40
masterLv = 60
@@ -1532,6 +1571,7 @@ class Skill38(ActiveSkill):
"""
name = '火遁·炎舞天璇'
ref = Ref.FLAMEFLOWER
cellPos = (5,10)
learnLv = 45
masterLv = 60
@@ -1603,6 +1643,7 @@ class Skill39(PassiveSkill):
"""
name = '暗炎残星'
ref = Ref.KUROKAGENOJUTSU
cellPos = (3,10)
learnLv = 45
masterLv = 1
@@ -1637,6 +1678,7 @@ class Skill40(ActiveSkill):
"""
name = '毕方之印'
ref = Ref.FIREMARK
cellPos = (7,11)
learnLv = 48
masterLv = 40
@@ -1697,6 +1739,7 @@ class Skill41(ActiveSkill):
"""
name = '火遁·冥炎业火阵'
ref = Ref.DOOMFIELD
cellPos = (5,11)
learnLv = 50
masterLv = 40
@@ -1745,6 +1788,7 @@ class Skill42(ActiveSkill):
"""
name = '忍法 : 飞燕手里剑'
ref = Ref.FLYINGSWALLOW
cellPos = (3,12)
learnLv = 60
masterLv = 40
@@ -1852,6 +1896,7 @@ class Skill43(ActiveSkill):
"""
name = '火遁·风魔手里剑'
ref = Ref.FUUMASHURIKEN
cellPos = (7,13)
learnLv = 70
masterLv = 40
@@ -1934,6 +1979,7 @@ class Skill44(PassiveSkill):
"""
name = '八咫镜'
ref = Ref.MIRROROFYATA
cellPos = (8,13)
learnLv = 75
masterLv = 40
@@ -1971,6 +2017,7 @@ class Skill45(ActiveSkill):
"""
name = '八岐大蛇'
ref = Ref.YAMATAOROCHI
cellPos = (4,13)
learnLv = 75
masterLv = 40
@@ -2051,6 +2098,7 @@ class Skill46(PassiveSkill):
"""
name = '八尺琼勾玉'
ref = Ref.KURVEJADE
cellPos = (5,13)
learnLv = 75
masterLv = 1
@@ -2082,6 +2130,7 @@ class Skill47(ActiveSkill):
"""
name = '天照'
ref = Ref.AMATERAS
cellPos = (4,14)
learnLv = 80
masterLv = 40
@@ -2116,7 +2165,7 @@ class Skill47(ActiveSkill):
# 迁移前实现(保留对照):
# associate = [{'data': data4, 'skills': ['天照']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=['天照']),
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4)), skills=[Ref.AMATERAS]),
]
mode = ['普通', '六道']
@@ -2165,6 +2214,7 @@ class Skill48(ActiveSkill):
"""
name = '火炎灼空 : 草雉剑'
ref = Ref.SWORDOFKUSANAGI
cellPos = (7,14)
learnLv = 85
masterLv = 40
@@ -2244,6 +2294,7 @@ class Skill49(PassiveSkill):
"""
name = '三元刹'
ref = Ref.CHAKRATRINITY
cellPos = (5,15)
learnLv = 95
masterLv = 40
@@ -2278,6 +2329,7 @@ class Skill50(ActiveSkill):
"""
name = '勾玉之火 : 镰鼬'
ref = Ref.JADEKAMAITACHI
cellPos = (7,15)
learnLv = 95
masterLv = 40
@@ -2323,6 +2375,7 @@ class Skill51(ActiveSkill):
"""
name = '火源限界·八咫乌'
ref = Ref.YATAGARASU
cellPos = (5,16)
learnLv = 100
masterLv = 40