from typing import Dict from base.skill import Skill, DotSkill, PhysicalDamage, PhysicalDotDamage from general.skills import GENERAL_SKILLS class 战意判定(Skill): final_buff = -12608 bind_buff = -1 def record(self, critical, parser): if buff_level := parser.current_buffs.get((self.bind_buff, 1)): parser.refresh_buff(self.final_buff, buff_level) SKILLS: Dict[int, Skill | dict] = { 32820: { "skill_class": PhysicalDamage, "skill_name": "破", "surplus_cof": 1048576 * (0.429 - 1) }, 12: { "skill_class": PhysicalDamage, "skill_name": "梅花枪法", "attack_power_cof": 16, "weapon_damage_cof": 1024 }, 3442: { "skill_class": PhysicalDotDamage, "skill_name": "流血(DOT)", "skill_level": 30, "damage_base": 60, "attack_power_cof": 248 * 1.15 * 1.05 * 1.05 * 1.1 * 1.1, "interval": 32, "max_stack": 2, "tick": 7 }, 18591: { "skill_class": DotSkill, "skill_name": "流血", "bind_skill": 3442, }, 409: { "skill_class": PhysicalDamage, "skill_name": "断魂刺", "skill_level": 7, "damage_base": 39, "damage_rand": 3, "attack_power_cof": 16, "weapon_damage_cof": 1024, "post_buffs": {(-1, 1): 3} }, 431: { "skill_class": PhysicalDamage, "skill_name": "突", "skill_level": 6, "damage_base": 37, "damage_rand": 3, "weapon_damage_cof": 1024 }, 14882: { "skill_class": PhysicalDamage, "skill_name": "突", "damage_base": 10, "damage_rand": 3, "weapon_damage_cof": 1024 }, 702: { "skill_class": type("Mixing", (PhysicalDamage, DotSkill), {}), "skill_name": "灭", "skill_level": 19, "damage_base": 160 * 1.3, "damage_rand": 10, "attack_power_cof": 170 * 1.12, "weapon_damage_cof": 1024, "bind_skill": 3442, }, 18207: { "skill_class": PhysicalDamage, "skill_name": "穿云", "skill_level": 28, "damage_base": 160, "damage_rand": 15, "attack_power_cof": 158 * 1.05 * 1.1 * 1.1 * 1.12 * 1.1, "weapon_damage_cof": 1024, "post_buffs": {(-1, 1): 1} }, 18603: { "skill_class": PhysicalDamage, "skill_name": "龙吟", "skill_level": 29, "damage_base": 289 * 0.65, "damage_rand": 15, "attack_power_cof": 184 * 1.1 * 1.1 * 1.12 * 1.1 * 1.1 * 1.2, "weapon_damage_cof": 1024, "post_buffs": {(-1, 1): 2} }, 18773: { "skill_class": PhysicalDamage, "skill_name": "龙牙", "skill_level": 29, "damage_base": 445 * 0.5, "damage_rand": 15, "attack_power_cof": 197 * 1.1 * 1.1 * 1.15 * 1.1 * 1.1 * 1.12 * 0.9 * 1.1 * 1.05, "weapon_damage_cof": 1024, "post_buffs": {(-1, 1): -3} }, 37618: { "skill_class": PhysicalDamage, "skill_name": "龙吟·大漠", "damage_base": 70, "damage_rand": 5, "attack_power_cof": 350, "weapon_damage_cof": 1024, }, 24898: { "skill_class": PhysicalDamage, "skill_name": "灭", "attack_power_cof": 42, "weapon_damage_cof": 1024 }, 6526: { "skill_class": PhysicalDamage, "skill_name": "灭", "skill_level": 19, "damage_base": 242 * 0.95, "damage_rand": 242 * 0.1, "damage_gain": 1 / 4, "attack_power_cof": 170 * 1.12 * 1, "weapon_damage_cof": 1024 / 4 }, 18740: { "skill_class": 战意判定, "skill_name": "战意判定" }, 15002: { "skill_class": PhysicalDamage, "skill_name": "龙牙", "skill_level": 29, "damage_base": 445 * 0.5, "damage_rand": 15, "damage_gain": 0.1, "attack_power_cof": 197 * 1.1 * 1.1 * 1.15 * 0.4 * 1.1 * 1.1 * 1.12 * 0.9 * 1.1 * 1.05, "weapon_damage_cof": 1024 * 0.1 }, 1850: { "skill_class": Skill, "skill_name": "特效触发", "post_buffs": {(-1, 1): 5} }, 25772: { "skill_class": PhysicalDamage, "skill_name": "龙牙·神兵", "damage_base": 20, "damage_rand": 2, "attack_power_cof": 50 }, 31031: { "skill_class": PhysicalDamage, "skill_name": "画角闻龙", "damage_base": 523 * 0.95, "damage_rand": 523 * 0.1, "attack_power_cof": 205, }, } for skill_id, detail in SKILLS.items(): SKILLS[skill_id] = detail.pop('skill_class')(skill_id) for attr, value in detail.items(): setattr(SKILLS[skill_id], attr, value) for skill_id, skill in GENERAL_SKILLS.items(): SKILLS[skill_id] = skill