34 case RACE_HUMAN:
return {
"RACE_HUMAN",
"Human",
"" };
35 case RACE_ORC:
return {
"RACE_ORC",
"Orc",
"" };
36 case RACE_DWARF:
return {
"RACE_DWARF",
"Dwarf",
"" };
37 case RACE_NIGHTELF:
return {
"RACE_NIGHTELF",
"Night Elf",
"" };
39 case RACE_TAUREN:
return {
"RACE_TAUREN",
"Tauren",
"" };
40 case RACE_GNOME:
return {
"RACE_GNOME",
"Gnome",
"" };
41 case RACE_TROLL:
return {
"RACE_TROLL",
"Troll",
"" };
42 case RACE_BLOODELF:
return {
"RACE_BLOODELF",
"Blood Elf",
"" };
43 case RACE_DRAENEI:
return {
"RACE_DRAENEI",
"Draenei",
"" };
44 default:
throw std::out_of_range(
"value");
66 default:
throw std::out_of_range(
"index");
85 default:
throw std::out_of_range(
"value");
97 case CLASS_WARRIOR:
return {
"CLASS_WARRIOR",
"Warrior",
"" };
98 case CLASS_PALADIN:
return {
"CLASS_PALADIN",
"Paladin",
"" };
99 case CLASS_HUNTER:
return {
"CLASS_HUNTER",
"Hunter",
"" };
100 case CLASS_ROGUE:
return {
"CLASS_ROGUE",
"Rogue",
"" };
101 case CLASS_PRIEST:
return {
"CLASS_PRIEST",
"Priest",
"" };
103 case CLASS_SHAMAN:
return {
"CLASS_SHAMAN",
"Shaman",
"" };
104 case CLASS_MAGE:
return {
"CLASS_MAGE",
"Mage",
"" };
105 case CLASS_WARLOCK:
return {
"CLASS_WARLOCK",
"Warlock",
"" };
106 case CLASS_DRUID:
return {
"CLASS_DRUID",
"Druid",
"" };
107 default:
throw std::out_of_range(
"value");
129 default:
throw std::out_of_range(
"index");
148 default:
throw std::out_of_range(
"value");
160 case POWER_HEALTH:
return {
"POWER_HEALTH",
"Health",
"" };
161 case POWER_MANA:
return {
"POWER_MANA",
"Mana",
"" };
162 case POWER_RAGE:
return {
"POWER_RAGE",
"Rage",
"" };
163 case POWER_FOCUS:
return {
"POWER_FOCUS",
"Focus",
"" };
164 case POWER_ENERGY:
return {
"POWER_ENERGY",
"Energy",
"" };
166 case POWER_RUNE:
return {
"POWER_RUNE",
"Runes",
"" };
168 default:
throw std::out_of_range(
"value");
188 default:
throw std::out_of_range(
"index");
205 default:
throw std::out_of_range(
"value");
224 default:
throw std::out_of_range(
"value");
243 default:
throw std::out_of_range(
"index");
259 default:
throw std::out_of_range(
"value");
271 case SPELL_ATTR0_UNK0:
return {
"SPELL_ATTR0_UNK0",
"Unknown attribute 0@Attr0",
"" };
272 case SPELL_ATTR0_REQ_AMMO:
return {
"SPELL_ATTR0_REQ_AMMO",
"Treat as ranged attack",
"Use ammo, ranged attack range modifiers, ranged haste, etc." };
273 case SPELL_ATTR0_ON_NEXT_SWING:
return {
"SPELL_ATTR0_ON_NEXT_SWING",
"On next melee (type 1)",
"Both \042on next swing\042 attributes have identical handling in server & client" };
275 case SPELL_ATTR0_ABILITY:
return {
"SPELL_ATTR0_ABILITY",
"Treat as ability",
"Cannot be reflected, not affected by cast speed modifiers, etc." };
276 case SPELL_ATTR0_TRADESPELL:
return {
"SPELL_ATTR0_TRADESPELL",
"Trade skill recipe",
"Displayed in recipe list, not affected by cast speed modifiers" };
277 case SPELL_ATTR0_PASSIVE:
return {
"SPELL_ATTR0_PASSIVE",
"Passive spell",
"Spell is automatically cast on self by core" };
278 case SPELL_ATTR0_HIDDEN_CLIENTSIDE:
return {
"SPELL_ATTR0_HIDDEN_CLIENTSIDE",
"Hidden in UI (client only)",
"Not visible in spellbook or aura bar" };
279 case SPELL_ATTR0_HIDE_IN_COMBAT_LOG:
return {
"SPELL_ATTR0_HIDE_IN_COMBAT_LOG",
"Hidden in combat log (client only)",
"Spell will not appear in combat logs" };
280 case SPELL_ATTR0_TARGET_MAINHAND_ITEM:
return {
"SPELL_ATTR0_TARGET_MAINHAND_ITEM",
"Auto-target mainhand item (client only)",
"Client will automatically select main-hand item as cast target" };
281 case SPELL_ATTR0_ON_NEXT_SWING_2:
return {
"SPELL_ATTR0_ON_NEXT_SWING_2",
"On next melee (type 2)",
"Both \042on next swing\042 attributes have identical handling in server & client" };
282 case SPELL_ATTR0_UNK11:
return {
"SPELL_ATTR0_UNK11",
"Unknown attribute 11@Attr0",
"" };
284 case SPELL_ATTR0_NIGHT_ONLY:
return {
"SPELL_ATTR0_NIGHT_ONLY",
"Only usable during nighttime (unused)",
"" };
290 case SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION:
return {
"SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION",
"Scale with caster level",
"For non-player casts, scale impact and power cost with caster's level" };
291 case SPELL_ATTR0_STOP_ATTACK_TARGET:
return {
"SPELL_ATTR0_STOP_ATTACK_TARGET",
"Stop attacking after cast",
"After casting this, the current auto-attack will be interrupted" };
294 case SPELL_ATTR0_CASTABLE_WHILE_DEAD:
return {
"SPELL_ATTR0_CASTABLE_WHILE_DEAD",
"Can be cast while dead",
"Spells without this flag cannot be cast by dead units in non-triggered contexts" };
296 case SPELL_ATTR0_DISABLED_WHILE_ACTIVE:
return {
"SPELL_ATTR0_DISABLED_WHILE_ACTIVE",
"Cooldown starts on expiry",
"Spell is unusable while already active, and cooldown does not begin until the effects have worn off" };
297 case SPELL_ATTR0_NEGATIVE_1:
return {
"SPELL_ATTR0_NEGATIVE_1",
"Is negative spell",
"Forces the spell to be treated as a negative spell" };
300 case SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY:
return {
"SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY",
"Pierce invulnerability",
"Allows spell to pierce invulnerability, unless the invulnerability spell also has this attribute" };
301 case SPELL_ATTR0_HEARTBEAT_RESIST_CHECK:
return {
"SPELL_ATTR0_HEARTBEAT_RESIST_CHECK",
"Periodic resistance checks",
"Periodically re-rolls against resistance to potentially expire aura early" };
302 case SPELL_ATTR0_CANT_CANCEL:
return {
"SPELL_ATTR0_CANT_CANCEL",
"Aura cannot be cancelled",
"Prevents the player from voluntarily canceling a positive aura" };
303 default:
throw std::out_of_range(
"value");
347 default:
throw std::out_of_range(
"index");
388 default:
throw std::out_of_range(
"value");
400 case SPELL_ATTR1_DISMISS_PET:
return {
"SPELL_ATTR1_DISMISS_PET",
"Dismiss Pet on cast",
"Without this attribute, summoning spells will fail if caster already has a pet" };
401 case SPELL_ATTR1_DRAIN_ALL_POWER:
return {
"SPELL_ATTR1_DRAIN_ALL_POWER",
"Drain all power",
"Ignores listed power cost and drains entire pool instead" };
402 case SPELL_ATTR1_CHANNELED_1:
return {
"SPELL_ATTR1_CHANNELED_1",
"Channeled (type 1)",
"Both \042channeled\042 attributes have identical handling in server & client" };
403 case SPELL_ATTR1_CANT_BE_REDIRECTED:
return {
"SPELL_ATTR1_CANT_BE_REDIRECTED",
"Ignore redirection effects",
"Spell will not be attracted by SPELL_MAGNET auras (Grounding Totem)" };
404 case SPELL_ATTR1_UNK4:
return {
"SPELL_ATTR1_UNK4",
"Unknown attribute 4@Attr1",
"" };
406 case SPELL_ATTR1_CHANNELED_2:
return {
"SPELL_ATTR1_CHANNELED_2",
"Channeled (type 2)",
"Both \042channeled\042 attributes have identical handling in server & client" };
407 case SPELL_ATTR1_CANT_BE_REFLECTED:
return {
"SPELL_ATTR1_CANT_BE_REFLECTED",
"Ignore reflection effects",
"Spell will pierce through Spell Reflection and similar" };
409 case SPELL_ATTR1_MELEE_COMBAT_START:
return {
"SPELL_ATTR1_MELEE_COMBAT_START",
"Starts auto-attack (client only)",
"Caster will begin auto-attacking the target on cast" };
410 case SPELL_ATTR1_NO_THREAT:
return {
"SPELL_ATTR1_NO_THREAT",
"Does not generate threat",
"Also does not cause target to engage" };
413 case SPELL_ATTR1_FARSIGHT:
return {
"SPELL_ATTR1_FARSIGHT",
"Farsight aura (client only)",
"" };
414 case SPELL_ATTR1_CHANNEL_TRACK_TARGET:
return {
"SPELL_ATTR1_CHANNEL_TRACK_TARGET",
"Track target while channeling",
"While channeling, adjust facing to face target" };
415 case SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY:
return {
"SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY",
"Immunity cancels preapplied auras",
"For immunity spells, cancel all auras that this spell would make you immune to when the spell is applied" };
416 case SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE:
return {
"SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE",
"Unaffected by school immunities",
"Will not pierce Divine Shield, Ice Block and other full invulnerabilities" };
418 case SPELL_ATTR1_PREVENTS_ANIM:
return {
"SPELL_ATTR1_PREVENTS_ANIM",
"NYI, auras apply UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT",
"" };
421 case SPELL_ATTR1_UNK21:
return {
"SPELL_ATTR1_UNK21",
"Unknown attribute 21@Attr1",
"" };
423 case SPELL_ATTR1_UNK23:
return {
"SPELL_ATTR1_UNK23",
"Unknwon attribute 23@Attr1",
"" };
425 case SPELL_ATTR1_UNK25:
return {
"SPELL_ATTR1_UNK25",
"Unknown attribute 25@Attr1",
"" };
427 case SPELL_ATTR1_UNK27:
return {
"SPELL_ATTR1_UNK27",
"Unknown attribute 27@Attr1",
"Melee spell?" };
431 case SPELL_ATTR1_UNK31:
return {
"SPELL_ATTR1_UNK31",
"Unknown attribute 31@Attr1",
"" };
432 default:
throw std::out_of_range(
"value");
476 default:
throw std::out_of_range(
"index");
517 default:
throw std::out_of_range(
"value");
530 case SPELL_ATTR2_UNK1:
return {
"SPELL_ATTR2_UNK1",
"Unknown attribute 1@Attr2",
"" };
535 case SPELL_ATTR2_CANT_TARGET_TAPPED:
return {
"SPELL_ATTR2_CANT_TARGET_TAPPED",
"Cannot target others' tapped units",
"Can only target untapped units, or those tapped by caster" };
536 case SPELL_ATTR2_UNK7:
return {
"SPELL_ATTR2_UNK7",
"Unknown attribute 7@Attr2",
"" };
537 case SPELL_ATTR2_UNK8:
return {
"SPELL_ATTR2_UNK8",
"Unknown attribute 8@Attr2",
"" };
538 case SPELL_ATTR2_UNK9:
return {
"SPELL_ATTR2_UNK9",
"Unknown attribute 9@Attr2",
"" };
539 case SPELL_ATTR2_UNK10:
return {
"SPELL_ATTR2_UNK10",
"Unknown attribute 10@Attr2",
"Related to taming?" };
541 case SPELL_ATTR2_UNK12:
return {
"SPELL_ATTR2_UNK12",
"Unknown attribute 12@Attr2",
"" };
543 case SPELL_ATTR2_UNK14:
return {
"SPELL_ATTR2_UNK14",
"Unknown attribute 14@Attr2",
"" };
544 case SPELL_ATTR2_UNK15:
return {
"SPELL_ATTR2_UNK15",
"Unknown attribute 15@Attr2",
"" };
546 case SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS:
return {
"SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS",
"Don't reset swing timer",
"Does not reset melee/ranged autoattack timer on cast" };
548 case SPELL_ATTR2_NOT_NEED_SHAPESHIFT:
return {
"SPELL_ATTR2_NOT_NEED_SHAPESHIFT",
"Also allow outside shapeshift",
"Even if Stances are nonzero, allow spell to be cast outside of shapeshift (though not in a different shapeshift)" };
549 case SPELL_ATTR2_UNK20:
return {
"SPELL_ATTR2_UNK20",
"Unknown attribute 20@Attr2",
"" };
550 case SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE:
return {
"SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE",
"Fail on all targets immune",
"Causes BG flags to be dropped if combined with ATTR1_DISPEL_AURAS_ON_IMMUNITY" };
551 case SPELL_ATTR2_UNK22:
return {
"SPELL_ATTR2_UNK22",
"Unknown attribute 22@Attr2",
"" };
553 case SPELL_ATTR2_UNK24:
return {
"SPELL_ATTR2_UNK24",
"Unknown attribute 24@Attr2",
"" };
554 case SPELL_ATTR2_UNK25:
return {
"SPELL_ATTR2_UNK25",
"Unknown attribute 25@Attr2",
"" };
555 case SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE:
return {
"SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE",
"Pierce aura application immunities",
"Allow aura to be applied despite target being immune to new aura applications" };
556 case SPELL_ATTR2_UNK27:
return {
"SPELL_ATTR2_UNK27",
"Unknown attribute 27@Attr2",
"" };
557 case SPELL_ATTR2_UNK28:
return {
"SPELL_ATTR2_UNK28",
"Unknown attribute 28@Attr2",
"" };
561 default:
throw std::out_of_range(
"value");
605 default:
throw std::out_of_range(
"index");
646 default:
throw std::out_of_range(
"value");
658 case SPELL_ATTR3_UNK0:
return {
"SPELL_ATTR3_UNK0",
"Unknown attribute 0@Attr3",
"" };
659 case SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK:
return {
"SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK",
"SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK",
"1 Ignores subclass mask check when checking proc" };
660 case SPELL_ATTR3_UNK2:
return {
"SPELL_ATTR3_UNK2",
"Unknown attribute 2@Attr3",
"" };
663 case SPELL_ATTR3_UNK5:
return {
"SPELL_ATTR3_UNK5",
"Unknown attribute 5@Attr3",
"" };
664 case SPELL_ATTR3_UNK6:
return {
"SPELL_ATTR3_UNK6",
"Unknown attribute 6@Attr3",
"" };
667 case SPELL_ATTR3_NOT_A_PROC:
return {
"SPELL_ATTR3_NOT_A_PROC",
"Not a Proc",
"Without this attribute, any triggered spell will be unable to trigger other auras' procs" };
673 case SPELL_ATTR3_UNK15:
return {
"SPELL_ATTR3_UNK15",
"Unknown attribute 15@Attr3",
"Auto Shoot, Shoot, Throw - ranged normal attack attribute?" };
676 case SPELL_ATTR3_IGNORE_HIT_RESULT:
return {
"SPELL_ATTR3_IGNORE_HIT_RESULT",
"Ignore hit result",
"Spell cannot miss, or be dodged/parried/blocked" };
679 case SPELL_ATTR3_UNK21:
return {
"SPELL_ATTR3_UNK21",
"Unknown attribute 21@Attr3",
"" };
681 case SPELL_ATTR3_UNK23:
return {
"SPELL_ATTR3_UNK23",
"Unknown attribute 23@Attr3",
"" };
686 case SPELL_ATTR3_UNK28:
return {
"SPELL_ATTR3_UNK28",
"Unknown attribute 28@Attr3",
"" };
689 case SPELL_ATTR3_UNK31:
return {
"SPELL_ATTR3_UNK31",
"Unknown attribute 31@Attr3",
"" };
690 default:
throw std::out_of_range(
"value");
734 default:
throw std::out_of_range(
"index");
775 default:
throw std::out_of_range(
"value");
789 case SPELL_ATTR4_FADES_WHILE_LOGGED_OUT:
return {
"SPELL_ATTR4_FADES_WHILE_LOGGED_OUT",
"Buff expires while offline",
"Debuffs (except Resurrection Sickness) will automatically do this" };
790 case SPELL_ATTR4_UNK3:
return {
"SPELL_ATTR4_UNK3",
"Unknown attribute 3@Attr4",
"" };
791 case SPELL_ATTR4_UNK4:
return {
"SPELL_ATTR4_UNK4",
"Treat as delayed spell",
"" };
792 case SPELL_ATTR4_UNK5:
return {
"SPELL_ATTR4_UNK5",
"Unknown attribute 5@Attr4",
"" };
794 case SPELL_ATTR4_CAN_CAST_WHILE_CASTING:
return {
"SPELL_ATTR4_CAN_CAST_WHILE_CASTING",
"Can be cast while casting",
"Ignores already in-progress cast and still casts" };
797 case SPELL_ATTR4_SPELL_VS_EXTEND_COST:
return {
"SPELL_ATTR4_SPELL_VS_EXTEND_COST",
"Attack speed modifies cost",
"Adds 10 to power cost for each 1s of weapon speed" };
798 case SPELL_ATTR4_UNK11:
return {
"SPELL_ATTR4_UNK11",
"Unknown attribute 11@Attr4",
"" };
799 case SPELL_ATTR4_UNK12:
return {
"SPELL_ATTR4_UNK12",
"Unknown attribute 12@Attr4",
"" };
800 case SPELL_ATTR4_UNK13:
return {
"SPELL_ATTR4_UNK13",
"Unknown attribute 13@Attr4",
"" };
802 case SPELL_ATTR4_UNK15:
return {
"SPELL_ATTR4_UNK15",
"Unknown attribute 15@Attr4",
"" };
804 case SPELL_ATTR4_USABLE_IN_ARENA:
return {
"SPELL_ATTR4_USABLE_IN_ARENA",
"Usable in arena",
"Makes spell usable despite CD > 10min" };
805 case SPELL_ATTR4_AREA_TARGET_CHAIN:
return {
"SPELL_ATTR4_AREA_TARGET_CHAIN",
"Chain area targets",
"[NYI] Hits area targets over time instead of all at once" };
806 case SPELL_ATTR4_UNK19:
return {
"SPELL_ATTR4_UNK19",
"Unknown attribute 19@Attr4",
"" };
809 case SPELL_ATTR4_UNK22:
return {
"SPELL_ATTR4_UNK22",
"Unknown attribute 22@Attr4",
"" };
811 case SPELL_ATTR4_UNK24:
return {
"SPELL_ATTR4_UNK24",
"Unknown attribute 24@Attr4",
"Shoot-type spell?" };
815 case SPELL_ATTR4_UNK28:
return {
"SPELL_ATTR4_UNK28",
"Unknown attribute 28@Attr4",
"" };
816 case SPELL_ATTR4_UNK29:
return {
"SPELL_ATTR4_UNK29",
"Unknown attribute 29@Attr4",
"" };
817 case SPELL_ATTR4_UNK30:
return {
"SPELL_ATTR4_UNK30",
"Unknown attribute 30@Attr4",
"" };
818 case SPELL_ATTR4_UNK31:
return {
"SPELL_ATTR4_UNK31",
"Unknown attribute 31@Attr4",
"" };
819 default:
throw std::out_of_range(
"value");
863 default:
throw std::out_of_range(
"index");
904 default:
throw std::out_of_range(
"value");
918 case SPELL_ATTR5_REMOVE_ON_ARENA_ENTER:
return {
"SPELL_ATTR5_REMOVE_ON_ARENA_ENTER",
"Remove when entering arena",
"Force this aura to be removed on entering arena, regardless of other properties" };
920 case SPELL_ATTR5_UNK4:
return {
"SPELL_ATTR5_UNK4",
"Unknown attribute 4@Attr5",
"" };
921 case SPELL_ATTR5_SINGLE_TARGET_SPELL:
return {
"SPELL_ATTR5_SINGLE_TARGET_SPELL",
"Single-target aura",
"Remove previous application to another unit if applied" };
922 case SPELL_ATTR5_UNK6:
return {
"SPELL_ATTR5_UNK6",
"Unknown attribute 6@Attr5",
"" };
923 case SPELL_ATTR5_UNK7:
return {
"SPELL_ATTR5_UNK7",
"Unknown attribute 7@Attr5",
"" };
928 case SPELL_ATTR5_UNK12:
return {
"SPELL_ATTR5_UNK12",
"Unknown attribute 12@Attr5",
"Cleave related?" };
931 case SPELL_ATTR5_UNK15:
return {
"SPELL_ATTR5_UNK15",
"Unknown attribute 15@Attr5",
"Related to multi-target spells?" };
932 case SPELL_ATTR5_UNK16:
return {
"SPELL_ATTR5_UNK16",
"Unknown attribute 16@Attr5",
"" };
936 case SPELL_ATTR5_UNK20:
return {
"SPELL_ATTR5_UNK20",
"Unknown attribute 20@Attr5",
"" };
937 case SPELL_ATTR5_UNK21:
return {
"SPELL_ATTR5_UNK21",
"Unknown attribute 21@Attr5",
"" };
938 case SPELL_ATTR5_UNK22:
return {
"SPELL_ATTR5_UNK22",
"Unknown attribute 22@Attr5",
"" };
939 case SPELL_ATTR5_UNK23:
return {
"SPELL_ATTR5_UNK23",
"Unknown attribute 23@Attr5",
"" };
940 case SPELL_ATTR5_UNK24:
return {
"SPELL_ATTR5_UNK24",
"Unknown attribute 24@Attr5",
"" };
941 case SPELL_ATTR5_UNK25:
return {
"SPELL_ATTR5_UNK25",
"Unknown attribute 25@Attr5",
"" };
945 case SPELL_ATTR5_UNK29:
return {
"SPELL_ATTR5_UNK29",
"Unknown attribute 29@Attr5",
"" };
946 case SPELL_ATTR5_UNK30:
return {
"SPELL_ATTR5_UNK30",
"Unknown attribute 30@Attr5",
"" };
947 case SPELL_ATTR5_UNK31:
return {
"SPELL_ATTR5_UNK31",
"Unknown attribute 31@Attr5",
"Forces nearby enemies to attack caster?" };
948 default:
throw std::out_of_range(
"value");
992 default:
throw std::out_of_range(
"index");
1033 default:
throw std::out_of_range(
"value");
1049 case SPELL_ATTR6_UNK4:
return {
"SPELL_ATTR6_UNK4",
"Unknown attribute 4@Attr6",
"" };
1052 case SPELL_ATTR6_UNK7:
return {
"SPELL_ATTR6_UNK7",
"Unknown attribute 7@Attr6",
"" };
1053 case SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED:
return {
"SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED",
"Do not implicitly target in CC",
"Implicit targeting (chaining and area targeting) will not impact crowd controlled targets" };
1054 case SPELL_ATTR6_UNK9:
return {
"SPELL_ATTR6_UNK9",
"Unknown attribute 9@Attr6",
"" };
1059 case SPELL_ATTR6_UNK14:
return {
"SPELL_ATTR6_UNK14",
"Unknown attribute 14@Attr6",
"" };
1060 case SPELL_ATTR6_UNK15:
return {
"SPELL_ATTR6_UNK15",
"Unknown attribute 15@Attr6",
"" };
1061 case SPELL_ATTR6_UNK16:
return {
"SPELL_ATTR6_UNK16",
"Unknown attribute 16@Attr6",
"" };
1062 case SPELL_ATTR6_UNK17:
return {
"SPELL_ATTR6_UNK17",
"Unknown attribute 17@Attr6",
"Mount related?" };
1063 case SPELL_ATTR6_CAST_BY_CHARMER:
return {
"SPELL_ATTR6_CAST_BY_CHARMER",
"Spell is cast by charmer",
"Client will prevent casting if not possessed, charmer will be caster for all intents and purposes" };
1064 case SPELL_ATTR6_UNK19:
return {
"SPELL_ATTR6_UNK19",
"Unknown attribute 19@Attr6",
"" };
1067 case SPELL_ATTR6_UNK22:
return {
"SPELL_ATTR6_UNK22",
"Unknown attribute 22@Attr6",
"" };
1068 case SPELL_ATTR6_UNK23:
return {
"SPELL_ATTR6_UNK23",
"Unknown attribute 23@Attr6",
"" };
1071 case SPELL_ATTR6_UNK26:
return {
"SPELL_ATTR6_UNK26",
"Unknown attribute 26@Attr6",
"Player castable buff?" };
1072 case SPELL_ATTR6_LIMIT_PCT_HEALING_MODS:
return {
"SPELL_ATTR6_LIMIT_PCT_HEALING_MODS",
"Limit applicable %healing modifiers",
"This prevents certain healing modifiers from applying - see implementation if you really care about details" };
1073 case SPELL_ATTR6_UNK28:
return {
"SPELL_ATTR6_UNK28",
"Unknown attribute 28@Attr6",
"Death grip?" };
1074 case SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS:
return {
"SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS",
"Limit applicable %damage modifiers",
"This prevents certain damage modifiers from applying - see implementation if you really care about details" };
1075 case SPELL_ATTR6_UNK30:
return {
"SPELL_ATTR6_UNK30",
"Unknown attribute 30@Attr6",
"" };
1077 default:
throw std::out_of_range(
"value");
1121 default:
throw std::out_of_range(
"index");
1162 default:
throw std::out_of_range(
"value");
1174 case SPELL_ATTR7_UNK0:
return {
"SPELL_ATTR7_UNK0",
"Unknown attribute 0@Attr7",
"" };
1177 case SPELL_ATTR7_IS_CHEAT_SPELL:
return {
"SPELL_ATTR7_IS_CHEAT_SPELL",
"Is cheat spell",
"Cannot cast if caster doesn't have UnitFlag2 & UNIT_FLAG2_ALLOW_CHEAT_SPELLS" };
1178 case SPELL_ATTR7_UNK4:
return {
"SPELL_ATTR7_UNK4",
"Unknown attribute 4@Attr7",
"Soulstone related?" };
1181 case SPELL_ATTR7_UNK7:
return {
"SPELL_ATTR7_UNK7",
"Unknown attribute 7@Attr7",
"" };
1186 case SPELL_ATTR7_UNK12:
return {
"SPELL_ATTR7_UNK12",
"Unknown attribute 12@Attr7",
"" };
1187 case SPELL_ATTR7_UNK13:
return {
"SPELL_ATTR7_UNK13",
"Unknown attribute 13@Attr7",
"" };
1188 case SPELL_ATTR7_UNK14:
return {
"SPELL_ATTR7_UNK14",
"Unknown attribute 14@Attr7",
"" };
1189 case SPELL_ATTR7_UNK15:
return {
"SPELL_ATTR7_UNK15",
"Unknown attribute 15@Attr7",
"Exorcism - guaranteed crit vs families?" };
1190 case SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER:
return {
"SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER",
"Can restore secondary power",
"Only spells with this attribute can replenish a non-active power type" };
1191 case SPELL_ATTR7_UNK17:
return {
"SPELL_ATTR7_UNK17",
"Unknown attribute 17@Attr7",
"" };
1194 case SPELL_ATTR7_UNK20:
return {
"SPELL_ATTR7_UNK20",
"Unknown attribute 20@Attr7",
"Invulnerability related?" };
1195 case SPELL_ATTR7_UNK21:
return {
"SPELL_ATTR7_UNK21",
"Unknown attribute 21@Attr7",
"" };
1196 case SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING:
return {
"SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING",
"Ignore cold weather flying restriction",
"Set for loaner mounts, allows them to be used despite lacking required flight skill" };
1200 case SPELL_ATTR7_UNK26:
return {
"SPELL_ATTR7_UNK26",
"Unknown attribute 26@Attr7",
"" };
1203 case SPELL_ATTR7_UNK29:
return {
"SPELL_ATTR7_UNK29",
"Unknown attribute 29@Attr7",
"" };
1204 case SPELL_ATTR7_UNK30:
return {
"SPELL_ATTR7_UNK30",
"Unknown attribute 30@Attr7",
"" };
1206 default:
throw std::out_of_range(
"value");
1250 default:
throw std::out_of_range(
"index");
1291 default:
throw std::out_of_range(
"value");
1490 case SPELL_FAILED_UNKNOWN:
return {
"SPELL_FAILED_UNKNOWN",
"SPELL_FAILED_UNKNOWN",
"actually doesn't exist in client" };
1491 case SPELL_CAST_OK:
return {
"SPELL_CAST_OK",
"SPELL_CAST_OK",
"custom value, must not be sent to client" };
1492 default:
throw std::out_of_range(
"value");
1693 default:
throw std::out_of_range(
"index");
1891 default:
throw std::out_of_range(
"value");
1903 case AURA_STATE_NONE:
return {
"AURA_STATE_NONE",
"AURA_STATE_NONE",
"C |" };
1904 case AURA_STATE_DEFENSE:
return {
"AURA_STATE_DEFENSE",
"AURA_STATE_DEFENSE",
"C |" };
1907 case AURA_STATE_FROZEN:
return {
"AURA_STATE_FROZEN",
"AURA_STATE_FROZEN",
"c t| frozen target" };
1916 case AURA_STATE_ENRAGE:
return {
"AURA_STATE_ENRAGE",
"AURA_STATE_ENRAGE",
"C |" };
1919 case AURA_STATE_UNKNOWN22:
return {
"AURA_STATE_UNKNOWN22",
"AURA_STATE_UNKNOWN22",
"C t| varius spells (63884, 50240)" };
1921 default:
throw std::out_of_range(
"value");
1951 default:
throw std::out_of_range(
"index");
1978 default:
throw std::out_of_range(
"value");
1990 case MECHANIC_NONE:
return {
"MECHANIC_NONE",
"MECHANIC_NONE",
"" };
1991 case MECHANIC_CHARM:
return {
"MECHANIC_CHARM",
"MECHANIC_CHARM",
"" };
1993 case MECHANIC_DISARM:
return {
"MECHANIC_DISARM",
"MECHANIC_DISARM",
"" };
1994 case MECHANIC_DISTRACT:
return {
"MECHANIC_DISTRACT",
"MECHANIC_DISTRACT",
"" };
1995 case MECHANIC_FEAR:
return {
"MECHANIC_FEAR",
"MECHANIC_FEAR",
"" };
1996 case MECHANIC_GRIP:
return {
"MECHANIC_GRIP",
"MECHANIC_GRIP",
"" };
1997 case MECHANIC_ROOT:
return {
"MECHANIC_ROOT",
"MECHANIC_ROOT",
"" };
1999 case MECHANIC_SILENCE:
return {
"MECHANIC_SILENCE",
"MECHANIC_SILENCE",
"" };
2000 case MECHANIC_SLEEP:
return {
"MECHANIC_SLEEP",
"MECHANIC_SLEEP",
"" };
2001 case MECHANIC_SNARE:
return {
"MECHANIC_SNARE",
"MECHANIC_SNARE",
"" };
2002 case MECHANIC_STUN:
return {
"MECHANIC_STUN",
"MECHANIC_STUN",
"" };
2003 case MECHANIC_FREEZE:
return {
"MECHANIC_FREEZE",
"MECHANIC_FREEZE",
"" };
2004 case MECHANIC_KNOCKOUT:
return {
"MECHANIC_KNOCKOUT",
"MECHANIC_KNOCKOUT",
"" };
2005 case MECHANIC_BLEED:
return {
"MECHANIC_BLEED",
"MECHANIC_BLEED",
"" };
2006 case MECHANIC_BANDAGE:
return {
"MECHANIC_BANDAGE",
"MECHANIC_BANDAGE",
"" };
2008 case MECHANIC_BANISH:
return {
"MECHANIC_BANISH",
"MECHANIC_BANISH",
"" };
2009 case MECHANIC_SHIELD:
return {
"MECHANIC_SHIELD",
"MECHANIC_SHIELD",
"" };
2010 case MECHANIC_SHACKLE:
return {
"MECHANIC_SHACKLE",
"MECHANIC_SHACKLE",
"" };
2011 case MECHANIC_MOUNT:
return {
"MECHANIC_MOUNT",
"MECHANIC_MOUNT",
"" };
2012 case MECHANIC_INFECTED:
return {
"MECHANIC_INFECTED",
"MECHANIC_INFECTED",
"" };
2013 case MECHANIC_TURN:
return {
"MECHANIC_TURN",
"MECHANIC_TURN",
"" };
2014 case MECHANIC_HORROR:
return {
"MECHANIC_HORROR",
"MECHANIC_HORROR",
"" };
2017 case MECHANIC_DAZE:
return {
"MECHANIC_DAZE",
"MECHANIC_DAZE",
"" };
2019 case MECHANIC_IMMUNE_SHIELD:
return {
"MECHANIC_IMMUNE_SHIELD",
"MECHANIC_IMMUNE_SHIELD",
"Divine (Blessing) Shield/Protection and Ice Block" };
2020 case MECHANIC_SAPPED:
return {
"MECHANIC_SAPPED",
"MECHANIC_SAPPED",
"" };
2021 case MECHANIC_ENRAGED:
return {
"MECHANIC_ENRAGED",
"MECHANIC_ENRAGED",
"" };
2022 default:
throw std::out_of_range(
"value");
2066 default:
throw std::out_of_range(
"index");
2107 default:
throw std::out_of_range(
"value");
2123 default:
throw std::out_of_range(
"value");
2139 default:
throw std::out_of_range(
"index");
2152 default:
throw std::out_of_range(
"value");
2167 default:
throw std::out_of_range(
"value");
2182 default:
throw std::out_of_range(
"index");
2194 default:
throw std::out_of_range(
"value");
2207 case EMOTE_ONESHOT_BOW:
return {
"EMOTE_ONESHOT_BOW",
"EMOTE_ONESHOT_BOW",
"" };
2212 case EMOTE_ONESHOT_EAT:
return {
"EMOTE_ONESHOT_EAT",
"EMOTE_ONESHOT_EAT",
"" };
2213 case EMOTE_STATE_DANCE:
return {
"EMOTE_STATE_DANCE",
"EMOTE_STATE_DANCE",
"" };
2215 case EMOTE_STATE_SLEEP:
return {
"EMOTE_STATE_SLEEP",
"EMOTE_STATE_SLEEP",
"" };
2216 case EMOTE_STATE_SIT:
return {
"EMOTE_STATE_SIT",
"EMOTE_STATE_SIT",
"" };
2221 case EMOTE_ONESHOT_CRY:
return {
"EMOTE_ONESHOT_CRY",
"EMOTE_ONESHOT_CRY",
"" };
2223 case EMOTE_ONESHOT_BEG:
return {
"EMOTE_ONESHOT_BEG",
"EMOTE_ONESHOT_BEG",
"" };
2227 case EMOTE_ONESHOT_SHY:
return {
"EMOTE_ONESHOT_SHY",
"EMOTE_ONESHOT_SHY",
"" };
2229 case EMOTE_STATE_STAND:
return {
"EMOTE_STATE_STAND",
"EMOTE_STATE_STAND",
"" };
2232 case EMOTE_STATE_POINT:
return {
"EMOTE_STATE_POINT",
"EMOTE_STATE_POINT",
"" };
2233 case EMOTE_STATE_NONE:
return {
"EMOTE_STATE_NONE",
"EMOTE_STATE_NONE",
"" };
2251 case EMOTE_STATE_STUN:
return {
"EMOTE_STATE_STUN",
"EMOTE_STATE_STUN",
"" };
2252 case EMOTE_STATE_DEAD:
return {
"EMOTE_STATE_DEAD",
"EMOTE_STATE_DEAD",
"" };
2254 case EMOTE_STATE_KNEEL:
return {
"EMOTE_STATE_KNEEL",
"EMOTE_STATE_KNEEL",
"" };
2264 case EMOTE_STATE_WORK:
return {
"EMOTE_STATE_WORK",
"EMOTE_STATE_WORK",
"" };
2272 case EMOTE_ONESHOT_YES:
return {
"EMOTE_ONESHOT_YES",
"EMOTE_ONESHOT_YES",
"" };
2273 case EMOTE_ONESHOT_NO:
return {
"EMOTE_ONESHOT_NO",
"EMOTE_ONESHOT_NO",
"" };
2284 case EMOTE_STATE_TALK:
return {
"EMOTE_STATE_TALK",
"EMOTE_STATE_TALK",
"" };
2297 case EMOTE_STATE_ROAR:
return {
"EMOTE_STATE_ROAR",
"EMOTE_STATE_ROAR",
"" };
2298 case EMOTE_STATE_LAUGH:
return {
"EMOTE_STATE_LAUGH",
"EMOTE_STATE_LAUGH",
"" };
2323 case EMOTE_STATE_EAT:
return {
"EMOTE_STATE_EAT",
"EMOTE_STATE_EAT",
"" };
2329 case EMOTE_STATE_MOUNT:
return {
"EMOTE_STATE_MOUNT",
"EMOTE_STATE_MOUNT",
"" };
2332 case EMOTE_STATE_FALL:
return {
"EMOTE_STATE_FALL",
"EMOTE_STATE_FALL",
"" };
2333 case EMOTE_STATE_LOOT:
return {
"EMOTE_STATE_LOOT",
"EMOTE_STATE_LOOT",
"" };
2336 case EMOTE_STATE_COWER:
return {
"EMOTE_STATE_COWER",
"EMOTE_STATE_COWER",
"" };
2380 default:
throw std::out_of_range(
"value");
2566 default:
throw std::out_of_range(
"index");
2749 default:
throw std::out_of_range(
"value");
2761 case WEATHER_TYPE_FINE:
return {
"WEATHER_TYPE_FINE",
"WEATHER_TYPE_FINE",
"" };
2762 case WEATHER_TYPE_RAIN:
return {
"WEATHER_TYPE_RAIN",
"WEATHER_TYPE_RAIN",
"" };
2763 case WEATHER_TYPE_SNOW:
return {
"WEATHER_TYPE_SNOW",
"WEATHER_TYPE_SNOW",
"" };
2767 default:
throw std::out_of_range(
"value");
2785 default:
throw std::out_of_range(
"index");
2800 default:
throw std::out_of_range(
"value");
2812 case CHAT_MSG_ADDON:
return {
"CHAT_MSG_ADDON",
"CHAT_MSG_ADDON",
"-1" };
2813 case CHAT_MSG_SYSTEM:
return {
"CHAT_MSG_SYSTEM",
"CHAT_MSG_SYSTEM",
"" };
2814 case CHAT_MSG_SAY:
return {
"CHAT_MSG_SAY",
"CHAT_MSG_SAY",
"" };
2815 case CHAT_MSG_PARTY:
return {
"CHAT_MSG_PARTY",
"CHAT_MSG_PARTY",
"" };
2816 case CHAT_MSG_RAID:
return {
"CHAT_MSG_RAID",
"CHAT_MSG_RAID",
"" };
2817 case CHAT_MSG_GUILD:
return {
"CHAT_MSG_GUILD",
"CHAT_MSG_GUILD",
"" };
2818 case CHAT_MSG_OFFICER:
return {
"CHAT_MSG_OFFICER",
"CHAT_MSG_OFFICER",
"" };
2819 case CHAT_MSG_YELL:
return {
"CHAT_MSG_YELL",
"CHAT_MSG_YELL",
"" };
2820 case CHAT_MSG_WHISPER:
return {
"CHAT_MSG_WHISPER",
"CHAT_MSG_WHISPER",
"" };
2823 case CHAT_MSG_EMOTE:
return {
"CHAT_MSG_EMOTE",
"CHAT_MSG_EMOTE",
"" };
2830 case CHAT_MSG_CHANNEL:
return {
"CHAT_MSG_CHANNEL",
"CHAT_MSG_CHANNEL",
"" };
2836 case CHAT_MSG_AFK:
return {
"CHAT_MSG_AFK",
"CHAT_MSG_AFK",
"" };
2837 case CHAT_MSG_DND:
return {
"CHAT_MSG_DND",
"CHAT_MSG_DND",
"" };
2838 case CHAT_MSG_IGNORED:
return {
"CHAT_MSG_IGNORED",
"CHAT_MSG_IGNORED",
"" };
2839 case CHAT_MSG_SKILL:
return {
"CHAT_MSG_SKILL",
"CHAT_MSG_SKILL",
"" };
2840 case CHAT_MSG_LOOT:
return {
"CHAT_MSG_LOOT",
"CHAT_MSG_LOOT",
"" };
2841 case CHAT_MSG_MONEY:
return {
"CHAT_MSG_MONEY",
"CHAT_MSG_MONEY",
"" };
2842 case CHAT_MSG_OPENING:
return {
"CHAT_MSG_OPENING",
"CHAT_MSG_OPENING",
"" };
2844 case CHAT_MSG_PET_INFO:
return {
"CHAT_MSG_PET_INFO",
"CHAT_MSG_PET_INFO",
"" };
2856 case CHAT_MSG_FILTERED:
return {
"CHAT_MSG_FILTERED",
"CHAT_MSG_FILTERED",
"" };
2865 default:
throw std::out_of_range(
"value");
2930 default:
throw std::out_of_range(
"index");
2992 default:
throw std::out_of_range(
"value");
3005 case SPELLFAMILY_UNK1:
return {
"SPELLFAMILY_UNK1",
"Unk1 (events, holidays, ...)",
"" };
3015 case SPELLFAMILY_UNK2:
return {
"SPELLFAMILY_UNK2",
"Unk2 (Silence resistance?)",
"" };
3019 default:
throw std::out_of_range(
"value");
3046 default:
throw std::out_of_range(
"index");
3070 default:
throw std::out_of_range(
"value");
@ SPELL_ATTR7_ALLIANCE_ONLY
@ SPELL_ATTR7_CONSOLIDATED_RAID_BUFF
@ SPELL_ATTR7_IS_CHEAT_SPELL
@ SPELL_ATTR7_BYPASS_NO_RESURRECT_AURA
@ SPELL_ATTR7_ZONE_TELEPORT
@ SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER
@ SPELL_ATTR7_DISPEL_CHARGES
@ SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING
@ SPELL_ATTR7_CLIENT_INDICATOR
@ SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
@ SPELL_ATTR7_SUMMON_PLAYER_TOTEM
@ SPELL_ATTR7_HAS_CHARGE_EFFECT
@ SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD
@ SPELL_ATTR7_IGNORE_DURATION_MODS
@ SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE
@ SPELL_PREVENTION_TYPE_SILENCE
@ SPELL_PREVENTION_TYPE_PACIFY
@ SPELL_PREVENTION_TYPE_NONE
@ SPELL_ATTR5_USABLE_WHILE_CONFUSED
@ SPELL_ATTR5_NO_REAGENT_WHILE_PREP
@ SPELL_ATTR5_USABLE_WHILE_FEARED
@ SPELL_ATTR5_DONT_TURN_DURING_CAST
@ SPELL_ATTR5_SKIP_CHECKCAST_LOS_CHECK
@ SPELL_ATTR5_START_PERIODIC_AT_APPLY
@ SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET
@ SPELL_ATTR5_SINGLE_TARGET_SPELL
@ SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED
@ SPELL_ATTR5_REMOVE_ON_ARENA_ENTER
@ SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED
@ SPELL_ATTR5_HASTE_AFFECT_DURATION
@ SPELL_ATTR5_HIDE_DURATION
@ SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST
@ SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
@ SPELL_ATTR5_USABLE_WHILE_STUNNED
@ SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST
@ EMOTE_ONESHOT_CUSTOM_SPELL_06
@ EMOTE_ONESHOT_CHEER_NO_SHEATHE
@ EMOTE_ONESHOT_CUSTOM_SPELL_03
@ EMOTE_ONESHOT_PARRY_UNARMED
@ EMOTE_STATE_SPELL_PRECAST
@ EMOTE_STATE_WORK_SHEATHED
@ EMOTE_ONESHOT_CRY_JAINA
@ EMOTE_ONESHOT_LAUGH_NO_SHEATHE
@ EMOTE_STATE_READY_SPELL_OMNI
@ EMOTE_STATE_READY_RIFLE
@ EMOTE_ONESHOT_SPECIALATTACK1H
@ EMOTE_ONESHOT_ATTACK_THROWN
@ EMOTE_STATE_SIT_CHAIR_LOW
@ EMOTE_ONESHOT_FLY_SIT_GROUND_UP
@ EMOTE_STATE_CUSTOM_SPELL_03
@ EMOTE_ONESHOT_WORK_CHOPWOOD
@ EMOTE_ONESHOT_USE_STANDING
@ EMOTE_ONESHOT_JUMPSTART
@ EMOTE_ONESHOT_ATTACK2HTIGHT
@ EMOTE_ONESHOT_WOUND_CRITICAL
@ EMOTE_ONESHOT_POINT_NO_SHEATHE
@ EMOTE_ONESHOT_SPELL_PRECAST
@ EMOTE_ONESHOT_EXCLAMATION
@ EMOTE_STATE_SIT_CHAIR_MED
@ EMOTE_ONESHOT_SPELL_CAST_OMNI
@ EMOTE_STATE_WORK_MINING
@ EMOTE_STATE_STRANGULATE
@ EMOTE_STATE_SPELL_CHANNEL_DIRECTED
@ EMOTE_ONESHOT_CUSTOM_SPELL_01
@ EMOTE_STATE_STEALTH_STAND
@ EMOTE_STATE_WORK_CHOPWOOD
@ EMOTE_ONESHOT_FLYGRABTHROWN
@ EMOTE_STATE_FLY_SIT_GROUND
@ EMOTE_ONESHOT_CREATURE_SPECIAL
@ EMOTE_ONESHOT_ATTACK_RIFLE
@ EMOTE_STATE_SPELLEFFECT_HOLD
@ EMOTE_ONESHOT_CUSTOM_SPELL_02
@ EMOTE_ONESHOT_SPELL_CAST_W_SOUND
@ EMOTE_STATE_DANCE_CUSTOM
@ EMOTE_ONESHOT_OMNICAST_GHOUL
@ EMOTE_STATE_CUSTOM_SPELL_08
@ EMOTE_ONESHOT_SALUTE_NO_SHEATH
@ EMOTE_STATE_SPELL_CHANNEL_OMNI
@ EMOTE_ONESHOT_READY_BOW
@ EMOTE_ONESHOT_DRAGON_SPIT
@ EMOTE_ONESHOT_CUSTOM_SPELL_09
@ EMOTE_ONESHOT_CUSTOM_SPELL_07
@ EMOTE_ONESHOT_FLYATTACK1H
@ EMOTE_STATE_CUSTOM_SPELL_04
@ EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN
@ EMOTE_STATE_DANCESPECIAL
@ EMOTE_ONESHOT_BATTLE_ROAR
@ EMOTE_STATE_READY_UNARMED
@ EMOTE_ONESHOT_CUSTOM_SPELL_04
@ EMOTE_ONESHOT_CUSTOM_SPELL_10
@ EMOTE_STATE_FLYGRABCLOSED
@ EMOTE_STATE_STUN_NO_SHEATHE
@ EMOTE_ONESHOT_WORK_MINING
@ EMOTE_STATE_SIT_CHAIR_HIGH
@ EMOTE_ONESHOT_ATTACK2H_LOOSE
@ EMOTE_ONESHOT_ATTACK_UNARMED
@ EMOTE_STATE_CUSTOM_SPELL_05
@ EMOTE_ONESHOT_WAVE_NO_SHEATHE
@ EMOTE_ONESHOT_CUSTOM_SPELL_05
@ EMOTE_ONESHOT_FLY_DRAGON_SPIT
@ EMOTE_STATE_READY_THROWN
@ EMOTE_STATE_SPECIAL_UNARMED
@ EMOTE_ONESHOT_ATTACK_OFF
@ EMOTE_ONESHOT_CUSTOM_SPELL_08
@ EMOTE_STATE_EAT_NO_SHEATHE
@ EMOTE_ONESHOT_READY_RIFLE
@ EMOTE_ONESHOT_READY_UNARMED
@ EMOTE_ONESHOT_EAT_NO_SHEATHE
@ EMOTE_ONESHOT_JUMPLANDRUN
@ EMOTE_STATE_HOLD_THROWN
@ EMOTE_ONESHOT_MOUNT_SPECIAL
@ EMOTE_ONESHOT_PARRY_SHIELD
@ EMOTE_STATE_ATTACK_UNARMED
@ EMOTE_ONESHOT_ATTACK_OFF_PIERCE
@ EMOTE_STATE_SUBMERGED_NEW
@ EMOTE_ONESHOT_ATTACK_BOW
@ EMOTE_STATE_WALK_BACKWARDS
@ EMOTE_STATE_CANNIBALIZE
@ EMOTE_ONESHOT_TALK_NO_SHEATHE
@ EMOTE_ONESHOT_SPELL_CAST
@ EMOTE_ONESHOT_DANCESPECIAL
@ EMOTE_STATE_SPELL_KNEEL_START
@ EMOTE_STATE_CUSTOM_SPELL_01
@ EMOTE_STATE_USE_STANDING
@ EMOTE_STATE_USE_STANDING_NO_SHEATHE
@ EMOTE_STATE_CUSTOM_SPELL_02
@ SPELL_ATTR2_CANT_TARGET_TAPPED
@ SPELL_ATTR2_AUTOREPEAT_FLAG
@ SPELL_ATTR2_CAN_TARGET_DEAD
@ SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA
@ SPELL_ATTR2_REQ_DEAD_PET
@ SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS
@ SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS
@ SPELL_ATTR2_NOT_NEED_SHAPESHIFT
@ SPELL_ATTR2_HEALTH_FUNNEL
@ SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE
@ SPELL_ATTR2_ACTIVE_THREAT
@ SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF
@ SPELL_ATTR2_IS_ARCANE_CONCENTRATION
@ SPELL_ATTR2_DISPLAY_IN_STANCE_BAR
@ SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE
@ SPELL_ATTR1_PREVENTS_ANIM
@ SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY
@ SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE
@ SPELL_ATTR1_REQUIRE_ALL_TARGETS
@ SPELL_ATTR1_CANT_BE_REDIRECTED
@ SPELL_ATTR1_DRAIN_ALL_POWER
@ SPELL_ATTR1_CANT_BE_REFLECTED
@ SPELL_ATTR1_NOT_BREAK_STEALTH
@ SPELL_ATTR1_UNAUTOCASTABLE_BY_PET
@ SPELL_ATTR1_DONT_REFRESH_DURATION_ON_RECAST
@ SPELL_ATTR1_CHANNEL_TRACK_TARGET
@ SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR
@ SPELL_ATTR1_CHANNELED_1
@ SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME
@ SPELL_ATTR1_DISMISS_PET
@ SPELL_ATTR1_MELEE_COMBAT_START
@ SPELL_ATTR1_CHANNELED_2
@ SPELL_ATTR1_REQ_COMBO_POINTS2
@ SPELL_ATTR1_ENABLE_AT_DODGE
@ SPELL_ATTR1_IS_PICKPOCKET
@ SPELL_ATTR1_REQ_COMBO_POINTS1
@ SPELL_ATTR1_CANT_TARGET_SELF
@ SPELL_ATTR1_CANT_TARGET_IN_COMBAT
@ SPELL_ATTR3_TREAT_AS_PERIODIC
@ SPELL_ATTR3_STACK_FOR_DIFF_CASTERS
@ SPELL_ATTR3_DEATH_PERSISTENT
@ SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR
@ SPELL_ATTR3_NO_DONE_BONUS
@ SPELL_ATTR3_ONLY_TARGET_PLAYERS
@ SPELL_ATTR3_ONLY_TARGET_GHOSTS
@ SPELL_ATTR3_NO_INITIAL_AGGRO
@ SPELL_ATTR3_IGNORE_RESURRECTION_TIMER
@ SPELL_ATTR3_IS_HONORLESS_TARGET
@ SPELL_ATTR3_BATTLEGROUND
@ SPELL_ATTR3_CAN_PROC_FROM_PROCS
@ SPELL_ATTR3_DISABLE_PROC
@ SPELL_ATTR3_CANT_TRIGGER_PROC
@ SPELL_ATTR3_REQ_OFFHAND
@ SPELL_ATTR3_DONT_DISPLAY_RANGE
@ SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK
@ SPELL_ATTR3_IGNORE_HIT_RESULT
@ SPELL_ATTR3_COMPLETELY_BLOCKED
@ SPELL_DAMAGE_CLASS_RANGED
@ SPELL_DAMAGE_CLASS_MAGIC
@ SPELL_DAMAGE_CLASS_NONE
@ SPELL_DAMAGE_CLASS_MELEE
@ MECHANIC_INVULNERABILITY
@ SPELLFAMILY_DEATHKNIGHT
@ SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK
@ SPELL_ATTR0_ON_NEXT_SWING
@ SPELL_ATTR0_CASTABLE_WHILE_SITTING
@ SPELL_ATTR0_STOP_ATTACK_TARGET
@ SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY
@ SPELL_ATTR0_DISABLED_WHILE_ACTIVE
@ SPELL_ATTR0_CAST_TRACK_TARGET
@ SPELL_ATTR0_CASTABLE_WHILE_DEAD
@ SPELL_ATTR0_CANT_CANCEL
@ SPELL_ATTR0_DONT_AFFECT_SHEATH_STATE
@ SPELL_ATTR0_HIDDEN_CLIENTSIDE
@ SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION
@ SPELL_ATTR0_HIDE_IN_COMBAT_LOG
@ SPELL_ATTR0_TARGET_MAINHAND_ITEM
@ SPELL_ATTR0_HEARTBEAT_RESIST_CHECK
@ SPELL_ATTR0_OUTDOORS_ONLY
@ SPELL_ATTR0_ON_NEXT_SWING_2
@ SPELL_ATTR0_DAYTIME_ONLY
@ SPELL_ATTR0_ONLY_STEALTHED
@ SPELL_ATTR0_IS_REPLENISHMENT
@ SPELL_ATTR0_INDOORS_ONLY
@ SPELL_ATTR0_NOT_SHAPESHIFT
@ SPELL_ATTR0_CASTABLE_WHILE_MOUNTED
@ SPELL_ATTR0_CANT_USED_IN_COMBAT
@ CHAT_MSG_MONSTER_WHISPER
@ CHAT_MSG_RAID_BOSS_WHISPER
@ CHAT_MSG_COMBAT_XP_GAIN
@ CHAT_MSG_WHISPER_FOREIGN
@ CHAT_MSG_GUILD_ACHIEVEMENT
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_CHANNEL_NOTICE
@ CHAT_MSG_WHISPER_INFORM
@ CHAT_MSG_RAID_BOSS_EMOTE
@ CHAT_MSG_COMBAT_HONOR_GAIN
@ CHAT_MSG_BATTLEGROUND_LEADER
@ CHAT_MSG_BG_SYSTEM_HORDE
@ CHAT_MSG_COMBAT_FACTION_CHANGE
@ CHAT_MSG_CHANNEL_NOTICE_USER
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
@ CHAT_MSG_COMBAT_MISC_INFO
@ AURA_STATE_DEADLY_POISON
@ AURA_STATE_WARRIOR_VICTORY_RUSH
@ AURA_STATE_HEALTHLESS_35_PERCENT
@ AURA_STATE_HEALTH_ABOVE_75_PERCENT
@ AURA_STATE_HEALTHLESS_20_PERCENT
@ AURA_STATE_HUNTER_PARRY
@ SPELL_FAILED_TARGET_NOT_LOOTED
@ SPELL_FAILED_HUNGER_SATIATED
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_FAILED_TRANSFORM_UNUSABLE
@ SPELL_FAILED_NEED_EXOTIC_AMMO
@ SPELL_FAILED_NOT_INFRONT
@ SPELL_FAILED_LEVEL_REQUIREMENT
@ SPELL_FAILED_ALREADY_BEING_TAMED
@ SPELL_FAILED_FISHING_TOO_LOW
@ SPELL_FAILED_CANT_BE_MILLED
@ SPELL_FAILED_NOT_MOUNTED
@ SPELL_FAILED_NOT_ON_STEALTHED
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND
@ SPELL_FAILED_AFFECTING_COMBAT
@ SPELL_FAILED_CASTER_AURASTATE
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS
@ SPELL_FAILED_ITEM_AT_MAX_CHARGES
@ SPELL_FAILED_TARGET_NOT_PLAYER
@ SPELL_FAILED_NOTHING_TO_DISPEL
@ SPELL_FAILED_INTERRUPTED_COMBAT
@ SPELL_FAILED_NOT_UNSHEATHED
@ SPELL_FAILED_FOOD_LOWLEVEL
@ SPELL_FAILED_NO_CHAMPION
@ SPELL_FAILED_NOT_STANDING
@ SPELL_FAILED_TARGET_NOT_DEAD
@ SPELL_FAILED_CHEST_IN_USE
@ SPELL_FAILED_TARGET_IN_COMBAT
@ SPELL_FAILED_WRONG_PET_FOOD
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_SUMMON_PENDING
@ SPELL_FAILED_ONLY_DAYTIME
@ SPELL_FAILED_NOT_FLYING
@ SPELL_FAILED_TARGET_FREEFORALL
@ SPELL_FAILED_DAMAGE_IMMUNE
@ SPELL_FAILED_BAD_IMPLICIT_TARGETS
@ SPELL_FAILED_TARGET_IS_TRIVIAL
@ SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED
@ SPELL_FAILED_NO_COMBO_POINTS
@ SPELL_FAILED_ALREADY_HAVE_SUMMON
@ SPELL_FAILED_ALREADY_AT_FULL_POWER
@ SPELL_FAILED_NOT_TRADEABLE
@ SPELL_FAILED_ALREADY_OPEN
@ SPELL_FAILED_ITEM_NOT_READY
@ SPELL_FAILED_WRONG_WEATHER
@ SPELL_FAILED_TOO_SHALLOW
@ SPELL_FAILED_NOT_TRADING
@ SPELL_FAILED_NO_CHARGES_REMAIN
@ SPELL_FAILED_TARGET_NO_POCKETS
@ SPELL_FAILED_NOTHING_TO_STEAL
@ SPELL_FAILED_INCORRECT_AREA
@ SPELL_FAILED_NO_MOUNTS_ALLOWED
@ SPELL_FAILED_ITEM_NOT_FOUND
@ SPELL_FAILED_GLYPH_SOCKET_LOCKED
@ SPELL_FAILED_TARGET_IS_PLAYER
@ SPELL_FAILED_OUT_OF_RANGE
@ SPELL_FAILED_NOT_IN_BATTLEGROUND
@ SPELL_FAILED_NOT_IN_BARBERSHOP
@ SPELL_FAILED_NOT_ON_SHAPESHIFT
@ SPELL_FAILED_NOT_FISHABLE
@ SPELL_FAILED_EQUIPPED_ITEM
@ SPELL_FAILED_TARGET_DUELING
@ SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED
@ SPELL_FAILED_NOT_BEHIND
@ SPELL_FAILED_ALREADY_AT_FULL_HEALTH
@ SPELL_FAILED_PREVENTED_BY_MECHANIC
@ SPELL_FAILED_SPELL_LEARNED
@ SPELL_FAILED_NOT_ON_GROUND
@ SPELL_FAILED_ALREADY_HAVE_CHARM
@ SPELL_FAILED_TARGET_NOT_IN_INSTANCE
@ SPELL_FAILED_TARGET_ENEMY
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_THIRST_SATIATED
@ SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE
@ SPELL_FAILED_CANT_CAST_ON_TAPPED
@ SPELL_FAILED_ON_USE_ENCHANT
@ SPELL_FAILED_PET_CAN_RENAME
@ SPELL_FAILED_NOT_WHILE_LOOTING
@ SPELL_FAILED_TARGET_AURASTATE
@ SPELL_FAILED_NOT_IN_RAID_INSTANCE
@ SPELL_FAILED_TARGET_NOT_IN_RAID
@ SPELL_FAILED_ONLY_BATTLEGROUNDS
@ SPELL_FAILED_NO_ENDURANCE
@ SPELL_FAILED_NOT_IN_ARENA
@ SPELL_FAILED_NEED_AMMO_POUCH
@ SPELL_FAILED_ITEM_ALREADY_ENCHANTED
@ SPELL_FAILED_ONLY_IN_ARENA
@ SPELL_FAILED_ONLY_STEALTHED
@ SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL
@ SPELL_FAILED_BM_OR_INVISGOD
@ SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_ONLY_SHAPESHIFT
@ SPELL_FAILED_NOT_WHILE_FATIGUED
@ SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED
@ SPELL_FAILED_ONLY_ABOVEWATER
@ SPELL_FAILED_TARGETS_DEAD
@ SPELL_FAILED_AURA_BOUNCED
@ SPELL_FAILED_UNIT_NOT_BEHIND
@ SPELL_FAILED_CANT_BE_CHARMED
@ SPELL_FAILED_MAX_SOCKETS
@ SPELL_FAILED_TARGET_NOT_GHOST
@ SPELL_FAILED_CASTER_DEAD
@ SPELL_FAILED_NOT_ON_MOUNTED
@ SPELL_FAILED_NO_DUELING
@ SPELL_FAILED_ONLY_UNDERWATER
@ SPELL_FAILED_BAD_TARGETS
@ SPELL_FAILED_CANT_BE_DISENCHANTED
@ SPELL_FAILED_TARGET_ENRAGED
@ SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW
@ SPELL_FAILED_ONLY_NIGHTTIME
@ SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED
@ SPELL_FAILED_TOO_MANY_OF_ITEM
@ SPELL_FAILED_REPUTATION
@ SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT
@ SPELL_FAILED_TARGET_UNSKINNABLE
@ SPELL_FAILED_NOT_SHAPESHIFT
@ SPELL_FAILED_AUTOTRACK_INTERRUPTED
@ SPELL_FAILED_NOT_WHILE_TRADING
@ SPELL_FAILED_NO_PLAYTIME
@ SPELL_FAILED_UNIQUE_GLYPH
@ SPELL_FAILED_NEED_MORE_ITEMS
@ SPELL_FAILED_TARGET_NO_WEAPONS
@ SPELL_FAILED_ONLY_OUTDOORS
@ SPELL_FAILED_NO_VALID_TARGETS
@ SPELL_FAILED_INVALID_GLYPH
@ SPELL_FAILED_PARTIAL_PLAYTIME
@ SPELL_FAILED_LOW_CASTLEVEL
@ SPELL_FAILED_TARGET_NO_RANGED_WEAPONS
@ SPELL_FAILED_CANT_BE_PROSPECTED
@ SPELL_FAILED_ONLY_MOUNTED
@ SPELL_FAILED_NOT_ON_TRANSPORT
@ SPELL_FAILED_LINE_OF_SIGHT
@ SPELL_FAILED_NOT_IN_CONTROL
@ SPELL_FAILED_CANT_STEALTH
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND
@ SPELL_FAILED_SPELL_IN_PROGRESS
@ SPELL_FAILED_MAINHAND_EMPTY
@ SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE
@ SPELL_FAILED_EXPERT_RIDING_REQUIREMENT
@ SPELL_FAILED_ALREADY_AT_FULL_MANA
@ SPELL_FAILED_REQUIRES_SPELL_FOCUS
@ SPELL_FAILED_TOTEM_CATEGORY
@ SPELL_FAILED_SPELL_UNAVAILABLE
@ SPELL_FAILED_REQUIRES_AREA
@ SPELL_FAILED_TARGET_NOT_IN_SANCTUARY
@ SPELL_FAILED_NOT_INACTIVE
@ SPELL_FAILED_NOT_WHILE_GHOST
@ SPELL_FAILED_TOO_MANY_SOCKETS
@ SPELL_FAILED_NO_EDIBLE_CORPSES
@ SPELL_FAILED_INTERRUPTED
@ SPELL_FAILED_TARGET_NOT_IN_PARTY
@ SPELL_FAILED_TARGET_AFFECTING_COMBAT
@ SPELL_FAILED_ONLY_INDOORS
@ SPELL_FAILED_NOT_ON_TAXI
@ SPELL_FAILED_TARGET_FRIENDLY
@ SPELL_ATTR4_CAN_CAST_WHILE_CASTING
@ SPELL_ATTR4_FORCE_DISPLAY_CASTBAR
@ SPELL_ATTR4_DONT_REMOVE_IN_ARENA
@ SPELL_ATTR4_IGNORE_RESISTANCES
@ SPELL_ATTR4_TRIGGER_ACTIVATE
@ SPELL_ATTR4_FADES_WHILE_LOGGED_OUT
@ SPELL_ATTR4_AREA_TARGET_CHAIN
@ SPELL_ATTR4_SPELL_VS_EXTEND_COST
@ SPELL_ATTR4_USABLE_IN_ARENA
@ SPELL_ATTR4_IS_PET_SCALING
@ SPELL_ATTR4_FIXED_DAMAGE
@ SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER
@ SPELL_ATTR4_PROC_ONLY_ON_CASTER
@ SPELL_ATTR4_NOT_USABLE_IN_ARENA
@ SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS
@ SPELL_ATTR4_CANT_TRIGGER_ITEM_SPELLS
@ SPELL_ATTR4_CAST_ONLY_IN_OUTLAND
@ SPELL_ATTR4_NOT_STEALABLE
@ SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER
@ SPELL_ATTR6_CAN_TARGET_INVISIBLE
@ SPELL_ATTR6_DONT_DISPLAY_COOLDOWN
@ SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS
@ SPELL_ATTR6_NOT_IN_RAID_INSTANCE
@ SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED
@ SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS
@ SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG
@ SPELL_ATTR6_CAN_TARGET_UNTARGETABLE
@ SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT
@ SPELL_ATTR6_LIMIT_PCT_HEALING_MODS
@ SPELL_ATTR6_IGNORE_CASTER_AURAS
@ SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS
@ SPELL_ATTR6_CAST_BY_CHARMER
@ SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE
@ SPELL_ATTR6_ONLY_IN_ARENA
@ SPELL_ATTR6_USE_SPELL_CAST_EVENT
@ SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS
@ SPELL_ATTR6_DONT_CONSUME_PROC_CHARGES
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)