File size: 2,549 Bytes
6e6388e
 
 
 
 
 
 
 
 
ff5593c
6e6388e
 
 
ff5593c
6e6388e
 
 
 
 
a2a5d31
6e6388e
 
a2a5d31
6e6388e
 
6d1ec51
 
 
 
 
 
 
 
 
 
6e6388e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4079f21
6e6388e
 
4079f21
 
 
6e6388e
 
 
 
4079f21
6e6388e
 
 
 
6d09f00
6e6388e
 
 
 
ff5593c
6e6388e
 
 
 
 
 
 
 
 
 
 
6d09f00
6e6388e
 
 
ff5593c
6e6388e
 
 
 
 
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
from typing import Dict

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


class 彤弓(Gain):
    def add_skills(self, skills: Dict[int, Skill]):
        skills[35866].skill_critical_strike += 1000
        skills[35866].skill_critical_power += 102

    def sub_skills(self, skills: Dict[int, Skill]):
        skills[35866].skill_critical_strike -= 1000
        skills[35866].skill_critical_power -= 102


class 素矰(Gain):
    def add_skills(self, skills: Dict[int, Skill]):
        skills[26856].attack_power_cof_gain *= 1.05

    def sub_skills(self, skills: Dict[int, Skill]):
        skills[26856].attack_power_cof_gain /= 1.05


class 孰湖(Gain):
    def add_skills(self, skills: Dict[int, Skill]):
        for skill_id in (36056, 36057, 36111, 36112, 36113, 36114):
            skills[skill_id].skill_damage_addition += 62

    def sub_skills(self, skills: Dict[int, Skill]):
        for skill_id in (36056, 36057, 36111, 36112, 36113, 36114):
            skills[skill_id].skill_damage_addition -= 62


class 桑柘(Gain):
    def add_skills(self, skills: Dict[int, Skill]):
        skills[35771].tick += 1

    def sub_skills(self, skills: Dict[int, Skill]):
        skills[35771].tick -= 1


class 卢令(Gain):
    def add_attribute(self, attribute: Attribute):
        attribute.agility_gain += 102

    def sub_attribute(self, attribute: Attribute):
        attribute.agility_gain -= 102


class 贯侯(Gain):
    def add_skills(self, skills: Dict[int, Skill]):
        skills[36157].skill_pve_addition += 205

    def sub_skills(self, skills: Dict[int, Skill]):
        skills[36157].skill_pve_addition -= 205


TALENT_GAINS: Dict[int, Gain] = {
    35715: 素矰("素矰"),
    35714: 彤弓("彤弓"),
    35718: Gain("棘矢"),
    35719: 孰湖("孰湖"),
    35721: Gain("襄尺"),
    35725: Gain("长右"),
    35729: Gain("鹿蜀"),
    35736: 桑柘("桑柘"),
    35733: Gain("诸怀"),
    35737: Gain("于狩"),
    35745: 卢令("卢令"),
    35749: Gain("托月"),
    35751: Gain("佩弦"),
    35754: Gain("丛云隐月"),
    35757: 贯侯("贯侯"),
    35764: Gain("朝仪万汇"),
    35761: Gain("朱厌")
}

TALENTS = [
    [35715, 35714],
    [35718, 35719],
    [35721],
    [35725],
    [35729],
    [35736, 35733],
    [35737],
    [35745],
    [35749],
    [35751, 35754],
    [35757],
    [35764, 35761]
]
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()}