File size: 2,549 Bytes
6e6388e
 
 
 
 
 
 
 
 
ff5593c
6e6388e
 
 
ff5593c
6e6388e
 
 
 
 
a2a5d31
6e6388e
 
a2a5d31
6e6388e
 
6d1ec51
 
 
 
 
 
 
 
 
 
6e6388e
 
effe13f
6e6388e
 
effe13f
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[26856].tick += 1

    def sub_skills(self, skills: Dict[int, Skill]):
        skills[26856].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()}