File size: 5,602 Bytes
17a347d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
from typing import Dict

from base.constant import DOT_DAMAGE_SCALE, FRAME_PER_SECOND
from base.skill import Skill, DotSkill, DotConsumeSkill, PhysicalDamage, PhysicalDotDamage
from general.skills import GENERAL_SKILLS

SKILLS: Dict[int, Skill | dict] = {
    36177: {
        "skill_class": PhysicalDamage,
        "skill_name": "破",
        "surplus_cof": [
            1048576 * (0.3 - 1),
            1048576 * (0.3 - 1)
        ]
    },
    35894: {
        "skill_class": PhysicalDamage,
        "skill_name": "风矢",
        "attack_power_cof": 16,
        "weapon_damage_cof": 1024,
        "skill_damage_addition": 205
    },
    35866: {
        "skill_class": PhysicalDamage,
        "skill_name": "劲风簇",
        "damage_base": [35, 70, 105, 140, 157, 175, 193, 210, 228, 245, 263, 280, 298, 315, 333],
        "damage_rand": 5,
        "attack_power_cof": [25 * 0.9 * 0.9 * 0.95] * 3 +
                            [(25 + (i - 4) * 10) * 0.9 * 0.9 * 0.95 for i in range(4, 15)] +
                            [175 * 0.9 * 0.9 * 0.95],
        "weapon_damage_cof": 1024
    },
    35987: {
        "skill_class": PhysicalDamage,
        "skill_name": "饮羽簇",
        "damage_base": [77, 154, 321, 308, 347, 385, 424, 462, 501, 539, 578, 616, 655, 693, 732],
        "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10],
        "attack_power_cof": [66 * 0.9 * 0.9 * 0.95 * 0.9 * 0.95] * 3 +
                            [(66 + (i - 4) * 38) * 0.9 * 0.9 * 0.95 * 0.9 * 0.95 for i in range(4, 15)] +
                            [552 * 0.9 * 0.9 * 0.95 * 0.9 * 0.95],
        "weapon_damage_cof": 2048
    },
    36056: {
        "skill_class": PhysicalDamage,
        "skill_name": "践踏",
        "damage_base": [16, 44, 72, 100, 128, 156, 184, 212, 240, 268, 296],
        "damage_rand": 20,
        "attack_power_cof": [70 * 1.05] * 2 +
                            [(70 + (i - 3) * 58) * 1.05 for i in range(3, 11)] +
                            [607 * 1.05],
        "skill_damage_addition": 62
    },
    36057: {
        "skill_class": PhysicalDamage,
        "skill_name": "重击",
        "damage_base": [16, 44, 72, 100, 128, 156, 184, 212, 240, 268, 296],
        "damage_rand": 20,
        "attack_power_cof": [33 * 1.05] * 2 +
                            [(33 + (i - 3) * 26) * 1.05 for i in range(3, 11)] +
                            [276 * 1.05],
        "skill_damage_addition": 62
    },
    36111: {
        "skill_class": PhysicalDamage,
        "skill_name": "攻击",
        "damage_base": [16, 44, 72, 100, 128, 156, 184, 212, 240, 268, 296],
        "damage_rand": 20,
        "attack_power_cof": [33 * 1.05] * 2 +
                            [(33 + (i - 3) * 26) * 1.05 for i in range(3, 11)] +
                            [276 * 1.05],
        "skill_damage_addition": 62
    },
    36112: {
        "skill_class": PhysicalDamage,
        "skill_name": "攻击",
        "damage_base": [48, 132, 216, 300, 384, 468, 552, 636, 720, 804, 296],
        "damage_rand": 20,
        "attack_power_cof": [99 * 1.05] * 2 +
                            [(99 + (i - 3) * 26) * 1.05 for i in range(3, 11)] +
                            [828 * 1.05],
        "skill_damage_addition": 62
    },
    36113: {
        "skill_class": PhysicalDamage,
        "skill_name": "攻击",
        "damage_base": [16, 44, 72, 100, 128, 156, 184, 212, 240, 268, 296],
        "damage_rand": 20,
        "attack_power_cof": [70 * 1.05] * 2 +
                            [(70 + (i - 3) * 26) * 1.05 for i in range(3, 11)] +
                            [607 * 1.05],
        "skill_damage_addition": 62
    },
    36114: {
        "skill_class": PhysicalDamage,
        "skill_name": "攻击",
        "damage_base": [16, 44, 72, 100, 128, 156, 184, 212, 240, 268, 296],
        "damage_rand": 20,
        "attack_power_cof": [23 * 1.05] * 2 +
                            [(23 + (i - 3) * 26) * 1.05 for i in range(3, 11)] +
                            [165 * 1.05],
        "skill_damage_addition": 62
    },
    36157: {
        "skill_class": PhysicalDamage,
        "skill_name": "标鹄",
        "damage_base": 30,
        "damage_rand": 20,
        "attack_power_cof": 512 * 1.15 * 0.9 * 0.95
    },
    26856: {
        "skill_class": PhysicalDotDamage,
        "skill_name": "贯穿(DOT)",
        "damage_base": 32,
        "attack_power_cof": 215 * 0.7 * 1.15 * 0.9 * 0.9 * 0.9,
        "interval": FRAME_PER_SECOND * DOT_DAMAGE_SCALE / 4
    },
    36165: {
        "skill_class": DotConsumeSkill,
        "skill_name": "贯穿",
        "bind_skill": 26856,
        "tick": 3
    },
    35771: {
        "skill_class": DotSkill,
        "skill_name": "贯穿",
        "bind_skill": 26856,
        "max_stack": 6,
        "tick": 4
    },
    36453: {
        "skill_class": PhysicalDamage,
        "skill_name": "朝仪万汇",
        "damage_base": 37,
        "damage_rand": 5,
        "attack_power_cof": 215
    },
    36579: {
        "skill_class": PhysicalDamage,
        "skill_name": "劲风簇·神兵",
        "damage_base": 20,
        "damage_rand": 2,
        "attack_power_cof": 60
    },
    36580: {
        "skill_class": PhysicalDamage,
        "skill_name": "月弦激星",
        "damage_base": 20,
        "damage_rand": 2,
        "attack_power_cof": 390
    }
}

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