ango
5.16 commit
1cc60af
from typing import Dict
from base.buff import Buff
from base.gain import Gain
from base.skill import Skill
class 封侯(Gain):
def add_skills(self, skills: Dict[int, Skill]):
skills[18207].skill_damage_addition += 102
def sub_skills(self, skills: Dict[int, Skill]):
skills[18207].skill_damage_addition -= 102
class 扬戈(Gain):
def add_skills(self, skills: Dict[int, Skill]):
skills[18207].skill_critical_strike += 1000
skills[18207].skill_critical_power += 102
def sub_skills(self, skills: Dict[int, Skill]):
skills[18207].skill_critical_strike -= 1000
skills[18207].skill_critical_power -= 102
class 神勇(Gain):
def add_skills(self, skills: Dict[int, Skill]):
for skill_id in (18773, 15002):
skills[skill_id].skill_critical_strike += 1000
skills[skill_id].skill_critical_power += 102
def sub_skills(self, skills: Dict[int, Skill]):
for skill_id in (18773, 15002):
skills[skill_id].skill_critical_strike -= 1000
skills[skill_id].skill_critical_power -= 102
class 风虎(Gain):
def add_buffs(self, buffs: Dict[int, Buff]):
buffs[-12608].activate = True
def sub_buffs(self, buffs: Dict[int, Buff]):
buffs[-12608].activate = False
class 战心(Gain):
def add_skills(self, skills: Dict[int, Skill]):
skills[702].pre_buffs[(-26008, 1)] = 1
skills[702].post_buffs[(-1, 1)] = 3
def sub_skills(self, skills: Dict[int, Skill]):
skills[702].pre_buffs.pop((-26008, 1))
skills[702].post_buffs.pop((-1, 1))
class 骁勇(Gain):
def add_skills(self, skills: Dict[int, Skill]):
skills[3442].attack_power_cof_gain *= 1.12
def sub_skills(self, skills: Dict[int, Skill]):
skills[3442].attack_power_cof_gain /= 1.12
class 虎贲(Gain):
@staticmethod
def effect(parser):
if parser.current_buffs.get((-28169, 1)) == 3:
parser.refresh_buff(-1, 1, 3)
parser.refresh_buff(-28169, 1)
def add_skills(self, skills: Dict[int, Skill]):
skills[18773].post_effects.append(self.effect)
def sub_skills(self, skills: Dict[int, Skill]):
skills[18773].post_effects.remove(self.effect)
TALENT_GAINS: Dict[int, Gain] = {
18487: Gain("百折"),
5656: 封侯("封侯"),
5657: 扬戈("扬戈"),
5660: 神勇("神勇"),
5659: Gain("大漠"),
18602: 骁勇("骁勇"),
24896: Gain("龙驭"),
14824: Gain("驰骋"),
6511: Gain("牧云"),
5666: 风虎("风虎"),
6781: 战心("战心"),
6524: Gain("破楼兰"),
5678: Gain("夜征"),
15001: Gain("龙血"),
6517: 虎贲("虎贲")
}
TALENTS = [
[18487, 5656, 5657],
[5660],
[5659, 18602],
[24896],
[14824],
[6511],
[5666],
[6781],
[6524],
[5678],
[15001],
[6517],
]
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()}