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
+48 -5
View File
@@ -14,6 +14,7 @@ from core.basic.skill_effect_types import (
SkillAttribute,
SkillEffect,
)
from core.character.refs.gunblader.hitman import HitmanSkillRef as Ref
prefix = "gunblader/hitman/cn/skillDetail"
@@ -27,6 +28,7 @@ class Skill0(ActiveSkill):
浮空力随技能等级的增加而增加。\n
"""
name = "弦月斩"
ref = Ref.CRESCENTMOONSLASH
learnLv = 1
masterLv = 10
maxLv = 20
@@ -56,6 +58,7 @@ class Skill1(ActiveSkill):
"""
name = '穿透射击'
ref = Ref.ANGLESHOT
cellPos = (2,1)
learnLv = 1
masterLv = 60
@@ -91,6 +94,7 @@ class Skill2(PassiveSkill):
"""
name = '幽灵近战术'
ref = Ref.SPECTER5
cellPos = (6,1)
learnLv = 1
masterLv = 1
@@ -111,6 +115,7 @@ class Skill3(ActiveSkill):
使自身向后方小跳并避开敌人的攻击。\n
"""
name = "后跳"
ref = Ref.BACKSTEP
learnLv = 1
masterLv = 1
maxLv = 1
@@ -135,6 +140,7 @@ class Skill4(PassiveSkill):
"""
name = '基础精通'
ref = Ref.BASICATTACKUP
cellPos = (1,0)
learnLv = 1
masterLv = 115
@@ -162,6 +168,7 @@ class Skill5(ActiveSkill):
使自身在倒地状态下迅速起身并采取蹲伏姿势; 蹲伏状态下,自身会进入无敌状态,效果持续一定时间。\n
"""
name = "受身蹲伏"
ref = Ref.QUICKSTANDING
learnLv = 1
masterLv = 1
maxLv = 20
@@ -203,6 +210,7 @@ class Skill6(ActiveSkill):
决斗场中无法使用技能连招。\n
"""
name = "技能连招"
ref = Ref.SKILLPRESETTYPE1
learnLv = 1
masterLv = 1
maxLv = 1
@@ -225,6 +233,7 @@ class Skill7(PassiveSkill):
穿戴的防具越多,效果越强; 可根据转职,增加不同的属性种类及数值。\n
"""
name = "防具精通"
ref = Ref.ARMORMASTERYETC
learnLv = 1
masterLv = 1
maxLv = 1
@@ -250,6 +259,7 @@ class Skill8(ActiveSkill):
"""
name = '重劈'
ref = Ref.HOPSLASH
cellPos = (1,2)
learnLv = 5
masterLv = 60
@@ -282,6 +292,7 @@ class Skill9(ActiveSkill):
"""
name = 'G型手榴弹'
ref = Ref.GBOMB
cellPos = (6,3)
learnLv = 10
masterLv = 60
@@ -317,6 +328,7 @@ class Skill10(ActiveSkill):
"""
name = '瞬击'
ref = Ref.NECKBREAKING
cellPos = (4,3)
learnLv = 10
masterLv = 60
@@ -348,6 +360,7 @@ class Skill11(ActiveSkill):
"""
name = '浮空连击'
ref = Ref.DEADLIFT
cellPos = (1,3)
learnLv = 10
masterLv = 60
@@ -378,6 +391,7 @@ class Skill12(ActiveSkill):
装备源力剑时,无需注入源能直接发动斩击。\n
"""
name = "源光斩"
ref = Ref.BEAMSLASH
learnLv = 10
masterLv = 60
maxLv = 70
@@ -412,6 +426,7 @@ class Skill13(PassiveSkill):
无法强制中断觉醒技能和跳跃超过一定高度的技能。\n
"""
name = "强化 - 后跳"
ref = Ref.ESCAPEBACKSTEP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -439,6 +454,7 @@ class Skill14(ActiveSkill):
效果持续期间内,再次按技能键可以结束。\n
"""
name = "跃翔"
ref = Ref.JUMPPOWERUP
learnLv = 10
masterLv = 1
maxLv = 1
@@ -471,6 +487,7 @@ class Skill15(ActiveSkill):
在决斗场中,被攻击和使用[受身蹲伏]时无法手动引爆。\n
"""
name = "源能护盾"
ref = Ref.CORESHIELD
learnLv = 15
masterLv = 60
maxLv = 70
@@ -518,6 +535,7 @@ class Skill16(PassiveSkill):
"""
name = '长刀精通'
ref = Ref.LONGBLADEMASTERY
cellPos = (1,4)
learnLv = 15
masterLv = 10
@@ -544,7 +562,7 @@ class Skill16(PassiveSkill):
# ]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data2)), except_skills=['电光飞掠', '集结·暮光之翼', '暮光密令 : 黎明决战']),
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data2)), except_skills=[Ref.BLITZKRIEG, Ref.WINGSOFTWILIGHT, Ref.DAWNOFFLIGHT]),
]
# 捷影步
@@ -558,6 +576,7 @@ class Skill17(ActiveSkill):
"""
name = '捷影步'
ref = Ref.RAPIDMOVE
cellPos = (3,4)
learnLv = 15
masterLv = 60
@@ -591,6 +610,7 @@ class Skill18(ActiveSkill):
"""
name = '掩护射击'
ref = Ref.CUVERINGFIRE
cellPos = (2,4)
learnLv = 15
masterLv = 60
@@ -629,6 +649,7 @@ class Skill19(ActiveSkill):
"""
name = '剑刃突刺'
ref = Ref.SUPRISECUT
cellPos = (5,5)
learnLv = 20
masterLv = 60
@@ -670,6 +691,7 @@ class Skill20(ActiveSkill):
"""
name = '轮盘连射'
ref = Ref.DEAD6
cellPos = (4,5)
learnLv = 20
masterLv = 60
@@ -713,6 +735,7 @@ class Skill21(PassiveSkill):
"""
name = '暴击'
ref = Ref.PHYSICALCRITICALHITUP
cellPos = (5,0)
learnLv = 20
masterLv = 10
@@ -737,6 +760,7 @@ class Skill22(ActiveSkill):
"""
name = '利刃旋斩'
ref = Ref.BILLDRILL
cellPos = (5,6)
learnLv = 25
masterLv = 60
@@ -780,6 +804,7 @@ class Skill23(PassiveSkill):
"""
name = '暗刃战略'
ref = Ref.VETERANSEXPERT
cellPos = (1,6)
learnLv = 25
masterLv = 10
@@ -813,6 +838,7 @@ class Skill24(ActiveSkill):
"""
name = '潜行射击'
ref = Ref.SUDDENSTRIKE
cellPos = (3,6)
learnLv = 25
masterLv = 60
@@ -848,6 +874,7 @@ class Skill25(ActiveSkill):
"""
name = '战术指示'
ref = Ref.TACTICSCOMMAND
cellPos = (7,7)
learnLv = 30
masterLv = 10
@@ -888,6 +915,7 @@ class Skill26(ActiveSkill):
"""
name = '游弹枪袭'
ref = Ref.MASSEDFIRE
cellPos = (2,7)
learnLv = 30
masterLv = 60
@@ -926,6 +954,7 @@ class Skill27(ActiveSkill):
"""
name = '全方位射击'
ref = Ref.ALPHASTRIKE
cellPos = (2,8)
learnLv = 35
masterLv = 60
@@ -985,6 +1014,7 @@ class Skill28(ActiveSkill):
"""
name = '回旋飞剑'
ref = Ref.CARACOLE
cellPos = (3,8)
learnLv = 35
masterLv = 60
@@ -1052,6 +1082,7 @@ class Skill29(ActiveSkill):
"""
name = '枪刃乱舞'
ref = Ref.RAMPAGE
cellPos = (3,9)
learnLv = 40
masterLv = 60
@@ -1117,6 +1148,7 @@ class Skill30(ActiveSkill):
"""
name = '疾光斩'
ref = Ref.THELASTATTACK
cellPos = (5,10)
learnLv = 45
masterLv = 60
@@ -1165,6 +1197,7 @@ class Skill31(PassiveSkill):
"""
name = 'B.G枪刃改造'
ref = Ref.BGFIRETOOL
cellPos = (1,11)
learnLv = 48
masterLv = 40
@@ -1196,6 +1229,7 @@ class Skill32(ActiveSkill):
"""
name = '电光飞掠'
ref = Ref.BLITZKRIEG
cellPos = (6,11)
learnLv = 50
masterLv = 40
@@ -1240,6 +1274,7 @@ class Skill33(ActiveSkill):
"""
name = '近敌灭杀'
ref = Ref.POINTBLANK
cellPos = (4,12)
learnLv = 60
masterLv = 40
@@ -1301,6 +1336,7 @@ class Skill34(ActiveSkill):
"""
name = '大回旋坠斩'
ref = Ref.HELIXDIVE
cellPos = (3,13)
learnLv = 70
masterLv = 40
@@ -1367,7 +1403,7 @@ class Skill34(ActiveSkill):
# self.associate = [{'type': '*skillRation', 'data': [0] + [-50] * self.maxLv, 'skills': ['潜行射击']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=['潜行射击'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=[Ref.SUDDENSTRIKE], when=Equals(Read(SkillAttribute.VP), 2)),
]
# B.C精锐特训
@@ -1382,6 +1418,7 @@ class Skill35(PassiveSkill):
"""
name = 'B.C精锐特训'
ref = Ref.BATTLECOMMANDTRAINING
cellPos = (1,13)
learnLv = 75
masterLv = 40
@@ -1415,6 +1452,7 @@ class Skill36(ActiveSkill):
"""
name = '致命焰火'
ref = Ref.TACTICALOFFENSIVE
cellPos = (2,13)
learnLv = 75
masterLv = 40
@@ -1493,7 +1531,7 @@ class Skill36(ActiveSkill):
# self.associate = [{'type': '*skillRation', 'data': [0] + [-50] * self.maxLv, 'skills': ['潜行射击']}]
# return super().effect(old, new)
associate = [
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=['潜行射击'], when=Equals(Read(SkillAttribute.VP), 2)),
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-50] * maxLv)), skills=[Ref.SUDDENSTRIKE], when=Equals(Read(SkillAttribute.VP), 2)),
]
# 碧波瞬斩
@@ -1509,6 +1547,7 @@ class Skill37(ActiveSkill):
"""
name = '碧波瞬斩'
ref = Ref.BLUEWAVESLASH
cellPos = (5,14)
learnLv = 80
masterLv = 40
@@ -1564,6 +1603,7 @@ class Skill38(ActiveSkill):
"""
name = '集结·暮光之翼'
ref = Ref.WINGSOFTWILIGHT
cellPos = (6,14)
learnLv = 85
masterLv = 40
@@ -1610,6 +1650,7 @@ class Skill39(PassiveSkill):
"""
name = '暮光战略'
ref = Ref.DUSKTACTICS
cellPos = (5,15)
learnLv = 95
masterLv = 40
@@ -1634,8 +1675,8 @@ class Skill39(PassiveSkill):
# associate = [{'data': data0, 'type': '*skillDamage'}, {'data': data1, 'type': '=hit2', 'skills': ['轮盘连射'], 'ratio': 1}, {'data': [i - 100 if i > 0 else 0 for i in data2], 'type': '*power2', 'skills': ['轮盘连射']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
SkillEffect(attribute=Hit(2), operation=Operation.ASSIGN, value=LevelTable(data1), skills=['轮盘连射']),
SkillEffect(attribute=Power(2), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data2])), skills=['轮盘连射']),
SkillEffect(attribute=Hit(2), operation=Operation.ASSIGN, value=LevelTable(data1), skills=[Ref.DEAD6]),
SkillEffect(attribute=Power(2), value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data2])), skills=[Ref.DEAD6]),
]
# 燃情协战
@@ -1650,6 +1691,7 @@ class Skill40(ActiveSkill):
"""
name = '燃情协战'
ref = Ref.CALLSIGNALCOVERING
cellPos = (7,15)
learnLv = 95
masterLv = 40
@@ -1717,6 +1759,7 @@ class Skill41(ActiveSkill):
"""
name = '暮光密令 : 黎明决战'
ref = Ref.DAWNOFFLIGHT
cellPos = (5,16)
learnLv = 100
masterLv = 40