wow_world_base 0.3.0

Base definitions and functions for World of Warcraft game servers
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
/// This type is not sent over the network, but is used in the game in another way.
///
/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/external/external_spell_3_3_5.wowm:3`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/external/external_spell_3_3_5.wowm#L3):
/// ```text
/// enum AuraMod : u32 {
///     NONE = 0;
///     BIND_SIGHT = 1;
///     MOD_POSSESS = 2;
///     PERIODIC_DAMAGE = 3;
///     DUMMY = 4;
///     MOD_CONFUSE = 5;
///     MOD_CHARM = 6;
///     MOD_FEAR = 7;
///     PERIODIC_HEAL = 8;
///     MOD_ATTACKSPEED = 9;
///     MOD_THREAT = 10;
///     MOD_TAUNT = 11;
///     MOD_STUN = 12;
///     MOD_DAMAGE_DONE = 13;
///     MOD_DAMAGE_TAKEN = 14;
///     DAMAGE_SHIELD = 15;
///     MOD_STEALTH = 16;
///     MOD_STEALTH_DETECT = 17;
///     MOD_INVISIBILITY = 18;
///     MOD_INVISIBILITY_DETECT = 19;
///     OBS_MOD_HEALTH = 20;
///     OBS_MOD_POWER = 21;
///     MOD_RESISTANCE = 22;
///     PERIODIC_TRIGGER_SPELL = 23;
///     PERIODIC_ENERGIZE = 24;
///     MOD_PACIFY = 25;
///     MOD_ROOT = 26;
///     MOD_SILENCE = 27;
///     REFLECT_SPELLS = 28;
///     MOD_STAT = 29;
///     MOD_SKILL = 30;
///     MOD_INCREASE_SPEED = 31;
///     MOD_INCREASE_MOUNTED_SPEED = 32;
///     MOD_DECREASE_SPEED = 33;
///     MOD_INCREASE_HEALTH = 34;
///     MOD_INCREASE_ENERGY = 35;
///     MOD_SHAPESHIFT = 36;
///     EFFECT_IMMUNITY = 37;
///     STATE_IMMUNITY = 38;
///     SCHOOL_IMMUNITY = 39;
///     DAMAGE_IMMUNITY = 40;
///     DISPEL_IMMUNITY = 41;
///     PROC_TRIGGER_SPELL = 42;
///     PROC_TRIGGER_DAMAGE = 43;
///     TRACK_CREATURES = 44;
///     TRACK_RESOURCES = 45;
///     UNKNOWN46 = 46;
///     MOD_PARRY_PERCENT = 47;
///     PERIODIC_TRIGGER_SPELL_FROM_CLIENT = 48;
///     MOD_DODGE_PERCENT = 49;
///     MOD_CRITICAL_HEALING_AMOUNT = 50;
///     MOD_BLOCK_PERCENT = 51;
///     MOD_WEAPON_CRIT_PERCENT = 52;
///     PERIODIC_LEECH = 53;
///     MOD_HIT_CHANCE = 54;
///     MOD_SPELL_HIT_CHANCE = 55;
///     TRANSFORM = 56;
///     MOD_SPELL_CRIT_CHANCE = 57;
///     MOD_INCREASE_SWIM_SPEED = 58;
///     MOD_DAMAGE_DONE_CREATURE = 59;
///     MOD_PACIFY_SILENCE = 60;
///     MOD_SCALE = 61;
///     PERIODIC_HEALTH_FUNNEL = 62;
///     UNKNOWN63 = 63;
///     PERIODIC_MANA_LEECH = 64;
///     MOD_CASTING_SPEED_NOT_STACK = 65;
///     FEIGN_DEATH = 66;
///     MOD_DISARM = 67;
///     MOD_STALKED = 68;
///     SCHOOL_ABSORB = 69;
///     EXTRA_ATTACKS = 70;
///     MOD_SPELL_CRIT_CHANCE_SCHOOL = 71;
///     MOD_POWER_COST_SCHOOL_PCT = 72;
///     MOD_POWER_COST_SCHOOL = 73;
///     REFLECT_SPELLS_SCHOOL = 74;
///     MOD_LANGUAGE = 75;
///     FAR_SIGHT = 76;
///     MECHANIC_IMMUNITY = 77;
///     MOUNTED = 78;
///     MOD_DAMAGE_PERCENT_DONE = 79;
///     MOD_PERCENT_STAT = 80;
///     SPLIT_DAMAGE_PCT = 81;
///     WATER_BREATHING = 82;
///     MOD_BASE_RESISTANCE = 83;
///     MOD_REGEN = 84;
///     MOD_POWER_REGEN = 85;
///     CHANNEL_DEATH_ITEM = 86;
///     MOD_DAMAGE_PERCENT_TAKEN = 87;
///     MOD_HEALTH_REGEN_PERCENT = 88;
///     PERIODIC_DAMAGE_PERCENT = 89;
///     UNKNOWN90 = 90;
///     MOD_DETECT_RANGE = 91;
///     PREVENTS_FLEEING = 92;
///     MOD_UNATTACKABLE = 93;
///     INTERRUPT_REGEN = 94;
///     GHOST = 95;
///     SPELL_MAGNET = 96;
///     MANA_SHIELD = 97;
///     MOD_SKILL_TALENT = 98;
///     MOD_ATTACK_POWER = 99;
///     AURAS_VISIBLE = 100;
///     MOD_RESISTANCE_PCT = 101;
///     MOD_MELEE_ATTACK_POWER_VERSUS = 102;
///     MOD_TOTAL_THREAT = 103;
///     WATER_WALK = 104;
///     FEATHER_FALL = 105;
///     HOVER = 106;
///     ADD_FLAT_MODIFIER = 107;
///     ADD_PCT_MODIFIER = 108;
///     ADD_TARGET_TRIGGER = 109;
///     MOD_POWER_REGEN_PERCENT = 110;
///     ADD_CASTER_HIT_TRIGGER = 111;
///     OVERRIDE_CLASS_SCRIPTS = 112;
///     MOD_RANGED_DAMAGE_TAKEN = 113;
///     MOD_RANGED_DAMAGE_TAKEN_PCT = 114;
///     MOD_HEALING = 115;
///     MOD_REGEN_DURING_COMBAT = 116;
///     MOD_MECHANIC_RESISTANCE = 117;
///     MOD_HEALING_PCT = 118;
///     UNKNOWN119 = 119;
///     UNTRACKABLE = 120;
///     EMPATHY = 121;
///     MOD_OFFHAND_DAMAGE_PCT = 122;
///     MOD_TARGET_RESISTANCE = 123;
///     MOD_RANGED_ATTACK_POWER = 124;
///     MOD_MELEE_DAMAGE_TAKEN = 125;
///     MOD_MELEE_DAMAGE_TAKEN_PCT = 126;
///     RANGED_ATTACK_POWER_ATTACKER_BONUS = 127;
///     MOD_POSSESS_PET = 128;
///     MOD_SPEED_ALWAYS = 129;
///     MOD_MOUNTED_SPEED_ALWAYS = 130;
///     MOD_RANGED_ATTACK_POWER_VERSUS = 131;
///     MOD_INCREASE_ENERGY_PERCENT = 132;
///     MOD_INCREASE_HEALTH_PERCENT = 133;
///     MOD_MANA_REGEN_INTERRUPT = 134;
///     MOD_HEALING_DONE = 135;
///     MOD_HEALING_DONE_PERCENT = 136;
///     MOD_TOTAL_STAT_PERCENTAGE = 137;
///     MOD_MELEE_HASTE = 138;
///     FORCE_REACTION = 139;
///     MOD_RANGED_HASTE = 140;
///     MOD_RANGED_AMMO_HASTE = 141;
///     MOD_BASE_RESISTANCE_PCT = 142;
///     MOD_RESISTANCE_EXCLUSIVE = 143;
///     SAFE_FALL = 144;
///     MOD_PET_TALENT_POINTS = 145;
///     ALLOW_TAME_PET_TYPE = 146;
///     MECHANIC_IMMUNITY_MASK = 147;
///     RETAIN_COMBO_POINTS = 148;
///     REDUCE_PUSHBACK = 149;
///     MOD_SHIELD_BLOCKVALUE_PCT = 150;
///     TRACK_STEALTHED = 151;
///     MOD_DETECTED_RANGE = 152;
///     SPLIT_DAMAGE_FLAT = 153;
///     MOD_STEALTH_LEVEL = 154;
///     MOD_WATER_BREATHING = 155;
///     MOD_REPUTATION_GAIN = 156;
///     PET_DAMAGE_MULTI = 157;
///     MOD_SHIELD_BLOCKVALUE = 158;
///     NO_PVP_CREDIT = 159;
///     MOD_AOE_AVOIDANCE = 160;
///     MOD_HEALTH_REGEN_IN_COMBAT = 161;
///     POWER_BURN = 162;
///     MOD_CRIT_DAMAGE_BONUS = 163;
///     UNKNOWN164 = 164;
///     MELEE_ATTACK_POWER_ATTACKER_BONUS = 165;
///     MOD_ATTACK_POWER_PCT = 166;
///     MOD_RANGED_ATTACK_POWER_PCT = 167;
///     MOD_DAMAGE_DONE_VERSUS = 168;
///     MOD_CRIT_PERCENT_VERSUS = 169;
///     DETECT_AMORE = 170;
///     MOD_SPEED_NOT_STACK = 171;
///     MOD_MOUNTED_SPEED_NOT_STACK = 172;
///     UNKNOWN173 = 173;
///     MOD_SPELL_DAMAGE_OF_STAT_PERCENT = 174;
///     MOD_SPELL_HEALING_OF_STAT_PERCENT = 175;
///     SPIRIT_OF_REDEMPTION = 176;
///     AOE_CHARM = 177;
///     MOD_DEBUFF_RESISTANCE = 178;
///     MOD_ATTACKER_SPELL_CRIT_CHANCE = 179;
///     MOD_FLAT_SPELL_DAMAGE_VERSUS = 180;
///     UNKNOWN181 = 181;
///     MOD_RESISTANCE_OF_STAT_PERCENT = 182;
///     MOD_CRITICAL_THREAT = 183;
///     MOD_ATTACKER_MELEE_HIT_CHANCE = 184;
///     MOD_ATTACKER_RANGED_HIT_CHANCE = 185;
///     MOD_ATTACKER_SPELL_HIT_CHANCE = 186;
///     MOD_ATTACKER_MELEE_CRIT_CHANCE = 187;
///     MOD_ATTACKER_RANGED_CRIT_CHANCE = 188;
///     MOD_RATING = 189;
///     MOD_FACTION_REPUTATION_GAIN = 190;
///     USE_NORMAL_MOVEMENT_SPEED = 191;
///     MOD_MELEE_RANGED_HASTE = 192;
///     MELEE_SLOW = 193;
///     MOD_TARGET_ABSORB_SCHOOL = 194;
///     MOD_TARGET_ABILITY_ABSORB_SCHOOL = 195;
///     MOD_COOLDOWN = 196;
///     MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE = 197;
///     UNKNOWN198 = 198;
///     MOD_INCREASES_SPELL_PCT_TO_HIT = 199;
///     MOD_XP_PCT = 200;
///     FLY = 201;
///     IGNORE_COMBAT_RESULT = 202;
///     MOD_ATTACKER_MELEE_CRIT_DAMAGE = 203;
///     MOD_ATTACKER_RANGED_CRIT_DAMAGE = 204;
///     MOD_SCHOOL_CRIT_DMG_TAKEN = 205;
///     MOD_INCREASE_VEHICLE_FLIGHT_SPEED = 206;
///     MOD_INCREASE_MOUNTED_FLIGHT_SPEED = 207;
///     MOD_INCREASE_FLIGHT_SPEED = 208;
///     MOD_MOUNTED_FLIGHT_SPEED_ALWAYS = 209;
///     MOD_VEHICLE_SPEED_ALWAYS = 210;
///     MOD_FLIGHT_SPEED_NOT_STACK = 211;
///     MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT = 212;
///     MOD_RAGE_FROM_DAMAGE_DEALT = 213;
///     UNKNOWN214 = 214;
///     ARENA_PREPARATION = 215;
///     HASTE_SPELLS = 216;
///     MOD_MELEE_HASTE_2 = 217;
///     HASTE_RANGED = 218;
///     MOD_MANA_REGEN_FROM_STAT = 219;
///     MOD_RATING_FROM_STAT = 220;
///     MOD_DETAUNT = 221;
///     UNKNOWN222 = 222;
///     RAID_PROC_FROM_CHARGE = 223;
///     UNKNOWN224 = 224;
///     RAID_PROC_FROM_CHARGE_WITH_VALUE = 225;
///     PERIODIC_DUMMY = 226;
///     PERIODIC_TRIGGER_SPELL_WITH_VALUE = 227;
///     DETECT_STEALTH = 228;
///     MOD_AOE_DAMAGE_AVOIDANCE = 229;
///     UNKNOWN230 = 230;
///     PROC_TRIGGER_SPELL_WITH_VALUE = 231;
///     MECHANIC_DURATION_MOD = 232;
///     CHANGE_MODEL_FOR_ALL_HUMANOIDS = 233;
///     MECHANIC_DURATION_MOD_NOT_STACK = 234;
///     MOD_DISPEL_RESIST = 235;
///     CONTROL_VEHICLE = 236;
///     MOD_SPELL_DAMAGE_OF_ATTACK_POWER = 237;
///     MOD_SPELL_HEALING_OF_ATTACK_POWER = 238;
///     MOD_SCALE_2 = 239;
///     MOD_EXPERTISE = 240;
///     FORCE_MOVE_FORWARD = 241;
///     MOD_SPELL_DAMAGE_FROM_HEALING = 242;
///     MOD_FACTION = 243;
///     COMPREHEND_LANGUAGE = 244;
///     MOD_AURA_DURATION_BY_DISPEL = 245;
///     MOD_AURA_DURATION_BY_DISPEL_NOT_STACK = 246;
///     CLONE_CASTER = 247;
///     MOD_COMBAT_RESULT_CHANCE = 248;
///     CONVERT_RUNE = 249;
///     MOD_INCREASE_HEALTH_2 = 250;
///     MOD_ENEMY_DODGE = 251;
///     MOD_SPEED_SLOW_ALL = 252;
///     MOD_BLOCK_CRIT_CHANCE = 253;
///     MOD_DISARM_OFFHAND = 254;
///     MOD_MECHANIC_DAMAGE_TAKEN_PERCENT = 255;
///     NO_REAGENT_USE = 256;
///     MOD_TARGET_RESIST_BY_SPELL_CLASS = 257;
///     UNKNOWN258 = 258;
///     MOD_HOT_PCT = 259;
///     SCREEN_EFFECT = 260;
///     PHASE = 261;
///     ABILITY_IGNORE_AURASTATE = 262;
///     ALLOW_ONLY_ABILITY = 263;
///     UNKNOWN264 = 264;
///     UNKNOWN265 = 265;
///     UNKNOWN266 = 266;
///     MOD_IMMUNE_AURA_APPLY_SCHOOL = 267;
///     MOD_ATTACK_POWER_OF_STAT_PERCENT = 268;
///     MOD_IGNORE_TARGET_RESIST = 269;
///     MOD_ABILITY_IGNORE_TARGET_RESIST = 270;
///     MOD_DAMAGE_FROM_CASTER = 271;
///     IGNORE_MELEE_RESET = 272;
///     X_RAY = 273;
///     ABILITY_CONSUME_NO_AMMO = 274;
///     MOD_IGNORE_SHAPESHIFT = 275;
///     MOD_DAMAGE_DONE_FOR_MECHANIC = 276;
///     MOD_MAX_AFFECTED_TARGETS = 277;
///     MOD_DISARM_RANGED = 278;
///     INITIALIZE_IMAGES = 279;
///     MOD_ARMOR_PENETRATION_PCT = 280;
///     MOD_HONOR_GAIN_PCT = 281;
///     MOD_BASE_HEALTH_PCT = 282;
///     MOD_HEALING_RECEIVED = 283;
///     LINKED = 284;
///     MOD_ATTACK_POWER_OF_ARMOR = 285;
///     ABILITY_PERIODIC_CRIT = 286;
///     DEFLECT_SPELLS = 287;
///     IGNORE_HIT_DIRECTION = 288;
///     PREVENT_DURABILITY_LOSS = 289;
///     MOD_CRIT_PCT = 290;
///     MOD_XP_QUEST_PCT = 291;
///     OPEN_STABLE = 292;
///     OVERRIDE_SPELLS = 293;
///     PREVENT_REGENERATE_POWER = 294;
///     UNKNOWN295 = 295;
///     SET_VEHICLE_ID = 296;
///     BLOCK_SPELL_FAMILY = 297;
///     STRANGULATE = 298;
///     UNKNOWN299 = 299;
///     SHARE_DAMAGE_PCT = 300;
///     SCHOOL_HEAL_ABSORB = 301;
///     UNKNOWN302 = 302;
///     MOD_DAMAGE_DONE_VERSUS_AURASTATE = 303;
///     MOD_FAKE_INEBRIATE = 304;
///     MOD_MINIMUM_SPEED = 305;
///     UNKNOWN306 = 306;
///     HEAL_ABSORB_TEST = 307;
///     MOD_CRIT_CHANCE_FOR_CASTER = 308;
///     UNKNOWN309 = 309;
///     MOD_CREATURE_AOE_DAMAGE_AVOIDANCE = 310;
///     UNKNOWN311 = 311;
///     UNKNOWN312 = 312;
///     UNKNOWN313 = 313;
///     PREVENT_RESURRECTION = 314;
///     UNDERWATER_WALKING = 315;
///     PERIODIC_HASTE = 316;
/// }
/// ```
#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub enum AuraMod {
    None,
    BindSight,
    ModPossess,
    PeriodicDamage,
    Dummy,
    ModConfuse,
    ModCharm,
    ModFear,
    PeriodicHeal,
    ModAttackspeed,
    ModThreat,
    ModTaunt,
    ModStun,
    ModDamageDone,
    ModDamageTaken,
    DamageShield,
    ModStealth,
    ModStealthDetect,
    ModInvisibility,
    ModInvisibilityDetect,
    ObsModHealth,
    ObsModPower,
    ModResistance,
    PeriodicTriggerSpell,
    PeriodicEnergize,
    ModPacify,
    ModRoot,
    ModSilence,
    ReflectSpells,
    ModStat,
    ModSkill,
    ModIncreaseSpeed,
    ModIncreaseMountedSpeed,
    ModDecreaseSpeed,
    ModIncreaseHealth,
    ModIncreaseEnergy,
    ModShapeshift,
    EffectImmunity,
    StateImmunity,
    SchoolImmunity,
    DamageImmunity,
    DispelImmunity,
    ProcTriggerSpell,
    ProcTriggerDamage,
    TrackCreatures,
    TrackResources,
    Unknown46,
    ModParryPercent,
    PeriodicTriggerSpellFromClient,
    ModDodgePercent,
    ModCriticalHealingAmount,
    ModBlockPercent,
    ModWeaponCritPercent,
    PeriodicLeech,
    ModHitChance,
    ModSpellHitChance,
    Transform,
    ModSpellCritChance,
    ModIncreaseSwimSpeed,
    ModDamageDoneCreature,
    ModPacifySilence,
    ModScale,
    PeriodicHealthFunnel,
    Unknown63,
    PeriodicManaLeech,
    ModCastingSpeedNotStack,
    FeignDeath,
    ModDisarm,
    ModStalked,
    SchoolAbsorb,
    ExtraAttacks,
    ModSpellCritChanceSchool,
    ModPowerCostSchoolPct,
    ModPowerCostSchool,
    ReflectSpellsSchool,
    ModLanguage,
    FarSight,
    MechanicImmunity,
    Mounted,
    ModDamagePercentDone,
    ModPercentStat,
    SplitDamagePct,
    WaterBreathing,
    ModBaseResistance,
    ModRegen,
    ModPowerRegen,
    ChannelDeathItem,
    ModDamagePercentTaken,
    ModHealthRegenPercent,
    PeriodicDamagePercent,
    Unknown90,
    ModDetectRange,
    PreventsFleeing,
    ModUnattackable,
    InterruptRegen,
    Ghost,
    SpellMagnet,
    ManaShield,
    ModSkillTalent,
    ModAttackPower,
    AurasVisible,
    ModResistancePct,
    ModMeleeAttackPowerVersus,
    ModTotalThreat,
    WaterWalk,
    FeatherFall,
    Hover,
    AddFlatModifier,
    AddPctModifier,
    AddTargetTrigger,
    ModPowerRegenPercent,
    AddCasterHitTrigger,
    OverrideClassScripts,
    ModRangedDamageTaken,
    ModRangedDamageTakenPct,
    ModHealing,
    ModRegenDuringCombat,
    ModMechanicResistance,
    ModHealingPct,
    Unknown119,
    Untrackable,
    Empathy,
    ModOffhandDamagePct,
    ModTargetResistance,
    ModRangedAttackPower,
    ModMeleeDamageTaken,
    ModMeleeDamageTakenPct,
    RangedAttackPowerAttackerBonus,
    ModPossessPet,
    ModSpeedAlways,
    ModMountedSpeedAlways,
    ModRangedAttackPowerVersus,
    ModIncreaseEnergyPercent,
    ModIncreaseHealthPercent,
    ModManaRegenInterrupt,
    ModHealingDone,
    ModHealingDonePercent,
    ModTotalStatPercentage,
    ModMeleeHaste,
    ForceReaction,
    ModRangedHaste,
    ModRangedAmmoHaste,
    ModBaseResistancePct,
    ModResistanceExclusive,
    SafeFall,
    ModPetTalentPoints,
    AllowTamePetType,
    MechanicImmunityMask,
    RetainComboPoints,
    ReducePushback,
    ModShieldBlockvaluePct,
    TrackStealthed,
    ModDetectedRange,
    SplitDamageFlat,
    ModStealthLevel,
    ModWaterBreathing,
    ModReputationGain,
    PetDamageMulti,
    ModShieldBlockvalue,
    NoPvpCredit,
    ModAoeAvoidance,
    ModHealthRegenInCombat,
    PowerBurn,
    ModCritDamageBonus,
    Unknown164,
    MeleeAttackPowerAttackerBonus,
    ModAttackPowerPct,
    ModRangedAttackPowerPct,
    ModDamageDoneVersus,
    ModCritPercentVersus,
    DetectAmore,
    ModSpeedNotStack,
    ModMountedSpeedNotStack,
    Unknown173,
    ModSpellDamageOfStatPercent,
    ModSpellHealingOfStatPercent,
    SpiritOfRedemption,
    AoeCharm,
    ModDebuffResistance,
    ModAttackerSpellCritChance,
    ModFlatSpellDamageVersus,
    Unknown181,
    ModResistanceOfStatPercent,
    ModCriticalThreat,
    ModAttackerMeleeHitChance,
    ModAttackerRangedHitChance,
    ModAttackerSpellHitChance,
    ModAttackerMeleeCritChance,
    ModAttackerRangedCritChance,
    ModRating,
    ModFactionReputationGain,
    UseNormalMovementSpeed,
    ModMeleeRangedHaste,
    MeleeSlow,
    ModTargetAbsorbSchool,
    ModTargetAbilityAbsorbSchool,
    ModCooldown,
    ModAttackerSpellAndWeaponCritChance,
    Unknown198,
    ModIncreasesSpellPctToHit,
    ModXpPct,
    Fly,
    IgnoreCombatResult,
    ModAttackerMeleeCritDamage,
    ModAttackerRangedCritDamage,
    ModSchoolCritDmgTaken,
    ModIncreaseVehicleFlightSpeed,
    ModIncreaseMountedFlightSpeed,
    ModIncreaseFlightSpeed,
    ModMountedFlightSpeedAlways,
    ModVehicleSpeedAlways,
    ModFlightSpeedNotStack,
    ModRangedAttackPowerOfStatPercent,
    ModRageFromDamageDealt,
    Unknown214,
    ArenaPreparation,
    HasteSpells,
    ModMeleeHaste2,
    HasteRanged,
    ModManaRegenFromStat,
    ModRatingFromStat,
    ModDetaunt,
    Unknown222,
    RaidProcFromCharge,
    Unknown224,
    RaidProcFromChargeWithValue,
    PeriodicDummy,
    PeriodicTriggerSpellWithValue,
    DetectStealth,
    ModAoeDamageAvoidance,
    Unknown230,
    ProcTriggerSpellWithValue,
    MechanicDurationMod,
    ChangeModelForAllHumanoids,
    MechanicDurationModNotStack,
    ModDispelResist,
    ControlVehicle,
    ModSpellDamageOfAttackPower,
    ModSpellHealingOfAttackPower,
    ModScale2,
    ModExpertise,
    ForceMoveForward,
    ModSpellDamageFromHealing,
    ModFaction,
    ComprehendLanguage,
    ModAuraDurationByDispel,
    ModAuraDurationByDispelNotStack,
    CloneCaster,
    ModCombatResultChance,
    ConvertRune,
    ModIncreaseHealth2,
    ModEnemyDodge,
    ModSpeedSlowAll,
    ModBlockCritChance,
    ModDisarmOffhand,
    ModMechanicDamageTakenPercent,
    NoReagentUse,
    ModTargetResistBySpellClass,
    Unknown258,
    ModHotPct,
    ScreenEffect,
    Phase,
    AbilityIgnoreAurastate,
    AllowOnlyAbility,
    Unknown264,
    Unknown265,
    Unknown266,
    ModImmuneAuraApplySchool,
    ModAttackPowerOfStatPercent,
    ModIgnoreTargetResist,
    ModAbilityIgnoreTargetResist,
    ModDamageFromCaster,
    IgnoreMeleeReset,
    XRay,
    AbilityConsumeNoAmmo,
    ModIgnoreShapeshift,
    ModDamageDoneForMechanic,
    ModMaxAffectedTargets,
    ModDisarmRanged,
    InitializeImages,
    ModArmorPenetrationPct,
    ModHonorGainPct,
    ModBaseHealthPct,
    ModHealingReceived,
    Linked,
    ModAttackPowerOfArmor,
    AbilityPeriodicCrit,
    DeflectSpells,
    IgnoreHitDirection,
    PreventDurabilityLoss,
    ModCritPct,
    ModXpQuestPct,
    OpenStable,
    OverrideSpells,
    PreventRegeneratePower,
    Unknown295,
    SetVehicleId,
    BlockSpellFamily,
    Strangulate,
    Unknown299,
    ShareDamagePct,
    SchoolHealAbsorb,
    Unknown302,
    ModDamageDoneVersusAurastate,
    ModFakeInebriate,
    ModMinimumSpeed,
    Unknown306,
    HealAbsorbTest,
    ModCritChanceForCaster,
    Unknown309,
    ModCreatureAoeDamageAvoidance,
    Unknown311,
    Unknown312,
    Unknown313,
    PreventResurrection,
    UnderwaterWalking,
    PeriodicHaste,
}

impl AuraMod {
    pub const fn as_int(&self) -> u32 {
        match self {
            Self::None => 0x0,
            Self::BindSight => 0x1,
            Self::ModPossess => 0x2,
            Self::PeriodicDamage => 0x3,
            Self::Dummy => 0x4,
            Self::ModConfuse => 0x5,
            Self::ModCharm => 0x6,
            Self::ModFear => 0x7,
            Self::PeriodicHeal => 0x8,
            Self::ModAttackspeed => 0x9,
            Self::ModThreat => 0xa,
            Self::ModTaunt => 0xb,
            Self::ModStun => 0xc,
            Self::ModDamageDone => 0xd,
            Self::ModDamageTaken => 0xe,
            Self::DamageShield => 0xf,
            Self::ModStealth => 0x10,
            Self::ModStealthDetect => 0x11,
            Self::ModInvisibility => 0x12,
            Self::ModInvisibilityDetect => 0x13,
            Self::ObsModHealth => 0x14,
            Self::ObsModPower => 0x15,
            Self::ModResistance => 0x16,
            Self::PeriodicTriggerSpell => 0x17,
            Self::PeriodicEnergize => 0x18,
            Self::ModPacify => 0x19,
            Self::ModRoot => 0x1a,
            Self::ModSilence => 0x1b,
            Self::ReflectSpells => 0x1c,
            Self::ModStat => 0x1d,
            Self::ModSkill => 0x1e,
            Self::ModIncreaseSpeed => 0x1f,
            Self::ModIncreaseMountedSpeed => 0x20,
            Self::ModDecreaseSpeed => 0x21,
            Self::ModIncreaseHealth => 0x22,
            Self::ModIncreaseEnergy => 0x23,
            Self::ModShapeshift => 0x24,
            Self::EffectImmunity => 0x25,
            Self::StateImmunity => 0x26,
            Self::SchoolImmunity => 0x27,
            Self::DamageImmunity => 0x28,
            Self::DispelImmunity => 0x29,
            Self::ProcTriggerSpell => 0x2a,
            Self::ProcTriggerDamage => 0x2b,
            Self::TrackCreatures => 0x2c,
            Self::TrackResources => 0x2d,
            Self::Unknown46 => 0x2e,
            Self::ModParryPercent => 0x2f,
            Self::PeriodicTriggerSpellFromClient => 0x30,
            Self::ModDodgePercent => 0x31,
            Self::ModCriticalHealingAmount => 0x32,
            Self::ModBlockPercent => 0x33,
            Self::ModWeaponCritPercent => 0x34,
            Self::PeriodicLeech => 0x35,
            Self::ModHitChance => 0x36,
            Self::ModSpellHitChance => 0x37,
            Self::Transform => 0x38,
            Self::ModSpellCritChance => 0x39,
            Self::ModIncreaseSwimSpeed => 0x3a,
            Self::ModDamageDoneCreature => 0x3b,
            Self::ModPacifySilence => 0x3c,
            Self::ModScale => 0x3d,
            Self::PeriodicHealthFunnel => 0x3e,
            Self::Unknown63 => 0x3f,
            Self::PeriodicManaLeech => 0x40,
            Self::ModCastingSpeedNotStack => 0x41,
            Self::FeignDeath => 0x42,
            Self::ModDisarm => 0x43,
            Self::ModStalked => 0x44,
            Self::SchoolAbsorb => 0x45,
            Self::ExtraAttacks => 0x46,
            Self::ModSpellCritChanceSchool => 0x47,
            Self::ModPowerCostSchoolPct => 0x48,
            Self::ModPowerCostSchool => 0x49,
            Self::ReflectSpellsSchool => 0x4a,
            Self::ModLanguage => 0x4b,
            Self::FarSight => 0x4c,
            Self::MechanicImmunity => 0x4d,
            Self::Mounted => 0x4e,
            Self::ModDamagePercentDone => 0x4f,
            Self::ModPercentStat => 0x50,
            Self::SplitDamagePct => 0x51,
            Self::WaterBreathing => 0x52,
            Self::ModBaseResistance => 0x53,
            Self::ModRegen => 0x54,
            Self::ModPowerRegen => 0x55,
            Self::ChannelDeathItem => 0x56,
            Self::ModDamagePercentTaken => 0x57,
            Self::ModHealthRegenPercent => 0x58,
            Self::PeriodicDamagePercent => 0x59,
            Self::Unknown90 => 0x5a,
            Self::ModDetectRange => 0x5b,
            Self::PreventsFleeing => 0x5c,
            Self::ModUnattackable => 0x5d,
            Self::InterruptRegen => 0x5e,
            Self::Ghost => 0x5f,
            Self::SpellMagnet => 0x60,
            Self::ManaShield => 0x61,
            Self::ModSkillTalent => 0x62,
            Self::ModAttackPower => 0x63,
            Self::AurasVisible => 0x64,
            Self::ModResistancePct => 0x65,
            Self::ModMeleeAttackPowerVersus => 0x66,
            Self::ModTotalThreat => 0x67,
            Self::WaterWalk => 0x68,
            Self::FeatherFall => 0x69,
            Self::Hover => 0x6a,
            Self::AddFlatModifier => 0x6b,
            Self::AddPctModifier => 0x6c,
            Self::AddTargetTrigger => 0x6d,
            Self::ModPowerRegenPercent => 0x6e,
            Self::AddCasterHitTrigger => 0x6f,
            Self::OverrideClassScripts => 0x70,
            Self::ModRangedDamageTaken => 0x71,
            Self::ModRangedDamageTakenPct => 0x72,
            Self::ModHealing => 0x73,
            Self::ModRegenDuringCombat => 0x74,
            Self::ModMechanicResistance => 0x75,
            Self::ModHealingPct => 0x76,
            Self::Unknown119 => 0x77,
            Self::Untrackable => 0x78,
            Self::Empathy => 0x79,
            Self::ModOffhandDamagePct => 0x7a,
            Self::ModTargetResistance => 0x7b,
            Self::ModRangedAttackPower => 0x7c,
            Self::ModMeleeDamageTaken => 0x7d,
            Self::ModMeleeDamageTakenPct => 0x7e,
            Self::RangedAttackPowerAttackerBonus => 0x7f,
            Self::ModPossessPet => 0x80,
            Self::ModSpeedAlways => 0x81,
            Self::ModMountedSpeedAlways => 0x82,
            Self::ModRangedAttackPowerVersus => 0x83,
            Self::ModIncreaseEnergyPercent => 0x84,
            Self::ModIncreaseHealthPercent => 0x85,
            Self::ModManaRegenInterrupt => 0x86,
            Self::ModHealingDone => 0x87,
            Self::ModHealingDonePercent => 0x88,
            Self::ModTotalStatPercentage => 0x89,
            Self::ModMeleeHaste => 0x8a,
            Self::ForceReaction => 0x8b,
            Self::ModRangedHaste => 0x8c,
            Self::ModRangedAmmoHaste => 0x8d,
            Self::ModBaseResistancePct => 0x8e,
            Self::ModResistanceExclusive => 0x8f,
            Self::SafeFall => 0x90,
            Self::ModPetTalentPoints => 0x91,
            Self::AllowTamePetType => 0x92,
            Self::MechanicImmunityMask => 0x93,
            Self::RetainComboPoints => 0x94,
            Self::ReducePushback => 0x95,
            Self::ModShieldBlockvaluePct => 0x96,
            Self::TrackStealthed => 0x97,
            Self::ModDetectedRange => 0x98,
            Self::SplitDamageFlat => 0x99,
            Self::ModStealthLevel => 0x9a,
            Self::ModWaterBreathing => 0x9b,
            Self::ModReputationGain => 0x9c,
            Self::PetDamageMulti => 0x9d,
            Self::ModShieldBlockvalue => 0x9e,
            Self::NoPvpCredit => 0x9f,
            Self::ModAoeAvoidance => 0xa0,
            Self::ModHealthRegenInCombat => 0xa1,
            Self::PowerBurn => 0xa2,
            Self::ModCritDamageBonus => 0xa3,
            Self::Unknown164 => 0xa4,
            Self::MeleeAttackPowerAttackerBonus => 0xa5,
            Self::ModAttackPowerPct => 0xa6,
            Self::ModRangedAttackPowerPct => 0xa7,
            Self::ModDamageDoneVersus => 0xa8,
            Self::ModCritPercentVersus => 0xa9,
            Self::DetectAmore => 0xaa,
            Self::ModSpeedNotStack => 0xab,
            Self::ModMountedSpeedNotStack => 0xac,
            Self::Unknown173 => 0xad,
            Self::ModSpellDamageOfStatPercent => 0xae,
            Self::ModSpellHealingOfStatPercent => 0xaf,
            Self::SpiritOfRedemption => 0xb0,
            Self::AoeCharm => 0xb1,
            Self::ModDebuffResistance => 0xb2,
            Self::ModAttackerSpellCritChance => 0xb3,
            Self::ModFlatSpellDamageVersus => 0xb4,
            Self::Unknown181 => 0xb5,
            Self::ModResistanceOfStatPercent => 0xb6,
            Self::ModCriticalThreat => 0xb7,
            Self::ModAttackerMeleeHitChance => 0xb8,
            Self::ModAttackerRangedHitChance => 0xb9,
            Self::ModAttackerSpellHitChance => 0xba,
            Self::ModAttackerMeleeCritChance => 0xbb,
            Self::ModAttackerRangedCritChance => 0xbc,
            Self::ModRating => 0xbd,
            Self::ModFactionReputationGain => 0xbe,
            Self::UseNormalMovementSpeed => 0xbf,
            Self::ModMeleeRangedHaste => 0xc0,
            Self::MeleeSlow => 0xc1,
            Self::ModTargetAbsorbSchool => 0xc2,
            Self::ModTargetAbilityAbsorbSchool => 0xc3,
            Self::ModCooldown => 0xc4,
            Self::ModAttackerSpellAndWeaponCritChance => 0xc5,
            Self::Unknown198 => 0xc6,
            Self::ModIncreasesSpellPctToHit => 0xc7,
            Self::ModXpPct => 0xc8,
            Self::Fly => 0xc9,
            Self::IgnoreCombatResult => 0xca,
            Self::ModAttackerMeleeCritDamage => 0xcb,
            Self::ModAttackerRangedCritDamage => 0xcc,
            Self::ModSchoolCritDmgTaken => 0xcd,
            Self::ModIncreaseVehicleFlightSpeed => 0xce,
            Self::ModIncreaseMountedFlightSpeed => 0xcf,
            Self::ModIncreaseFlightSpeed => 0xd0,
            Self::ModMountedFlightSpeedAlways => 0xd1,
            Self::ModVehicleSpeedAlways => 0xd2,
            Self::ModFlightSpeedNotStack => 0xd3,
            Self::ModRangedAttackPowerOfStatPercent => 0xd4,
            Self::ModRageFromDamageDealt => 0xd5,
            Self::Unknown214 => 0xd6,
            Self::ArenaPreparation => 0xd7,
            Self::HasteSpells => 0xd8,
            Self::ModMeleeHaste2 => 0xd9,
            Self::HasteRanged => 0xda,
            Self::ModManaRegenFromStat => 0xdb,
            Self::ModRatingFromStat => 0xdc,
            Self::ModDetaunt => 0xdd,
            Self::Unknown222 => 0xde,
            Self::RaidProcFromCharge => 0xdf,
            Self::Unknown224 => 0xe0,
            Self::RaidProcFromChargeWithValue => 0xe1,
            Self::PeriodicDummy => 0xe2,
            Self::PeriodicTriggerSpellWithValue => 0xe3,
            Self::DetectStealth => 0xe4,
            Self::ModAoeDamageAvoidance => 0xe5,
            Self::Unknown230 => 0xe6,
            Self::ProcTriggerSpellWithValue => 0xe7,
            Self::MechanicDurationMod => 0xe8,
            Self::ChangeModelForAllHumanoids => 0xe9,
            Self::MechanicDurationModNotStack => 0xea,
            Self::ModDispelResist => 0xeb,
            Self::ControlVehicle => 0xec,
            Self::ModSpellDamageOfAttackPower => 0xed,
            Self::ModSpellHealingOfAttackPower => 0xee,
            Self::ModScale2 => 0xef,
            Self::ModExpertise => 0xf0,
            Self::ForceMoveForward => 0xf1,
            Self::ModSpellDamageFromHealing => 0xf2,
            Self::ModFaction => 0xf3,
            Self::ComprehendLanguage => 0xf4,
            Self::ModAuraDurationByDispel => 0xf5,
            Self::ModAuraDurationByDispelNotStack => 0xf6,
            Self::CloneCaster => 0xf7,
            Self::ModCombatResultChance => 0xf8,
            Self::ConvertRune => 0xf9,
            Self::ModIncreaseHealth2 => 0xfa,
            Self::ModEnemyDodge => 0xfb,
            Self::ModSpeedSlowAll => 0xfc,
            Self::ModBlockCritChance => 0xfd,
            Self::ModDisarmOffhand => 0xfe,
            Self::ModMechanicDamageTakenPercent => 0xff,
            Self::NoReagentUse => 0x100,
            Self::ModTargetResistBySpellClass => 0x101,
            Self::Unknown258 => 0x102,
            Self::ModHotPct => 0x103,
            Self::ScreenEffect => 0x104,
            Self::Phase => 0x105,
            Self::AbilityIgnoreAurastate => 0x106,
            Self::AllowOnlyAbility => 0x107,
            Self::Unknown264 => 0x108,
            Self::Unknown265 => 0x109,
            Self::Unknown266 => 0x10a,
            Self::ModImmuneAuraApplySchool => 0x10b,
            Self::ModAttackPowerOfStatPercent => 0x10c,
            Self::ModIgnoreTargetResist => 0x10d,
            Self::ModAbilityIgnoreTargetResist => 0x10e,
            Self::ModDamageFromCaster => 0x10f,
            Self::IgnoreMeleeReset => 0x110,
            Self::XRay => 0x111,
            Self::AbilityConsumeNoAmmo => 0x112,
            Self::ModIgnoreShapeshift => 0x113,
            Self::ModDamageDoneForMechanic => 0x114,
            Self::ModMaxAffectedTargets => 0x115,
            Self::ModDisarmRanged => 0x116,
            Self::InitializeImages => 0x117,
            Self::ModArmorPenetrationPct => 0x118,
            Self::ModHonorGainPct => 0x119,
            Self::ModBaseHealthPct => 0x11a,
            Self::ModHealingReceived => 0x11b,
            Self::Linked => 0x11c,
            Self::ModAttackPowerOfArmor => 0x11d,
            Self::AbilityPeriodicCrit => 0x11e,
            Self::DeflectSpells => 0x11f,
            Self::IgnoreHitDirection => 0x120,
            Self::PreventDurabilityLoss => 0x121,
            Self::ModCritPct => 0x122,
            Self::ModXpQuestPct => 0x123,
            Self::OpenStable => 0x124,
            Self::OverrideSpells => 0x125,
            Self::PreventRegeneratePower => 0x126,
            Self::Unknown295 => 0x127,
            Self::SetVehicleId => 0x128,
            Self::BlockSpellFamily => 0x129,
            Self::Strangulate => 0x12a,
            Self::Unknown299 => 0x12b,
            Self::ShareDamagePct => 0x12c,
            Self::SchoolHealAbsorb => 0x12d,
            Self::Unknown302 => 0x12e,
            Self::ModDamageDoneVersusAurastate => 0x12f,
            Self::ModFakeInebriate => 0x130,
            Self::ModMinimumSpeed => 0x131,
            Self::Unknown306 => 0x132,
            Self::HealAbsorbTest => 0x133,
            Self::ModCritChanceForCaster => 0x134,
            Self::Unknown309 => 0x135,
            Self::ModCreatureAoeDamageAvoidance => 0x136,
            Self::Unknown311 => 0x137,
            Self::Unknown312 => 0x138,
            Self::Unknown313 => 0x139,
            Self::PreventResurrection => 0x13a,
            Self::UnderwaterWalking => 0x13b,
            Self::PeriodicHaste => 0x13c,
        }
    }

    pub const fn variants() -> [Self; 317] {
        [
            Self::None,
            Self::BindSight,
            Self::ModPossess,
            Self::PeriodicDamage,
            Self::Dummy,
            Self::ModConfuse,
            Self::ModCharm,
            Self::ModFear,
            Self::PeriodicHeal,
            Self::ModAttackspeed,
            Self::ModThreat,
            Self::ModTaunt,
            Self::ModStun,
            Self::ModDamageDone,
            Self::ModDamageTaken,
            Self::DamageShield,
            Self::ModStealth,
            Self::ModStealthDetect,
            Self::ModInvisibility,
            Self::ModInvisibilityDetect,
            Self::ObsModHealth,
            Self::ObsModPower,
            Self::ModResistance,
            Self::PeriodicTriggerSpell,
            Self::PeriodicEnergize,
            Self::ModPacify,
            Self::ModRoot,
            Self::ModSilence,
            Self::ReflectSpells,
            Self::ModStat,
            Self::ModSkill,
            Self::ModIncreaseSpeed,
            Self::ModIncreaseMountedSpeed,
            Self::ModDecreaseSpeed,
            Self::ModIncreaseHealth,
            Self::ModIncreaseEnergy,
            Self::ModShapeshift,
            Self::EffectImmunity,
            Self::StateImmunity,
            Self::SchoolImmunity,
            Self::DamageImmunity,
            Self::DispelImmunity,
            Self::ProcTriggerSpell,
            Self::ProcTriggerDamage,
            Self::TrackCreatures,
            Self::TrackResources,
            Self::Unknown46,
            Self::ModParryPercent,
            Self::PeriodicTriggerSpellFromClient,
            Self::ModDodgePercent,
            Self::ModCriticalHealingAmount,
            Self::ModBlockPercent,
            Self::ModWeaponCritPercent,
            Self::PeriodicLeech,
            Self::ModHitChance,
            Self::ModSpellHitChance,
            Self::Transform,
            Self::ModSpellCritChance,
            Self::ModIncreaseSwimSpeed,
            Self::ModDamageDoneCreature,
            Self::ModPacifySilence,
            Self::ModScale,
            Self::PeriodicHealthFunnel,
            Self::Unknown63,
            Self::PeriodicManaLeech,
            Self::ModCastingSpeedNotStack,
            Self::FeignDeath,
            Self::ModDisarm,
            Self::ModStalked,
            Self::SchoolAbsorb,
            Self::ExtraAttacks,
            Self::ModSpellCritChanceSchool,
            Self::ModPowerCostSchoolPct,
            Self::ModPowerCostSchool,
            Self::ReflectSpellsSchool,
            Self::ModLanguage,
            Self::FarSight,
            Self::MechanicImmunity,
            Self::Mounted,
            Self::ModDamagePercentDone,
            Self::ModPercentStat,
            Self::SplitDamagePct,
            Self::WaterBreathing,
            Self::ModBaseResistance,
            Self::ModRegen,
            Self::ModPowerRegen,
            Self::ChannelDeathItem,
            Self::ModDamagePercentTaken,
            Self::ModHealthRegenPercent,
            Self::PeriodicDamagePercent,
            Self::Unknown90,
            Self::ModDetectRange,
            Self::PreventsFleeing,
            Self::ModUnattackable,
            Self::InterruptRegen,
            Self::Ghost,
            Self::SpellMagnet,
            Self::ManaShield,
            Self::ModSkillTalent,
            Self::ModAttackPower,
            Self::AurasVisible,
            Self::ModResistancePct,
            Self::ModMeleeAttackPowerVersus,
            Self::ModTotalThreat,
            Self::WaterWalk,
            Self::FeatherFall,
            Self::Hover,
            Self::AddFlatModifier,
            Self::AddPctModifier,
            Self::AddTargetTrigger,
            Self::ModPowerRegenPercent,
            Self::AddCasterHitTrigger,
            Self::OverrideClassScripts,
            Self::ModRangedDamageTaken,
            Self::ModRangedDamageTakenPct,
            Self::ModHealing,
            Self::ModRegenDuringCombat,
            Self::ModMechanicResistance,
            Self::ModHealingPct,
            Self::Unknown119,
            Self::Untrackable,
            Self::Empathy,
            Self::ModOffhandDamagePct,
            Self::ModTargetResistance,
            Self::ModRangedAttackPower,
            Self::ModMeleeDamageTaken,
            Self::ModMeleeDamageTakenPct,
            Self::RangedAttackPowerAttackerBonus,
            Self::ModPossessPet,
            Self::ModSpeedAlways,
            Self::ModMountedSpeedAlways,
            Self::ModRangedAttackPowerVersus,
            Self::ModIncreaseEnergyPercent,
            Self::ModIncreaseHealthPercent,
            Self::ModManaRegenInterrupt,
            Self::ModHealingDone,
            Self::ModHealingDonePercent,
            Self::ModTotalStatPercentage,
            Self::ModMeleeHaste,
            Self::ForceReaction,
            Self::ModRangedHaste,
            Self::ModRangedAmmoHaste,
            Self::ModBaseResistancePct,
            Self::ModResistanceExclusive,
            Self::SafeFall,
            Self::ModPetTalentPoints,
            Self::AllowTamePetType,
            Self::MechanicImmunityMask,
            Self::RetainComboPoints,
            Self::ReducePushback,
            Self::ModShieldBlockvaluePct,
            Self::TrackStealthed,
            Self::ModDetectedRange,
            Self::SplitDamageFlat,
            Self::ModStealthLevel,
            Self::ModWaterBreathing,
            Self::ModReputationGain,
            Self::PetDamageMulti,
            Self::ModShieldBlockvalue,
            Self::NoPvpCredit,
            Self::ModAoeAvoidance,
            Self::ModHealthRegenInCombat,
            Self::PowerBurn,
            Self::ModCritDamageBonus,
            Self::Unknown164,
            Self::MeleeAttackPowerAttackerBonus,
            Self::ModAttackPowerPct,
            Self::ModRangedAttackPowerPct,
            Self::ModDamageDoneVersus,
            Self::ModCritPercentVersus,
            Self::DetectAmore,
            Self::ModSpeedNotStack,
            Self::ModMountedSpeedNotStack,
            Self::Unknown173,
            Self::ModSpellDamageOfStatPercent,
            Self::ModSpellHealingOfStatPercent,
            Self::SpiritOfRedemption,
            Self::AoeCharm,
            Self::ModDebuffResistance,
            Self::ModAttackerSpellCritChance,
            Self::ModFlatSpellDamageVersus,
            Self::Unknown181,
            Self::ModResistanceOfStatPercent,
            Self::ModCriticalThreat,
            Self::ModAttackerMeleeHitChance,
            Self::ModAttackerRangedHitChance,
            Self::ModAttackerSpellHitChance,
            Self::ModAttackerMeleeCritChance,
            Self::ModAttackerRangedCritChance,
            Self::ModRating,
            Self::ModFactionReputationGain,
            Self::UseNormalMovementSpeed,
            Self::ModMeleeRangedHaste,
            Self::MeleeSlow,
            Self::ModTargetAbsorbSchool,
            Self::ModTargetAbilityAbsorbSchool,
            Self::ModCooldown,
            Self::ModAttackerSpellAndWeaponCritChance,
            Self::Unknown198,
            Self::ModIncreasesSpellPctToHit,
            Self::ModXpPct,
            Self::Fly,
            Self::IgnoreCombatResult,
            Self::ModAttackerMeleeCritDamage,
            Self::ModAttackerRangedCritDamage,
            Self::ModSchoolCritDmgTaken,
            Self::ModIncreaseVehicleFlightSpeed,
            Self::ModIncreaseMountedFlightSpeed,
            Self::ModIncreaseFlightSpeed,
            Self::ModMountedFlightSpeedAlways,
            Self::ModVehicleSpeedAlways,
            Self::ModFlightSpeedNotStack,
            Self::ModRangedAttackPowerOfStatPercent,
            Self::ModRageFromDamageDealt,
            Self::Unknown214,
            Self::ArenaPreparation,
            Self::HasteSpells,
            Self::ModMeleeHaste2,
            Self::HasteRanged,
            Self::ModManaRegenFromStat,
            Self::ModRatingFromStat,
            Self::ModDetaunt,
            Self::Unknown222,
            Self::RaidProcFromCharge,
            Self::Unknown224,
            Self::RaidProcFromChargeWithValue,
            Self::PeriodicDummy,
            Self::PeriodicTriggerSpellWithValue,
            Self::DetectStealth,
            Self::ModAoeDamageAvoidance,
            Self::Unknown230,
            Self::ProcTriggerSpellWithValue,
            Self::MechanicDurationMod,
            Self::ChangeModelForAllHumanoids,
            Self::MechanicDurationModNotStack,
            Self::ModDispelResist,
            Self::ControlVehicle,
            Self::ModSpellDamageOfAttackPower,
            Self::ModSpellHealingOfAttackPower,
            Self::ModScale2,
            Self::ModExpertise,
            Self::ForceMoveForward,
            Self::ModSpellDamageFromHealing,
            Self::ModFaction,
            Self::ComprehendLanguage,
            Self::ModAuraDurationByDispel,
            Self::ModAuraDurationByDispelNotStack,
            Self::CloneCaster,
            Self::ModCombatResultChance,
            Self::ConvertRune,
            Self::ModIncreaseHealth2,
            Self::ModEnemyDodge,
            Self::ModSpeedSlowAll,
            Self::ModBlockCritChance,
            Self::ModDisarmOffhand,
            Self::ModMechanicDamageTakenPercent,
            Self::NoReagentUse,
            Self::ModTargetResistBySpellClass,
            Self::Unknown258,
            Self::ModHotPct,
            Self::ScreenEffect,
            Self::Phase,
            Self::AbilityIgnoreAurastate,
            Self::AllowOnlyAbility,
            Self::Unknown264,
            Self::Unknown265,
            Self::Unknown266,
            Self::ModImmuneAuraApplySchool,
            Self::ModAttackPowerOfStatPercent,
            Self::ModIgnoreTargetResist,
            Self::ModAbilityIgnoreTargetResist,
            Self::ModDamageFromCaster,
            Self::IgnoreMeleeReset,
            Self::XRay,
            Self::AbilityConsumeNoAmmo,
            Self::ModIgnoreShapeshift,
            Self::ModDamageDoneForMechanic,
            Self::ModMaxAffectedTargets,
            Self::ModDisarmRanged,
            Self::InitializeImages,
            Self::ModArmorPenetrationPct,
            Self::ModHonorGainPct,
            Self::ModBaseHealthPct,
            Self::ModHealingReceived,
            Self::Linked,
            Self::ModAttackPowerOfArmor,
            Self::AbilityPeriodicCrit,
            Self::DeflectSpells,
            Self::IgnoreHitDirection,
            Self::PreventDurabilityLoss,
            Self::ModCritPct,
            Self::ModXpQuestPct,
            Self::OpenStable,
            Self::OverrideSpells,
            Self::PreventRegeneratePower,
            Self::Unknown295,
            Self::SetVehicleId,
            Self::BlockSpellFamily,
            Self::Strangulate,
            Self::Unknown299,
            Self::ShareDamagePct,
            Self::SchoolHealAbsorb,
            Self::Unknown302,
            Self::ModDamageDoneVersusAurastate,
            Self::ModFakeInebriate,
            Self::ModMinimumSpeed,
            Self::Unknown306,
            Self::HealAbsorbTest,
            Self::ModCritChanceForCaster,
            Self::Unknown309,
            Self::ModCreatureAoeDamageAvoidance,
            Self::Unknown311,
            Self::Unknown312,
            Self::Unknown313,
            Self::PreventResurrection,
            Self::UnderwaterWalking,
            Self::PeriodicHaste,
        ]
    }

    pub const fn from_int(value: u32) -> Result<Self, crate::errors::EnumError> {
        match value {
            0 => Ok(Self::None),
            1 => Ok(Self::BindSight),
            2 => Ok(Self::ModPossess),
            3 => Ok(Self::PeriodicDamage),
            4 => Ok(Self::Dummy),
            5 => Ok(Self::ModConfuse),
            6 => Ok(Self::ModCharm),
            7 => Ok(Self::ModFear),
            8 => Ok(Self::PeriodicHeal),
            9 => Ok(Self::ModAttackspeed),
            10 => Ok(Self::ModThreat),
            11 => Ok(Self::ModTaunt),
            12 => Ok(Self::ModStun),
            13 => Ok(Self::ModDamageDone),
            14 => Ok(Self::ModDamageTaken),
            15 => Ok(Self::DamageShield),
            16 => Ok(Self::ModStealth),
            17 => Ok(Self::ModStealthDetect),
            18 => Ok(Self::ModInvisibility),
            19 => Ok(Self::ModInvisibilityDetect),
            20 => Ok(Self::ObsModHealth),
            21 => Ok(Self::ObsModPower),
            22 => Ok(Self::ModResistance),
            23 => Ok(Self::PeriodicTriggerSpell),
            24 => Ok(Self::PeriodicEnergize),
            25 => Ok(Self::ModPacify),
            26 => Ok(Self::ModRoot),
            27 => Ok(Self::ModSilence),
            28 => Ok(Self::ReflectSpells),
            29 => Ok(Self::ModStat),
            30 => Ok(Self::ModSkill),
            31 => Ok(Self::ModIncreaseSpeed),
            32 => Ok(Self::ModIncreaseMountedSpeed),
            33 => Ok(Self::ModDecreaseSpeed),
            34 => Ok(Self::ModIncreaseHealth),
            35 => Ok(Self::ModIncreaseEnergy),
            36 => Ok(Self::ModShapeshift),
            37 => Ok(Self::EffectImmunity),
            38 => Ok(Self::StateImmunity),
            39 => Ok(Self::SchoolImmunity),
            40 => Ok(Self::DamageImmunity),
            41 => Ok(Self::DispelImmunity),
            42 => Ok(Self::ProcTriggerSpell),
            43 => Ok(Self::ProcTriggerDamage),
            44 => Ok(Self::TrackCreatures),
            45 => Ok(Self::TrackResources),
            46 => Ok(Self::Unknown46),
            47 => Ok(Self::ModParryPercent),
            48 => Ok(Self::PeriodicTriggerSpellFromClient),
            49 => Ok(Self::ModDodgePercent),
            50 => Ok(Self::ModCriticalHealingAmount),
            51 => Ok(Self::ModBlockPercent),
            52 => Ok(Self::ModWeaponCritPercent),
            53 => Ok(Self::PeriodicLeech),
            54 => Ok(Self::ModHitChance),
            55 => Ok(Self::ModSpellHitChance),
            56 => Ok(Self::Transform),
            57 => Ok(Self::ModSpellCritChance),
            58 => Ok(Self::ModIncreaseSwimSpeed),
            59 => Ok(Self::ModDamageDoneCreature),
            60 => Ok(Self::ModPacifySilence),
            61 => Ok(Self::ModScale),
            62 => Ok(Self::PeriodicHealthFunnel),
            63 => Ok(Self::Unknown63),
            64 => Ok(Self::PeriodicManaLeech),
            65 => Ok(Self::ModCastingSpeedNotStack),
            66 => Ok(Self::FeignDeath),
            67 => Ok(Self::ModDisarm),
            68 => Ok(Self::ModStalked),
            69 => Ok(Self::SchoolAbsorb),
            70 => Ok(Self::ExtraAttacks),
            71 => Ok(Self::ModSpellCritChanceSchool),
            72 => Ok(Self::ModPowerCostSchoolPct),
            73 => Ok(Self::ModPowerCostSchool),
            74 => Ok(Self::ReflectSpellsSchool),
            75 => Ok(Self::ModLanguage),
            76 => Ok(Self::FarSight),
            77 => Ok(Self::MechanicImmunity),
            78 => Ok(Self::Mounted),
            79 => Ok(Self::ModDamagePercentDone),
            80 => Ok(Self::ModPercentStat),
            81 => Ok(Self::SplitDamagePct),
            82 => Ok(Self::WaterBreathing),
            83 => Ok(Self::ModBaseResistance),
            84 => Ok(Self::ModRegen),
            85 => Ok(Self::ModPowerRegen),
            86 => Ok(Self::ChannelDeathItem),
            87 => Ok(Self::ModDamagePercentTaken),
            88 => Ok(Self::ModHealthRegenPercent),
            89 => Ok(Self::PeriodicDamagePercent),
            90 => Ok(Self::Unknown90),
            91 => Ok(Self::ModDetectRange),
            92 => Ok(Self::PreventsFleeing),
            93 => Ok(Self::ModUnattackable),
            94 => Ok(Self::InterruptRegen),
            95 => Ok(Self::Ghost),
            96 => Ok(Self::SpellMagnet),
            97 => Ok(Self::ManaShield),
            98 => Ok(Self::ModSkillTalent),
            99 => Ok(Self::ModAttackPower),
            100 => Ok(Self::AurasVisible),
            101 => Ok(Self::ModResistancePct),
            102 => Ok(Self::ModMeleeAttackPowerVersus),
            103 => Ok(Self::ModTotalThreat),
            104 => Ok(Self::WaterWalk),
            105 => Ok(Self::FeatherFall),
            106 => Ok(Self::Hover),
            107 => Ok(Self::AddFlatModifier),
            108 => Ok(Self::AddPctModifier),
            109 => Ok(Self::AddTargetTrigger),
            110 => Ok(Self::ModPowerRegenPercent),
            111 => Ok(Self::AddCasterHitTrigger),
            112 => Ok(Self::OverrideClassScripts),
            113 => Ok(Self::ModRangedDamageTaken),
            114 => Ok(Self::ModRangedDamageTakenPct),
            115 => Ok(Self::ModHealing),
            116 => Ok(Self::ModRegenDuringCombat),
            117 => Ok(Self::ModMechanicResistance),
            118 => Ok(Self::ModHealingPct),
            119 => Ok(Self::Unknown119),
            120 => Ok(Self::Untrackable),
            121 => Ok(Self::Empathy),
            122 => Ok(Self::ModOffhandDamagePct),
            123 => Ok(Self::ModTargetResistance),
            124 => Ok(Self::ModRangedAttackPower),
            125 => Ok(Self::ModMeleeDamageTaken),
            126 => Ok(Self::ModMeleeDamageTakenPct),
            127 => Ok(Self::RangedAttackPowerAttackerBonus),
            128 => Ok(Self::ModPossessPet),
            129 => Ok(Self::ModSpeedAlways),
            130 => Ok(Self::ModMountedSpeedAlways),
            131 => Ok(Self::ModRangedAttackPowerVersus),
            132 => Ok(Self::ModIncreaseEnergyPercent),
            133 => Ok(Self::ModIncreaseHealthPercent),
            134 => Ok(Self::ModManaRegenInterrupt),
            135 => Ok(Self::ModHealingDone),
            136 => Ok(Self::ModHealingDonePercent),
            137 => Ok(Self::ModTotalStatPercentage),
            138 => Ok(Self::ModMeleeHaste),
            139 => Ok(Self::ForceReaction),
            140 => Ok(Self::ModRangedHaste),
            141 => Ok(Self::ModRangedAmmoHaste),
            142 => Ok(Self::ModBaseResistancePct),
            143 => Ok(Self::ModResistanceExclusive),
            144 => Ok(Self::SafeFall),
            145 => Ok(Self::ModPetTalentPoints),
            146 => Ok(Self::AllowTamePetType),
            147 => Ok(Self::MechanicImmunityMask),
            148 => Ok(Self::RetainComboPoints),
            149 => Ok(Self::ReducePushback),
            150 => Ok(Self::ModShieldBlockvaluePct),
            151 => Ok(Self::TrackStealthed),
            152 => Ok(Self::ModDetectedRange),
            153 => Ok(Self::SplitDamageFlat),
            154 => Ok(Self::ModStealthLevel),
            155 => Ok(Self::ModWaterBreathing),
            156 => Ok(Self::ModReputationGain),
            157 => Ok(Self::PetDamageMulti),
            158 => Ok(Self::ModShieldBlockvalue),
            159 => Ok(Self::NoPvpCredit),
            160 => Ok(Self::ModAoeAvoidance),
            161 => Ok(Self::ModHealthRegenInCombat),
            162 => Ok(Self::PowerBurn),
            163 => Ok(Self::ModCritDamageBonus),
            164 => Ok(Self::Unknown164),
            165 => Ok(Self::MeleeAttackPowerAttackerBonus),
            166 => Ok(Self::ModAttackPowerPct),
            167 => Ok(Self::ModRangedAttackPowerPct),
            168 => Ok(Self::ModDamageDoneVersus),
            169 => Ok(Self::ModCritPercentVersus),
            170 => Ok(Self::DetectAmore),
            171 => Ok(Self::ModSpeedNotStack),
            172 => Ok(Self::ModMountedSpeedNotStack),
            173 => Ok(Self::Unknown173),
            174 => Ok(Self::ModSpellDamageOfStatPercent),
            175 => Ok(Self::ModSpellHealingOfStatPercent),
            176 => Ok(Self::SpiritOfRedemption),
            177 => Ok(Self::AoeCharm),
            178 => Ok(Self::ModDebuffResistance),
            179 => Ok(Self::ModAttackerSpellCritChance),
            180 => Ok(Self::ModFlatSpellDamageVersus),
            181 => Ok(Self::Unknown181),
            182 => Ok(Self::ModResistanceOfStatPercent),
            183 => Ok(Self::ModCriticalThreat),
            184 => Ok(Self::ModAttackerMeleeHitChance),
            185 => Ok(Self::ModAttackerRangedHitChance),
            186 => Ok(Self::ModAttackerSpellHitChance),
            187 => Ok(Self::ModAttackerMeleeCritChance),
            188 => Ok(Self::ModAttackerRangedCritChance),
            189 => Ok(Self::ModRating),
            190 => Ok(Self::ModFactionReputationGain),
            191 => Ok(Self::UseNormalMovementSpeed),
            192 => Ok(Self::ModMeleeRangedHaste),
            193 => Ok(Self::MeleeSlow),
            194 => Ok(Self::ModTargetAbsorbSchool),
            195 => Ok(Self::ModTargetAbilityAbsorbSchool),
            196 => Ok(Self::ModCooldown),
            197 => Ok(Self::ModAttackerSpellAndWeaponCritChance),
            198 => Ok(Self::Unknown198),
            199 => Ok(Self::ModIncreasesSpellPctToHit),
            200 => Ok(Self::ModXpPct),
            201 => Ok(Self::Fly),
            202 => Ok(Self::IgnoreCombatResult),
            203 => Ok(Self::ModAttackerMeleeCritDamage),
            204 => Ok(Self::ModAttackerRangedCritDamage),
            205 => Ok(Self::ModSchoolCritDmgTaken),
            206 => Ok(Self::ModIncreaseVehicleFlightSpeed),
            207 => Ok(Self::ModIncreaseMountedFlightSpeed),
            208 => Ok(Self::ModIncreaseFlightSpeed),
            209 => Ok(Self::ModMountedFlightSpeedAlways),
            210 => Ok(Self::ModVehicleSpeedAlways),
            211 => Ok(Self::ModFlightSpeedNotStack),
            212 => Ok(Self::ModRangedAttackPowerOfStatPercent),
            213 => Ok(Self::ModRageFromDamageDealt),
            214 => Ok(Self::Unknown214),
            215 => Ok(Self::ArenaPreparation),
            216 => Ok(Self::HasteSpells),
            217 => Ok(Self::ModMeleeHaste2),
            218 => Ok(Self::HasteRanged),
            219 => Ok(Self::ModManaRegenFromStat),
            220 => Ok(Self::ModRatingFromStat),
            221 => Ok(Self::ModDetaunt),
            222 => Ok(Self::Unknown222),
            223 => Ok(Self::RaidProcFromCharge),
            224 => Ok(Self::Unknown224),
            225 => Ok(Self::RaidProcFromChargeWithValue),
            226 => Ok(Self::PeriodicDummy),
            227 => Ok(Self::PeriodicTriggerSpellWithValue),
            228 => Ok(Self::DetectStealth),
            229 => Ok(Self::ModAoeDamageAvoidance),
            230 => Ok(Self::Unknown230),
            231 => Ok(Self::ProcTriggerSpellWithValue),
            232 => Ok(Self::MechanicDurationMod),
            233 => Ok(Self::ChangeModelForAllHumanoids),
            234 => Ok(Self::MechanicDurationModNotStack),
            235 => Ok(Self::ModDispelResist),
            236 => Ok(Self::ControlVehicle),
            237 => Ok(Self::ModSpellDamageOfAttackPower),
            238 => Ok(Self::ModSpellHealingOfAttackPower),
            239 => Ok(Self::ModScale2),
            240 => Ok(Self::ModExpertise),
            241 => Ok(Self::ForceMoveForward),
            242 => Ok(Self::ModSpellDamageFromHealing),
            243 => Ok(Self::ModFaction),
            244 => Ok(Self::ComprehendLanguage),
            245 => Ok(Self::ModAuraDurationByDispel),
            246 => Ok(Self::ModAuraDurationByDispelNotStack),
            247 => Ok(Self::CloneCaster),
            248 => Ok(Self::ModCombatResultChance),
            249 => Ok(Self::ConvertRune),
            250 => Ok(Self::ModIncreaseHealth2),
            251 => Ok(Self::ModEnemyDodge),
            252 => Ok(Self::ModSpeedSlowAll),
            253 => Ok(Self::ModBlockCritChance),
            254 => Ok(Self::ModDisarmOffhand),
            255 => Ok(Self::ModMechanicDamageTakenPercent),
            256 => Ok(Self::NoReagentUse),
            257 => Ok(Self::ModTargetResistBySpellClass),
            258 => Ok(Self::Unknown258),
            259 => Ok(Self::ModHotPct),
            260 => Ok(Self::ScreenEffect),
            261 => Ok(Self::Phase),
            262 => Ok(Self::AbilityIgnoreAurastate),
            263 => Ok(Self::AllowOnlyAbility),
            264 => Ok(Self::Unknown264),
            265 => Ok(Self::Unknown265),
            266 => Ok(Self::Unknown266),
            267 => Ok(Self::ModImmuneAuraApplySchool),
            268 => Ok(Self::ModAttackPowerOfStatPercent),
            269 => Ok(Self::ModIgnoreTargetResist),
            270 => Ok(Self::ModAbilityIgnoreTargetResist),
            271 => Ok(Self::ModDamageFromCaster),
            272 => Ok(Self::IgnoreMeleeReset),
            273 => Ok(Self::XRay),
            274 => Ok(Self::AbilityConsumeNoAmmo),
            275 => Ok(Self::ModIgnoreShapeshift),
            276 => Ok(Self::ModDamageDoneForMechanic),
            277 => Ok(Self::ModMaxAffectedTargets),
            278 => Ok(Self::ModDisarmRanged),
            279 => Ok(Self::InitializeImages),
            280 => Ok(Self::ModArmorPenetrationPct),
            281 => Ok(Self::ModHonorGainPct),
            282 => Ok(Self::ModBaseHealthPct),
            283 => Ok(Self::ModHealingReceived),
            284 => Ok(Self::Linked),
            285 => Ok(Self::ModAttackPowerOfArmor),
            286 => Ok(Self::AbilityPeriodicCrit),
            287 => Ok(Self::DeflectSpells),
            288 => Ok(Self::IgnoreHitDirection),
            289 => Ok(Self::PreventDurabilityLoss),
            290 => Ok(Self::ModCritPct),
            291 => Ok(Self::ModXpQuestPct),
            292 => Ok(Self::OpenStable),
            293 => Ok(Self::OverrideSpells),
            294 => Ok(Self::PreventRegeneratePower),
            295 => Ok(Self::Unknown295),
            296 => Ok(Self::SetVehicleId),
            297 => Ok(Self::BlockSpellFamily),
            298 => Ok(Self::Strangulate),
            299 => Ok(Self::Unknown299),
            300 => Ok(Self::ShareDamagePct),
            301 => Ok(Self::SchoolHealAbsorb),
            302 => Ok(Self::Unknown302),
            303 => Ok(Self::ModDamageDoneVersusAurastate),
            304 => Ok(Self::ModFakeInebriate),
            305 => Ok(Self::ModMinimumSpeed),
            306 => Ok(Self::Unknown306),
            307 => Ok(Self::HealAbsorbTest),
            308 => Ok(Self::ModCritChanceForCaster),
            309 => Ok(Self::Unknown309),
            310 => Ok(Self::ModCreatureAoeDamageAvoidance),
            311 => Ok(Self::Unknown311),
            312 => Ok(Self::Unknown312),
            313 => Ok(Self::Unknown313),
            314 => Ok(Self::PreventResurrection),
            315 => Ok(Self::UnderwaterWalking),
            316 => Ok(Self::PeriodicHaste),
            v => Err(crate::errors::EnumError::new(NAME, v as i128),)
        }
    }
}

#[cfg(feature = "print-testcase")]
impl AuraMod {
    pub const fn as_test_case_value(&self) -> &'static str {
        match self {
            Self::None => "NONE",
            Self::BindSight => "BIND_SIGHT",
            Self::ModPossess => "MOD_POSSESS",
            Self::PeriodicDamage => "PERIODIC_DAMAGE",
            Self::Dummy => "DUMMY",
            Self::ModConfuse => "MOD_CONFUSE",
            Self::ModCharm => "MOD_CHARM",
            Self::ModFear => "MOD_FEAR",
            Self::PeriodicHeal => "PERIODIC_HEAL",
            Self::ModAttackspeed => "MOD_ATTACKSPEED",
            Self::ModThreat => "MOD_THREAT",
            Self::ModTaunt => "MOD_TAUNT",
            Self::ModStun => "MOD_STUN",
            Self::ModDamageDone => "MOD_DAMAGE_DONE",
            Self::ModDamageTaken => "MOD_DAMAGE_TAKEN",
            Self::DamageShield => "DAMAGE_SHIELD",
            Self::ModStealth => "MOD_STEALTH",
            Self::ModStealthDetect => "MOD_STEALTH_DETECT",
            Self::ModInvisibility => "MOD_INVISIBILITY",
            Self::ModInvisibilityDetect => "MOD_INVISIBILITY_DETECT",
            Self::ObsModHealth => "OBS_MOD_HEALTH",
            Self::ObsModPower => "OBS_MOD_POWER",
            Self::ModResistance => "MOD_RESISTANCE",
            Self::PeriodicTriggerSpell => "PERIODIC_TRIGGER_SPELL",
            Self::PeriodicEnergize => "PERIODIC_ENERGIZE",
            Self::ModPacify => "MOD_PACIFY",
            Self::ModRoot => "MOD_ROOT",
            Self::ModSilence => "MOD_SILENCE",
            Self::ReflectSpells => "REFLECT_SPELLS",
            Self::ModStat => "MOD_STAT",
            Self::ModSkill => "MOD_SKILL",
            Self::ModIncreaseSpeed => "MOD_INCREASE_SPEED",
            Self::ModIncreaseMountedSpeed => "MOD_INCREASE_MOUNTED_SPEED",
            Self::ModDecreaseSpeed => "MOD_DECREASE_SPEED",
            Self::ModIncreaseHealth => "MOD_INCREASE_HEALTH",
            Self::ModIncreaseEnergy => "MOD_INCREASE_ENERGY",
            Self::ModShapeshift => "MOD_SHAPESHIFT",
            Self::EffectImmunity => "EFFECT_IMMUNITY",
            Self::StateImmunity => "STATE_IMMUNITY",
            Self::SchoolImmunity => "SCHOOL_IMMUNITY",
            Self::DamageImmunity => "DAMAGE_IMMUNITY",
            Self::DispelImmunity => "DISPEL_IMMUNITY",
            Self::ProcTriggerSpell => "PROC_TRIGGER_SPELL",
            Self::ProcTriggerDamage => "PROC_TRIGGER_DAMAGE",
            Self::TrackCreatures => "TRACK_CREATURES",
            Self::TrackResources => "TRACK_RESOURCES",
            Self::Unknown46 => "UNKNOWN46",
            Self::ModParryPercent => "MOD_PARRY_PERCENT",
            Self::PeriodicTriggerSpellFromClient => "PERIODIC_TRIGGER_SPELL_FROM_CLIENT",
            Self::ModDodgePercent => "MOD_DODGE_PERCENT",
            Self::ModCriticalHealingAmount => "MOD_CRITICAL_HEALING_AMOUNT",
            Self::ModBlockPercent => "MOD_BLOCK_PERCENT",
            Self::ModWeaponCritPercent => "MOD_WEAPON_CRIT_PERCENT",
            Self::PeriodicLeech => "PERIODIC_LEECH",
            Self::ModHitChance => "MOD_HIT_CHANCE",
            Self::ModSpellHitChance => "MOD_SPELL_HIT_CHANCE",
            Self::Transform => "TRANSFORM",
            Self::ModSpellCritChance => "MOD_SPELL_CRIT_CHANCE",
            Self::ModIncreaseSwimSpeed => "MOD_INCREASE_SWIM_SPEED",
            Self::ModDamageDoneCreature => "MOD_DAMAGE_DONE_CREATURE",
            Self::ModPacifySilence => "MOD_PACIFY_SILENCE",
            Self::ModScale => "MOD_SCALE",
            Self::PeriodicHealthFunnel => "PERIODIC_HEALTH_FUNNEL",
            Self::Unknown63 => "UNKNOWN63",
            Self::PeriodicManaLeech => "PERIODIC_MANA_LEECH",
            Self::ModCastingSpeedNotStack => "MOD_CASTING_SPEED_NOT_STACK",
            Self::FeignDeath => "FEIGN_DEATH",
            Self::ModDisarm => "MOD_DISARM",
            Self::ModStalked => "MOD_STALKED",
            Self::SchoolAbsorb => "SCHOOL_ABSORB",
            Self::ExtraAttacks => "EXTRA_ATTACKS",
            Self::ModSpellCritChanceSchool => "MOD_SPELL_CRIT_CHANCE_SCHOOL",
            Self::ModPowerCostSchoolPct => "MOD_POWER_COST_SCHOOL_PCT",
            Self::ModPowerCostSchool => "MOD_POWER_COST_SCHOOL",
            Self::ReflectSpellsSchool => "REFLECT_SPELLS_SCHOOL",
            Self::ModLanguage => "MOD_LANGUAGE",
            Self::FarSight => "FAR_SIGHT",
            Self::MechanicImmunity => "MECHANIC_IMMUNITY",
            Self::Mounted => "MOUNTED",
            Self::ModDamagePercentDone => "MOD_DAMAGE_PERCENT_DONE",
            Self::ModPercentStat => "MOD_PERCENT_STAT",
            Self::SplitDamagePct => "SPLIT_DAMAGE_PCT",
            Self::WaterBreathing => "WATER_BREATHING",
            Self::ModBaseResistance => "MOD_BASE_RESISTANCE",
            Self::ModRegen => "MOD_REGEN",
            Self::ModPowerRegen => "MOD_POWER_REGEN",
            Self::ChannelDeathItem => "CHANNEL_DEATH_ITEM",
            Self::ModDamagePercentTaken => "MOD_DAMAGE_PERCENT_TAKEN",
            Self::ModHealthRegenPercent => "MOD_HEALTH_REGEN_PERCENT",
            Self::PeriodicDamagePercent => "PERIODIC_DAMAGE_PERCENT",
            Self::Unknown90 => "UNKNOWN90",
            Self::ModDetectRange => "MOD_DETECT_RANGE",
            Self::PreventsFleeing => "PREVENTS_FLEEING",
            Self::ModUnattackable => "MOD_UNATTACKABLE",
            Self::InterruptRegen => "INTERRUPT_REGEN",
            Self::Ghost => "GHOST",
            Self::SpellMagnet => "SPELL_MAGNET",
            Self::ManaShield => "MANA_SHIELD",
            Self::ModSkillTalent => "MOD_SKILL_TALENT",
            Self::ModAttackPower => "MOD_ATTACK_POWER",
            Self::AurasVisible => "AURAS_VISIBLE",
            Self::ModResistancePct => "MOD_RESISTANCE_PCT",
            Self::ModMeleeAttackPowerVersus => "MOD_MELEE_ATTACK_POWER_VERSUS",
            Self::ModTotalThreat => "MOD_TOTAL_THREAT",
            Self::WaterWalk => "WATER_WALK",
            Self::FeatherFall => "FEATHER_FALL",
            Self::Hover => "HOVER",
            Self::AddFlatModifier => "ADD_FLAT_MODIFIER",
            Self::AddPctModifier => "ADD_PCT_MODIFIER",
            Self::AddTargetTrigger => "ADD_TARGET_TRIGGER",
            Self::ModPowerRegenPercent => "MOD_POWER_REGEN_PERCENT",
            Self::AddCasterHitTrigger => "ADD_CASTER_HIT_TRIGGER",
            Self::OverrideClassScripts => "OVERRIDE_CLASS_SCRIPTS",
            Self::ModRangedDamageTaken => "MOD_RANGED_DAMAGE_TAKEN",
            Self::ModRangedDamageTakenPct => "MOD_RANGED_DAMAGE_TAKEN_PCT",
            Self::ModHealing => "MOD_HEALING",
            Self::ModRegenDuringCombat => "MOD_REGEN_DURING_COMBAT",
            Self::ModMechanicResistance => "MOD_MECHANIC_RESISTANCE",
            Self::ModHealingPct => "MOD_HEALING_PCT",
            Self::Unknown119 => "UNKNOWN119",
            Self::Untrackable => "UNTRACKABLE",
            Self::Empathy => "EMPATHY",
            Self::ModOffhandDamagePct => "MOD_OFFHAND_DAMAGE_PCT",
            Self::ModTargetResistance => "MOD_TARGET_RESISTANCE",
            Self::ModRangedAttackPower => "MOD_RANGED_ATTACK_POWER",
            Self::ModMeleeDamageTaken => "MOD_MELEE_DAMAGE_TAKEN",
            Self::ModMeleeDamageTakenPct => "MOD_MELEE_DAMAGE_TAKEN_PCT",
            Self::RangedAttackPowerAttackerBonus => "RANGED_ATTACK_POWER_ATTACKER_BONUS",
            Self::ModPossessPet => "MOD_POSSESS_PET",
            Self::ModSpeedAlways => "MOD_SPEED_ALWAYS",
            Self::ModMountedSpeedAlways => "MOD_MOUNTED_SPEED_ALWAYS",
            Self::ModRangedAttackPowerVersus => "MOD_RANGED_ATTACK_POWER_VERSUS",
            Self::ModIncreaseEnergyPercent => "MOD_INCREASE_ENERGY_PERCENT",
            Self::ModIncreaseHealthPercent => "MOD_INCREASE_HEALTH_PERCENT",
            Self::ModManaRegenInterrupt => "MOD_MANA_REGEN_INTERRUPT",
            Self::ModHealingDone => "MOD_HEALING_DONE",
            Self::ModHealingDonePercent => "MOD_HEALING_DONE_PERCENT",
            Self::ModTotalStatPercentage => "MOD_TOTAL_STAT_PERCENTAGE",
            Self::ModMeleeHaste => "MOD_MELEE_HASTE",
            Self::ForceReaction => "FORCE_REACTION",
            Self::ModRangedHaste => "MOD_RANGED_HASTE",
            Self::ModRangedAmmoHaste => "MOD_RANGED_AMMO_HASTE",
            Self::ModBaseResistancePct => "MOD_BASE_RESISTANCE_PCT",
            Self::ModResistanceExclusive => "MOD_RESISTANCE_EXCLUSIVE",
            Self::SafeFall => "SAFE_FALL",
            Self::ModPetTalentPoints => "MOD_PET_TALENT_POINTS",
            Self::AllowTamePetType => "ALLOW_TAME_PET_TYPE",
            Self::MechanicImmunityMask => "MECHANIC_IMMUNITY_MASK",
            Self::RetainComboPoints => "RETAIN_COMBO_POINTS",
            Self::ReducePushback => "REDUCE_PUSHBACK",
            Self::ModShieldBlockvaluePct => "MOD_SHIELD_BLOCKVALUE_PCT",
            Self::TrackStealthed => "TRACK_STEALTHED",
            Self::ModDetectedRange => "MOD_DETECTED_RANGE",
            Self::SplitDamageFlat => "SPLIT_DAMAGE_FLAT",
            Self::ModStealthLevel => "MOD_STEALTH_LEVEL",
            Self::ModWaterBreathing => "MOD_WATER_BREATHING",
            Self::ModReputationGain => "MOD_REPUTATION_GAIN",
            Self::PetDamageMulti => "PET_DAMAGE_MULTI",
            Self::ModShieldBlockvalue => "MOD_SHIELD_BLOCKVALUE",
            Self::NoPvpCredit => "NO_PVP_CREDIT",
            Self::ModAoeAvoidance => "MOD_AOE_AVOIDANCE",
            Self::ModHealthRegenInCombat => "MOD_HEALTH_REGEN_IN_COMBAT",
            Self::PowerBurn => "POWER_BURN",
            Self::ModCritDamageBonus => "MOD_CRIT_DAMAGE_BONUS",
            Self::Unknown164 => "UNKNOWN164",
            Self::MeleeAttackPowerAttackerBonus => "MELEE_ATTACK_POWER_ATTACKER_BONUS",
            Self::ModAttackPowerPct => "MOD_ATTACK_POWER_PCT",
            Self::ModRangedAttackPowerPct => "MOD_RANGED_ATTACK_POWER_PCT",
            Self::ModDamageDoneVersus => "MOD_DAMAGE_DONE_VERSUS",
            Self::ModCritPercentVersus => "MOD_CRIT_PERCENT_VERSUS",
            Self::DetectAmore => "DETECT_AMORE",
            Self::ModSpeedNotStack => "MOD_SPEED_NOT_STACK",
            Self::ModMountedSpeedNotStack => "MOD_MOUNTED_SPEED_NOT_STACK",
            Self::Unknown173 => "UNKNOWN173",
            Self::ModSpellDamageOfStatPercent => "MOD_SPELL_DAMAGE_OF_STAT_PERCENT",
            Self::ModSpellHealingOfStatPercent => "MOD_SPELL_HEALING_OF_STAT_PERCENT",
            Self::SpiritOfRedemption => "SPIRIT_OF_REDEMPTION",
            Self::AoeCharm => "AOE_CHARM",
            Self::ModDebuffResistance => "MOD_DEBUFF_RESISTANCE",
            Self::ModAttackerSpellCritChance => "MOD_ATTACKER_SPELL_CRIT_CHANCE",
            Self::ModFlatSpellDamageVersus => "MOD_FLAT_SPELL_DAMAGE_VERSUS",
            Self::Unknown181 => "UNKNOWN181",
            Self::ModResistanceOfStatPercent => "MOD_RESISTANCE_OF_STAT_PERCENT",
            Self::ModCriticalThreat => "MOD_CRITICAL_THREAT",
            Self::ModAttackerMeleeHitChance => "MOD_ATTACKER_MELEE_HIT_CHANCE",
            Self::ModAttackerRangedHitChance => "MOD_ATTACKER_RANGED_HIT_CHANCE",
            Self::ModAttackerSpellHitChance => "MOD_ATTACKER_SPELL_HIT_CHANCE",
            Self::ModAttackerMeleeCritChance => "MOD_ATTACKER_MELEE_CRIT_CHANCE",
            Self::ModAttackerRangedCritChance => "MOD_ATTACKER_RANGED_CRIT_CHANCE",
            Self::ModRating => "MOD_RATING",
            Self::ModFactionReputationGain => "MOD_FACTION_REPUTATION_GAIN",
            Self::UseNormalMovementSpeed => "USE_NORMAL_MOVEMENT_SPEED",
            Self::ModMeleeRangedHaste => "MOD_MELEE_RANGED_HASTE",
            Self::MeleeSlow => "MELEE_SLOW",
            Self::ModTargetAbsorbSchool => "MOD_TARGET_ABSORB_SCHOOL",
            Self::ModTargetAbilityAbsorbSchool => "MOD_TARGET_ABILITY_ABSORB_SCHOOL",
            Self::ModCooldown => "MOD_COOLDOWN",
            Self::ModAttackerSpellAndWeaponCritChance => "MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE",
            Self::Unknown198 => "UNKNOWN198",
            Self::ModIncreasesSpellPctToHit => "MOD_INCREASES_SPELL_PCT_TO_HIT",
            Self::ModXpPct => "MOD_XP_PCT",
            Self::Fly => "FLY",
            Self::IgnoreCombatResult => "IGNORE_COMBAT_RESULT",
            Self::ModAttackerMeleeCritDamage => "MOD_ATTACKER_MELEE_CRIT_DAMAGE",
            Self::ModAttackerRangedCritDamage => "MOD_ATTACKER_RANGED_CRIT_DAMAGE",
            Self::ModSchoolCritDmgTaken => "MOD_SCHOOL_CRIT_DMG_TAKEN",
            Self::ModIncreaseVehicleFlightSpeed => "MOD_INCREASE_VEHICLE_FLIGHT_SPEED",
            Self::ModIncreaseMountedFlightSpeed => "MOD_INCREASE_MOUNTED_FLIGHT_SPEED",
            Self::ModIncreaseFlightSpeed => "MOD_INCREASE_FLIGHT_SPEED",
            Self::ModMountedFlightSpeedAlways => "MOD_MOUNTED_FLIGHT_SPEED_ALWAYS",
            Self::ModVehicleSpeedAlways => "MOD_VEHICLE_SPEED_ALWAYS",
            Self::ModFlightSpeedNotStack => "MOD_FLIGHT_SPEED_NOT_STACK",
            Self::ModRangedAttackPowerOfStatPercent => "MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT",
            Self::ModRageFromDamageDealt => "MOD_RAGE_FROM_DAMAGE_DEALT",
            Self::Unknown214 => "UNKNOWN214",
            Self::ArenaPreparation => "ARENA_PREPARATION",
            Self::HasteSpells => "HASTE_SPELLS",
            Self::ModMeleeHaste2 => "MOD_MELEE_HASTE_2",
            Self::HasteRanged => "HASTE_RANGED",
            Self::ModManaRegenFromStat => "MOD_MANA_REGEN_FROM_STAT",
            Self::ModRatingFromStat => "MOD_RATING_FROM_STAT",
            Self::ModDetaunt => "MOD_DETAUNT",
            Self::Unknown222 => "UNKNOWN222",
            Self::RaidProcFromCharge => "RAID_PROC_FROM_CHARGE",
            Self::Unknown224 => "UNKNOWN224",
            Self::RaidProcFromChargeWithValue => "RAID_PROC_FROM_CHARGE_WITH_VALUE",
            Self::PeriodicDummy => "PERIODIC_DUMMY",
            Self::PeriodicTriggerSpellWithValue => "PERIODIC_TRIGGER_SPELL_WITH_VALUE",
            Self::DetectStealth => "DETECT_STEALTH",
            Self::ModAoeDamageAvoidance => "MOD_AOE_DAMAGE_AVOIDANCE",
            Self::Unknown230 => "UNKNOWN230",
            Self::ProcTriggerSpellWithValue => "PROC_TRIGGER_SPELL_WITH_VALUE",
            Self::MechanicDurationMod => "MECHANIC_DURATION_MOD",
            Self::ChangeModelForAllHumanoids => "CHANGE_MODEL_FOR_ALL_HUMANOIDS",
            Self::MechanicDurationModNotStack => "MECHANIC_DURATION_MOD_NOT_STACK",
            Self::ModDispelResist => "MOD_DISPEL_RESIST",
            Self::ControlVehicle => "CONTROL_VEHICLE",
            Self::ModSpellDamageOfAttackPower => "MOD_SPELL_DAMAGE_OF_ATTACK_POWER",
            Self::ModSpellHealingOfAttackPower => "MOD_SPELL_HEALING_OF_ATTACK_POWER",
            Self::ModScale2 => "MOD_SCALE_2",
            Self::ModExpertise => "MOD_EXPERTISE",
            Self::ForceMoveForward => "FORCE_MOVE_FORWARD",
            Self::ModSpellDamageFromHealing => "MOD_SPELL_DAMAGE_FROM_HEALING",
            Self::ModFaction => "MOD_FACTION",
            Self::ComprehendLanguage => "COMPREHEND_LANGUAGE",
            Self::ModAuraDurationByDispel => "MOD_AURA_DURATION_BY_DISPEL",
            Self::ModAuraDurationByDispelNotStack => "MOD_AURA_DURATION_BY_DISPEL_NOT_STACK",
            Self::CloneCaster => "CLONE_CASTER",
            Self::ModCombatResultChance => "MOD_COMBAT_RESULT_CHANCE",
            Self::ConvertRune => "CONVERT_RUNE",
            Self::ModIncreaseHealth2 => "MOD_INCREASE_HEALTH_2",
            Self::ModEnemyDodge => "MOD_ENEMY_DODGE",
            Self::ModSpeedSlowAll => "MOD_SPEED_SLOW_ALL",
            Self::ModBlockCritChance => "MOD_BLOCK_CRIT_CHANCE",
            Self::ModDisarmOffhand => "MOD_DISARM_OFFHAND",
            Self::ModMechanicDamageTakenPercent => "MOD_MECHANIC_DAMAGE_TAKEN_PERCENT",
            Self::NoReagentUse => "NO_REAGENT_USE",
            Self::ModTargetResistBySpellClass => "MOD_TARGET_RESIST_BY_SPELL_CLASS",
            Self::Unknown258 => "UNKNOWN258",
            Self::ModHotPct => "MOD_HOT_PCT",
            Self::ScreenEffect => "SCREEN_EFFECT",
            Self::Phase => "PHASE",
            Self::AbilityIgnoreAurastate => "ABILITY_IGNORE_AURASTATE",
            Self::AllowOnlyAbility => "ALLOW_ONLY_ABILITY",
            Self::Unknown264 => "UNKNOWN264",
            Self::Unknown265 => "UNKNOWN265",
            Self::Unknown266 => "UNKNOWN266",
            Self::ModImmuneAuraApplySchool => "MOD_IMMUNE_AURA_APPLY_SCHOOL",
            Self::ModAttackPowerOfStatPercent => "MOD_ATTACK_POWER_OF_STAT_PERCENT",
            Self::ModIgnoreTargetResist => "MOD_IGNORE_TARGET_RESIST",
            Self::ModAbilityIgnoreTargetResist => "MOD_ABILITY_IGNORE_TARGET_RESIST",
            Self::ModDamageFromCaster => "MOD_DAMAGE_FROM_CASTER",
            Self::IgnoreMeleeReset => "IGNORE_MELEE_RESET",
            Self::XRay => "X_RAY",
            Self::AbilityConsumeNoAmmo => "ABILITY_CONSUME_NO_AMMO",
            Self::ModIgnoreShapeshift => "MOD_IGNORE_SHAPESHIFT",
            Self::ModDamageDoneForMechanic => "MOD_DAMAGE_DONE_FOR_MECHANIC",
            Self::ModMaxAffectedTargets => "MOD_MAX_AFFECTED_TARGETS",
            Self::ModDisarmRanged => "MOD_DISARM_RANGED",
            Self::InitializeImages => "INITIALIZE_IMAGES",
            Self::ModArmorPenetrationPct => "MOD_ARMOR_PENETRATION_PCT",
            Self::ModHonorGainPct => "MOD_HONOR_GAIN_PCT",
            Self::ModBaseHealthPct => "MOD_BASE_HEALTH_PCT",
            Self::ModHealingReceived => "MOD_HEALING_RECEIVED",
            Self::Linked => "LINKED",
            Self::ModAttackPowerOfArmor => "MOD_ATTACK_POWER_OF_ARMOR",
            Self::AbilityPeriodicCrit => "ABILITY_PERIODIC_CRIT",
            Self::DeflectSpells => "DEFLECT_SPELLS",
            Self::IgnoreHitDirection => "IGNORE_HIT_DIRECTION",
            Self::PreventDurabilityLoss => "PREVENT_DURABILITY_LOSS",
            Self::ModCritPct => "MOD_CRIT_PCT",
            Self::ModXpQuestPct => "MOD_XP_QUEST_PCT",
            Self::OpenStable => "OPEN_STABLE",
            Self::OverrideSpells => "OVERRIDE_SPELLS",
            Self::PreventRegeneratePower => "PREVENT_REGENERATE_POWER",
            Self::Unknown295 => "UNKNOWN295",
            Self::SetVehicleId => "SET_VEHICLE_ID",
            Self::BlockSpellFamily => "BLOCK_SPELL_FAMILY",
            Self::Strangulate => "STRANGULATE",
            Self::Unknown299 => "UNKNOWN299",
            Self::ShareDamagePct => "SHARE_DAMAGE_PCT",
            Self::SchoolHealAbsorb => "SCHOOL_HEAL_ABSORB",
            Self::Unknown302 => "UNKNOWN302",
            Self::ModDamageDoneVersusAurastate => "MOD_DAMAGE_DONE_VERSUS_AURASTATE",
            Self::ModFakeInebriate => "MOD_FAKE_INEBRIATE",
            Self::ModMinimumSpeed => "MOD_MINIMUM_SPEED",
            Self::Unknown306 => "UNKNOWN306",
            Self::HealAbsorbTest => "HEAL_ABSORB_TEST",
            Self::ModCritChanceForCaster => "MOD_CRIT_CHANCE_FOR_CASTER",
            Self::Unknown309 => "UNKNOWN309",
            Self::ModCreatureAoeDamageAvoidance => "MOD_CREATURE_AOE_DAMAGE_AVOIDANCE",
            Self::Unknown311 => "UNKNOWN311",
            Self::Unknown312 => "UNKNOWN312",
            Self::Unknown313 => "UNKNOWN313",
            Self::PreventResurrection => "PREVENT_RESURRECTION",
            Self::UnderwaterWalking => "UNDERWATER_WALKING",
            Self::PeriodicHaste => "PERIODIC_HASTE",
        }
    }

}

const NAME: &str = "AuraMod";

impl Default for AuraMod {
    fn default() -> Self {
        Self::None
    }
}

impl std::fmt::Display for AuraMod {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Self::None => f.write_str("None"),
            Self::BindSight => f.write_str("BindSight"),
            Self::ModPossess => f.write_str("ModPossess"),
            Self::PeriodicDamage => f.write_str("PeriodicDamage"),
            Self::Dummy => f.write_str("Dummy"),
            Self::ModConfuse => f.write_str("ModConfuse"),
            Self::ModCharm => f.write_str("ModCharm"),
            Self::ModFear => f.write_str("ModFear"),
            Self::PeriodicHeal => f.write_str("PeriodicHeal"),
            Self::ModAttackspeed => f.write_str("ModAttackspeed"),
            Self::ModThreat => f.write_str("ModThreat"),
            Self::ModTaunt => f.write_str("ModTaunt"),
            Self::ModStun => f.write_str("ModStun"),
            Self::ModDamageDone => f.write_str("ModDamageDone"),
            Self::ModDamageTaken => f.write_str("ModDamageTaken"),
            Self::DamageShield => f.write_str("DamageShield"),
            Self::ModStealth => f.write_str("ModStealth"),
            Self::ModStealthDetect => f.write_str("ModStealthDetect"),
            Self::ModInvisibility => f.write_str("ModInvisibility"),
            Self::ModInvisibilityDetect => f.write_str("ModInvisibilityDetect"),
            Self::ObsModHealth => f.write_str("ObsModHealth"),
            Self::ObsModPower => f.write_str("ObsModPower"),
            Self::ModResistance => f.write_str("ModResistance"),
            Self::PeriodicTriggerSpell => f.write_str("PeriodicTriggerSpell"),
            Self::PeriodicEnergize => f.write_str("PeriodicEnergize"),
            Self::ModPacify => f.write_str("ModPacify"),
            Self::ModRoot => f.write_str("ModRoot"),
            Self::ModSilence => f.write_str("ModSilence"),
            Self::ReflectSpells => f.write_str("ReflectSpells"),
            Self::ModStat => f.write_str("ModStat"),
            Self::ModSkill => f.write_str("ModSkill"),
            Self::ModIncreaseSpeed => f.write_str("ModIncreaseSpeed"),
            Self::ModIncreaseMountedSpeed => f.write_str("ModIncreaseMountedSpeed"),
            Self::ModDecreaseSpeed => f.write_str("ModDecreaseSpeed"),
            Self::ModIncreaseHealth => f.write_str("ModIncreaseHealth"),
            Self::ModIncreaseEnergy => f.write_str("ModIncreaseEnergy"),
            Self::ModShapeshift => f.write_str("ModShapeshift"),
            Self::EffectImmunity => f.write_str("EffectImmunity"),
            Self::StateImmunity => f.write_str("StateImmunity"),
            Self::SchoolImmunity => f.write_str("SchoolImmunity"),
            Self::DamageImmunity => f.write_str("DamageImmunity"),
            Self::DispelImmunity => f.write_str("DispelImmunity"),
            Self::ProcTriggerSpell => f.write_str("ProcTriggerSpell"),
            Self::ProcTriggerDamage => f.write_str("ProcTriggerDamage"),
            Self::TrackCreatures => f.write_str("TrackCreatures"),
            Self::TrackResources => f.write_str("TrackResources"),
            Self::Unknown46 => f.write_str("Unknown46"),
            Self::ModParryPercent => f.write_str("ModParryPercent"),
            Self::PeriodicTriggerSpellFromClient => f.write_str("PeriodicTriggerSpellFromClient"),
            Self::ModDodgePercent => f.write_str("ModDodgePercent"),
            Self::ModCriticalHealingAmount => f.write_str("ModCriticalHealingAmount"),
            Self::ModBlockPercent => f.write_str("ModBlockPercent"),
            Self::ModWeaponCritPercent => f.write_str("ModWeaponCritPercent"),
            Self::PeriodicLeech => f.write_str("PeriodicLeech"),
            Self::ModHitChance => f.write_str("ModHitChance"),
            Self::ModSpellHitChance => f.write_str("ModSpellHitChance"),
            Self::Transform => f.write_str("Transform"),
            Self::ModSpellCritChance => f.write_str("ModSpellCritChance"),
            Self::ModIncreaseSwimSpeed => f.write_str("ModIncreaseSwimSpeed"),
            Self::ModDamageDoneCreature => f.write_str("ModDamageDoneCreature"),
            Self::ModPacifySilence => f.write_str("ModPacifySilence"),
            Self::ModScale => f.write_str("ModScale"),
            Self::PeriodicHealthFunnel => f.write_str("PeriodicHealthFunnel"),
            Self::Unknown63 => f.write_str("Unknown63"),
            Self::PeriodicManaLeech => f.write_str("PeriodicManaLeech"),
            Self::ModCastingSpeedNotStack => f.write_str("ModCastingSpeedNotStack"),
            Self::FeignDeath => f.write_str("FeignDeath"),
            Self::ModDisarm => f.write_str("ModDisarm"),
            Self::ModStalked => f.write_str("ModStalked"),
            Self::SchoolAbsorb => f.write_str("SchoolAbsorb"),
            Self::ExtraAttacks => f.write_str("ExtraAttacks"),
            Self::ModSpellCritChanceSchool => f.write_str("ModSpellCritChanceSchool"),
            Self::ModPowerCostSchoolPct => f.write_str("ModPowerCostSchoolPct"),
            Self::ModPowerCostSchool => f.write_str("ModPowerCostSchool"),
            Self::ReflectSpellsSchool => f.write_str("ReflectSpellsSchool"),
            Self::ModLanguage => f.write_str("ModLanguage"),
            Self::FarSight => f.write_str("FarSight"),
            Self::MechanicImmunity => f.write_str("MechanicImmunity"),
            Self::Mounted => f.write_str("Mounted"),
            Self::ModDamagePercentDone => f.write_str("ModDamagePercentDone"),
            Self::ModPercentStat => f.write_str("ModPercentStat"),
            Self::SplitDamagePct => f.write_str("SplitDamagePct"),
            Self::WaterBreathing => f.write_str("WaterBreathing"),
            Self::ModBaseResistance => f.write_str("ModBaseResistance"),
            Self::ModRegen => f.write_str("ModRegen"),
            Self::ModPowerRegen => f.write_str("ModPowerRegen"),
            Self::ChannelDeathItem => f.write_str("ChannelDeathItem"),
            Self::ModDamagePercentTaken => f.write_str("ModDamagePercentTaken"),
            Self::ModHealthRegenPercent => f.write_str("ModHealthRegenPercent"),
            Self::PeriodicDamagePercent => f.write_str("PeriodicDamagePercent"),
            Self::Unknown90 => f.write_str("Unknown90"),
            Self::ModDetectRange => f.write_str("ModDetectRange"),
            Self::PreventsFleeing => f.write_str("PreventsFleeing"),
            Self::ModUnattackable => f.write_str("ModUnattackable"),
            Self::InterruptRegen => f.write_str("InterruptRegen"),
            Self::Ghost => f.write_str("Ghost"),
            Self::SpellMagnet => f.write_str("SpellMagnet"),
            Self::ManaShield => f.write_str("ManaShield"),
            Self::ModSkillTalent => f.write_str("ModSkillTalent"),
            Self::ModAttackPower => f.write_str("ModAttackPower"),
            Self::AurasVisible => f.write_str("AurasVisible"),
            Self::ModResistancePct => f.write_str("ModResistancePct"),
            Self::ModMeleeAttackPowerVersus => f.write_str("ModMeleeAttackPowerVersus"),
            Self::ModTotalThreat => f.write_str("ModTotalThreat"),
            Self::WaterWalk => f.write_str("WaterWalk"),
            Self::FeatherFall => f.write_str("FeatherFall"),
            Self::Hover => f.write_str("Hover"),
            Self::AddFlatModifier => f.write_str("AddFlatModifier"),
            Self::AddPctModifier => f.write_str("AddPctModifier"),
            Self::AddTargetTrigger => f.write_str("AddTargetTrigger"),
            Self::ModPowerRegenPercent => f.write_str("ModPowerRegenPercent"),
            Self::AddCasterHitTrigger => f.write_str("AddCasterHitTrigger"),
            Self::OverrideClassScripts => f.write_str("OverrideClassScripts"),
            Self::ModRangedDamageTaken => f.write_str("ModRangedDamageTaken"),
            Self::ModRangedDamageTakenPct => f.write_str("ModRangedDamageTakenPct"),
            Self::ModHealing => f.write_str("ModHealing"),
            Self::ModRegenDuringCombat => f.write_str("ModRegenDuringCombat"),
            Self::ModMechanicResistance => f.write_str("ModMechanicResistance"),
            Self::ModHealingPct => f.write_str("ModHealingPct"),
            Self::Unknown119 => f.write_str("Unknown119"),
            Self::Untrackable => f.write_str("Untrackable"),
            Self::Empathy => f.write_str("Empathy"),
            Self::ModOffhandDamagePct => f.write_str("ModOffhandDamagePct"),
            Self::ModTargetResistance => f.write_str("ModTargetResistance"),
            Self::ModRangedAttackPower => f.write_str("ModRangedAttackPower"),
            Self::ModMeleeDamageTaken => f.write_str("ModMeleeDamageTaken"),
            Self::ModMeleeDamageTakenPct => f.write_str("ModMeleeDamageTakenPct"),
            Self::RangedAttackPowerAttackerBonus => f.write_str("RangedAttackPowerAttackerBonus"),
            Self::ModPossessPet => f.write_str("ModPossessPet"),
            Self::ModSpeedAlways => f.write_str("ModSpeedAlways"),
            Self::ModMountedSpeedAlways => f.write_str("ModMountedSpeedAlways"),
            Self::ModRangedAttackPowerVersus => f.write_str("ModRangedAttackPowerVersus"),
            Self::ModIncreaseEnergyPercent => f.write_str("ModIncreaseEnergyPercent"),
            Self::ModIncreaseHealthPercent => f.write_str("ModIncreaseHealthPercent"),
            Self::ModManaRegenInterrupt => f.write_str("ModManaRegenInterrupt"),
            Self::ModHealingDone => f.write_str("ModHealingDone"),
            Self::ModHealingDonePercent => f.write_str("ModHealingDonePercent"),
            Self::ModTotalStatPercentage => f.write_str("ModTotalStatPercentage"),
            Self::ModMeleeHaste => f.write_str("ModMeleeHaste"),
            Self::ForceReaction => f.write_str("ForceReaction"),
            Self::ModRangedHaste => f.write_str("ModRangedHaste"),
            Self::ModRangedAmmoHaste => f.write_str("ModRangedAmmoHaste"),
            Self::ModBaseResistancePct => f.write_str("ModBaseResistancePct"),
            Self::ModResistanceExclusive => f.write_str("ModResistanceExclusive"),
            Self::SafeFall => f.write_str("SafeFall"),
            Self::ModPetTalentPoints => f.write_str("ModPetTalentPoints"),
            Self::AllowTamePetType => f.write_str("AllowTamePetType"),
            Self::MechanicImmunityMask => f.write_str("MechanicImmunityMask"),
            Self::RetainComboPoints => f.write_str("RetainComboPoints"),
            Self::ReducePushback => f.write_str("ReducePushback"),
            Self::ModShieldBlockvaluePct => f.write_str("ModShieldBlockvaluePct"),
            Self::TrackStealthed => f.write_str("TrackStealthed"),
            Self::ModDetectedRange => f.write_str("ModDetectedRange"),
            Self::SplitDamageFlat => f.write_str("SplitDamageFlat"),
            Self::ModStealthLevel => f.write_str("ModStealthLevel"),
            Self::ModWaterBreathing => f.write_str("ModWaterBreathing"),
            Self::ModReputationGain => f.write_str("ModReputationGain"),
            Self::PetDamageMulti => f.write_str("PetDamageMulti"),
            Self::ModShieldBlockvalue => f.write_str("ModShieldBlockvalue"),
            Self::NoPvpCredit => f.write_str("NoPvpCredit"),
            Self::ModAoeAvoidance => f.write_str("ModAoeAvoidance"),
            Self::ModHealthRegenInCombat => f.write_str("ModHealthRegenInCombat"),
            Self::PowerBurn => f.write_str("PowerBurn"),
            Self::ModCritDamageBonus => f.write_str("ModCritDamageBonus"),
            Self::Unknown164 => f.write_str("Unknown164"),
            Self::MeleeAttackPowerAttackerBonus => f.write_str("MeleeAttackPowerAttackerBonus"),
            Self::ModAttackPowerPct => f.write_str("ModAttackPowerPct"),
            Self::ModRangedAttackPowerPct => f.write_str("ModRangedAttackPowerPct"),
            Self::ModDamageDoneVersus => f.write_str("ModDamageDoneVersus"),
            Self::ModCritPercentVersus => f.write_str("ModCritPercentVersus"),
            Self::DetectAmore => f.write_str("DetectAmore"),
            Self::ModSpeedNotStack => f.write_str("ModSpeedNotStack"),
            Self::ModMountedSpeedNotStack => f.write_str("ModMountedSpeedNotStack"),
            Self::Unknown173 => f.write_str("Unknown173"),
            Self::ModSpellDamageOfStatPercent => f.write_str("ModSpellDamageOfStatPercent"),
            Self::ModSpellHealingOfStatPercent => f.write_str("ModSpellHealingOfStatPercent"),
            Self::SpiritOfRedemption => f.write_str("SpiritOfRedemption"),
            Self::AoeCharm => f.write_str("AoeCharm"),
            Self::ModDebuffResistance => f.write_str("ModDebuffResistance"),
            Self::ModAttackerSpellCritChance => f.write_str("ModAttackerSpellCritChance"),
            Self::ModFlatSpellDamageVersus => f.write_str("ModFlatSpellDamageVersus"),
            Self::Unknown181 => f.write_str("Unknown181"),
            Self::ModResistanceOfStatPercent => f.write_str("ModResistanceOfStatPercent"),
            Self::ModCriticalThreat => f.write_str("ModCriticalThreat"),
            Self::ModAttackerMeleeHitChance => f.write_str("ModAttackerMeleeHitChance"),
            Self::ModAttackerRangedHitChance => f.write_str("ModAttackerRangedHitChance"),
            Self::ModAttackerSpellHitChance => f.write_str("ModAttackerSpellHitChance"),
            Self::ModAttackerMeleeCritChance => f.write_str("ModAttackerMeleeCritChance"),
            Self::ModAttackerRangedCritChance => f.write_str("ModAttackerRangedCritChance"),
            Self::ModRating => f.write_str("ModRating"),
            Self::ModFactionReputationGain => f.write_str("ModFactionReputationGain"),
            Self::UseNormalMovementSpeed => f.write_str("UseNormalMovementSpeed"),
            Self::ModMeleeRangedHaste => f.write_str("ModMeleeRangedHaste"),
            Self::MeleeSlow => f.write_str("MeleeSlow"),
            Self::ModTargetAbsorbSchool => f.write_str("ModTargetAbsorbSchool"),
            Self::ModTargetAbilityAbsorbSchool => f.write_str("ModTargetAbilityAbsorbSchool"),
            Self::ModCooldown => f.write_str("ModCooldown"),
            Self::ModAttackerSpellAndWeaponCritChance => f.write_str("ModAttackerSpellAndWeaponCritChance"),
            Self::Unknown198 => f.write_str("Unknown198"),
            Self::ModIncreasesSpellPctToHit => f.write_str("ModIncreasesSpellPctToHit"),
            Self::ModXpPct => f.write_str("ModXpPct"),
            Self::Fly => f.write_str("Fly"),
            Self::IgnoreCombatResult => f.write_str("IgnoreCombatResult"),
            Self::ModAttackerMeleeCritDamage => f.write_str("ModAttackerMeleeCritDamage"),
            Self::ModAttackerRangedCritDamage => f.write_str("ModAttackerRangedCritDamage"),
            Self::ModSchoolCritDmgTaken => f.write_str("ModSchoolCritDmgTaken"),
            Self::ModIncreaseVehicleFlightSpeed => f.write_str("ModIncreaseVehicleFlightSpeed"),
            Self::ModIncreaseMountedFlightSpeed => f.write_str("ModIncreaseMountedFlightSpeed"),
            Self::ModIncreaseFlightSpeed => f.write_str("ModIncreaseFlightSpeed"),
            Self::ModMountedFlightSpeedAlways => f.write_str("ModMountedFlightSpeedAlways"),
            Self::ModVehicleSpeedAlways => f.write_str("ModVehicleSpeedAlways"),
            Self::ModFlightSpeedNotStack => f.write_str("ModFlightSpeedNotStack"),
            Self::ModRangedAttackPowerOfStatPercent => f.write_str("ModRangedAttackPowerOfStatPercent"),
            Self::ModRageFromDamageDealt => f.write_str("ModRageFromDamageDealt"),
            Self::Unknown214 => f.write_str("Unknown214"),
            Self::ArenaPreparation => f.write_str("ArenaPreparation"),
            Self::HasteSpells => f.write_str("HasteSpells"),
            Self::ModMeleeHaste2 => f.write_str("ModMeleeHaste2"),
            Self::HasteRanged => f.write_str("HasteRanged"),
            Self::ModManaRegenFromStat => f.write_str("ModManaRegenFromStat"),
            Self::ModRatingFromStat => f.write_str("ModRatingFromStat"),
            Self::ModDetaunt => f.write_str("ModDetaunt"),
            Self::Unknown222 => f.write_str("Unknown222"),
            Self::RaidProcFromCharge => f.write_str("RaidProcFromCharge"),
            Self::Unknown224 => f.write_str("Unknown224"),
            Self::RaidProcFromChargeWithValue => f.write_str("RaidProcFromChargeWithValue"),
            Self::PeriodicDummy => f.write_str("PeriodicDummy"),
            Self::PeriodicTriggerSpellWithValue => f.write_str("PeriodicTriggerSpellWithValue"),
            Self::DetectStealth => f.write_str("DetectStealth"),
            Self::ModAoeDamageAvoidance => f.write_str("ModAoeDamageAvoidance"),
            Self::Unknown230 => f.write_str("Unknown230"),
            Self::ProcTriggerSpellWithValue => f.write_str("ProcTriggerSpellWithValue"),
            Self::MechanicDurationMod => f.write_str("MechanicDurationMod"),
            Self::ChangeModelForAllHumanoids => f.write_str("ChangeModelForAllHumanoids"),
            Self::MechanicDurationModNotStack => f.write_str("MechanicDurationModNotStack"),
            Self::ModDispelResist => f.write_str("ModDispelResist"),
            Self::ControlVehicle => f.write_str("ControlVehicle"),
            Self::ModSpellDamageOfAttackPower => f.write_str("ModSpellDamageOfAttackPower"),
            Self::ModSpellHealingOfAttackPower => f.write_str("ModSpellHealingOfAttackPower"),
            Self::ModScale2 => f.write_str("ModScale2"),
            Self::ModExpertise => f.write_str("ModExpertise"),
            Self::ForceMoveForward => f.write_str("ForceMoveForward"),
            Self::ModSpellDamageFromHealing => f.write_str("ModSpellDamageFromHealing"),
            Self::ModFaction => f.write_str("ModFaction"),
            Self::ComprehendLanguage => f.write_str("ComprehendLanguage"),
            Self::ModAuraDurationByDispel => f.write_str("ModAuraDurationByDispel"),
            Self::ModAuraDurationByDispelNotStack => f.write_str("ModAuraDurationByDispelNotStack"),
            Self::CloneCaster => f.write_str("CloneCaster"),
            Self::ModCombatResultChance => f.write_str("ModCombatResultChance"),
            Self::ConvertRune => f.write_str("ConvertRune"),
            Self::ModIncreaseHealth2 => f.write_str("ModIncreaseHealth2"),
            Self::ModEnemyDodge => f.write_str("ModEnemyDodge"),
            Self::ModSpeedSlowAll => f.write_str("ModSpeedSlowAll"),
            Self::ModBlockCritChance => f.write_str("ModBlockCritChance"),
            Self::ModDisarmOffhand => f.write_str("ModDisarmOffhand"),
            Self::ModMechanicDamageTakenPercent => f.write_str("ModMechanicDamageTakenPercent"),
            Self::NoReagentUse => f.write_str("NoReagentUse"),
            Self::ModTargetResistBySpellClass => f.write_str("ModTargetResistBySpellClass"),
            Self::Unknown258 => f.write_str("Unknown258"),
            Self::ModHotPct => f.write_str("ModHotPct"),
            Self::ScreenEffect => f.write_str("ScreenEffect"),
            Self::Phase => f.write_str("Phase"),
            Self::AbilityIgnoreAurastate => f.write_str("AbilityIgnoreAurastate"),
            Self::AllowOnlyAbility => f.write_str("AllowOnlyAbility"),
            Self::Unknown264 => f.write_str("Unknown264"),
            Self::Unknown265 => f.write_str("Unknown265"),
            Self::Unknown266 => f.write_str("Unknown266"),
            Self::ModImmuneAuraApplySchool => f.write_str("ModImmuneAuraApplySchool"),
            Self::ModAttackPowerOfStatPercent => f.write_str("ModAttackPowerOfStatPercent"),
            Self::ModIgnoreTargetResist => f.write_str("ModIgnoreTargetResist"),
            Self::ModAbilityIgnoreTargetResist => f.write_str("ModAbilityIgnoreTargetResist"),
            Self::ModDamageFromCaster => f.write_str("ModDamageFromCaster"),
            Self::IgnoreMeleeReset => f.write_str("IgnoreMeleeReset"),
            Self::XRay => f.write_str("XRay"),
            Self::AbilityConsumeNoAmmo => f.write_str("AbilityConsumeNoAmmo"),
            Self::ModIgnoreShapeshift => f.write_str("ModIgnoreShapeshift"),
            Self::ModDamageDoneForMechanic => f.write_str("ModDamageDoneForMechanic"),
            Self::ModMaxAffectedTargets => f.write_str("ModMaxAffectedTargets"),
            Self::ModDisarmRanged => f.write_str("ModDisarmRanged"),
            Self::InitializeImages => f.write_str("InitializeImages"),
            Self::ModArmorPenetrationPct => f.write_str("ModArmorPenetrationPct"),
            Self::ModHonorGainPct => f.write_str("ModHonorGainPct"),
            Self::ModBaseHealthPct => f.write_str("ModBaseHealthPct"),
            Self::ModHealingReceived => f.write_str("ModHealingReceived"),
            Self::Linked => f.write_str("Linked"),
            Self::ModAttackPowerOfArmor => f.write_str("ModAttackPowerOfArmor"),
            Self::AbilityPeriodicCrit => f.write_str("AbilityPeriodicCrit"),
            Self::DeflectSpells => f.write_str("DeflectSpells"),
            Self::IgnoreHitDirection => f.write_str("IgnoreHitDirection"),
            Self::PreventDurabilityLoss => f.write_str("PreventDurabilityLoss"),
            Self::ModCritPct => f.write_str("ModCritPct"),
            Self::ModXpQuestPct => f.write_str("ModXpQuestPct"),
            Self::OpenStable => f.write_str("OpenStable"),
            Self::OverrideSpells => f.write_str("OverrideSpells"),
            Self::PreventRegeneratePower => f.write_str("PreventRegeneratePower"),
            Self::Unknown295 => f.write_str("Unknown295"),
            Self::SetVehicleId => f.write_str("SetVehicleId"),
            Self::BlockSpellFamily => f.write_str("BlockSpellFamily"),
            Self::Strangulate => f.write_str("Strangulate"),
            Self::Unknown299 => f.write_str("Unknown299"),
            Self::ShareDamagePct => f.write_str("ShareDamagePct"),
            Self::SchoolHealAbsorb => f.write_str("SchoolHealAbsorb"),
            Self::Unknown302 => f.write_str("Unknown302"),
            Self::ModDamageDoneVersusAurastate => f.write_str("ModDamageDoneVersusAurastate"),
            Self::ModFakeInebriate => f.write_str("ModFakeInebriate"),
            Self::ModMinimumSpeed => f.write_str("ModMinimumSpeed"),
            Self::Unknown306 => f.write_str("Unknown306"),
            Self::HealAbsorbTest => f.write_str("HealAbsorbTest"),
            Self::ModCritChanceForCaster => f.write_str("ModCritChanceForCaster"),
            Self::Unknown309 => f.write_str("Unknown309"),
            Self::ModCreatureAoeDamageAvoidance => f.write_str("ModCreatureAoeDamageAvoidance"),
            Self::Unknown311 => f.write_str("Unknown311"),
            Self::Unknown312 => f.write_str("Unknown312"),
            Self::Unknown313 => f.write_str("Unknown313"),
            Self::PreventResurrection => f.write_str("PreventResurrection"),
            Self::UnderwaterWalking => f.write_str("UnderwaterWalking"),
            Self::PeriodicHaste => f.write_str("PeriodicHaste"),
        }
    }
}

impl TryFrom<u32> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: u32) -> Result<Self, Self::Error> {
        Self::from_int(value)
    }
}

impl TryFrom<u8> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: u8) -> Result<Self, Self::Error> {
        Self::from_int(value.into())
    }
}

impl TryFrom<u16> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: u16) -> Result<Self, Self::Error> {
        Self::from_int(value.into())
    }
}

impl TryFrom<u64> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: u64) -> Result<Self, Self::Error> {
        TryInto::<u32>::try_into(value)
            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
            .try_into()
    }
}

impl TryFrom<i8> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: i8) -> Result<Self, Self::Error> {
        TryInto::<u32>::try_into(value)
            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
            .try_into()
    }
}

impl TryFrom<i16> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: i16) -> Result<Self, Self::Error> {
        TryInto::<u32>::try_into(value)
            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
            .try_into()
    }
}

impl TryFrom<i32> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: i32) -> Result<Self, Self::Error> {
        let v = u32::from_le_bytes(value.to_le_bytes());
        Self::from_int(v)
    }
}

impl TryFrom<i64> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: i64) -> Result<Self, Self::Error> {
        TryInto::<u32>::try_into(value)
            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
            .try_into()
    }
}

impl TryFrom<usize> for AuraMod {
    type Error = crate::errors::EnumError;
    fn try_from(value: usize) -> Result<Self, Self::Error> {
        TryInto::<u32>::try_into(value)
            .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
            .try_into()
    }
}