feat:优化职业技能关联实现
This commit is contained in:
@@ -1,6 +1,17 @@
|
||||
#944b9aab492c15a8474f96947ceeb9e4
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
CharacterAttribute,
|
||||
CharacterEffect,
|
||||
Equals,
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
prefix = "gunner_female/launcher_female/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -622,10 +633,16 @@ class Skill20(PassiveSkill):
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
# 技能冷却时间减少率 : {value4}%
|
||||
data4 = get_data(f'{prefix}/{uuid}', 4)
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {"type":"$*PAtkP","data":data2},
|
||||
# {"data":data3},
|
||||
# {"type":"*cdReduce","data":data4,"exceptSkills":['远古粒子炮', '火力全开', '制胜·最终兵器']},
|
||||
# ]
|
||||
associate = [
|
||||
{"type":"$*PAtkP","data":data2},
|
||||
{"data":data3},
|
||||
{"type":"*cdReduce","data":data4,"exceptSkills":['远古粒子炮', '火力全开', '制胜·最终兵器']},
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data2))),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3))),
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data4)), except_skills=['远古粒子炮', '火力全开', '制胜·最终兵器']),
|
||||
]
|
||||
|
||||
# 空中射击
|
||||
@@ -679,12 +696,23 @@ class Skill22(PassiveSkill):
|
||||
hasUP = False
|
||||
custom = get_data(f'{prefix}/{uuid}', "custom") # noqa: E501
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# skills = []
|
||||
# for i in self.char.skills:
|
||||
# if i.type == "active" and i.learnLv not in [50,85,100] and i.damage and self.char.skill_effects.is_learned(i):
|
||||
# skills.append(i.name)
|
||||
# self.associate = [{"type":"+lv","data":[0] + [1]*self.maxLv,"ratio":1,"skills":skills}]
|
||||
# super().effect(old, new)
|
||||
# 仅动态枚举目标名称,贡献值与 VP 条件交由类型化声明处理。
|
||||
def effect(self, old, new):
|
||||
skills = []
|
||||
for i in self.char.skills:
|
||||
if i.type == "active" and i.learnLv not in [50,85,100] and i.damage and self.char.skill_effects.is_learned(i):
|
||||
skills.append(i.name)
|
||||
self.associate = [{"type":"+lv","data":[0] + [1]*self.maxLv,"ratio":1,"skills":skills}]
|
||||
self.associate = [
|
||||
SkillEffect(attribute=SkillAttribute.LEVEL, operation=Operation.ADD, value=LevelTable([0] + [1] * self.maxLv), skills=skills),
|
||||
]
|
||||
super().effect(old, new)
|
||||
|
||||
|
||||
@@ -904,7 +932,11 @@ class Skill29(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# 攻击力增加率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
associate = [{"data":data1,"skills":["激光炮"]}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data1,"skills":["激光炮"]}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['激光炮']),
|
||||
]
|
||||
|
||||
# 脉冲雷达-63
|
||||
# gunner_female/launcher_female/9376d04c476cd41d60ed1974ca69ab95
|
||||
@@ -929,7 +961,11 @@ class Skill30(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# 物理攻击力增加率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
associate = [{"data":data1,"type":"$*PAtkP"}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data1,"type":"$*PAtkP"}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data1))),
|
||||
]
|
||||
|
||||
# 聚焦喷火器
|
||||
# gunner_female/launcher_female/04883563896fe1adac7505c6146b5f59
|
||||
@@ -1297,10 +1333,14 @@ class Skill37(ActiveSkill):
|
||||
"""
|
||||
...
|
||||
|
||||
def effect(self, old, new):
|
||||
if self.vp == 1:
|
||||
self.associate = [{"type":"*skillRation","data":[0] + [-12.5]*self.maxLv,"skills":["激光炮"]}]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# if self.vp == 1:
|
||||
# self.associate = [{"type":"*skillRation","data":[0] + [-12.5]*self.maxLv,"skills":["激光炮"]}]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.PANEL_RATIO, value=1 + Percent(LevelTable([0] + [-12.5] * maxLv)), skills=['激光炮'], when=Equals(Read(SkillAttribute.VP), 1)),
|
||||
]
|
||||
|
||||
# 超温重火器
|
||||
# gunner_female/launcher_female/5892d1fa4462e561ac8f8d2c74892b0a
|
||||
@@ -1323,7 +1363,11 @@ class Skill38(PassiveSkill):
|
||||
|
||||
# 基本攻击和重火器攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
associate = [{"data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 远古粒子炮
|
||||
# gunner_female/launcher_female/2ba299855fc22192cba4f73db75e9d0e
|
||||
@@ -1524,7 +1568,11 @@ class Skill42(PassiveSkill):
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
# 发射后僵直时间减少率 : {value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
associate = [{"data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 集束炸弹
|
||||
# gunner_female/launcher_female/68062215e75d92575958873ac8ede31a
|
||||
@@ -1718,7 +1766,11 @@ class Skill46(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# [M-3喷火器]、 [聚焦喷火器]、 [等离子放射器]、 [UHT-03爆炎喷火器]移动速度比率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
associate = [{"data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# UHT-03爆炎喷火器
|
||||
# gunner_female/launcher_female/3a691a432c58abebc08211df45c4f4bd
|
||||
|
||||
@@ -1,6 +1,23 @@
|
||||
# 944b9aab492c15a8474f96947ceeb9e4
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
ProfessionAttribute,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
|
||||
class MechanicFemaleAttribute(ProfessionAttribute):
|
||||
"""本职业专用的最终效果属性;字段含义与技能实现保持一致。"""
|
||||
BLOW_POWER = 'blow_power'
|
||||
"""女机械:空战机械爆炸分段倍率。"""
|
||||
G_RATIO = 'ratio_g'
|
||||
"""女机械:G 系列技能的相互强化倍率。"""
|
||||
|
||||
|
||||
prefix = "gunner_female/mechanic_female/cn/skillDetail"
|
||||
|
||||
@@ -720,9 +737,14 @@ class Skill23(ActiveSkill):
|
||||
# 爆炸攻击力变化率 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': [i - 100 if i > 100 else i for i in data1], 'skills': ['RX-78追击者', 'EZ-8爆破者']},
|
||||
# {'type':'*blow_power' ,'data': [i - 100 if i > 100 else i for i in data1], 'skills': ['空战机械 : 狂风']}
|
||||
# ]
|
||||
associate = [
|
||||
{'data': [i - 100 if i > 100 else i for i in data1], 'skills': ['RX-78追击者', 'EZ-8爆破者']},
|
||||
{'type':'*blow_power' ,'data': [i - 100 if i > 100 else i for i in data1], 'skills': ['空战机械 : 狂风']}
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable([i - 100 if i > 100 else i for i in data1])), skills=['RX-78追击者', 'EZ-8爆破者']),
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.BLOW_POWER, value=1 + Percent(LevelTable([i - 100 if i > 100 else i for i in data1])), skills=['空战机械 : 狂风']),
|
||||
]
|
||||
|
||||
# G-14手雷
|
||||
@@ -784,7 +806,11 @@ class Skill25(PassiveSkill):
|
||||
# 基本攻击力和转职技能攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
|
||||
associate = [{'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 危机追击者
|
||||
# gunner_female/mechanic_female/dc1ffbe7bfcc6dc2be737951960da9ad
|
||||
@@ -815,7 +841,11 @@ class Skill26(PassiveSkill):
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
# 按期望计算
|
||||
associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['RX-78追击者']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage', 'skills': ['RX-78追击者']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['RX-78追击者']),
|
||||
]
|
||||
|
||||
# G-1科罗纳
|
||||
# gunner_female/mechanic_female/1b1cfab062e0768bcc889e33e1f30dbf
|
||||
@@ -865,9 +895,14 @@ class Skill27(ActiveSkill):
|
||||
|
||||
ratio_g = 1.0
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-2旋雷者']},
|
||||
# {'data': data7, 'type': '+ratio_g', 'skills': ['改装 : G-3捕食者']}
|
||||
# ]
|
||||
associate = [
|
||||
{'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-2旋雷者']},
|
||||
{'data': data7, 'type': '+ratio_g', 'skills': ['改装 : G-3捕食者']}
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data6)), skills=['改装 : G-2旋雷者']),
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data7)), skills=['改装 : G-3捕食者']),
|
||||
]
|
||||
|
||||
def getSkillCD(self, mode=None):
|
||||
@@ -1009,9 +1044,14 @@ class Skill31(ActiveSkill):
|
||||
# 电波前方攻击范围比率 : {value7}%
|
||||
data7 = get_data(f'{prefix}/{uuid}', 7)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': data5, 'type': '+ratio_g', 'skills': ['G-1科罗纳']},
|
||||
# {'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-3捕食者']}
|
||||
# ]
|
||||
associate = [
|
||||
{'data': data5, 'type': '+ratio_g', 'skills': ['G-1科罗纳']},
|
||||
{'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-3捕食者']}
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data5)), skills=['G-1科罗纳']),
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data6)), skills=['改装 : G-3捕食者']),
|
||||
]
|
||||
|
||||
def getSkillCD(self, mode=None):
|
||||
@@ -1060,7 +1100,11 @@ class Skill32(PassiveSkill):
|
||||
# 魔法暴击率增加 : {value1}%
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage', 'exceptSkills': ['G-1科罗纳', '改装 : G-2旋雷者', '改装 : G-3捕食者', 'G-磁力弹']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage', 'exceptSkills': ['G-1科罗纳', '改装 : G-2旋雷者', '改装 : G-3捕食者', 'G-磁力弹']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), except_skills=['G-1科罗纳', '改装 : G-2旋雷者', '改装 : G-3捕食者', 'G-磁力弹']),
|
||||
]
|
||||
|
||||
# 伪装
|
||||
# gunner_female/mechanic_female/4b2c90ec226fd40e967875aa5eabefb2
|
||||
@@ -1145,9 +1189,14 @@ class Skill34(ActiveSkill):
|
||||
# 捕食者移动范围 : {value7}px
|
||||
data7 = get_data(f'{prefix}/{uuid}', 7)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': data5, 'type': '+ratio_g', 'skills': ['G-1科罗纳']},
|
||||
# {'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-2旋雷者']}]
|
||||
associate = [
|
||||
{'data': data5, 'type': '+ratio_g', 'skills': ['G-1科罗纳']},
|
||||
{'data': data6, 'type': '+ratio_g', 'skills': ['改装 : G-2旋雷者']}]
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data5)), skills=['G-1科罗纳']),
|
||||
SkillEffect(attribute=MechanicFemaleAttribute.G_RATIO, operation=Operation.ADD, value=Percent(LevelTable(data6)), skills=['改装 : G-2旋雷者']),
|
||||
]
|
||||
|
||||
ratio_g = 1.0
|
||||
|
||||
@@ -1529,7 +1578,11 @@ class Skill41(PassiveSkill):
|
||||
# 改装延长持续时间增加率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
|
||||
associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 改装 : G-0战争领主
|
||||
# gunner_female/mechanic_female/d89f26862e348a801b30bb9fd7125db5
|
||||
@@ -1742,9 +1795,14 @@ class Skill45(PassiveSkill):
|
||||
# G-4雷行者多段攻击间隔减少 : {value9}秒
|
||||
data9 = get_data(f'{prefix}/{uuid}', 9)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'data': data0, 'type': '*cdReduce', 'exceptSkills': ['改装 : G-0战争领主', '终结者 : 博尔特MX', 'G-X星尘天穹']},
|
||||
# {'data': data2},
|
||||
# ]
|
||||
associate = [
|
||||
{'data': data0, 'type': '*cdReduce', 'exceptSkills': ['改装 : G-0战争领主', '终结者 : 博尔特MX', 'G-X星尘天穹']},
|
||||
{'data': data2},
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data0)), except_skills=['改装 : G-0战争领主', '终结者 : 博尔特MX', 'G-X星尘天穹']),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
|
||||
]
|
||||
|
||||
# G-超级猎鹰
|
||||
@@ -1977,7 +2035,11 @@ class Skill49(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# 每蓄满1个旋雷者Y轴范围增加率 : 12.5%
|
||||
|
||||
associate = [{'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
# 每蓄满1个旋雷者Y轴范围增加率 : 12.5%
|
||||
|
||||
# 超时空光耀加农炮
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
#944b9aab492c15a8474f96947ceeb9e4
|
||||
from core.basic.skill import PassiveBufferSkill,ActiveBufferSkill,ActiveSkill,PassiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
CharacterAttribute,
|
||||
CharacterEffect,
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
prefix = "gunner_female/paramedic/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -439,7 +448,11 @@ class Skill14(PassiveSkill):
|
||||
|
||||
# 基本攻击力和技能攻击力增加率 : {value0}%
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
associate = [{"data":data0}] # 协战师技能关联
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}] # 协战师技能关联
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 系统 · 战场信息
|
||||
# gunner_female/paramedic/6235960237fdb1b77f2c82b33614dcf4
|
||||
@@ -491,7 +504,11 @@ class Skill15(PassiveBufferSkill):
|
||||
# [军械强化 (进阶)]
|
||||
# [保护模件 (黄金复苏)]
|
||||
Spirit = data1
|
||||
associate = [{"data":data1,"type":"$+Spirit","ratio":1}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data1,"type":"$+Spirit","ratio":1}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
CarryRatio = [0]+ [((1 + i / 100) ** 3) * 100 - 100 for i in data1]# noqa: E501
|
||||
# [激光炮击目标技能]
|
||||
# [保护模件 (缓冲)]
|
||||
@@ -728,7 +745,11 @@ class Skill22(ActiveBufferSkill):
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
|
||||
Spirit = data6
|
||||
associate = [{"data": data6,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data6,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data6)),
|
||||
]
|
||||
|
||||
# 军械强化
|
||||
# gunner_female/paramedic/e73e980e87591bc98940afb1ac0fe522
|
||||
@@ -1120,7 +1141,11 @@ class Skill30(PassiveBufferSkill):
|
||||
|
||||
STRINT = data0
|
||||
Spirit = data1
|
||||
associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
|
||||
# 强袭策略 : 区域肃清
|
||||
# gunner_female/paramedic/ca0cc360e00e5f13e33027bf5fc53d5d
|
||||
@@ -1346,7 +1371,11 @@ class Skill35(PassiveBufferSkill):
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
|
||||
Spirit = data0
|
||||
associate = [{"data": data0,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data0,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data0)),
|
||||
]
|
||||
|
||||
# 战服 · 超限压制
|
||||
# gunner_female/paramedic/9559c99a9596b20d031de1ce2649b326
|
||||
@@ -1547,7 +1576,11 @@ class Skill40(PassiveBufferSkill):
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
|
||||
Spirit = data1
|
||||
associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data": data1,"type": "$+Spirit","ratio":1}] # type: ignore
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.SPIRIT, operation=Operation.ADD, value=LevelTable(data1)),
|
||||
]
|
||||
|
||||
# 系统 · 孤军突破
|
||||
# gunner_female/paramedic/56ef36c1980e67dd2bb50b180a925b89
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
#944b9aab492c15a8474f96947ceeb9e4
|
||||
from core.basic.skill import PassiveSkill, ActiveSkill, get_data
|
||||
from core.basic.character import Character
|
||||
from core.basic.skill_effect_types import (
|
||||
CharacterAttribute,
|
||||
CharacterEffect,
|
||||
ExtraData,
|
||||
LevelTable,
|
||||
Operation,
|
||||
Percent,
|
||||
Power,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
prefix = "gunner_female/ranger_female/cn/skillDetail"
|
||||
|
||||
|
||||
@@ -608,7 +619,11 @@ class Skill19(ActiveSkill):
|
||||
# [范围信息]
|
||||
# 子弹速度比率 : {value3}%
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
associate = [{"type":"+dataplus0","data":data0,"skills":["心灵反击","溃灭回射"],"ratio":1}]# noqa: E501
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"+dataplus0","data":data0,"skills":["心灵反击","溃灭回射"],"ratio":1}]# noqa: E501
|
||||
associate = [
|
||||
SkillEffect(attribute=ExtraData(0), operation=Operation.ADD, value=LevelTable(data0), skills=['心灵反击', '溃灭回射']),
|
||||
]
|
||||
|
||||
# 刺踢
|
||||
# gunner_female/ranger_female/c9664191611af31142e052dfaef84530
|
||||
@@ -720,7 +735,11 @@ class Skill22(PassiveSkill):
|
||||
# 填装速度增加 : {value7}%
|
||||
data7 = get_data(f'{prefix}/{uuid}', 7)
|
||||
|
||||
associate = [{"type":"$*PAtkP","data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"type":"$*PAtkP","data":data0}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_P, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 空中射击
|
||||
# gunner_female/ranger_female/bb34e8854a93fd250347a1c64119f7ab
|
||||
@@ -860,7 +879,11 @@ class Skill26(PassiveSkill):
|
||||
data5 = get_data(f'{prefix}/{uuid}', 5)
|
||||
# Y轴每秒移动距离 : {value6}px
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
associate = [{"data":data2}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data2}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data2))),
|
||||
]
|
||||
|
||||
# 暴击
|
||||
# gunner_female/ranger_female/fc1262c19f3d0477ee8eda47b8db8696
|
||||
@@ -1382,7 +1405,11 @@ class Skill38(PassiveSkill):
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
# 出血攻击力 : {value4}%
|
||||
data4 = get_data(f'{prefix}/{uuid}', 4)
|
||||
associate = [{"data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 绯红盛宴
|
||||
# gunner_female/ranger_female/374f53e8989ef04a8506c8ec99d9ecdc
|
||||
@@ -1561,7 +1588,11 @@ class Skill42(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# 出血持续时间增加 : {value1}秒
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
associate = [{"data":data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# 死亡锁链
|
||||
# gunner_female/ranger_female/8ec9da6f808889b63adf2680fbf1f331
|
||||
@@ -1765,7 +1796,12 @@ class Skill46(PassiveSkill):
|
||||
# [花式枪术]
|
||||
# 可强制中断次数上限增加量 : {value3}
|
||||
data3 = get_data(f'{prefix}/{uuid}', 3)
|
||||
associate = [{"data":data0},{"data":data1,"type":"=power0","skills":["锁链截击"]}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{"data":data0},{"data":data1,"type":"=power0","skills":["锁链截击"]}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=Power(0), operation=Operation.ASSIGN, value=LevelTable(data1), skills=['锁链截击']),
|
||||
]
|
||||
|
||||
# 毁灭风暴
|
||||
# gunner_female/ranger_female/d59c9840f65381bde8487757f1753c71
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
# 944b9aab492c15a8474f96947ceeb9e4
|
||||
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,
|
||||
Percent,
|
||||
Read,
|
||||
SkillAttribute,
|
||||
SkillEffect,
|
||||
)
|
||||
|
||||
prefix = "gunner_female/spitfire_female/cn/skillDetail"
|
||||
|
||||
@@ -710,7 +719,12 @@ class Skill22(PassiveSkill):
|
||||
# 后跳使用时,消耗使用次数 : {value6}
|
||||
data6 = get_data(f'{prefix}/{uuid}', 6)
|
||||
|
||||
associate = [{'data': data0, 'skills': ['交叉射击', '聚合弹', '凝固汽油弹', '超真空弹 : 切利']}, {'data': data1, 'skills': ['爆裂弹']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'skills': ['交叉射击', '聚合弹', '凝固汽油弹', '超真空弹 : 切利']}, {'data': data1, 'skills': ['爆裂弹']}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0)), skills=['交叉射击', '聚合弹', '凝固汽油弹', '超真空弹 : 切利']),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data1)), skills=['爆裂弹']),
|
||||
]
|
||||
|
||||
# 空中射击
|
||||
# gunner_female/spitfire_female/bb34e8854a93fd250347a1c64119f7ab
|
||||
@@ -848,7 +862,12 @@ class Skill26(PassiveSkill):
|
||||
# 暴击率增加 : {value5}%
|
||||
data5 = get_data(f'{prefix}/{uuid}', 5)
|
||||
|
||||
associate = [{'data': data3, 'type': '*skillDamage'}, {'data': data4, 'type': '*skillDamage'}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data3, 'type': '*skillDamage'}, {'data': data4, 'type': '*skillDamage'}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data3))),
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data4))),
|
||||
]
|
||||
|
||||
# 手雷精通
|
||||
# gunner_female/spitfire_female/0113c8b1306ca76d208f83f2d093dd62
|
||||
@@ -875,11 +894,15 @@ class Skill27(PassiveSkill):
|
||||
|
||||
ratio = 1.0
|
||||
|
||||
def effect(self, old, new):
|
||||
self.associate = [
|
||||
{'type': '*skillDamage', 'data': [i*self.ratio for i in self.data0], 'skills': ['G-14手雷', 'G-35L感电手雷', 'G-18C冰冻手雷']},
|
||||
]
|
||||
return super().effect(old, new)
|
||||
# 迁移前实现(保留对照):
|
||||
# def effect(self, old, new):
|
||||
# self.associate = [
|
||||
# {'type': '*skillDamage', 'data': [i*self.ratio for i in self.data0], 'skills': ['G-14手雷', 'G-35L感电手雷', 'G-18C冰冻手雷']},
|
||||
# ]
|
||||
# return super().effect(old, new)
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0) * Read(SkillAttribute.RATIO)), skills=['G-14手雷', 'G-35L感电手雷', 'G-18C冰冻手雷']),
|
||||
]
|
||||
|
||||
|
||||
# 暴击
|
||||
@@ -939,7 +962,12 @@ class Skill29(PassiveSkill):
|
||||
# 填装速度增加 : {value5}%
|
||||
data5 = get_data(f'{prefix}/{uuid}', 5)
|
||||
|
||||
associate = [{'data': data0, 'type': '$*PAtkI'}, {'data': data2, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴', '决战之日', '终解·制空霸权']}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'data': data0, 'type': '$*PAtkI'}, {'data': data2, 'type': '*cdReduce', 'exceptSkills': ['EMP磁暴', '决战之日', '终解·制空霸权']}]
|
||||
associate = [
|
||||
CharacterEffect(attribute=CharacterAttribute.P_ATK_I, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=SkillAttribute.CD_REDUCE, value=1 - Percent(LevelTable(data2)), except_skills=['EMP磁暴', '决战之日', '终解·制空霸权']),
|
||||
]
|
||||
|
||||
# M18阔剑地雷
|
||||
# gunner_female/spitfire_female/2ff50c35efcf0f287c4c418c8454da48
|
||||
@@ -1487,7 +1515,11 @@ class Skill41(PassiveSkill):
|
||||
data0 = get_data(f'{prefix}/{uuid}', 0)
|
||||
# 过电流持续时间 : {value1}秒
|
||||
data1 = get_data(f'{prefix}/{uuid}', 1)
|
||||
associate = [{'type': '*skillDamage', 'data': data0}]
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [{'type': '*skillDamage', 'data': data0}]
|
||||
associate = [
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
]
|
||||
|
||||
# EMP磁暴
|
||||
# gunner_female/spitfire_female/2c9d9a36c8401bddff6cdb80fab8dc24
|
||||
@@ -1678,7 +1710,11 @@ class Skill45(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))),
|
||||
]
|
||||
|
||||
# 开火
|
||||
# gunner_female/spitfire_female/9ceb0c55f40f1fc0fe0fcc65c8fee3a0
|
||||
@@ -1851,10 +1887,15 @@ class Skill49(PassiveSkill):
|
||||
# 强化手雷攻击力 : 手雷攻击力的{value2}%
|
||||
data2 = get_data(f'{prefix}/{uuid}', 2)
|
||||
|
||||
# 迁移前实现(保留对照):
|
||||
# associate = [
|
||||
# {'type': '*skillDamage', 'data': data0},
|
||||
# {'type': '*ratio', 'data': data1, 'skills': ['手雷精通']},
|
||||
# ]
|
||||
associate = [
|
||||
{'type': '*skillDamage', 'data': data0},
|
||||
{'type': '*ratio', 'data': data1, 'skills': ['手雷精通']},
|
||||
]
|
||||
SkillEffect(attribute=SkillAttribute.DAMAGE, value=1 + Percent(LevelTable(data0))),
|
||||
SkillEffect(attribute=SkillAttribute.RATIO, value=1 + Percent(LevelTable(data1)), skills=['手雷精通']),
|
||||
]
|
||||
|
||||
# 空袭战略
|
||||
# gunner_female/spitfire_female/c591d1827cfbe224031c704e21d07932
|
||||
|
||||
Reference in New Issue
Block a user