from typing import Dict from base.skill import Skill, DotSkill, PhysicalDamage, PhysicalDotDamage from general.skills import GENERAL_SKILLS SKILLS: Dict[int, Skill | dict] = { 32822: { "skill_class": PhysicalDamage, "skill_name": "破", "surplus_cof": [ 1048576 * (0.48875 - 1), 1048576 * (0.146625 - 1) ] }, 22126: { "skill_class": PhysicalDamage, "skill_name": "碎风刃", "attack_power_cof": 16, "weapon_damage_cof": 1024, "skill_damage_addition": 205 }, 22787: { "skill_class": PhysicalDamage, "skill_name": "幽冥窥月", "damage_base": [67, 152, 237, 322, 407, 493, 578, 663, 748, 833], "damage_rand": 10, "attack_power_cof": [16] * 2 + [8 * i for i in range(3, 10)] + [80], "weapon_damage_cof": 1024 }, **{ skill_id: { "skill_class": PhysicalDamage, "skill_name": "星垂平野", "damage_base": [40, 55, 71, 86, 101, 117, 132, 147, 163, 178, 193, 209, 224, 239, 255, 270, 285, 301, 316, 331, 347, 362, 377, 393, 408, 423, 439, 454, 469, 485, 500], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [24 * 1.5 * 1.3 * 0.8 * 1.1 * 1.15] * 5 + [(3.6 * i + 5) * 1.5 * 1.3 * 0.8 * 1.1 * 1.15 for i in range(6, 31)] + [180 * 1.3 * 0.8 * 1.1 * 1.15], "weapon_damage_cof": 1024 } for skill_id in (22170, 22550, 22551) }, 22298: { "skill_class": PhysicalDamage, "skill_name": "星垂平野", "damage_base": [40, 55, 71, 86, 101, 117, 132, 147, 163, 178, 193, 209, 224, 239, 255, 270, 285, 301, 316, 331, 347, 362, 377, 393, 408, 423, 439, 454, 469, 485, 500], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [24 * 1.5 * 0.4 * 1.3 * 0.8 * 1.1 * 1.15] * 5 + [(3.6 * i + 5) * 1.5 * 0.4 * 1.3 * 0.8 * 1.1 * 1.15 for i in range(6, 31)] + [180 * 0.4 * 1.3 * 0.8 * 1.1 * 1.15], "weapon_damage_cof": 1024 }, 22621: { "skill_class": PhysicalDamage, "skill_name": "金戈回澜", "damage_base": [87, 134, 182, 229, 277, 324, 372, 419, 466, 514, 561, 609, 656, 704, 751, 798, 846, 893, 941, 988, 1036, 1083], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15], "attack_power_cof": [52 * 1.35 * 0.9 * 1.1 * 1.15] * 3 + [(10 * i + 15) * 1.35 * 0.9 * 1.1 * 1.15 for i in range(4, 22)] + [260 * 1.35 * 0.9 * 1.1 * 1.15], "weapon_damage_cof": 2048 }, 22620: { "skill_class": PhysicalDamage, "skill_name": "金戈回澜", "damage_base": [87, 134, 182, 229, 277, 324, 372, 419, 466, 514, 561, 609, 656, 704, 751, 798, 846, 893, 941, 988, 1036, 1083], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15], "attack_power_cof": [52 * 1.35 * 0.1 * 0.9 * 1.1 * 1.15] * 3 + [(10 * i + 15) * 1.35 * 0.1 * 0.9 * 1.1 * 1.15 for i in range(4, 22)] + [260 * 1.35 * 0.1 * 0.9 * 1.1 * 1.15], "weapon_damage_cof": 1024 }, 22610: { "skill_class": PhysicalDamage, "skill_name": "隐风雷", "damage_base": [160, 180, 200, 220, 240, 260, 280, 300, 310, 320, 330, 340, 350, 360, 370, 380, 395, 413], "damage_rand": [e * 0.1 for e in [73, 93, 113, 133, 153, 173, 193, 213, 233, 253, 273, 293, 313, 333, 353, 373, 393, 413]], "attack_power_cof": [20] * 8 + [(60 + (i - 8) * 0.3) for i in range(9, 18)] + [70], "weapon_damage_cof": 1024 }, 22611: { "skill_class": PhysicalDamage, "skill_name": "隐风雷", "damage_base": [160, 180, 200, 220, 240, 260, 280, 300, 310, 320, 330, 340, 350, 360, 370, 380, 395, 413], "damage_rand": [e * 0.1 for e in [73, 93, 113, 133, 153, 173, 193, 213, 233, 253, 273, 293, 313, 333, 353, 373, 393, 413]], "attack_power_cof": [20 * 1.3] * 8 + [(60 + (i - 8) * 0.3) * 1.3 for i in range(9, 18)] + [70 * 1.3], "weapon_damage_cof": 1024 }, 22612: { "skill_class": PhysicalDamage, "skill_name": "隐风雷", "damage_base": [160, 180, 200, 220, 240, 260, 280, 300, 310, 320, 330, 340, 350, 360, 370, 380, 395, 413], "damage_rand": [e * 0.1 for e in [73, 93, 113, 133, 153, 173, 193, 213, 233, 253, 273, 293, 313, 333, 353, 373, 393, 413]], "attack_power_cof": [20 * 0.5 * 1.3] * 8 + [(60 + (i - 8) * 0.3) * 0.5 * 1.3 for i in range(9, 18)] + [70 * 0.5 * 1.3], "weapon_damage_cof": 1024 }, 22604: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [40 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1] * 6 + [(3 * i + 1.5) * 2 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1 for i in range(7, 32)] + [250 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1], "weapon_damage_cof": 2048 }, 22605: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [40 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1 * 1.1] * 6 + [(3 * i + 1.5) * 2 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1 * 1.1 for i in range(7, 32)] + [250 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 22490: { "skill_class": PhysicalDamage, "skill_name": "乱天狼", "damage_base": [37, 67, 97, 127, 157, 187, 217, 248, 278, 308, 338, 368, 398, 428, 458], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10], "attack_power_cof": [24 * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1] * 2 + [9 * i * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1 for i in range(3, 15)] + [150 * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 22554: { "skill_class": PhysicalDamage, "skill_name": "乱天狼", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [24 * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1] * 2 + [9 * i * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1 * 1.1 for i in range(3, 15)] + [150 * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 15568: { "skill_class": PhysicalDotDamage, "skill_name": "寂洪荒(DOT)", "damage_base": 25, "attack_power_cof": 250 * 1.2 * 1.15, "interval": 48, "tick": 5, "max_stack": 3, }, 22330: { "skill_class": DotSkill, "skill_name": "寂洪荒", "bind_skill": 15568 }, 25314: { "skill_class": PhysicalDamage, "skill_name": "遗恨", "damage_base": [133, 644, 1156, 1667], "damage_rand": 10, "attack_power_cof": 100 * 1.2 * 1.15 * 1.3 * 1.15 }, 36267: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [40 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.35 * 1.1 * 1.1] * 6 + [(3 * i + 1.5) * 2 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.35 * 1.1 * 1.1 for i in range(7, 32)] + [250 * 1.3 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.35 * 1.1 * 1.1], "weapon_damage_cof": 2048 }, 36268: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [40 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.35 * 1.1 * 1.1] * 6 + [(3 * i + 1.5) * 2 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.35 * 1.1 * 1.1 for i in range(7, 32)] + [250 * 1.3 * 0.66 * 1.25 * 0.85 * 0.9 * 0.9 * 0.9 * 0.9 * 0.9 * 1.1 * 1.35 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 36265: { "skill_class": PhysicalDamage, "skill_name": "乱天狼", "damage_base": [37, 67, 97, 127, 157, 187, 217, 248, 278, 308, 338, 368, 398, 428, 458], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10], "attack_power_cof": [24 * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1] * 2 + [9 * i * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1 for i in range(3, 15)] + [150 * 1.3 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 36266: { "skill_class": PhysicalDamage, "skill_name": "乱天狼", "damage_base": [33, 45, 58, 70, 83, 95, 107, 120, 132, 144, 157, 169, 182, 194, 206, 219, 231, 244, 256, 268, 281, 293, 306, 318, 330, 343, 355, 367, 380, 392, 405, 417], "damage_rand": [5, 5, 5, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], "attack_power_cof": [24 * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1] * 2 + [9 * i * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1 * 1.1 for i in range(3, 15)] + [150 * 1.3 * 0.4 * 1.2 * 0.85 * 0.85 * 0.9 * 0.8 * 1.1 * 1.1 * 1.35 * 1.1 * 1.1], "weapon_damage_cof": 1024 }, 36269: { "skill_class": PhysicalDamage, "skill_name": "隐风雷", "damage_base": [160, 180, 200, 220, 240, 260, 280, 300, 310, 320, 330, 340, 350, 360, 370, 380, 395, 413], "damage_rand": [e * 0.1 for e in [73, 93, 113, 133, 153, 173, 193, 213, 233, 253, 273, 293, 313, 333, 353, 373, 393, 413]], "attack_power_cof": [20 * 1.3 * 1.35] * 8 + [(60 + (i - 8) * 0.3) * 1.3 * 1.35 for i in range(9, 18)] + [70 * 1.3 * 1.35], "weapon_damage_cof": 1024 }, 36270: { "skill_class": PhysicalDamage, "skill_name": "隐风雷", "damage_base": [160, 180, 200, 220, 240, 260, 280, 300, 310, 320, 330, 340, 350, 360, 370, 380, 395, 413], "damage_rand": [e * 0.1 for e in [73, 93, 113, 133, 153, 173, 193, 213, 233, 253, 273, 293, 313, 333, 353, 373, 393, 413]], "attack_power_cof": [20 * 0.5 * 1.3 * 1.35] * 8 + [(60 + (i - 8) * 0.3) * 0.5 * 1.3 * 1.35 for i in range(9, 18)] + [70 * 0.5 * 1.3 * 1.35], "weapon_damage_cof": 1024 }, 34981: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒·风骨", "damage_base": 300, "damage_rand": 35, "attack_power_cof": 750 * 0.7 }, 29751: { "skill_class": PhysicalDamage, "skill_name": "飞刃回转", "damage_base": 77, "damage_rand": 25, "attack_power_cof": 100 * 1.15 }, 22761: { "skill_class": PhysicalDamage, "skill_name": "山河渊隙", "damage_base": 136 * 2, "damage_rand": 20, "attack_power_cof": 30 * 2 * 1.1 * 1.1 * 1.1 * 1.83 }, 25784: { "skill_class": PhysicalDamage, "skill_name": "寂洪荒·神兵", "damage_base": 20, "damage_rand": 2, "attack_power_cof": 50 }, 19626: { "skill_class": PhysicalDotDamage, "skill_name": "乍起狂澜(DOT)", "damage_base": 25, "attack_power_cof": 330 * 1.6 * 1.1, "interval": 48, "max_stack": 3, "tick": 6 }, 26980: { "skill_class": DotSkill, "skill_name": "乍起狂澜", "bind_skill": 19626 } } 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