ango
5.9 commit
effe13f
from typing import Dict
from base.skill import Skill, DotSkill, PhysicalDamage, PhysicalDotDamage
from general.skills import GENERAL_SKILLS
SKILLS: Dict[int, Skill | dict] = {
32815: {
"skill_class": PhysicalDamage,
"skill_name": "破",
"surplus_cof": [
1048576 * (0.7 - 1),
1048576 * (0.875 - 1),
1048576 * (1.4 - 1),
1048576 * (1.54 - 1),
1048576 * (1 - 1)
]
},
19712: {
"skill_class": PhysicalDamage,
"skill_name": "飘遥伞击",
"attack_power_cof": 16,
"weapon_damage_cof": 1024,
"skill_damage_addition": 205
},
20016: {
"skill_class": PhysicalDamage,
"skill_name": "翼绝云天",
"damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268,
281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417],
"damage_rand": [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, 15],
"attack_power_cof": [20 * 0.9 * 2 * 0.85] * 6 +
[(3 * i + 1.5) * 0.9 * 2 * 0.85 for i in range(7, 32)] +
[100 * 0.9 * 2 * 0.85],
},
31250: {
"skill_class": PhysicalDamage,
"skill_name": "振翅图南",
"damage_base": [37, 67, 97, 127, 157, 187, 217, 248, 278, 308, 338, 368, 398, 428, 458],
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10],
"attack_power_cof": [30 * 0.9 * 0.885 * 1.1] * 2 +
[7 * i * 0.9 * 0.885 * 1.1 for i in range(3, 15)] +
[110 * 0.9 * 0.885 * 1.1],
},
20054: {
"skill_class": PhysicalDamage,
"skill_name": "跃潮斩波",
"damage_base": [130, 237, 344, 450, 557, 664, 771, 878, 984, 1091, 1198, 1305, 1411, 1518, 1625],
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10],
"attack_power_cof": [78 * 1.07 * 0.9 * 0.9] * 4 +
[26 * i * 1.07 * 0.9 * 0.9 for i in range(5, 14)] +
[390 * 1.07 * 0.9 * 0.9]
},
20322: {
"skill_class": PhysicalDamage,
"skill_name": "溟海御波",
"damage_base": [130, 237, 344, 450, 557, 664, 771, 878, 984, 1091, 1198, 1305, 1411, 1518, 1625],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"attack_power_cof": [78 * 0.9 * 1.065 * 0.9 * 0.8 * 1.1 * 1.15] * 3 +
[26 * i * 0.9 * 1.065 * 0.9 * 0.8 * 1.1 * 1.15 for i in range(4, 14)] +
[390 * 0.9 * 1.065 * 0.9 * 0.8 * 1.1 * 1.15],
},
20684: {
"skill_class": PhysicalDamage,
"skill_name": "海运南冥",
"damage_base": [125, 228, 330, 433, 536, 638, 741, 844, 946, 1049, 1151, 1254, 1357, 1459, 1562],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"attack_power_cof": [50 * 1.8 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15] * 3 +
[16.6 * i * 1.8 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15 for i in range(4, 14)] +
[250 * 1.8 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15],
},
20685: {
"skill_class": PhysicalDamage,
"skill_name": "海运南冥",
"damage_base": [167, 304, 441, 578, 714, 851, 988, 1125, 1262, 1399, 1536, 1672, 1809, 1946, 2083],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"attack_power_cof": [50 * 2 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15] * 3 +
[16.6 * i * 2 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15 for i in range(4, 14)] +
[250 * 2 * 0.8 * 1.1 * 0.9 * 0.85 * 1.1 * 1.15],
},
20323: {
"skill_class": PhysicalDamage,
"skill_name": "逐波灵游",
"damage_base": [67, 122, 176, 231, 286, 341, 395, 450, 505, 559, 614, 669, 724, 778, 833],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"attack_power_cof": [40 * 0.9 * 1.06 * 0.9 * 1.15] * 3 +
[13.3 * i * 0.9 * 1.06 * 0.9 * 1.15 for i in range(4, 14)] +
[200 * 0.9 * 1.06 * 0.9 * 1.15],
},
36282: {
"skill_class": PhysicalDamage,
"skill_name": "定波砥澜",
"damage_base": [90, 86, 130, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 330, 350],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 15, 15, 20],
"attack_power_cof": [100 * 1.1] +
[200 * 1.1] +
[300 * 1.1],
"weapon_damage_cof": 1024
},
19819: {
"skill_class": PhysicalDamage,
"skill_name": "木落雁归",
"damage_base": [87, 134, 182, 229, 277, 324, 372, 419, 466, 514, 561, 609, 656, 704, 751, 798, 846, 893, 941,
988, 1036, 1083],
"damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15],
"attack_power_cof": [52 * 1.1 * 1.15] * 3 +
[(11.5 * i + 5) * 1.1 * 1.15 for i in range(4, 22)] +
[260 * 1.1 * 1.15],
"weapon_damage_cof": 2048
},
19766: {
"skill_class": PhysicalDamage,
"skill_name": "击水三千",
"damage_base": [40, 55, 71, 86, 101, 117, 132, 147, 163, 178, 193, 209, 224, 239, 255, 270, 285, 301, 316, 331,
347, 362, 377, 393, 408, 423, 439, 454, 469, 485, 500],
"damage_rand": [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": [24 * 1.2 * 1.1] * 5 +
[(3.6 * i + 5) * 1.2 * 1.1 for i in range(6, 31)] +
[120 * 1.2 * 1.1],
"weapon_damage_cof": 1024
},
19767: {
"skill_class": PhysicalDamage,
"skill_name": "击水三千",
"damage_base": [40, 55, 71, 86, 101, 117, 132, 147, 163, 178, 193, 209, 224, 239, 255, 270, 285, 301, 316, 331,
347, 362, 377, 393, 408, 423, 439, 454, 469, 485, 500],
"damage_rand": [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": [27 * 1.2 * 1.1] * 5 +
[(4 * i + 6) * 1.2 * 1.1 for i in range(6, 31)] +
[135 * 1.2 * 1.1],
"weapon_damage_cof": 1024
},
19768: {
"skill_class": PhysicalDamage,
"skill_name": "击水三千",
"damage_base": [40, 55, 71, 86, 101, 117, 132, 147, 163, 178, 193, 209, 224, 239, 255, 270, 285, 301, 316, 331,
347, 362, 377, 393, 408, 423, 439, 454, 469, 485, 500],
"damage_rand": [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": [30 * 1.2 * 1.1] * 5 +
[(4.5 * i + 7) * 1.2 * 1.1 for i in range(6, 31)] +
[150 * 1.2 * 1.1],
"weapon_damage_cof": 1024
},
20052: {
"skill_class": PhysicalDamage,
"skill_name": "浮游天地",
"damage_base": [67, 152, 237, 322, 407, 493, 578, 663, 748, 833],
"damage_rand": 10,
"attack_power_cof": [40 * 0.7] * 2 +
[20 * i * 0.7 for i in range(3, 9)] +
[200 * 0.7],
"weapon_damage_cof": 2048
},
25273: {
"skill_class": PhysicalDamage,
"skill_name": "青冥",
"damage_base": [133, 644, 1156, 1667, 133, 644, 1156, 1667],
"damage_rand": 10,
"attack_power_cof": (130 + 16) * 1.15 * 0.7
},
18386: {
"skill_class": PhysicalDotDamage,
"skill_name": "青冥(DOT)",
"damage_base": 50,
"attack_power_cof": 550,
"interval": 32,
"max_stack": 6,
"tick": 6
},
25640: {
"skill_class": DotSkill,
"skill_name": "青冥",
"bind_skill": 18386
},
25783: {
"skill_class": PhysicalDamage,
"skill_name": "木落雁归·神兵",
"damage_base": 20,
"damage_rand": 2,
"attack_power_cof": 50
},
19557: {
"skill_class": PhysicalDotDamage,
"skill_name": "御波驾澜(DOT)",
"damage_base": 25,
"attack_power_cof": 680,
"interval": 48,
"max_stack": 3,
"tick": 6
},
26935: {
"skill_class": DotSkill,
"skill_name": "御波驾澜",
"bind_skill": 19557
}
}
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