from typing import Literal, TypeAlias

DefWeaponDict: dict[str, int] = {
    "Gauss Rifle": 0,
    "Gauss Rifle (Raynor)": 1,
    "C-10 Concussion Rifle": 2,
    "C-10 Concussion Rifle (Kerrigan)": 3,
    "Fragmentation Grenade": 4,
    "Fragmentation Grenade (Raynor)": 5,
    "Spider Mines": 6,
    "Twin Autocannons": 7,
    "Hellfire Missile Pack": 8,
    "Twin Autocannons (Schezar)": 9,
    "Hellfire Missile Pack (Schezar)": 10,
    "Arclite Cannon": 11,
    "Arclite Cannon (Duke)": 12,
    "Fusion Cutter": 13,
    "Fusion Cutter (Harvest)": 14,
    "Gemini Missiles": 15,
    "Burst Lasers": 16,
    "Gemini Missiles (Kazansky)": 17,
    "Burst Lasers (Kazansky)": 18,
    "ATS Laser Battery": 19,
    "ATA Laser Battery": 20,
    "ATS Laser Battery (Norad II+Mengsk+DuGalle)": 21,
    "ATA Laser Battery (Norad II+Mengsk+DuGalle)": 22,
    "ATS Laser Battery (Hyperion)": 23,
    "ATA Laser Battery (Hyperion)": 24,
    "Flame Thrower": 25,
    "Flame Thrower (Montag)": 26,
    "Arclite Shock Cannon": 27,
    "Arclite Shock Cannon (Duke)": 28,
    "Longbolt Missiles": 29,
    "Yamato Gun": 30,
    "Nuclear Missile": 31,
    "Lockdown": 32,
    "EMP Shockwave": 33,
    "Irradiate": 34,
    "Claws": 35,
    "Claws (Devouring One)": 36,
    "Claws (Infested Kerrigan)": 37,
    "Needle Spines": 38,
    "Needle Spines (Hunter Killer)": 39,
    "Kaiser Blades": 40,
    "Kaiser Blades (Torrasque)": 41,
    "Toxic Spores": 42,
    "Spines": 43,
    "Spines (Harvest)": 44,
    "Acid Spray": 45,
    "Acid Spore": 46,
    "Acid Spore (Kukulza)": 47,
    "Glave Wurm": 48,
    "Glave Wurm (Kukulza)": 49,
    "Venom": 50,
    "Venom (Unclean One)": 51,
    "Seeker Spores": 52,
    "Subterranean Tentacle": 53,
    "Suicide (Infested Terran)": 54,
    "Suicide (Scourge)": 55,
    "Parasite": 56,
    "Spawn Broodlings": 57,
    "Ensnare": 58,
    "Dark Swarm": 59,
    "Plague": 60,
    "Consume": 61,
    "Particle Beam": 62,
    "Particle Beam (Harvest)": 63,
    "Psi Blades": 64,
    "Psi Blades (Fenix)": 65,
    "Phase Disruptor": 66,
    "Phase Disruptor (Fenix)": 67,
    "Psi Assault": 68,
    "Psi Assault (Tassadar)": 69,
    "Psionic Shockwave": 70,
    "Psionic Shockwave (Tassadar/Zeratul)": 71,
    "Unused72": 72,
    "Dual Photon Blasters": 73,
    "Anti-matter Missiles": 74,
    "Dual Photon Blasters (Mojo)": 75,
    "Anti-matter Missiles (Mojo)": 76,
    "Phase Disruptor Cannon": 77,
    "Phase Disruptor Cannon (Danimoth)": 78,
    "Pulse Cannon": 79,
    "STS Photon Cannon": 80,
    "STA Photon Cannon": 81,
    "Scarab": 82,
    "Stasis Field": 83,
    "Psi Storm": 84,
    "Warp Blades (Zeratul)": 85,
    "Warp Blades (Hero)": 86,
    "Missiles": 87,
    "Laser Battery1": 88,
    "Tormentor Missiles": 89,
    "Bombs": 90,
    "Raider Gun": 91,
    "Laser Battery2": 92,
    "Laser Battery3": 93,
    "Dual Photon Blasters (Unused)": 94,
    "Flechette Grenade": 95,
    "Twin Autocannons (Floor Trap)": 96,
    "Hellfire Missile Pack (Wall Trap)": 97,
    "Flame Thrower (Wall Trap)": 98,
    "Hellfire Missile Pack (Floor Trap)": 99,
    "Neutron Flare": 100,
    "Disruption Web": 101,
    "Restoration": 102,
    "Halo Rockets": 103,
    "Corrosive Acid": 104,
    "Mind Control": 105,
    "Feedback": 106,
    "Optical Flare": 107,
    "Maelstrom": 108,
    "Subterranean Spines": 109,
    "Gauss Rifle0": 110,
    "Unused110": 110,
    "Warp Blades": 111,
    "C-10 Concussion Rifle (Samir Duran)": 112,
    "C-10 Concussion Rifle (Infested Duran)": 113,
    "Dual Photon Blasters (Artanis)": 114,
    "Anti-matter Missiles (Artanis)": 115,
    "C-10 Concussion Rifle (Stukov)": 116,
    "Gauss Rifle1": 117,
    "Gauss Rifle2": 118,
    "Gauss Rifle3": 119,
    "Gauss Rifle4": 120,
    "Gauss Rifle5": 121,
    "Gauss Rifle6": 122,
    "Gauss Rifle7": 123,
    "Gauss Rifle8": 124,
    "Gauss Rifle9": 125,
    "Gauss Rifle10": 126,
    "Gauss Rifle11": 127,
    "Gauss Rifle12": 128,
    "Gauss Rifle13": 129,
    "Unused117": 117,
    "Unused118": 118,
    "Unused119": 119,
    "Unused120": 120,
    "Unused121": 121,
    "Unused122": 122,
    "Unused123": 123,
    "Unused124": 124,
    "Unused125": 125,
    "Unused126": 126,
    "Unused127": 127,
    "Unused128": 128,
    "Unused129": 129,
    "None": 130,
}

DefaultWeapon: TypeAlias = Literal[
    "Gauss Rifle",
    "Gauss Rifle (Raynor)",
    "C-10 Concussion Rifle",
    "C-10 Concussion Rifle (Kerrigan)",
    "Fragmentation Grenade",
    "Fragmentation Grenade (Raynor)",
    "Spider Mines",
    "Twin Autocannons",
    "Hellfire Missile Pack",
    "Twin Autocannons (Schezar)",
    "Hellfire Missile Pack (Schezar)",
    "Arclite Cannon",
    "Arclite Cannon (Duke)",
    "Fusion Cutter",
    "Fusion Cutter (Harvest)",
    "Gemini Missiles",
    "Burst Lasers",
    "Gemini Missiles (Kazansky)",
    "Burst Lasers (Kazansky)",
    "ATS Laser Battery",
    "ATA Laser Battery",
    "ATS Laser Battery (Norad II+Mengsk+DuGalle)",
    "ATA Laser Battery (Norad II+Mengsk+DuGalle)",
    "ATS Laser Battery (Hyperion)",
    "ATA Laser Battery (Hyperion)",
    "Flame Thrower",
    "Flame Thrower (Montag)",
    "Arclite Shock Cannon",
    "Arclite Shock Cannon (Duke)",
    "Longbolt Missiles",
    "Yamato Gun",
    "Nuclear Missile",
    "Lockdown",
    "EMP Shockwave",
    "Irradiate",
    "Claws",
    "Claws (Devouring One)",
    "Claws (Infested Kerrigan)",
    "Needle Spines",
    "Needle Spines (Hunter Killer)",
    "Kaiser Blades",
    "Kaiser Blades (Torrasque)",
    "Toxic Spores",
    "Spines",
    "Spines (Harvest)",
    "Acid Spray",
    "Acid Spore",
    "Acid Spore (Kukulza)",
    "Glave Wurm",
    "Glave Wurm (Kukulza)",
    "Venom",
    "Venom (Unclean One)",
    "Seeker Spores",
    "Subterranean Tentacle",
    "Suicide (Infested Terran)",
    "Suicide (Scourge)",
    "Parasite",
    "Spawn Broodlings",
    "Ensnare",
    "Dark Swarm",
    "Plague",
    "Consume",
    "Particle Beam",
    "Particle Beam (Harvest)",
    "Psi Blades",
    "Psi Blades (Fenix)",
    "Phase Disruptor",
    "Phase Disruptor (Fenix)",
    "Psi Assault",
    "Psi Assault (Tassadar)",
    "Psionic Shockwave",
    "Psionic Shockwave (Tassadar/Zeratul)",
    "Unused72",
    "Dual Photon Blasters",
    "Anti-matter Missiles",
    "Dual Photon Blasters (Mojo)",
    "Anti-matter Missiles (Mojo)",
    "Phase Disruptor Cannon",
    "Phase Disruptor Cannon (Danimoth)",
    "Pulse Cannon",
    "STS Photon Cannon",
    "STA Photon Cannon",
    "Scarab",
    "Stasis Field",
    "Psi Storm",
    "Warp Blades (Zeratul)",
    "Warp Blades (Hero)",
    "Missiles",
    "Laser Battery1",
    "Tormentor Missiles",
    "Bombs",
    "Raider Gun",
    "Laser Battery2",
    "Laser Battery3",
    "Dual Photon Blasters (Unused)",
    "Flechette Grenade",
    "Twin Autocannons (Floor Trap)",
    "Hellfire Missile Pack (Wall Trap)",
    "Flame Thrower (Wall Trap)",
    "Hellfire Missile Pack (Floor Trap)",
    "Neutron Flare",
    "Disruption Web",
    "Restoration",
    "Halo Rockets",
    "Corrosive Acid",
    "Mind Control",
    "Feedback",
    "Optical Flare",
    "Maelstrom",
    "Subterranean Spines",
    "Unused110",
    "Warp Blades",
    "C-10 Concussion Rifle (Samir Duran)",
    "C-10 Concussion Rifle (Infested Duran)",
    "Dual Photon Blasters (Artanis)",
    "Anti-matter Missiles (Artanis)",
    "C-10 Concussion Rifle (Stukov)",
    "Unused117",
    "Unused118",
    "Unused119",
    "Unused120",
    "Unused121",
    "Unused122",
    "Unused123",
    "Unused124",
    "Unused125",
    "Unused126",
    "Unused127",
    "Unused128",
    "Unused129",
    "None",
]
