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

This commit is contained in:
2026-10-13 17:10:08 +08:00
parent 7dc5f4cde5
commit 927866d366
78 changed files with 5242 additions and 1011 deletions
+41 -7
View File
@@ -1,6 +1,15 @@
# 986c2b3d72ee0e4a0b7fcfbe786d4e02
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
from core.basic.character import Character
from core.basic.skill_effect_types import (
CharacterAttribute,
CharacterEffect,
LevelTable,
Operation,
Percent,
SkillAttribute,
SkillEffect,
)
prefix = "gunblader/agent/cn/skillDetail"
@@ -120,7 +129,11 @@ class Skill3(PassiveSkill):
# 跳跃攻击力变化率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'type': '*skillDamage', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['斩射']}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': [i - 100 if i > 0 else 0 for i in data0], 'skills': ['斩射']}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i - 100 if i > 0 else 0 for i in data0])), skills=['斩射']),
]
# 受身蹲伏
# gunblader/agent/ce26c6b69d02a440a81b552bec94f03b
@@ -511,7 +524,11 @@ class Skill16(PassiveSkill):
# 暴击伤害增加率 : {value2}%
data2 = get_data(f'{prefix}/{uuid}', 2)
associate = [{'type': '*skillDamage', 'data': data2}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data2}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
]
# 源能护盾
# gunblader/agent/0232c151ef3731c2dede51931a374723
@@ -689,7 +706,11 @@ class Skill21(PassiveSkill):
# 命中率增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'type': '$*PAtkP', 'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'type': '$*PAtkP', 'data': data0}]
associate = [
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
]
# 暴击
# gunblader/agent/fc1262c19f3d0477ee8eda47b8db8696
@@ -1108,7 +1129,11 @@ class Skill31(PassiveSkill):
# 寻敌范围增加 : {value1}%
data1 = get_data(f'{prefix}/{uuid}', 1)
associate = [{'data': data0, 'type': '*skillDamage'}]
# 迁移前实现(保留对照):
# associate = [{'data': data0, 'type': '*skillDamage'}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 毁灭绝击
# gunblader/agent/01c3a2fb793d293a25ed8dc7a0d70c1a
@@ -1287,9 +1312,14 @@ class Skill35(PassiveSkill):
# 迅步突袭冷却时间缩短 : {value2}秒
data2 = get_data(f'{prefix}/{uuid}', 2)
# 迁移前实现(保留对照):
# associate = [
# {'type': '*skillDamage', 'data': data1},
# {'type': '+cd', 'data': [0] + [-1] * maxLv, 'skills': ['迅步突袭'], 'ratio': 1},
# ]
associate = [
{'type': '*skillDamage', 'data': data1},
{'type': '+cd', 'data': [0] + [-1] * maxLv, 'skills': ['迅步突袭'], 'ratio': 1},
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1))),
SkillEffect(attribute=SkillAttribute.CD, operation=Operation.ADD, value=LevelTable([0] + [-1] * maxLv), skills=['迅步突袭']),
]
# 月光镇魂曲
@@ -1481,7 +1511,11 @@ class Skill39(PassiveSkill):
# 基本攻击力和转职技能攻击力增加率 : {value0}%
data0 = get_data(f'{prefix}/{uuid}', 0)
associate = [{'type': '*skillDamage', 'data': data0}]
# 迁移前实现(保留对照):
# associate = [{'type': '*skillDamage', 'data': data0}]
associate = [
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
]
# 夜影迷踪
# gunblader/agent/c5a2956d8ed3af1746ed2f76ca971a09