Spaces:
Runtime error
Runtime error
| from typing import Dict, Union, Tuple, List | |
| from base.attribute import Attribute | |
| from base.buff import Buff | |
| from base.gain import Gain | |
| from base.skill import Skill | |
| class EquipmentGain(Gain): | |
| buff_ids: List[int] = None | |
| skill_ids: List[int] = None | |
| def __init__(self): | |
| super().__init__(type(self).__name__) | |
| def add_buffs(self, buffs: Dict[int, Buff]): | |
| if self.buff_ids: | |
| for buff_id in self.buff_ids: | |
| buffs[buff_id].activate = True | |
| def sub_buffs(self, buffs: Dict[int, Buff]): | |
| if self.buff_ids: | |
| for buff_id in self.buff_ids: | |
| buffs[buff_id].activate = False | |
| def add_skills(self, skills: Dict[int, Skill]): | |
| if self.skill_ids: | |
| for skill_id in self.skill_ids: | |
| skills[skill_id].activate = True | |
| def sub_skills(self, skills: Dict[int, Skill]): | |
| if self.skill_ids: | |
| for skill_id in self.skill_ids: | |
| skills[skill_id].activate = False | |
| class CriticalSet(EquipmentGain): | |
| def __init__(self, buff_id): | |
| self.buff_ids = [buff_id] | |
| super().__init__() | |
| class DivineEffect(EquipmentGain): | |
| skill_ids = [] | |
| class DivineSubSkill(EquipmentGain): | |
| skill_ids = [] | |
| class WaterWeapon(EquipmentGain): | |
| buff_ids = [4761] | |
| class WindPendant(EquipmentGain): | |
| buff_ids = [6360] | |
| class HatSpecialEnchant(EquipmentGain): | |
| overcome_base = [0] * 8 + [822, 999, 1098, 1218] | |
| def __init__(self, level): | |
| super().__init__() | |
| self.level = level | |
| def add_attribute(self, attribute: Attribute): | |
| attribute.physical_overcome_base += self.overcome_base[self.level - 1] | |
| attribute.magical_overcome_base += self.overcome_base[self.level - 1] | |
| def sub_attribute(self, attribute: Attribute): | |
| attribute.physical_overcome_base -= self.overcome_base[self.level - 1] | |
| attribute.magical_overcome_base -= self.overcome_base[self.level - 1] | |
| class JacketSpecialEnchant(Gain): | |
| physical_ap = [0] * 8 + [371, 450, 495, 549] | |
| magical_ap = [0] * 8 + [442, 538, 591, 655] | |
| def __init__(self, level): | |
| self.level = level | |
| super().__init__(type(self).__name__) | |
| def add_attribute(self, attribute: Attribute): | |
| attribute.physical_attack_power_base += self.physical_ap[self.level - 1] | |
| attribute.magical_attack_power_base += self.magical_ap[self.level - 1] | |
| def sub_attribute(self, attribute: Attribute): | |
| attribute.physical_attack_power_base -= self.physical_ap[self.level - 1] | |
| attribute.magical_attack_power_base -= self.magical_ap[self.level - 1] | |
| class BeltSpecialEnchant(EquipmentGain): | |
| buff_ids = [15455] | |
| class WristSpecialEnchant(EquipmentGain): | |
| skill_ids = [22160, 22161, 22162, 22163, 22164, 37562] | |
| class ShoesSpecialEnchant(EquipmentGain): | |
| skill_ids = [33257, 33258, 33259, 33260, 33261, 37561] | |
| EQUIPMENT_GAINS: Dict[Union[Tuple[int, int], int], Gain] = { | |
| **{ | |
| k: WaterWeapon() | |
| for k in (2400, 2401, 2497, 2498, 2539, 2540, 2604, 2605) | |
| }, | |
| **{ | |
| (6800, i): WindPendant() | |
| for i in range(100, 127 + 1) | |
| }, | |
| **{ | |
| (15436, i): HatSpecialEnchant(i) | |
| for i in range(13) | |
| }, | |
| **{ | |
| (22151, i): JacketSpecialEnchant(i) | |
| for i in range(13) | |
| }, | |
| 22169: BeltSpecialEnchant(), | |
| 22166: WristSpecialEnchant(), | |
| 33247: ShoesSpecialEnchant(), | |
| 17250: Gain(), | |
| 17239: Gain(), | |
| } | |