ango
5.9 commit
effe13f
from typing import Dict
from base.skill import Skill, DotSkill, DotConsumeSkill, PhysicalDamage, PhysicalDotDamage
from general.skills import GENERAL_SKILLS
SKILLS: Dict[int, Skill | dict] = {
32745: {
"skill_class": PhysicalDamage,
"skill_name": "破",
"surplus_cof": [
1048576 * (0.4 - 1),
1048576 * (0.55 * 0.33 - 1),
1048576 * (0.7 - 1),
1048576 * (0.8 * 0.33 - 1),
1048576 * (0.9 - 1),
]
},
13039: {
"skill_class": PhysicalDamage,
"skill_name": "卷雪刀",
"attack_power_cof": 16,
"weapon_damage_cof": 1024
},
**{
skill_id: {
"skill_class": PhysicalDamage,
"skill_name": "盾击",
"damage_base": [150, 180, 210, 240, 270, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 520],
"damage_rand": [e * 0.1 for e in
[50, 80, 100, 120, 140, 160, 180, 200, 240, 280, 320, 360, 400, 440, 480, 520]],
"damage_gain": 1 / 5,
"attack_power_cof": [16 * 1.05 * 1.05 * 1.1 * 1.1] * 4 +
[(16 + (i - 4) * 5) * 1.05 * 1.05 * 1.1 * 1.1 for i in range(5, 16)] +
[100 * 1.05 * 1.05 * 1.1 * 1.1],
"weapon_damage_cof": 1024,
"skill_shield_gain": -512,
} for skill_id in (13106, 13160, 13161)
},
19409: {
"skill_class": PhysicalDamage,
"skill_name": "盾压",
"damage_base": [30, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345,
360, 375, 390, 405],
"damage_rand": [e * 0.1 for e in
[20, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315,
330, 345, 360, 375]],
"damage_gain": 1 / 2,
"attack_power_cof": [40 * 1.05 * 1.05 * 1.05 * 1.1] * 4 +
[(40 + (i - 4) * 7) * 1.05 * 1.05 * 1.05 * 1.1 for i in range(5, 24)] +
[190 * 1.05 * 1.05 * 1.05 * 1.1],
"weapon_damage_cof": 1024,
},
13099: {
"skill_class": PhysicalDamage,
"skill_name": "盾猛",
"damage_base": [35, 75, 85, 95, 105, 115, 125, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315,
330, 345, 360, 375, 390],
"damage_rand": [e * 0.1 for e in
[35, 45, 55, 65, 75, 85, 95, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285,
300, 315, 330, 345, 360]],
"damage_gain": 1 / 3,
"attack_power_cof": [40 * 1.05 * 1.05 * 1.05] * 4 +
[(40 + (i - 4) * 4) * 1.05 * 1.05 * 1.05 for i in range(5, 25)] +
[150 * 1.05 * 1.05 * 1.05],
"weapon_damage_cof": 1024,
},
13463: {
"skill_class": PhysicalDamage,
"skill_name": "盾飞",
"damage_base": [30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 300],
"damage_rand": [e * 0.1 for e in
[20, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 300]],
"damage_gain": 1 / 10,
"attack_power_cof": [16] * 4 +
[16 + (i - 4) * 1 for i in range(5, 18)] +
[35],
"weapon_damage_cof": 1024,
},
13044: {
"skill_class": PhysicalDamage,
"skill_name": "盾刀",
"damage_base": [31, 40, 45, 48, 55, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96,
98, 102, 106, 110, 114, 118, 122, 126, 130],
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15],
"attack_power_cof": [16 * 1.05 * 1.05 * 1.1] * 4 +
[(16 + (i - 4) * 3) * 1.05 * 1.05 * 1.1 for i in range(5, 33)] +
[100 * 1.05 * 1.05 * 1.1],
"weapon_damage_cof": 1024,
},
8249: {
"skill_class": PhysicalDotDamage,
"skill_name": "流血(DOT)",
"damage_base": 47,
"attack_power_cof": [16 * 1.5 * 2 * 1.05 * 1.1] * 9 +
[(16 + (i - 9) * 4) * 1.5 * 2 * 1.05 * 1.1 for i in range(10, 22)] +
[70 * 1.5 * 2 * 1.05 * 1.1],
"interval": 32,
"tick": 13
},
29188: {
"skill_class": DotSkill,
"skill_name": "流血",
"bind_skill": 8249
},
13075: {
"skill_class": PhysicalDamage,
"skill_name": "绝刀",
"damage_base": [240, 270, 300, 330, 350, 370, 390, 410, 430, 450, 470, 490, 510, 540, 570, 600, 630, 660, 690,
720],
"damage_rand": [e * 0.1 for e in
[80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440,
500]],
"damage_gain": 1 / 4,
"attack_power_cof": [60 * 0.9 * 0.75 * 0.9 * 1.1 * 1.05 * 1.05 * 1.05 * 1.22 * 1.05 * 1.05 * 1.1 * 1.06] * 4 +
[(60 + (i - 4) * 12) * 0.9 * 0.75 * 0.9 * 1.1 * 1.05 * 1.05 * 1.05 * 1.22 * 1.05 * 1.05 *
1.1 * 1.06 for i in range(5, 20)] +
[250 * 0.75 * 0.9 * 1.1 * 1.05 * 1.05 * 1.05 * 1.22 * 1.05 * 1.05 * 1.1 * 1.06],
"weapon_damage_cof": 1024,
},
13092: {
"skill_class": PhysicalDamage,
"skill_name": "斩刀",
"damage_base": [230, 260, 290, 320, 350, 380, 410, 440, 470, 510, 550, 580, 610, 640, 670, 700, 710, 720, 730,
740, 750, 760],
"damage_rand": [e * 0.1 for e in
[20, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315,
330, 345]],
"damage_gain": 0.3,
"attack_power_cof": [50 * 0.9 * 0.85 * 1.05 * 1.1 * 1.15 * 1.15 * 1.05 * 1.1 * 1.1 * 1.06 * 1.2] * 4 +
[(50 + (i - 4) * 10) * 0.9 * 0.85 * 1.05 * 1.1 * 1.15 * 1.15 * 1.05 * 1.1 * 1.1 * 1.06 * 1.2
for i in range(5, 22)] +
[250 * 0.9 * 0.85 * 1.05 * 1.1 * 1.15 * 1.15 * 1.05 * 1.1 * 1.1 * 1.06 * 1.2],
"weapon_damage_cof": 1024,
},
28479: {
"skill_class": PhysicalDamage,
"skill_name": "劫刀",
"damage_base": [e / 5 for e in
[120, 150, 180, 210, 230, 250, 270, 290, 310, 330, 350, 370, 390, 400, 410, 420, 430, 440, 450,
460, 470, 480, 490, 500, 510, 520, 530, 550]],
"damage_rand": [e * 0.1 for e in
[80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 120, 130, 140, 150, 160, 170, 180, 190, 200,
210, 220, 230, 240, 250, 260, 270, 280, 290]],
"attack_power_cof": [20 * 1.1 * 1.05 * 1.1 * 1.05 * 1.1 * 1.05 * 1.06] * 9 +
[(20 + (i - 9) * 7) * 1.1 * 1.05 * 1.1 * 1.05 * 1.1 * 1.05 * 1.06
for i in range(10, 28)] +
[160 * 1.1 * 1.05 * 1.1 * 1.05 * 1.1 * 1.05 * 1.06],
"weapon_damage_cof": 1024,
},
36065: {
"skill_class": PhysicalDamage,
"skill_name": ["击破·援戈", "斩破·惊涌", "绝破·惊涌", "闪破·惊涌", "劫破·惊涌"],
"surplus_cof": [
1048576 * (0.697 * 0.5 * 1.2 - 1),
1048576 * (0.697 * 0.14 * 1.2 * 1.2 - 1),
1048576 * (0.697 * 0.14 * 1.2 * 1.2 - 1),
1048576 * (0.697 * 0.14 * 1.2 - 1),
1048576 * (0.697 * 0.14 * 1.2 - 1),
]
},
36482: {
"skill_class": PhysicalDamage,
"skill_name": "援戈·血影",
"damage_base": 400 / 5,
"damage_rand": 150 * 0.1,
"attack_power_cof": 300 * 2.3 * 0.83 * 1.2,
"weapon_damage_cof": 1024
},
37253: {
"skill_class": PhysicalDamage,
"skill_name": "麾远",
"damage_base": 400 / 5,
"damage_rand": 150 * 0.1,
"attack_power_cof": 170 * 2,
},
34673: {
"skill_class": PhysicalDamage,
"skill_name": "业火焚城",
"attack_power_cof": 40,
"weapon_damage_cof": 1024
},
34674: {
"skill_class": PhysicalDamage,
"skill_name": "麟光甲寒",
"damage_base": 400 / 5,
"damage_rand": 150 * 0.1,
"attack_power_cof": 220 * 1.3 * 1.2,
"weapon_damage_cof": 1024
},
34714: {
"skill_class": PhysicalDamage,
"skill_name": "业火焚城·云盾",
"damage_base": 400 / 5,
"damage_rand": 150 * 0.1,
"attack_power_cof": 160 * 1.3,
"weapon_damage_cof": 1024
},
37448: {
"skill_class": PhysicalDamage,
"skill_name": "破·麟光",
"surplus_cof": 1048576 * (0.697 * 0.14 * 1.2 - 1)
},
30925: {
"skill_class": PhysicalDamage,
"skill_name": "阵云结晦",
"damage_base": 240,
"damage_rand": 80 * 0.1,
"damage_gain": 1.2 / 4,
"attack_power_cof": 80 * 2 * 1.5,
"weapon_damage_cof": 1024,
"skill_pve_addition": 614
},
30926: {
"skill_class": PhysicalDamage,
"skill_name": "月照连营",
"damage_base": 320,
"damage_rand": 120 * 0.1,
"damage_gain": 1.2 / 4,
"attack_power_cof": 100 * 2 * 1.5,
"weapon_damage_cof": 1024,
"skill_pve_addition": 614
},
30857: {
"skill_class": PhysicalDamage,
"skill_name": "雁门迢递",
"damage_base": [400, 460, 520, 580, 640, 700, 760],
"damage_rand": [e * 0.1 for e in [300, 320, 340, 360, 380, 400, 420]],
"damage_gain": 1.2 / 4,
"attack_power_cof": 120 * 2 * 1.5,
"weapon_damage_cof": 1024,
"skill_pve_addition": 614
},
30858: {
"skill_class": PhysicalDamage,
"skill_name": "绝国",
"damage_base": 24,
"damage_rand": 15 * 0.1,
"damage_gain": 1.2 / 4,
"attack_power_cof": [20 * (i + 1) * 1.2 * 1.3 for i in range(16)] +
[40 * (i + 1) * 1.2 * 1.3 for i in range(16, 80)],
"weapon_damage_cof": 1024,
},
30859: {
"skill_class": PhysicalDamage,
"skill_name": "阵云绝",
"damage_base": 47,
"damage_rand": 28 * 0.1,
"damage_gain": 1.2 / 4,
"attack_power_cof": 80 * 1.2,
"weapon_damage_cof": 1024,
"skill_pve_addition": 614
},
25780: {
"skill_class": PhysicalDamage,
"skill_name": "盾击·神兵",
"damage_base": 20,
"damage_rand": 2,
"attack_power_cof": 50
}
}
for skill_id, detail in SKILLS.items():
SKILLS[skill_id] = detail.pop('skill_class')(skill_id)
for attr, value in detail.items():
setattr(SKILLS[skill_id], attr, value)
for skill_id, skill in GENERAL_SKILLS.items():
SKILLS[skill_id] = skill