AngoHF's picture
5.12 commit
a05a2de
from typing import Dict
from base.skill import Skill, DotSkill, DotConsumeSkill, PhysicalDamage, MagicalDamage, MagicalDotDamage
from general.skills import GENERAL_SKILLS
SKILLS: Dict[int, Skill | dict] = {
32841: {
"skill_class": MagicalDamage,
"skill_name": "破",
"surplus_cof": [
1048576 * (0.525 * 1.2 - 1),
1048576 * (1.008 * 1.2 - 1),
1048576 * (0.21 * 1.2 - 1),
1048576 * (0.35 * 1.2 - 1),
1048576 * (0.7 * 1.2 - 1),
1048576 * (1.05 * 1.2 - 1)
]
},
27451: {
"skill_class": PhysicalDamage,
"skill_name": "裁叶饮刃",
"attack_power_cof": 16,
"weapon_damage_cof": 1024,
"skill_damage_addition": 205
},
28081: {
"skill_class": MagicalDamage,
"skill_name": "无方中和",
"damage_base": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
"damage_rand": 10,
"attack_power_cof": [20 * 0.9 * 0.92 * 1.1 * 1.1] * 3 +
[(20 * (i - 4) + 20) * 0.9 * 0.92 * 1.1 * 1.1 for i in range(4, 9)] +
[160 * 0.9 * 0.92 * 1.1 * 1.1],
},
20052: {
"skill_class": MagicalDotDamage,
"skill_name": "逆乱(DOT)",
"damage_base": 95,
"attack_power_cof": 90 * 1.5 * 0.8 * 1.05 * 1.1,
"interval": 32,
"max_stack": 8,
"tick": 7
},
27560: {
"skill_class": DotSkill,
"skill_name": "逆乱",
"bind_skill": 20052
},
27552: {
"skill_class": MagicalDamage,
"skill_name": "商陆缀寒",
"damage_base": [38, 49, 60, 71, 82, 93, 104, 115, 126, 137, 148, 159, 170, 181, 192, 203, 214, 225, 236, 247,
258, 269, 280, 291, 302, 313, 324, 335, 346, 357, 368, 379],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20],
"attack_power_cof": [43 * 1.15] * 6 +
[(4 * i + 43) * 1.15 for i in range(7, 32)] +
[200 * 1.15],
},
27555: {
"skill_class": MagicalDamage,
"skill_name": "钩吻断肠",
"damage_base": [24, 34, 44, 54, 64, 74, 84, 94, 104, 114],
"damage_rand": 10,
"attack_power_cof": [16] * 3 +
[(12 * (i - 4) + 16) for i in range(4, 9)] +
[120],
},
27557: {
"skill_class": MagicalDamage,
"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": [25] * 2 +
[(12 * (i - 3) + 25) for i in range(3, 9)] +
[208],
},
27579: {
"skill_class": MagicalDamage,
"skill_name": "沾衣未妨",
"damage_base": 125,
"damage_rand": 10,
"attack_power_cof": 150 * 0.8,
},
27584: {
"skill_class": MagicalDamage,
"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": [30 * 1.8 * 1.2 * 1.15] * 6 +
[(3 * (i - 7) + 40) * 1.8 * 1.2 * 1.15 for i in range(7, 14)] +
[72 * 1.8 * 1.2 * 1.15],
},
28409: {
"skill_class": MagicalDamage,
"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": [30 * 1.8] * 6 +
[(3 * (i - 7) + 40) * 1.8 for i in range(7, 14)] +
[72 * 1.8],
},
28346: {
"skill_class": MagicalDamage,
"skill_name": "银光照雪",
"damage_base": [50, 62, 74, 86, 98, 110, 134, 170, 230, 242, 290, 302, 338, 350, 410],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20, 20, 20],
"attack_power_cof": [20] * 5 +
[(10 * (i - 6) + 24) for i in range(6, 15)] +
[120],
},
34699: {
"skill_class": MagicalDamage,
"skill_name": "银光照雪·结草",
"damage_base": [50, 62, 74, 86, 98, 110, 134, 170, 230, 242, 290, 302, 338, 350, 410],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20, 20, 20],
"attack_power_cof": [20] * 5 +
[(10 * (i - 6) + 24) for i in range(6, 15)] +
[120],
},
27539: {
"skill_class": MagicalDamage,
"skill_name": "惊鸿掠水",
"damage_base": [30, 39, 48, 57, 66, 75, 84, 93, 102, 111, 120, 129, 138, 147, 156],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"attack_power_cof": [40] * 6 +
[(4 * (i - 7) + 40) for i in range(7, 14)] +
[100],
},
29505: {
"skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
"skill_name": "含锋破月",
"damage_base": [35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377,
395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20],
"attack_power_cof": [50 * 1.15 * 0.85] * 5 +
[(9 * (i - 6) + 50) * 1.15 * 0.85 for i in range(6, 31)] +
[280 * 1.15 * 0.85],
"bind_skill": 20052,
"tick": 2
},
34700: {
"skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
"skill_name": "含锋破月·结草",
"damage_base": [35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377,
395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20],
"attack_power_cof": [50 * 1.15 * 0.85] * 5 +
[(9 * (i - 6) + 50) * 1.15 * 0.85 for i in range(6, 31)] +
[280 * 1.15 * 0.85],
"bind_skill": 20052,
"tick": 2
},
29506: {
"skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
"skill_name": "飞叶满襟",
"damage_base": [55, 74, 93, 112, 131, 150, 169, 188, 207, 226, 245, 264, 283, 302, 321, 340, 359, 378, 397, 416,
435, 454, 473, 492, 511, 530, 549, 568, 587, 606, 625],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20],
"attack_power_cof": [55 * 1.15 * 0.85] * 5 +
[(9 * (i - 6) + 55) * 1.15 * 0.85 for i in range(6, 31)] +
[340 * 1.15 * 0.85],
"bind_skill": 20052,
"tick": 2
},
34702: {
"skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
"skill_name": "飞叶满襟·结草",
"damage_base": [55, 74, 93, 112, 131, 150, 169, 188, 207, 226, 245, 264, 283, 302, 321, 340, 359, 378, 397, 416,
435, 454, 473, 492, 511, 530, 549, 568, 587, 606, 625],
"damage_rand": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20],
"attack_power_cof": [55 * 1.15 * 0.85] * 5 +
[(9 * (i - 6) + 55) * 1.15 * 0.85 for i in range(6, 31)] +
[340 * 1.15 * 0.85],
"bind_skill": 20052,
"tick": 2
},
30735: {
"skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
"skill_name": "折枝拂露",
"damage_base": 730,
"damage_rand": 20,
"attack_power_cof": 410 * 1.15 * 1.1 * 0.65,
"bind_skill": 20052,
"tick": 2
},
32922: {
"skill_class": MagicalDamage,
"skill_name": "折枝留春",
"damage_base": 730,
"damage_rand": 20,
"attack_power_cof": 600,
},
27657: {
"skill_class": MagicalDamage,
"skill_name": "苍棘缚地",
"damage_base": [20, 33, 46, 59, 72, 85, 98, 111, 124, 137],
"damage_rand": 10,
"attack_power_cof": [70 * 0.9] * 3 +
[(3 * (i - 4) + 70) * 0.9 for i in range(4, 9)] +
[300 * 0.9],
},
29674: {
"skill_class": MagicalDamage,
"skill_name": "疾根",
"damage_base": 120,
"damage_rand": 10,
"attack_power_cof": 170 * 0.5 * 0.7 * 1.1
},
28385: {
"skill_class": MagicalDamage,
"skill_name": "紫叶沉疴",
"damage_base": 417,
"damage_rand": 15,
"attack_power_cof": 190
},
28434: {
"skill_class": MagicalDamage,
"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": 125 * 1.5
},
35367: {
"skill_class": MagicalDamage,
"skill_name": "应理与药",
"damage_base": 100,
"damage_rand": 10,
"attack_power_cof": 580 * 1.15 * 1.5
},
29698: {
"skill_class": MagicalDamage,
"skill_name": "商陆缀寒·神兵",
"damage_base": 20,
"damage_rand": 2,
"attack_power_cof": 65
},
29695: {
"skill_class": MagicalDamage,
"skill_name": "鹿王本生",
"damage_base": 20,
"damage_rand": 2,
"attack_power_cof": 220
}
}
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