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] = {
32823: {
"skill_class": PhysicalDamage,
"skill_name": "破",
"surplus_cof": [
1048576 * (0.875 - 1),
1048576 * (0.1375 - 1),
1048576 * (0.275 - 1),
1048576 * (0.4032 - 1)
]
},
**{
skill_id: {
"skill_class": PhysicalDamage,
"skill_name": "霜风刀法",
"attack_power_cof": 16,
"weapon_damage_cof": 1024
} for skill_id in (16419, 16820, 16822)
},
**{
skill_id: {
"skill_class": PhysicalDamage,
"skill_name": "雷走风切",
"damage_base": 175,
"damage_rand": 15,
"attack_power_cof": 224 * 0.8 * 0.7,
} for skill_id in (16599, 16631)
},
11447: {
"skill_class": PhysicalDotDamage,
"skill_name": "闹须弥(DOT)",
"damage_base": [25, 28, 31, 34, 37, 40, 43, 46, 49, 52],
"attack_power_cof": [50] +
[50 + (i - 1) * 25 for i in range(2, 10)] +
[280],
"interval": 48,
"tick": 8
},
17060: {
"skill_class": DotSkill,
"skill_name": "闹须弥",
"bind_skill": 11447,
},
16933: {
"skill_class": PhysicalDamage,
"skill_name": "惊燕式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[64 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16934: {
"skill_class": PhysicalDamage,
"skill_name": "惊燕式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [20 * 1.3 * 1.2] +
[(20 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[80 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16935: {
"skill_class": PhysicalDamage,
"skill_name": "逐鹰式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[64 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16936: {
"skill_class": PhysicalDamage,
"skill_name": "逐鹰式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[96 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16937: {
"skill_class": PhysicalDamage,
"skill_name": "控鹤式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[80 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16938: {
"skill_class": PhysicalDamage,
"skill_name": "控鹤式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [20 * 1.3 * 1.2] +
[(20 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[104 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16939: {
"skill_class": PhysicalDamage,
"skill_name": "起凤式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[96 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16940: {
"skill_class": PhysicalDamage,
"skill_name": "起凤式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [20 * 1.3 * 1.2] +
[(20 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[120 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16941: {
"skill_class": PhysicalDamage,
"skill_name": "腾蛟式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[112 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16942: {
"skill_class": PhysicalDamage,
"skill_name": "腾蛟式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [20 * 1.3 * 1.2] +
[(20 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[128 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16943: {
"skill_class": PhysicalDamage,
"skill_name": "擒龙式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [16 * 1.3 * 1.2] +
[(16 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[112 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16944: {
"skill_class": PhysicalDamage,
"skill_name": "擒龙式",
"damage_base": [30, 35, 40, 45, 50, 55, 60, 65, 70, 80],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 10],
"attack_power_cof": [20 * 1.3 * 1.2] +
[(20 + (i - 1) * 8) * 1.3 * 1.2 for i in range(2, 10)] +
[144 * 1.3 * 1.2],
"weapon_damage_cof": 1024
},
16787: {
"skill_class": PhysicalDamage,
"skill_name": "坚壁清野",
"damage_base": [150, 170, 190, 210, 230, 250, 270, 290, 310, 330, 350, 370, 390, 410, 430],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20],
"attack_power_cof": [60 * 1.2 * 0.7 * 1.1] +
[(60 + (i - 1) * 16) * 1.2 * 0.7 * 1.1 for i in range(2, 15)] +
[288 * 1.2 * 0.7 * 1.1],
},
16794: {
"skill_class": PhysicalDamage,
"skill_name": "坚壁清野",
"damage_base": [55, 70, 85, 100, 115, 130, 145, 160, 175, 190, 205, 220, 235, 240, 250],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20],
"attack_power_cof": [32 * 1.1] +
[32 + (i - 1) * 9 * 1.1 for i in range(2, 15)] +
[160 * 1.1],
},
16610: {
"skill_class": PhysicalDamage,
"skill_name": "刀啸风吟",
"damage_base": [100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 205, 220, 235, 240, 250],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20],
"attack_power_cof": [50 * 1.2 * 1.05 * 1.1 * 1.1 * 1.05 * 1.1] +
[(50 + (i - 1) * 14) * 1.2 * 1.05 * 1.1 * 1.1 * 1.05 * 1.1 for i in range(2, 15)] +
[256 * 1.2 * 1.05 * 1.1 * 1.1 * 1.05 * 1.1],
},
16760: {
"skill_class": PhysicalDamage,
"skill_name": "项王击鼎",
"damage_base": [35, 45, 55, 70, 85, 100, 115, 130, 145, 175, 190, 205, 220, 235, 250],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15],
"attack_power_cof": [40 * 1.2 * 0.9 * 1.1 * 1.1] +
[(40 + (i - 1) * 11) * 1.2 * 0.9 * 1.1 * 1.1 for i in range(2, 15)] +
[200 * 1.2 * 0.9 * 1.1 * 1.1],
"weapon_damage_cof": 1024
},
16382: {
"skill_class": PhysicalDamage,
"skill_name": "项王击鼎",
"damage_base": [50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15],
"attack_power_cof": [16 * 0.9 * 1.1] +
[(16 + (i - 1) * 7) * 0.9 * 1.1 for i in range(2, 15)] +
[128 * 0.9 * 1.1],
"weapon_damage_cof": 1024
},
20991: {
"skill_class": PhysicalDamage,
"skill_name": "破釜沉舟",
"damage_base": [90, 86, 110, 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": [80 * 0.9 * 0.95 * 1.1 * 1.15 * 1.1] +
[(80 + (i - 1) * 22) * 0.9 * 0.95 * 1.1 * 1.15 * 1.1 for i in range(2, 15)] +
[400 * 0.9 * 0.95 * 1.1 * 1.15 * 1.1],
"weapon_damage_cof": 2048
},
**{
skill_id: {
"skill_class": PhysicalDamage,
"skill_name": "上将军印",
"damage_base": [100, 140, 160, 180, 200, 220, 240, 260, 280, 300],
"damage_rand": [10, 10, 10, 10, 10, 15, 15, 15, 15, 15],
"damage_gain": 1 + 0.15 * i,
"attack_power_cof": [60 * 0.9 * 1.1 * 1.05] +
[(60 + (i - 1) * 10) * 0.9 * 1.1 * 1.05 for i in range(2, 10)] +
[160 * 0.9 * 1.1 * 1.05],
"attack_power_cof_gain": 1 + 0.15 * i,
"weapon_damage_cof": 1024,
"weapon_damage_cof_gain": 1 + max(0.15 * i, 0.6)
} for i, skill_id in enumerate([16803, 16802, 16801, 16800, 17043, 19423, 19424])
},
36486: {
"skill_class": PhysicalDamage,
"skill_name": "楚歌",
"damage_base": [55, 70],
"damage_rand": 5,
"attack_power_cof": [240 * 0.8 * 1.5, 1200 * 0.8 * 1.5],
},
30645: {
"skill_class": PhysicalDamage,
"skill_name": "降麒",
"damage_base": [50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15],
"attack_power_cof": 60 * 2,
"weapon_damage_cof": 1024
},
34585: {
"skill_class": PhysicalDamage,
"skill_name": "绝期",
"damage_base": [55, 70, 85, 100, 115, 130, 145, 160, 175, 190, 205, 220, 235, 240, 250],
"damage_rand": [5, 5, 5, 5, 5, 10, 10, 10, 10, 15, 15, 15, 20, 20, 20],
"attack_power_cof": 120,
},
32859: {
"skill_class": PhysicalDamage,
"skill_name": "上将军印·见尘",
"damage_base": [int(e * 1.45 * 0.5) for e in [100, 140, 160, 180, 200, 220, 240, 260, 280, 300]],
"damage_rand": [int(e * 1.45 * 0.5) for e in [10, 10, 10, 10, 10, 15, 15, 15, 15, 15]],
"attack_power_cof": [60 * 1.45 * 1.1 * 0.7] +
[(60 + (i - 1) * 10) * 1.45 * 1.1 * 0.7 for i in range(2, 10)] +
[160 * 1.45 * 0.9 * 1.1 * 0.7],
},
37458: {
"skill_class": PhysicalDamage,
"skill_name": "掠关",
"damage_base": [80, 88, 96, 106, 112, 118, 124, 132, 138, 142, 150, 158, 166, 172, 180],
"damage_rand": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 48, 50],
"attack_power_cof": 230 * 1.3
},
25782: {
"skill_class": PhysicalDamage,
"skill_name": "上将军印·神兵",
"damage_base": 20,
"damage_rand": 2,
"attack_power_cof": 25
},
19555: {
"skill_class": PhysicalDotDamage,
"skill_name": "背水沉舟(DOT)",
"damage_base": 25,
"attack_power_cof": 380,
"interval": 48,
"max_stack": 3,
"tick": 6
},
26934: {
"skill_class": DotSkill,
"skill_name": "背水沉舟",
"bind_skill": 19555,
}
}
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