File size: 2,877 Bytes
2f63a42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
025687f
2f63a42
 
 
 
2452398
2f63a42
 
 
2452398
2f63a42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2452398
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
from typing import Dict

from base.attribute import Attribute
from base.gain import Gain


class ε†₯ιΌ“(Gain):
    def add(self, other):
        if isinstance(other, dict):
            for skill_id in [16760, 16382, 20991]:
                other[skill_id].skill_damage_addition += 205
                other[skill_id].skill_shield_gain -= 512
            other[32823].skill_shield_gain = [0, 0, -512, -512]

    def sub(self, other):
        if isinstance(other, dict):
            for skill_id in [16760, 16382, 20991]:
                other[skill_id].skill_damage_addition -= 205
                other[skill_id].skill_shield_gain += 512
            other[32823].skill_shield_gain = 0


class ι˜³ε…³(Gain):
    def add(self, other):
        if isinstance(other, dict):
            for skill_id in [16803, 16802, 16801, 16800, 17043, 19423, 19424]:
                other[skill_id].skill_damage_addition += 154
                other[skill_id].skill_shield_gain -= 205
            other[32859].skill_damage_addition += 154

    def sub(self, other):
        if isinstance(other, dict):
            for skill_id in [16803, 16802, 16801, 16800, 17043, 19423, 19424]:
                other[skill_id].skill_damage_addition -= 154
                other[skill_id].skill_shield_gain += 205
            other[32859].skill_damage_addition -= 154


class 星火(Gain):
    def add(self, other):
        if isinstance(other, Attribute):
            other.strength_gain += 102

    def sub(self, other):
        if isinstance(other, Attribute):
            other.strength_gain -= 102


class 绝河(Gain):
    def add(self, other):
        if isinstance(other, dict):
            other[20991].skill_damage_addition += 307

    def sub(self, other):
        if isinstance(other, dict):
            other[20991].skill_damage_addition -= 307


class 绝期(Gain):
    def add(self, other):
        if isinstance(other, dict):
            other[11447].attack_power_cof_gain += 0.7

    def sub(self, other):
        if isinstance(other, dict):
            other[11447].attack_power_cof_gain -= 0.7


TALENT_GAINS: Dict[int, Gain] = {
    16691: Gain("龙息"),
    16847: Gain("ε½’ι…£"),
    26904: ε†₯ιΌ“("ε†₯ιΌ”"),
    17042: ι˜³ε…³("ι˜³ε…³"),
    16799: Gain("霜倩"),
    25633: Gain("含风"),
    32857: Gain("见尘"),
    17047: Gain("εˆ†η–†"),
    25258: Gain("ζŽ ε…³"),
    16728: 星火("星火"),
    34677: 绝河("绝河"),
    16737: Gain("ζ₯šζ­Œ"),
    17056: 绝期("绝期"),
    16893: Gain("ι‡ηƒŸ"),
    21858: Gain("降麒式")
}

TALENTS = [
    [16691],
    [16847],
    [26904, 17042],
    [16799],
    [25633],
    [32857],
    [17047],
    [25258, 16728, 34677],
    [16737],
    [17056],
    [16893],
    [21858]
]
TALENT_DECODER = {talent_id: talent.gain_name for talent_id, talent in TALENT_GAINS.items()}
TALENT_ENCODER = {v: k for k, v in TALENT_DECODER.items()}