File size: 8,071 Bytes
dace851
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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] = {
    32889: {
        "skill_class": MagicalDamage,
        "skill_name": "破",
        "surplus_cof": 1048576 * (1.2 * 0.33 * 0.33 - 1)
    },
    15: {
        "skill_class": PhysicalDamage,
        "skill_name": "连环双刀",
        "attack_power_cof": 16,
        "weapon_damage_cof": 1024,
        "skill_damage_addition": 205
    },
    2920: {
        "skill_class": MagicalDotDamage,
        "skill_name": "急曲(DOT)",
        "damage_base": 100,
        "attack_power_cof": 114 * 1.1*0.9 * 1.1,
        "interval": 48
    },
    18716: {
        "skill_class": DotSkill,
        "skill_name": "急曲",
        "bind_skill": 2920,
        "max_stack": 3,
        "tick": 6
    },
    6559: {
        "skill_class": type("Mixing", (MagicalDamage, DotConsumeSkill), {}),
        "skill_name": "江海凝光",
        "damage_base": [65, 68, 71, 75, 78, 81, 83, 86] +
                       [e * 0.95 for e in
                        [95, 101, 106, 111, 116, 121, 127, 132, 137, 142, 147, 153, 158, 163, 168, 173, 179, 184, 189,
                         194, 199, 205, 210, 215]],
        "damage_rand": [e * 0.1 for e in
                        [54, 59, 64, 69, 75, 80, 85, 90, 95, 101, 106, 111, 116, 121, 127, 132, 137, 142, 147, 153, 158,
                         163, 168, 173, 179, 184, 189, 194, 199, 205, 210, 215]],
        "damage_gain": 1 / 2.5,
        "attack_power_cof": [36 * 1.3 * 1.1] * 9 +
                            [(36 + (i - 9) * 1) * 1.3 * 1.1 for i in range(10, 32)] +
                            [164 * 1.3 * 1.1],
        "bind_skill": 2920,
        "tick": 99
    },
    30524: {
        "skill_class": MagicalDamage,
        "skill_name": "剑气长江",
        "damage_base": [e * 0.2 for e in [21, 76, 80, 81, 84]] +
                       [e * 2 * 0.98 * 0.2 for e in
                        [255, 264, 272, 281, 289, 298, 306, 325, 323, 332, 340, 349, 357, 366, 374, 383, 391, 400, 408,
                         417, 425, 434, 442]],
        "damage_rand": [e * 2 * 0.04 * 0.5 for e in
                        [33, 41, 50, 58, 67, 75, 84, 92, 101, 109, 118, 126, 135, 143, 152, 160, 169, 177, 186, 194,
                         203, 211, 220, 228, 237, 245, 254, 262]],
        "attack_power_cof": [64 * 1.1 * 1.2 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1] * 9 +
                            [(64 + (i - 9) * 4) * 1.1 * 1.2 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1 for i in range(10, 28)] +
                            [152 * 1.1 * 1.2 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1],
    },
    6234: {
        "skill_class": MagicalDamage,
        "skill_name": "玳弦急曲",
        "damage_base": [20, 79, 90, 96, 103, 109, 116, 122, 129, 135, 142, 148, 155, 161, 168, 174, 181, 187, 194, 200,
                        207, 213, 220, 226, 233, 239, 246, 252],
        "damage_rand": [e * 0.1 for e in
                        [27, 33, 40, 46, 53, 59, 66, 72, 79, 85, 92, 98, 105, 111, 118, 124, 131, 137, 144, 150, 157,
                         163, 170, 176, 183, 189, 196, 202]],
        "attack_power_cof": [36 * 0.9 * 0.9 * 1.25 * 1.05] * 9 +
                            [(36 + (i - 9) * 3) * 0.9 * 0.9 * 1.25 * 1.05 for i in range(10, 28)] +
                            [85 * 0.9 * 1.25 * 1.05],
    },
    6554: {
        "skill_class": MagicalDamage,
        "skill_name": "玳弦急曲",
        "damage_base": [20, 79, 90, 96, 103, 109, 116, 122, 129, 135, 142, 148, 155, 161, 168, 174, 181, 187, 194, 200,
                        207, 213, 220, 226, 233, 239, 246, 252],
        "damage_rand": [e * 0.1 for e in
                        [27, 33, 40, 46, 53, 59, 66, 72, 79, 85, 92, 98, 105, 111, 118, 124, 131, 137, 144, 150, 157,
                         163, 170, 176, 183, 189, 196, 202]],
        "damage_gain": 0.15,
        "attack_power_cof": 85 * 0.45 * 0.9 * 1.25 * 1.05,
    },
    23936: {
        "skill_class": MagicalDamage,
        "skill_name": "广陵月",
        "damage_base": 20,
        "damage_rand": 17,
        "attack_power_cof": 16 * 1.1,
    },
    34642: {
        "skill_class": MagicalDamage,
        "skill_name": "流玉",
        "damage_base": 384 * 0.95,
        "damage_rand": 384 * 0.1,
        "attack_power_cof": 250 * 1.1,
        "skill_shield_gain": -819,
    },
    34704: {
        "skill_class": MagicalDamage,
        "skill_name": "破·流玉",
        "surplus_cof": 1048576 * (1.2 * 1.1 * 1.25 - 1)
    },
    37317: {
        "skill_class": MagicalDamage,
        "skill_name": "留芳仙姿·剑破",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": 175,
    },
    37318: {
        "skill_class": MagicalDamage,
        "skill_name": "留芳仙姿·玳弦",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": 30,
    },
    37319: {
        "skill_class": MagicalDamage,
        "skill_name": "留芳仙姿·剑气",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": 70,
    },
    37320: {
        "skill_class": MagicalDamage,
        "skill_name": "留芳仙姿·剑影",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": 260,
    },
    33140: {
        "skill_class": MagicalDamage,
        "skill_name": "盈袖",
        "damage_base": [70, 75, 80, 85, 90, 95],
        "damage_rand": 5,
        "attack_power_cof": [(400 * (i + 1) + 250) * 0.25 * 0.5 for i in range(6)]
    },
    30532: {
        "skill_class": MagicalDamage,
        "skill_name": "钗燕",
        "damage_base": [133, 644, 1156, 1667],
        "damage_rand": 5,
        "attack_power_cof": 100 * 1.3,
    },
    34611: {
        "skill_class": MagicalDamage,
        "skill_name": "钗燕·明",
        "damage_base": [70, 75, 80, 85, 90, 95],
        "damage_rand": 5,
        "attack_power_cof": 300 * 1.6 * 1.8 * 0.7 * 0.95,
    },
    24999: {
        "skill_class": MagicalDamage,
        "skill_name": "化冰",
        "damage_base": [20, 79, 90, 96, 103, 109, 116, 122, 129, 135, 142, 148, 155, 161, 168, 174, 181, 187, 194, 200,
                        207, 213, 220, 226, 233, 239, 246, 252],
        "damage_rand": [e * 0.1 for e in
                        [27, 33, 40, 46, 53, 59, 66, 72, 79, 85, 92, 98, 105, 111, 118, 124, 131, 137, 144, 150, 157,
                         163, 170, 176, 183, 189, 196, 202]],
        "attack_power_cof": 300 * 1.05 * 1.2,
    },
    34612: {
        "skill_class": MagicalDamage,
        "skill_name": "凝华",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": [30 * (i + 1) * 0.7 for i in range(10)],
    },
    35058: {
        "skill_class": MagicalDamage,
        "skill_name": "凝华·明",
        "damage_base": [70, 75, 80, 85, 90, 95, 100, 105, 110, 115],
        "damage_rand": 5,
        "attack_power_cof": [370 * (i + 1) * 0.5 * 1.7 * 0.7 * 1.2 / 3 for i in range(10)],
    },
    25769: {
        "skill_class": MagicalDamage,
        "skill_name": "剑破虚空·神兵",
        "damage_base": 20,
        "damage_rand": 2,
        "attack_power_cof": 65
    },
    18512: {
        "skill_class": MagicalDotDamage,
        "skill_name": "气吞长江(DOT)",
        "damage_base": 25,
        "attack_power_cof": 400*1.4,
        "interval": 48
    },
    25757: {
        "skill_class": DotSkill,
        "skill_name": "气吞长江",
        "bind_skill": 18512,
        "max_stack": 3,
        "tick": 10
    }
}

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