Advertisement
Guest User

DataD

a guest
Nov 5th, 2017
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 142.21 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Runtime.CompilerServices;
  4. using System.Windows.Media.Media3D;
  5. using Trinity.Framework.Avoidance.Structures;
  6. using Trinity.Helpers;
  7. using Trinity.Objects;
  8. using Trinity.Reference;
  9. using Zeta.Common;
  10. using Zeta.Game;
  11. using Zeta.Game.Internals.Actors;
  12. using Zeta.Game.Internals.SNO;
  13.  
  14. namespace Trinity
  15. {
  16. /// <summary>
  17. /// Contains hard-coded meta-lists of ActorSnoId's, Spells and other non-dynamic info
  18. /// </summary>
  19. internal partial class DataDictionary
  20. {
  21. public static GameBalanceTable PetTable = new GameBalanceTable
  22. {
  23. { 2390, 95923716, -1080354364, "Cosmetic_Pet_gluttony_01" },
  24. { 2391, 703053224, 1957183816, "P5_Cosmetic_Pet_gluttony_01" },
  25. { 2392, -529993811, -2093357235, "P5_Cosmetic_Pet_babysiege_01" },
  26. { 2393, 909568905, 747097929, "Cosmetic_Pet_babysiege_01" },
  27. { 2394, 291388177, 1463579313, "Cosmetic_Pet_fallenHound_04" },
  28. { 2395, 270653493, 584358837, "P5_Cosmetic_Pet_fallenHound_04" },
  29. { 2396, -210446749, -1284908509, "Cosmetic_Pet_ghost_01" },
  30. { 2397, 2057463943, 1567133735, "P5_Cosmetic_Pet_ghost_01" },
  31. { 2398, 402823953, 600203953, "P5_Cosmetic_Pet_goatman_melee_02" },
  32. { 2399, 1508058349, 293595309, "Cosmetic_Pet_goatman_melee_02" },
  33. { 2400, -661725708, -463270508, "P5_Cosmetic_Pet_hoodednightmare_01" },
  34. { 2401, 347688656, 647365264, "Cosmetic_Pet_hoodednightmare_01" },
  35. { 2402, 1270811089, 780480881, "P5_Cosmetic_Pet_mimic_01" },
  36. { 2403, -997099603, -2071561363, "Cosmetic_Pet_mimic_01" },
  37. { 2404, -968523326, 1763080546, "P5_Cosmetic_Pet_nightmare_02" },
  38. { 2405, 471039390, 308568414, "Cosmetic_Pet_nightmare_02" },
  39. { 2406, 1336361309, -127619875, "Cosmetic_Pet_FloatingSkull_01" },
  40. { 2407, 231126913, 178988769, "P5_Cosmetic_Pet_FloatingSkull_01" },
  41. { 2408, 231126914, 178988770, "P5_Cosmetic_Pet_FloatingSkull_02" },
  42. { 2409, 1336361310, -127619874, "Cosmetic_Pet_FloatingSkull_02" },
  43. { 2410, 1209305989, 111806277, "Cosmetic_Pet_spider_01" },
  44. { 2411, -1259052503, -260080183, "P5_Cosmetic_Pet_spider_01" },
  45. { 2412, 719029307, 951272411, "P5_Cosmetic_Pet_squire" },
  46. { 2413, 1967180567, -660480297, "Cosmetic_Pet_squire" },
  47. { 2414, -593309777, 660820815, "P5_Cosmetic_Pet_succubus_01" },
  48. { 2415, -1200439285, 1918249931, "Cosmetic_Pet_succubus_01" },
  49. { 2416, 1327895705, 1387230233, "P5_Cosmetic_Pet_teddyBear_04" },
  50. { 2417, -1527508875, -67281899, "Cosmetic_Pet_teddyBear_04" },
  51. { 2418, -1125588669, 783287459, "P5_Cosmetic_Pet_VoodooDoll_01" },
  52. { 2419, -864659297, 29027359, "Cosmetic_Pet_VoodooDoll_01" },
  53. { 2420, -1358268778, 140259862, "P5_Cosmetic_Pet_crawlingHand_03" },
  54. { 2421, -674024206, -910235502, "Cosmetic_Pet_crawlingHand_03" },
  55. { 2422, -1526517200, 910697968, "Cosmetic_Pet_cowking_01" },
  56. { 2423, -1377968812, 1523346676, "P5_Cosmetic_Pet_cowking_01" },
  57. { 2424, -1967557379, 1260835005, "Cosmetic_Pet_bladedsoul_01" },
  58. { 2425, 2066480545, 2015095105, "P5_Cosmetic_Pet_bladedsoul_01" },
  59. { 2426, -819510535, -1632973127, "Cosmetic_Pet_yeti_01" },
  60. { 2427, 941170845, 15258685, "P5_Cosmetic_Pet_yeti_01" },
  61. { 2428, -1162235772, 2035231812, "Cosmetic_Pet_zombie_01" },
  62. { 2429, 664373032, 1663345352, "P5_Cosmetic_Pet_zombie_01" },
  63. };
  64.  
  65. public static HashSet<int> PetSnoIds = new HashSet<int>()
  66. {
  67. (int) SNOActor.x1_promoPet_fallenHound_skeletal, // 360090,
  68. (int) SNOActor.Cosmetic_Pet_FallenHound_Skeletal, // 410448,
  69. (int) SNOActor.cos_pet_teddybear_01, // 430903,
  70. (int) SNOActor.cos_pet_thousandPounder_01, // 430905,
  71. (int) SNOActor.cos_pet_teddybear_02, // 430906,
  72. (int) SNOActor.cos_pet_teddybear_03, // 430908,
  73. (int) SNOActor.cos_pet_teddybear_04, // 430910,
  74. (int) SNOActor.cos_pet_fallenHound_01, // 433063,
  75. (int) SNOActor.cos_pet_protossProbe_01, // 434428,
  76. (int) SNOActor.cos_pet_crawlingHand_01, // 436532,
  77. (int) SNOActor.cos_pet_crawlingHand_02, // 436534,
  78. (int) SNOActor.cos_pet_crawlingHand_03, // 436961,
  79. (int) SNOActor.cos_pet_teddybear_05, // 437119,
  80. (int) SNOActor.cos_pet_fallenHound_02, // 437807,
  81. (int) SNOActor.cos_pet_fallenHound_03, // 439196,
  82. (int) SNOActor.cos_pet_fallenHound_04, // 439221,
  83. (int) SNOActor.cos_pet_fallenHound_05, // 439233,
  84. (int) SNOActor.cos_pet_fallenHound_06, // 439237,
  85. (int) SNOActor.cos_pet_goatman_melee_01, // 439337,
  86. (int) SNOActor.p3_cos_pet_Murkgoblin_A, // 441208,
  87. (int) SNOActor.cos_pet_goatman_melee_02, // 441214,
  88. (int) SNOActor.p3_cos_pet_jadeSerpent, // 441437,
  89. };
  90.  
  91. public static HashSet<int> WingsSnoIds = new HashSet<int>
  92. {
  93. (int) SNOActor.AngelWings_common_model, //150054
  94. (int) SNOActor.Fate_angelWings_model, //159931
  95. (int) SNOActor.AngelWings_corrupt_model, //170563
  96. (int) SNOActor.Hope_angelWings_model, //174571
  97. (int) SNOActor.Hope_angelWings_model_Dim, //195016
  98. (int) SNOActor.hero_angelWings_model, //198230
  99. (int) SNOActor.angel_death_wings_dissipate_emitter, //199650
  100. (int) SNOActor.AngelWings_Blue, //210787
  101. (int) SNOActor.BugWings, //255315
  102. (int) SNOActor.hero_bugWings_barbF, //255316
  103. (int) SNOActor.hero_bugWings_barbM, //255718
  104. (int) SNOActor.hero_bugWings_DHF, //255719
  105. (int) SNOActor.hero_bugWings_DHM, //255720
  106. (int) SNOActor.hero_bugWings_monkF, //255721
  107. (int) SNOActor.hero_bugWings_monkM, //255722
  108. (int) SNOActor.hero_bugWings_WDF, //255723
  109. (int) SNOActor.hero_bugWings_WDM, //255724
  110. (int) SNOActor.hero_bugWings_wizF, //255725
  111. (int) SNOActor.hero_bugWings_wizM, //255726
  112. (int) SNOActor.hero_bugWings_cdrF, //261498
  113. (int) SNOActor.hero_bugWings_cdrM, //261499
  114. (int) SNOActor.x1_AngelWings_dark_TEST_model, //301144
  115. (int) SNOActor.AngelWings_Red, //317018
  116. (int) SNOActor.hero_redWings_model, //317119
  117. (int) SNOActor.x1_AngelWings_Short_Cool_model, //328514
  118. (int) SNOActor.x1_Dark_Angel_Wings, //348370
  119. (int) SNOActor.x1_Urzael_Wings_flameSweep, //363632
  120. (int) SNOActor.x1_Urzael_Wings_transform_midway, //363657
  121. (int) SNOActor.x1_Malthael_Death_Short_Wings_model, //370161
  122. (int) SNOActor.AngelWings_common_model_noRagdoll, //377926
  123. (int) SNOActor.hero_angelWings_Imperius_model, //378320
  124. (int) SNOActor.x1_AngelWings_Imperius, //378342
  125. (int) SNOActor.hero_angelWings_model_gold, //378978
  126. (int) SNOActor.Cosmetic_Wings_Blue, //409078
  127. (int) SNOActor.Cosmetic_Wings_Red, //409079
  128. (int) SNOActor.Cosmetic_Wings_Bug, //409080
  129. (int) SNOActor.Cosmetic_Wings_Imperius, //409081
  130. (int) SNOActor.cos_wings_angel_twoTone_purple_01, //429082
  131. (int) SNOActor.cos_wings_demonic_blackBlue_01, //429085
  132. (int) SNOActor.cos_wings_demonic_blackYellow_01, //429087
  133. (int) SNOActor.cos_wings_angel_twoTone_gold_01, //429091
  134. (int) SNOActor.cos_wings_demonic_blackRed_01, //429094
  135. (int) SNOActor.cos_wings_angel_twoTone_greyscale_01, //429103
  136. (int) SNOActor.cos_wings_angel_flame_cyan_01, //429110
  137. (int) SNOActor.cos_wings_demonic_blackCyan_01, //429114
  138. (int) SNOActor.cos_wings_angel_flame_orange_01, //429181
  139. (int) SNOActor.cos_wings_bat, //429863
  140. (int) SNOActor.cos_wings_bat_DHM, //431031
  141. (int) SNOActor.cos_wings_bat_DHF, //431033
  142. (int) SNOActor.cos_wings_bat_barbM, //431036
  143. (int) SNOActor.cos_wings_bat_barbF, //431038
  144. (int) SNOActor.cos_wings_bat_wizM, //431041
  145. (int) SNOActor.cos_wings_bat_wizF, //431043
  146. (int) SNOActor.cos_wings_bat_WDM, //431046
  147. (int) SNOActor.cos_wings_bat_WDF, //431048
  148. (int) SNOActor.cos_wings_bat_monkM, //431056
  149. (int) SNOActor.cos_wings_bat_monkF, //431058
  150. (int) SNOActor.cos_wings_bat_cdrM, //431061
  151. (int) SNOActor.cos_wings_bat_cdrF, //431063
  152. (int) SNOActor.cos_wings_bat_02_barbM, //435216
  153. (int) SNOActor.cos_wings_bat_02_barbF, //435218
  154. (int) SNOActor.cos_wings_bat_02_wizM, //435222
  155. (int) SNOActor.cos_wings_bat_02_wizF, //435224
  156. (int) SNOActor.cos_wings_bat_02_WDM, //435227
  157. (int) SNOActor.cos_wings_bat_02_WDF, //435229
  158. (int) SNOActor.cos_wings_bat_02_monkM, //435232
  159. (int) SNOActor.cos_wings_bat_02_monkF, //435234
  160. (int) SNOActor.cos_wings_bat_02_cdrM, //435237
  161. (int) SNOActor.cos_wings_bat_02_cdrF, //435239
  162. (int) SNOActor.cos_wings_bat_02_DHF, //435240
  163. (int) SNOActor.cos_wings_bat_02_DHM, //435241
  164. (int) SNOActor.cos_wings_bat_03_DHM, //435245
  165. (int) SNOActor.cos_wings_bat_03_DHF, //435247
  166. (int) SNOActor.cos_wings_bat_03_barbM, //435250
  167. (int) SNOActor.cos_wings_bat_03_barbF, //435252
  168. (int) SNOActor.cos_wings_bat_03_wizM, //435255
  169. (int) SNOActor.cos_wings_bat_03_wizF, //435257
  170. (int) SNOActor.cos_wings_bat_03_WDM, //435260
  171. (int) SNOActor.cos_wings_bat_03_WDF, //435262
  172. (int) SNOActor.cos_wings_bat_03_monkM, //435265
  173. (int) SNOActor.cos_wings_bat_03_monkF, //435267
  174. (int) SNOActor.cos_wings_bat_03_cdrM, //435270
  175. (int) SNOActor.cos_wings_bat_03_cdrF, //435272
  176. (int) SNOActor.cos_wings_bat_04_DHM, //436085
  177. (int) SNOActor.cos_wings_bat_04_DHF, //436087
  178. (int) SNOActor.cos_wings_bat_04_barbM, //436090
  179. (int) SNOActor.cos_wings_bat_04_barbF, //436092
  180. (int) SNOActor.cos_wings_bat_04_wizM, //436095
  181. (int) SNOActor.cos_wings_bat_04_wizF, //436097
  182. (int) SNOActor.cos_wings_bat_04_WDM, //436100
  183. (int) SNOActor.cos_wings_bat_04_WDF, //436102
  184. (int) SNOActor.cos_wings_bat_04_monkM, //436105
  185. (int) SNOActor.cos_wings_bat_04_monkF, //436107
  186. (int) SNOActor.cos_wings_bat_04_cdrM, //436110
  187. (int) SNOActor.cos_wings_bat_04_cdrF, //436112
  188. (int) SNOActor.cos_wings_bat_05_DHM, //436203
  189. (int) SNOActor.cos_wings_bat_05_DHF, //436206
  190. (int) SNOActor.cos_wings_bat_05_barbM, //436209
  191. (int) SNOActor.cos_wings_bat_05_barbF, //436211
  192. (int) SNOActor.cos_wings_bat_05_wizM, //436214
  193. (int) SNOActor.cos_wings_bat_05_wizF, //436216
  194. (int) SNOActor.cos_wings_bat_05_WDM, //436219
  195. (int) SNOActor.cos_wings_bat_05_WDF, //436221
  196. (int) SNOActor.cos_wings_bat_05_monkM, //436224
  197. (int) SNOActor.cos_wings_bat_05_monkF, //436226
  198. (int) SNOActor.cos_wings_bat_05_cdrM, //436229
  199. (int) SNOActor.cos_wings_bat_05_cdrF, //436231
  200. (int) SNOActor.cos_wings_bat_06_DHM, //436236
  201. (int) SNOActor.cos_wings_bat_06_DHF, //436239
  202. (int) SNOActor.cos_wings_bat_06_barbM, //436242
  203. (int) SNOActor.cos_wings_bat_06_barbF, //436244
  204. (int) SNOActor.cos_wings_bat_06_wizM, //436247
  205. (int) SNOActor.cos_wings_bat_06_wizF, //436249
  206. (int) SNOActor.cos_wings_bat_06_WDM, //436252
  207. (int) SNOActor.cos_wings_bat_06_WDF, //436254
  208. (int) SNOActor.cos_wings_bat_06_monkM, //436257
  209. (int) SNOActor.cos_wings_bat_06_monkF, //436259
  210. (int) SNOActor.cos_wings_bat_06_cdrM, //436262
  211. (int) SNOActor.cos_wings_bat_06_cdrF, //436264
  212. (int) SNOActor.cos_wings_bat_07_DHM, //437351
  213. (int) SNOActor.cos_wings_bat_07_DHF, //437353
  214. (int) SNOActor.cos_wings_bat_07_barbM, //437356
  215. (int) SNOActor.cos_wings_bat_07_barbF, //437359
  216. (int) SNOActor.cos_wings_bat_07_wizM, //437362
  217. (int) SNOActor.cos_wings_bat_07_wizF, //437364
  218. (int) SNOActor.cos_wings_bat_07_WDM, //437368
  219. (int) SNOActor.cos_wings_bat_07_WDF, //437370
  220. (int) SNOActor.cos_wings_bat_07_monkM, //437373
  221. (int) SNOActor.cos_wings_bat_07_monkF, //437375
  222. (int) SNOActor.cos_wings_bat_07_cdrM, //437378
  223. (int) SNOActor.cos_wings_bat_07_cdrF, //437380
  224. (int) SNOActor.cos_wings_angel_twoTone_blue_01, //437586
  225. };
  226.  
  227. public static GameBalanceTable WingsTable = new GameBalanceTable
  228. {
  229. { 217, 237118774, 600882390, "AngelWings_Blue" },
  230. { 1025, -1736870778, 234604614, "BugWings" },
  231. { 1733, -1424453175, -1283279511, "AngelWings_Red" },
  232. { 2051, -1364948604, -1558843100, "x1_AngelWings_Imperius" },
  233. { 2366, -816230663, 686014105, "Wings_Mercy_Console" },
  234. { 2367, 2036418836, -34240396, "Cosmetic_Wings_SetDngn_Mastery" },
  235. { 2368, 671128753, 1237156881, "Cosmetic_Wings_SetDngn_Basic" },
  236. { 2388, 224691469, 327053421, "Console_Wings_SetDngn_Basic" },
  237. { 2389, 1197521008, 1000537040, "Console_Wings_SetDngn_Mastery" },
  238. { 2432, 1905890384, 808390672, "Cosmetic_Wings_bfly_07" },
  239. { 2442, 1081297790, -1546363074, "Cosmetic_Wings_bird" },
  240. { 2443, -562468108, 436504212, "P5_Cosmetic_Wings_bfly_07" },
  241. { 2444, -166853470, 65389634, "P5_Cosmetic_Wings_bird" },
  242. { 2446, 1905890380, 808390668, "Cosmetic_Wings_bfly_03" },
  243. { 2447, 702834906, -371626854, "Cosmetic_Wings_bat_07" },
  244. { 2450, -1324221698, -1304179010, "P5_Cosmetic_wings_bat_07" },
  245. { 2451, 702834903, -371626857, "Cosmetic_Wings_bat_04" },
  246. { 2452, -1324221701, -1814551909, "P5_Cosmetic_Wings_bat_04" },
  247. { 2453, 1905890378, -1863878678, "Cosmetic_Wings_Bfly_01" },
  248. { 2454, -562468114, 436504206, "P5_Cosmetic_Wings_bfly_01" },
  249. { 2455, -562468112, 436504208, "P5_Cosmetic_Wings_bfly_03" },
  250. };
  251.  
  252. public static GameBalanceTable TransmogTable = new GameBalanceTable
  253. {
  254. //{ 1902, 1549850923, -929962837, "X1_PromoTransmogPlan_01" },
  255. //{ 1903, 1549850924, -929962836, "X1_PromoTransmogPlan_02" },
  256. //{ 2057, 1549850925, -929962835, "X1_PromoTransmogPlan_03" },
  257. //{ 2058, -1723454145, 1869712607, "p1_SeasonTransmogPlan_01" },
  258. { 2324, -1915655615, 2129793537, "TransmogHelm_001" },
  259. { 2325, -692981644, -919506892, "TransmogShoulders_001" },
  260. { 2374, 1159896909, 42569453, "TransmogHelm_Illidan" },
  261. { 2430, -1915655614, 2129793538, "TransmogHelm_002" },
  262. { 2431, 1268253959, -1471771449, "TransmogMace_241_001" },
  263. { 2433, -1901213639, -2127738887, "TransmogFlail_241_001" },
  264. { 2434, -1901213638, -2127738886, "TransmogFlail_241_002" },
  265. { 2435, 868864647, -1871160761, "TransmogFist_241_001" },
  266. { 2436, 1460786533, 1234261285, "TransmogStaff_241_001" },
  267. { 2437, -1901213637, -2127738885, "TransmogFlail_241_003" },
  268. { 2438, -1901213636, -2127738884, "TransmogFlail_241_004" },
  269. { 2439, 868864648, -1871160760, "TransmogFist_241_002" },
  270. { 2440, 1286110481, -1453914927, "TransmogXbow_241_001" },
  271. { 2441, 1345846545, -1990947631, "TransmogAxe_241_003" },
  272. { 2445, 2089009826, 1862484578, "TransmogSword_241_003" },
  273. };
  274.  
  275. public static HashSet<SNOAnim> VaultAnimations = new HashSet<SNOAnim>
  276. {
  277. SNOAnim.Demonhunter_Male_Cast_BackFlip_mid,
  278. SNOAnim.Demonhunter_Female_Cast_BackFlip_mid,
  279. SNOAnim.Demonhunter_Male_Cast_BackFlip_out,
  280. SNOAnim.Demonhunter_Female_Cast_BackFlip_out,
  281. SNOAnim.Demonhunter_Male_Cast_BackFlip_in,
  282. SNOAnim.Demonhunter_Female_Cast_BackFlip_in,
  283. };
  284.  
  285. public static HashSet<int> SlowTimeSNO = new HashSet<int>()
  286. {
  287. 5422, //slowTime_model_01
  288. 5423, //slowTime_model_02
  289. };
  290.  
  291. public static HashSet<int> ArchonSkillIds = new HashSet<int>
  292. {
  293. 135166, 135238, 135663, 166616, 167355, 167648, 392883, 392884, 392885, 392886, 392887, 392888, 392889, 392890, 392891,
  294. };
  295.  
  296. public static HashSet<int> SpiderPetIds = new HashSet<int>
  297. {
  298. //witchDoctor_CorpseSpider_crimsonRune,
  299. 106731,
  300. //witchDoctor_CorpseSpider_indigoRune,
  301. 106749,
  302. //witchDoctor_CorpseSpider,
  303. 107031,
  304. //witchDoctor_CorpseSpider_obsidianRune,
  305. 107067,
  306. //witchDoctor_CorpseSpider_goldenRune,
  307. 107107,
  308. //witchDoctor_CorpseSpider_alabasterRune,
  309. 107112,
  310. };
  311.  
  312. private static Dictionary<int, string> _animatioNamesById;
  313. public static Dictionary<int, string> AnimatioNamesById
  314. {
  315. get { return _animatioNamesById ?? (_animatioNamesById = SNOAnim.Invalid.ToDictionary(true)); }
  316. }
  317.  
  318. public static string GetAnimationNameLowerCase(SNOAnim anim)
  319. {
  320. if (anim == SNOAnim.Invalid)
  321. return string.Empty;
  322.  
  323. string result;
  324. AnimatioNamesById.TryGetValue((int)anim, out result);
  325.  
  326. return result ?? string.Empty;
  327. }
  328.  
  329.  
  330. /// <summary>
  331. /// Monsters who pretend to be dead/hidden
  332. /// </summary>
  333. public static readonly HashSet<int> FakeDeathMonsters = new HashSet<int>()
  334. {
  335. //morluMelee_A
  336. 4755,
  337. //morluMelee_B
  338. 4757,
  339. //morluMelee_C
  340. 4758,
  341. //bloodScratch_morluMelee_attack01
  342. //219793,
  343. //bloodScratch_morluMelee_attack02
  344. //219808,
  345. //morluMelee_A_Unique_01
  346. 219925,
  347. //morluMelee_A_Unique_02
  348. 219936,
  349. //morluMelee_asheyState_glowSphere
  350. //221119,
  351. //morluMelee_B_asheyState_glowSphere
  352. //221120,
  353. //x1_Spawner_MorluMelee_A_Challenge
  354. //307092,
  355. //x1_Spawner_MorluMelee_C_Ressurect
  356. //344038,
  357. //x1_Event_SpeedKill_morluMelee_B_Spawner
  358. //370327,
  359. //P2_morluMelee_A_Unique_01
  360. 409614,
  361. //P2_morluMelee_A_Unique_02
  362. 409843,
  363. };
  364.  
  365. public const int WALLER_SNO = 226808; //monsterAffix_waller_model (226808)
  366.  
  367. public const int PLAYER_HEADSTONE_SNO = 4860; // PlayerHeadstone
  368.  
  369. public static HashSet<int> PandemoniumFortressWorlds { get { return _pandemoniumFortressWorlds; } }
  370. private static readonly HashSet<int> _pandemoniumFortressWorlds = new HashSet<int>
  371. {
  372. 271233, // Adventure Pand Fortress 1
  373. 271235, // Adventure Pand Fortress 2
  374. };
  375.  
  376. public static HashSet<int> PandemoniumFortressLevelAreaIds { get { return _pandemoniumFortressLevelAreaIds; } }
  377. private static readonly HashSet<int> _pandemoniumFortressLevelAreaIds = new HashSet<int>
  378. {
  379. 333758, //LevelArea: X1_LR_Tileset_Fortress
  380. };
  381.  
  382. public static HashSet<int> NoCheckKillRange { get { return _noCheckKillRange; } }
  383. private static readonly HashSet<int> _noCheckKillRange = new HashSet<int>
  384. {
  385. 210120, // A4 Corrupt Growth
  386. 210268, // A4 Corrupt Growth
  387. };
  388.  
  389. public const int RiftTrialLevelAreaId = 405915;
  390.  
  391. /// <summary>
  392. /// Contains a list of Rift WorldId's
  393. /// </summary>
  394. public static List<int> RiftWorldIds { get { return DataDictionary.riftWorldIds; } }
  395. private static readonly List<int> riftWorldIds = new List<int>()
  396. {
  397. 288454,
  398. 288685,
  399. 288687,
  400. 288798,
  401. 288800,
  402. 288802,
  403. 288804,
  404. 288806,
  405. };
  406.  
  407. /// <summary>
  408. /// Contains all the Exit Name Hashes in Rifts
  409. /// </summary>
  410. public static List<int> RiftPortalHashes { get { return DataDictionary.riftPortalHashes; } }
  411. private static readonly List<int> riftPortalHashes = new List<int>()
  412. {
  413. 1938876094,
  414. 1938876095,
  415. 1938876096,
  416. 1938876097,
  417. 1938876098,
  418. 1938876099,
  419. 1938876100,
  420. 1938876101,
  421. 1938876102,
  422. };
  423.  
  424. public static HashSet<int> BountyTurnInQuests { get { return DataDictionary.bountyTurnInQuests; } }
  425. private static readonly HashSet<int> bountyTurnInQuests = new HashSet<int>()
  426. {
  427. 356988, //x1_AdventureMode_BountyTurnin_A1
  428. 356994, //x1_AdventureMode_BountyTurnin_A2
  429. 356996, //x1_AdventureMode_BountyTurnin_A3
  430. 356999, //x1_AdventureMode_BountyTurnin_A4
  431. 357001, //x1_AdventureMode_BountyTurnin_A5
  432. };
  433.  
  434. public static HashSet<int> EventQuests { get { return DataDictionary.eventQuests; } }
  435. private static readonly HashSet<int> eventQuests = new HashSet<int>()
  436. {
  437. 365821, // [D7499CC] Quest: x1_Catacombs_NS_06Mutant_Evant, QuestSnoId: 365821, QuestMeter: -1, QuestState: InProgress, QuestStep: 10, KillCount: 0, BonusCount: 0
  438. 369381, // [2ECD96F4] Quest: x1_Event_Horde_HunterKillers, QuestSnoId: 369381, QuestMeter: 0.004814815, QuestState: InProgress, QuestStep: 14, KillCount: 0, BonusCount: 0
  439. 369431, // [2ECD9860] Quest: x1_Event_WaveFight_AncientEvils, QuestSnoId: 369431, QuestMeter: -1, QuestState: InProgress, QuestStep: 13, KillCount: 0, BonusCount: 0
  440. 336293, // [417DD860] Quest: X1_Graveyard_GraveRobber_Event, QuestSnoId: 336293, QuestMeter: -1, QuestState: InProgress, QuestStep: 46, KillCount: 0, BonusCount: 0
  441. 369414, // [33955B38] Quest: X1_Pand_Ext_ForgottenWar_Adventure, QuestSnoId: 369414, QuestMeter: -1, QuestState: InProgress, QuestStep: 2, KillCount: 1, BonusCount: 0
  442.  
  443. 368306, // x1_Event_Horde_ArmyOfHell,
  444. 369332, // x1_Event_Horde_Bonepit,
  445. 365252, // x1_Event_Horde_DeathCellar,
  446. 365150, // x1_Event_Horde_Deathfire,
  447. 365695, // x1_Event_Horde_DesertFortress,
  448. 367979, // x1_Event_Horde_Dustbowl,
  449. 364880, // x1_Event_Horde_FleshpitGrove,
  450. 369525, // x1_Event_Horde_FlyingAssasins,
  451. 365796, // x1_Event_Horde_FoulHatchery,
  452. 365305, // x1_Event_Horde_GhoulSwarm,
  453. 369366, // x1_Event_Horde_GuardSlaughter,
  454. 369381, // x1_Event_Horde_HunterKillers,
  455. 368035, // x1_Event_Horde_InfernalSky,
  456. // 365269, // x1_Event_Horde_SpiderTrap,
  457. 366331, // x1_Event_Horde_UdderChaos,
  458. 239301, // x1_Event_Jar_Of_Souls_NecroVersion,
  459. 370334, // x1_Event_SpeedKill_Angel_Corrupt_A,
  460. 370316, // x1_Event_SpeedKill_BileCrawler_A,
  461. 369841, // x1_Event_SpeedKill_Bloodhawk_A,
  462. 370556, // x1_Event_SpeedKill_Boss_Adria,
  463. 370373, // x1_Event_SpeedKill_Boss_Despair,
  464. 370154, // x1_Event_SpeedKill_Boss_Ghom,
  465. 369892, // x1_Event_SpeedKill_Boss_Maghda,
  466. 365630, // x1_Event_SpeedKill_Boss_SkeletonKing,
  467. 370349, // x1_Event_SpeedKill_Champion_BigRed_A,
  468. 370082, // x1_Event_SpeedKill_Champion_FallenHound_D,
  469. 369895, // x1_Event_SpeedKill_Champion_FleshPitFlyer_C,
  470. 365586, // x1_Event_SpeedKill_Champion_GhostA,
  471. 365593, // x1_Event_SpeedKill_Champion_GoatmanB,
  472. 370364, // x1_Event_SpeedKill_Champion_MalletDemon_A,
  473. 369906, // x1_Event_SpeedKill_Champion_SandShark_A,
  474. 370135, // x1_Event_SpeedKill_Champion_SoulRipper_A,
  475. 370837, // x1_Event_SpeedKill_Champion_SquiggletA,
  476. 365617, // x1_Event_SpeedKill_Champion_SummonableA,
  477. 370077, // x1_Event_SpeedKill_Champion_azmodanBodyguard_A,
  478. 370066, // x1_Event_SpeedKill_Champion_creepMob_A,
  479. 370341, // x1_Event_SpeedKill_Champion_morluSpellcaster_A,
  480. 370516, // x1_Event_SpeedKill_Champion_x1_FloaterAngel_A,
  481. 370544, // x1_Event_SpeedKill_Champon_x1_Rockworm_Pand_A,
  482. 370320, // x1_Event_SpeedKill_CoreEliteDemon_A,
  483. 370038, // x1_Event_SpeedKill_Fallen_C,
  484. 365551, // x1_Event_SpeedKill_GhostHumansA,
  485. 370053, // x1_Event_SpeedKill_Ghoul_E,
  486. 364644, // x1_Event_SpeedKill_GoatmanA,
  487. 365509, // x1_Event_SpeedKill_Goatman_Melee_A_Ghost,
  488. 370044, // x1_Event_SpeedKill_Goatmutant_B,
  489. 369873, // x1_Event_SpeedKill_Lacuni_B,
  490. 370049, // x1_Event_SpeedKill_Monstrosity_Scorpion_A,
  491. 369910, // x1_Event_SpeedKill_Rare_Ghoul_B,
  492. 365622, // x1_Event_SpeedKill_Rare_Skeleton2HandA,
  493. 370147, // x1_Event_SpeedKill_Rare_ThousandPounder,
  494. 370359, // x1_Event_SpeedKill_Rare_demonTrooper_C,
  495. 370499, // x1_Event_SpeedKill_Rare_x1_westmarchBrute_C,
  496. 370060, // x1_Event_SpeedKill_Skeleton_E,
  497. 364635, // x1_Event_SpeedKill_SkeletonsA,
  498. 369856, // x1_Event_SpeedKill_Snakeman_A,
  499. 369884, // x1_Event_SpeedKill_Spiderling_B,
  500. 369863, // x1_Event_SpeedKill_Swarm_A,
  501. 370666, // x1_Event_SpeedKill_TentacleBears,
  502. 369832, // x1_Event_SpeedKill_TriuneCultist_C,
  503. 365526, // x1_Event_SpeedKill_TriuneVesselA,
  504. 365547, // x1_Event_SpeedKill_ZombieB,
  505. 370033, // x1_Event_SpeedKill_demonFlyer_B,
  506. 369817, // x1_Event_SpeedKill_electricEel_A,
  507. 369837, // x1_Event_SpeedKill_fastMummy_A,
  508. 370329, // x1_Event_SpeedKill_morluMelee_B,
  509. 370482, // x1_Event_SpeedKill_x1_BileCrawler_Skeletal_A,
  510. 370435, // x1_Event_SpeedKill_x1_BogFamily_A,
  511. 370452, // x1_Event_SpeedKill_x1_Monstrosity_ScorpionBug_A,
  512. 370427, // x1_Event_SpeedKill_x1_Skeleton_Ghost_A,
  513. 370561, // x1_Event_SpeedKill_x1_Tentacle_A,
  514. 370445, // x1_Event_SpeedKill_x1_bogBlight_Maggot_A,
  515. 370466, // x1_Event_SpeedKill_x1_leaperAngel_A,
  516. 370489, // x1_Event_SpeedKill_x1_portalGuardianMinion_A,
  517. 370476, // x1_Event_SpeedKill_x1_westmarchHound_A,
  518. 369431, // x1_Event_WaveFight_AncientEvils,
  519. 365751, // x1_Event_WaveFight_ArmyOfTheDead,
  520. 368092, // x1_Event_WaveFight_BloodClanAssault,
  521. 365300, // x1_Event_WaveFight_ChamberOfBone,
  522. 365033, // x1_Event_WaveFight_CultistLegion,
  523. 368056, // x1_Event_WaveFight_DeathChill,
  524. 365678, // x1_Event_WaveFight_FallenWarband,
  525. 368124, // x1_Event_WaveFight_ForsakenSoldiers,
  526. 369482, // x1_Event_WaveFight_HostileRealm,
  527. 368334, // x1_Event_WaveFight_Juggernaut,
  528. 365133, // x1_Event_WaveFight_KhazraWarband,
  529. 365953, // x1_Event_WaveFight_SunkenGrave,
  530. };
  531.  
  532.  
  533.  
  534. public static HashSet<string> VanityItems { get { return DataDictionary.vanityItems; } }
  535. private static readonly HashSet<string> vanityItems = new HashSet<string>()
  536. {
  537. "x1_AngelWings_Imperius", // Wings of Valor
  538. "X1_SpectralHound_Skull_promo", // Liber Canis Mortui
  539. "WoDFlag", // Warsong Pennant
  540. };
  541.  
  542. public static HashSet<int> NeverTownPortalLevelAreaIds { get { return neverTownPortalLevelAreaIds; } }
  543. private static readonly HashSet<int> neverTownPortalLevelAreaIds = new HashSet<int>()
  544. {
  545. 202446, // A1 New Tristram "Attack Area"
  546. //19947, // A1 New Tristram "Attack Area"
  547.  
  548. 284069, // A5 Westmarch Overlook
  549. 308323, // A5 Westmarch Wolf Gate
  550. 315938, // A5 Westmarch Wolf Gate
  551. 316374, // A5 Westmarch Storehouse
  552. 311624, // A5 Westmarch Cathedral Courtyard
  553. 311623, // A5 Streets of Westmarch
  554. 309413, // A5 Westmarch Cathedral
  555.  
  556. };
  557.  
  558.  
  559. public static HashSet<int> ForceTownPortalLevelAreaIds { get { return DataDictionary.forceTownPortalLevelAreaIds; } }
  560. private static readonly HashSet<int> forceTownPortalLevelAreaIds = new HashSet<int>
  561. {
  562. 55313, // Act 2 Caldeum Bazaar
  563. };
  564.  
  565.  
  566.  
  567. /// <summary>
  568. /// Contains the list of Boss Level Area ID's
  569. /// </summary>
  570. public static HashSet<int> BossLevelAreaIDs { get { return bossLevelAreaIDs; } }
  571. private static readonly HashSet<int> bossLevelAreaIDs = new HashSet<int>
  572. {
  573. 109457, 185228, 60194, 130163, 60714, 19789, 62726, 90881, 195268, 58494, 81178, 60757, 111232, 112580,
  574. 119656, 111516, 143648, 215396, 119882, 109563, 153669, 215235, 55313, 60193, 19789, 330576,
  575. };
  576.  
  577. /// <summary>
  578. /// A list of LevelAreaSnoIdId's that the bot should always use Straight line pathing (no navigator)
  579. /// </summary>
  580. public static HashSet<int> StraightLinePathingLevelAreaIds { get { return DataDictionary.straightLinePathingLevelAreaIds; } }
  581. private static readonly HashSet<int> straightLinePathingLevelAreaIds = new HashSet<int>
  582. {
  583. 60757, // Belial's chambers
  584. 405915, // p1_TieredRift_Challenge
  585. };
  586.  
  587. public static HashSet<int> QuestLevelAreaIds { get { return DataDictionary.questLevelAreaIds; } }
  588. private static readonly HashSet<int> questLevelAreaIds = new HashSet<int>
  589. {
  590. 202446, // A1 New Tristram "Attack Area"
  591. 19947, // A1 New Tristram
  592. 109457, // A1 New Tristram Inn
  593. 109457, // A1 The Slaughtered Calf Inn
  594. 62968, // A1 The Hidden Cellar
  595. 60714, // A1 Leoric's Passage
  596. 83110, // A1 Cellar of the Damned
  597. 19935, // A1 Wortham
  598. 100854, // A1 Khazra Den
  599. 94672, // A1 Cursed Hold
  600.  
  601. 60757, // A2 Belial's chambers
  602. 55313, // A2 Caldeum Bazaar
  603. 102964, // A2 City of Caldeum
  604.  
  605. 309413, // A5 Westmarch Cathedral
  606.  
  607. 336846, // x1_westm_KingEvent01 - Westmarch Commons Contested Villa
  608. 405915, // p1_TieredRift_Challenge
  609. };
  610.  
  611.  
  612. /// <summary>
  613. /// This list is used when an actor has an attribute BuffVisualEffect=1, e.g. fire floors in The Butcher arena
  614. /// </summary>
  615. public static HashSet<int> ButcherFloorPanels { get { return butcherFloorPanels; } }
  616. private static readonly HashSet<int> butcherFloorPanels = new HashSet<int>
  617. {
  618. // Butcher Floor Panels
  619. 201454, 201464, 201426, 201438, 200969, 201423, 201242,
  620. };
  621.  
  622. /// <summary>
  623. /// This list is used for Units with specific Animations we want to treat as avoidance
  624. /// </summary>
  625. public static HashSet<DoubleInt> AvoidanceAnimations { get { return DataDictionary.avoidanceAnimations; } }
  626. private static readonly HashSet<DoubleInt> avoidanceAnimations = new HashSet<DoubleInt>
  627. {
  628. // Fat guys that explode into worms
  629. // Stitch_Suicide_Bomb State=Transform By: Corpulent_C (3849)
  630. new DoubleInt((int)SNOActor.Corpulent_A, (int)SNOAnim.Stitch_Suicide_Bomb),
  631. new DoubleInt((int)SNOActor.Corpulent_A_Unique_01, (int)SNOAnim.Stitch_Suicide_Bomb),
  632. new DoubleInt((int)SNOActor.Corpulent_A_Unique_02, (int)SNOAnim.Stitch_Suicide_Bomb),
  633. new DoubleInt((int)SNOActor.Corpulent_A_Unique_03, (int)SNOAnim.Stitch_Suicide_Bomb),
  634. new DoubleInt((int)SNOActor.Corpulent_B, (int)SNOAnim.Stitch_Suicide_Bomb),
  635. new DoubleInt((int)SNOActor.Corpulent_B_Unique_01, (int)SNOAnim.Stitch_Suicide_Bomb),
  636. new DoubleInt((int)SNOActor.Corpulent_C, (int)SNOAnim.Stitch_Suicide_Bomb),
  637. new DoubleInt((int)SNOActor.Corpulent_D_CultistSurvivor_Unique, (int)SNOAnim.Stitch_Suicide_Bomb),
  638. new DoubleInt((int)SNOActor.Corpulent_C_OasisAmbush_Unique, (int)SNOAnim.Stitch_Suicide_Bomb),
  639. new DoubleInt((int)SNOActor.Corpulent_D_Unique_Spec_01, (int)SNOAnim.Stitch_Suicide_Bomb),
  640.  
  641. new DoubleInt(330824, (int)SNOAnim.x1_Urzael_attack_06), // Urzael flame
  642. new DoubleInt(330824, 348109), // Urzael Cannonball Aim
  643. new DoubleInt(330824, 344952), // Urzael Flying
  644.  
  645. // Spinny AOE Attack
  646. new DoubleInt((int)SNOActor.x1_LR_DeathMaiden_A, (int)SNOAnim.x1_deathMaiden_attack_special_360_01),
  647.  
  648. new DoubleInt((int)SNOActor.x1_portalGuardianMinion_Melee_A, (int)SNOAnim.x1_portalGuardianMinion_attack_charge_01), // x1_portalGuardianMinion_Melee_A (279052)
  649. new DoubleInt((int)SNOActor.X1_BigRed_Chronodemon_Burned_A, (int)SNOAnim.X1_BigRed_attack_02), // X1_BigRed_Chronodemon_Burned_A (326670)
  650.  
  651. // Big guys with blades on their arms who jump accross the screen and stun you
  652. // x1_westmarchBrute_attack_02_out State=Attacking By: x1_westmarchBrute_A (258678)
  653. new DoubleInt((int)SNOActor.x1_westmarchBrute_A, (int)SNOAnim.x1_westmarchBrute_attack_02_in),
  654. new DoubleInt((int)SNOActor.x1_westmarchBrute_A, (int)SNOAnim.x1_westmarchBrute_attack_02_mid),
  655. new DoubleInt((int)SNOActor.x1_westmarchBrute_A, (int)SNOAnim.x1_westmarchBrute_attack_02_out),
  656.  
  657. // snakeMan_melee_generic_cast_01 State=Transform By: X1_LR_Boss_Snakeman_Melee_Belial (360281)
  658. new DoubleInt((int)SNOActor.X1_LR_Boss_Snakeman_Melee_Belial, (int)SNOAnim.snakeMan_melee_generic_cast_01),
  659.  
  660. //x1_Squigglet_Generic_Cast State=Transform By: X1_LR_Boss_Squigglet (353535)
  661. new DoubleInt((int)SNOActor.X1_LR_Boss_Squigglet, (int)SNOAnim.x1_Squigglet_Generic_Cast),
  662. };
  663.  
  664. /// <summary>
  665. /// This list is used for Units with specific Animations we want to treat as avoidance
  666. /// </summary>
  667. public static readonly HashSet<DoubleInt> DirectionalAvoidanceAnimations = new HashSet<DoubleInt>
  668. {
  669. // Beast Charge
  670. new DoubleInt((int)SNOActor.Beast_A, (int)SNOAnim.Beast_start_charge_02),
  671. new DoubleInt((int)SNOActor.Beast_A, (int)SNOAnim.Beast_charge_02),
  672. new DoubleInt((int)SNOActor.Beast_A, (int)SNOAnim.Beast_charge_04),
  673. new DoubleInt((int)SNOActor.Beast_B, (int)SNOAnim.Beast_start_charge_02),
  674. new DoubleInt((int)SNOActor.Beast_B, (int)SNOAnim.Beast_charge_02),
  675. new DoubleInt((int)SNOActor.Beast_B, (int)SNOAnim.Beast_charge_04),
  676. new DoubleInt((int)SNOActor.Beast_C, (int)SNOAnim.Beast_start_charge_02),
  677. new DoubleInt((int)SNOActor.Beast_C, (int)SNOAnim.Beast_charge_02),
  678. new DoubleInt((int)SNOActor.Beast_C, (int)SNOAnim.Beast_charge_04),
  679. new DoubleInt((int)SNOActor.Beast_D, (int)SNOAnim.Beast_start_charge_02),
  680. new DoubleInt((int)SNOActor.Beast_D, (int)SNOAnim.Beast_charge_02),
  681. new DoubleInt((int)SNOActor.Beast_D, (int)SNOAnim.Beast_charge_04),
  682.  
  683. // Nobody wants to get hit by a mallet demon
  684. new DoubleInt(343767, (int)SNOAnim.malletDemon_attack_01), // X1_LR_Boss_MalletDemon
  685. new DoubleInt(106709, (int)SNOAnim.malletDemon_attack_01), // MalletDemon_A
  686. new DoubleInt(219736, (int)SNOAnim.malletDemon_attack_01), // MalletDemon_A_Unique_01
  687. new DoubleInt(219751, (int)SNOAnim.malletDemon_attack_01), // MalletDemon_A_Unique_02
  688.  
  689.  
  690. // Angels with those big clubs with a dashing attack
  691. // Angel_Corrupt_attack_dash_in State=Transform By: Angel_Corrupt_A (106711)
  692. new DoubleInt((int)SNOActor.Angel_Corrupt_A, (int)SNOAnim.Angel_Corrupt_attack_dash_in),
  693. new DoubleInt((int)SNOActor.Angel_Corrupt_A, (int)SNOAnim.Angel_Corrupt_attack_dash_middle),
  694. new DoubleInt((int)SNOActor.Angel_Corrupt_A, (int)SNOAnim.Angel_Corrupt_attack_dash_out),
  695.  
  696.  
  697. //] Triune_Berserker_specialAttack_loop_01 State=TakingDamage By: Triune_Berserker_A (6052)
  698. new DoubleInt((int)SNOActor.Triune_Berserker_A, (int)SNOAnim.Triune_Berserker_specialAttack_01),
  699. new DoubleInt((int)SNOActor.Triune_Berserker_A, (int)SNOAnim.Triune_Berserker_specialAttack_loop_01),
  700. new DoubleInt((int)SNOActor.Triune_Berserker_B, (int)SNOAnim.Triune_Berserker_specialAttack_01),
  701. new DoubleInt((int)SNOActor.Triune_Berserker_B, (int)SNOAnim.Triune_Berserker_specialAttack_loop_01),
  702. new DoubleInt((int)SNOActor.Triune_Berserker_C, (int)SNOAnim.Triune_Berserker_specialAttack_01),
  703. new DoubleInt((int)SNOActor.Triune_Berserker_C, (int)SNOAnim.Triune_Berserker_specialAttack_loop_01),
  704. new DoubleInt((int)SNOActor.Triune_Berserker_D, (int)SNOAnim.Triune_Berserker_specialAttack_01),
  705. new DoubleInt((int)SNOActor.Triune_Berserker_D, (int)SNOAnim.Triune_Berserker_specialAttack_loop_01),
  706. };
  707.  
  708. /// <summary>
  709. /// This list is used for animations where the avoidance point should be the player's current location
  710. /// </summary>
  711. public static HashSet<int> AvoidAnimationAtPlayer { get { return avoidAnimationAtPlayer; } }
  712. private static readonly HashSet<int> avoidAnimationAtPlayer = new HashSet<int>
  713. {
  714. (int)SNOAnim.Beast_start_charge_02, // A1 Savage Beast Charge - needs special handling!
  715. (int)SNOAnim.Beast_charge_02, // A1 Savage Beast Charge - needs special handling!
  716. (int)SNOAnim.Beast_charge_04, // A1 Savage Beast Charge - needs special handling!
  717. (int)SNOAnim.morluSpellcaster_attack_AOE_01, //morluSpellcaster_D
  718. (int)SNOAnim.X1_LR_Boss_morluSpellcaster_generic_cast, //morluSpellcaster_D
  719. (int)SNOAnim.snakeMan_melee_generic_cast_01, //X1_LR_Boss_Snakeman_Melee_Belial (360281)
  720. };
  721.  
  722. public static Dictionary<int, float> DefaultAvoidanceAnimationCustomRadius { get { return defaultAvoidanceAnimationCustomRadius; } }
  723. private static readonly Dictionary<int, float> defaultAvoidanceAnimationCustomRadius = new Dictionary<int, float>()
  724. {
  725. {(int)SNOAnim.morluSpellcaster_attack_AOE_01, 20f },
  726. {(int)SNOAnim.x1_deathMaiden_attack_special_360_01, 15f},
  727. {(int)SNOAnim.x1_Squigglet_Generic_Cast, 40f}, // Rift Boss Slime AOE
  728. };
  729.  
  730. /// <summary>
  731. /// A list of all the SNO's to avoid - you could add
  732. /// </summary>
  733. public static HashSet<int> Avoidances { get { return avoidances; } }
  734. private static readonly HashSet<int> avoidances = new HashSet<int>
  735. {
  736. 219702, // Arcane
  737. 221225, // Arcane 2
  738. 5482, // Poison Tree
  739. 6578, // Poison Tree
  740. 4803, // monsterAffix_Molten_deathStart_Proxy
  741. 4804, // monsterAffix_Molten_deathExplosion_Proxy
  742. 4806, // monsterAffix_Electrified_deathExplosion_proxy
  743. 224225, // Molten Core 2
  744. 247987, // Molten Core 2
  745. 95868, // Molten Trail
  746. 108869, // Plague Cloud
  747. 402, // Ice Balls
  748. 223675, // Ice Balls
  749. 5212, // Bees-Wasps
  750. 3865, // Plague-Hands
  751. 123124, // Azmo Pools
  752. 123842, // Azmo fireball
  753. 123839, // Azmo bodies
  754. 161822, // Belial 1
  755. 161833, // Belial 2
  756. 4103, // Sha-Ball
  757. 160154, // Mol Ball
  758. 432, // Mage Fire
  759. 168031, // Diablo Prison
  760. 214845, // Diablo Meteor
  761. 260377, // Ice-trail
  762. //185924, // Zolt Bubble
  763. 139741, // Zolt Twister
  764. 93837, // Ghom Gas
  765. 166686, // Maghda Proj
  766. 226350, // Diablo Ring of Fire
  767. 226525, // Diablo Ring of Fire
  768. 250031, // Mortar MonsterAffix_Mortar_Pending
  769.  
  770. 84608, // Desecrator monsterAffix_Desecrator_damage_AOE
  771. 84606, // Desecrator monsterAffix_Desecrator_telegraph
  772.  
  773. /* 2.0 */
  774. 349774, // FrozenPulse x1_MonsterAffix_frozenPulse_monster
  775. 343539, // Orbiter X1_MonsterAffix_Orbiter_Projectile
  776. 316389, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_projectile (316389)
  777. 340319, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_bomb_start (340319)
  778. 341512, // Thunderstorm x1_MonsterAffix_Thunderstorm_Impact
  779. 337109, // Wormhole X1_MonsterAffix_TeleportMines
  780.  
  781. 338889, // x1_Adria_bouncingProjectile
  782. 360738, // X1_Adria_arcanePool
  783. 358404, // X1_Adria_blood_large
  784.  
  785. 360598, // x1_Urzael_CeilingDebris_DamagingFire_wall
  786. 359205, // x1_Urzael_ceilingDebris_Impact_Beam
  787. 360883, // x1_Urzael_ceilingDebris_Impact_Circle
  788.  
  789. 362850, // x1_Urzael_Cannonball_burning_invisible
  790. 346976, // x1_Urzael_Cannonball_burning_impact
  791. 346975, // x1_Urzael_Cannonball_burning
  792.  
  793. 335505, // x1_malthael_drainSoul_ghost
  794. 325136, // x1_Malthael_DeathFogMonster
  795. 340512, // x1_Malthael_Mephisto_LightningObject
  796.  
  797. 359703, // X1_Unique_Monster_Generic_AOE_DOT_Cold_10foot
  798. 363356, // X1_Unique_Monster_Generic_AOE_DOT_Cold_20foot
  799. 359693, // X1_Unique_Monster_Generic_AOE_DOT_Fire_10foot
  800. 363357, // X1_Unique_Monster_Generic_AOE_DOT_Fire_20foot
  801. 364542, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_10foot
  802. 364543, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_20foot
  803. 377537, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_hardpoints
  804. 360046, // X1_Unique_Monster_Generic_AOE_DOT_Poison_10foot
  805. 363358, // X1_Unique_Monster_Generic_AOE_DOT_Poison_20foot
  806. 368156, // X1_Unique_Monster_Generic_AOE_Lightning_Ring
  807. 358917, // X1_Unique_Monster_Generic_AOE_Sphere_Distortion
  808. 377086, // X1_Unique_Monster_Generic_Projectile_Arcane
  809. 377087, // X1_Unique_Monster_Generic_Projectile_Cold
  810. 377088, // X1_Unique_Monster_Generic_Projectile_Fire
  811. 377089, // X1_Unique_Monster_Generic_Projectile_Holy
  812. 377090, // X1_Unique_Monster_Generic_Projectile_Lightning
  813. 377091, // X1_Unique_Monster_Generic_Projectile_Physical
  814. 377092, // X1_Unique_Monster_Generic_Projectile_Poison
  815. (int)SNOActor.x1_LR_boss_terrorDemon_A_projectile,
  816.  
  817. };
  818.  
  819. /// <summary>
  820. /// A list of SNO's that are projectiles (so constantly look for new locations while avoiding)
  821. /// </summary>
  822. public static HashSet<int> AvoidanceProjectiles { get { return avoidanceProjectiles; } }
  823. private static readonly HashSet<int> avoidanceProjectiles = new HashSet<int>
  824. {
  825. 5212, // Bees-Wasps
  826. 4103, // Sha-Ball
  827. 160154, // Molten Ball
  828. 123842, // Azmo fireball
  829. 139741, // Zolt Twister
  830. 166686, // Maghda Projectile
  831. 185999, // Diablo Expanding Fire
  832. 196526, // Diablo Expanding Fire
  833. 136533, // Diablo Lightning Breath
  834. 343539, // Orbiter X1_MonsterAffix_Orbiter_Projectile
  835. 341512, // Thunderstorm
  836. 316389, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_projectile (316389)
  837. 340319, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_bomb_start (340319)
  838.  
  839. // A5
  840.  
  841. 338889, // x1_Adria_bouncingProjectile
  842.  
  843. 362850, // x1_Urzael_Cannonball_burning_invisible
  844. 346976, // x1_Urzael_Cannonball_burning_impact
  845. 346975, // x1_Urzael_Cannonball_burning
  846.  
  847. 335505, // x1_malthael_drainSoul_ghost
  848. 325136, // x1_Malthael_DeathFogMonster
  849. 340512, // x1_Malthael_Mephisto_LightningObject
  850.  
  851. 377086, // X1_Unique_Monster_Generic_Projectile_Arcane
  852. 377087, // X1_Unique_Monster_Generic_Projectile_Cold
  853. 377088, // X1_Unique_Monster_Generic_Projectile_Fire
  854. 377089, // X1_Unique_Monster_Generic_Projectile_Holy
  855. 377090, // X1_Unique_Monster_Generic_Projectile_Lightning
  856. 377091, // X1_Unique_Monster_Generic_Projectile_Physical
  857. 377092, // X1_Unique_Monster_Generic_Projectile_Poison
  858.  
  859. 3528, // Butcher_hook
  860.  
  861. // 4394, //g_ChargedBolt_Projectile-200915 (4394) Type=Projectile
  862. // 368392, // x1_Cesspool_Slime_Posion_Attack_Projectile-222254 (368392) Type=Projectile
  863. (int)SNOActor.x1_LR_boss_terrorDemon_A_projectile,
  864. };
  865.  
  866. /// <summary>
  867. /// A list of SNO's that spawn AoE then disappear from the object manager
  868. /// </summary>
  869. public static HashSet<int> AvoidanceSpawners { get { return avoidanceSpawners; } }
  870. private static readonly HashSet<int> avoidanceSpawners = new HashSet<int>
  871. {
  872. 221225,
  873. 219702,
  874. 5482, // Poison Tree
  875. 6578, // Poison Tree
  876. 316389, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_projectile (316389)
  877. 340319, // PoisonEnchanted x1_MonsterAffix_CorpseBomber_bomb_start (340319)
  878. 159369, //MorluSpellcaster_Meteor_Pending-178011 (159369)
  879. };
  880.  
  881. public static readonly Dictionary<int, ObjectType> ObjectTypeOverrides = new Dictionary<int, ObjectType>
  882. {
  883. // Needed for A5 bounty clicky on death orbs
  884. //ActorSnoId=334466 AnimSnoId=x1_Death_Orb_Event_Worldstone_idle TargetedCount=2 Type=Unit
  885. { 334466, ObjectType.Interactable },
  886.  
  887. { 432258, ObjectType.Interactable },
  888. { 221574, ObjectType.Interactable} //a1dun_Leoric_IronMaiden_Event, Type=Door GizmoType=Door ActorSnoId=221574
  889. //{ 54882, ObjectType.Door } //a3dun_Keep_Door_Wooden_A, Type=Interactable GizmoType=Door
  890. //{ 433403, ObjectType.Interactable}
  891. };
  892.  
  893. public static readonly HashSet<int> ForceTypeAsBarricade = new HashSet<int>
  894. {
  895. 5792, // GizmoType=Door ActorSnoId=5792
  896. 210120, // A4 Corrupt Growth
  897. 210268, // A4 Corrupt Growth
  898. };
  899.  
  900. public static readonly HashSet<int> BloodShardSNO = new HashSet<int>
  901. {
  902. 359504, // HoradricRelic
  903. };
  904.  
  905. public static readonly HashSet<int> PowerGlobeSNO = new HashSet<int>
  906. {
  907. 301283, // Console_PowerGlobe
  908. 308862, // Console_powerGlobe_castBuff_geo
  909. 376019, // Console_PowerGlobe_NoFlippy
  910. 376114, // Console_PowerGlobe_v2_x1_NoFlippy
  911. };
  912.  
  913. public static readonly HashSet<int> ProgressionGlobeSNO = new HashSet<int>
  914. {
  915. 436807, //p1_normal_rifts_Orb
  916. 405765, //p1_tiered_rifts_Orb_flippy
  917. 401751, //p1_tiered_rifts_Orb
  918. 434918, //p1_rifts_Orb_flippy
  919. };
  920.  
  921. public static readonly HashSet<int> GreaterProgressionGlobeSNO = new HashSet<int>
  922. {
  923. 405765, //p1_tiered_rifts_Orb_flippy
  924. 401751, //p1_tiered_rifts_Orb
  925. };
  926.  
  927. public static readonly HashSet<int> NormalProgressionGlobeSNO = new HashSet<int>
  928. {
  929. 436807, //p1_normal_rifts_Orb
  930. 434918, //p1_rifts_Orb_flippy
  931. };
  932.  
  933.  
  934. // Line 15116: p1_rifts_Orb_flippy = 434918,
  935. //Line 15230: p1_normal_rifts_Orb = 436807,
  936.  
  937. /// <summary>
  938. /// The duration the AoE from AvoidanceSpawners should be avoided for
  939. /// </summary>
  940. public static Dictionary<int, TimeSpan> AvoidanceSpawnerDuration { get { return avoidanceSpawnerDuration; } }
  941. private static readonly Dictionary<int, TimeSpan> avoidanceSpawnerDuration = new Dictionary<int, TimeSpan>
  942. {
  943. {221225, TimeSpan.FromSeconds(10)}, // Arcane
  944. {219702, TimeSpan.FromSeconds(10)}, // Arcane
  945. {5482, TimeSpan.FromSeconds(15)}, // Poison Tree
  946. {6578, TimeSpan.FromSeconds(15)}, // Poison Tree
  947. {316389, TimeSpan.FromSeconds(6)}, // PoisonEnchanted
  948. {340319, TimeSpan.FromSeconds(6)}, // PoisonEnchanted
  949. {4803, TimeSpan.FromSeconds(10)}, // Molten Core
  950. {4804, TimeSpan.FromSeconds(10)}, // Molten Core
  951. {224225, TimeSpan.FromSeconds(10)}, // Molten Core
  952. {247987, TimeSpan.FromSeconds(10)}, // Molten Core
  953. {159369, TimeSpan.FromSeconds(3)}, // Morlu Meteor
  954. };
  955.  
  956. public static Dictionary<int, float> DefaultAvoidanceCustomRadius { get { return defaultAvoidanceCustomRadius; } }
  957. private static readonly Dictionary<int, float> defaultAvoidanceCustomRadius = new Dictionary<int, float>()
  958. {
  959. {330824, 35f }, // A5 Urzael animations
  960. {360598, 10f }, // x1_Urzael_CeilingDebris_DamagingFire_wall
  961. {359205, 20f }, // x1_Urzael_ceilingDebris_Impact_Beam
  962. {360883, 20f }, // x1_Urzael_ceilingDebris_Impact_Circle
  963. {362850, 12f }, // x1_Urzael_Cannonball_burning_invisible
  964. {346976, 12f }, // x1_Urzael_Cannonball_burning_impact
  965. {346975, 12f }, // x1_Urzael_Cannonball_burning
  966.  
  967. {360738, 12f}, // X1_Adria_arcanePool
  968. {338889, 5f}, // x1_Adria_bouncingProjectile
  969. {358404, 15f}, // X1_Adria_blood_large
  970.  
  971. {335505, 5f}, // x1_malthael_drainSoul_ghost
  972. {325136, 20f}, // x1_Malthael_DeathFogMonster
  973. {340512, 8f}, // x1_Malthael_Mephisto_LightningObject
  974. {343767, 35f }, // Mallet Demons
  975. {106709, 35f }, // Mallet Demons
  976. {219736, 35f }, // Mallet Demons
  977. {219751, 35f }, // Mallet Demons
  978.  
  979. {159369, 20f }, //MorluMeteor
  980. {4103, 25f}, // Meteor
  981. {3528, 15f}, // Butcher_hook
  982.  
  983. {359703, 13f}, // X1_Unique_Monster_Generic_AOE_DOT_Cold_10foot
  984. {363356, 25f}, // X1_Unique_Monster_Generic_AOE_DOT_Cold_20foot
  985. {359693, 13f}, // X1_Unique_Monster_Generic_AOE_DOT_Fire_10foot
  986. {363357, 25f}, // X1_Unique_Monster_Generic_AOE_DOT_Fire_20foot
  987. {364542, 13f}, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_10foot
  988. {364543, 25f}, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_20foot
  989. {377537, 13f}, // X1_Unique_Monster_Generic_AOE_DOT_Lightning_hardpoints
  990. {360046, 13f}, // X1_Unique_Monster_Generic_AOE_DOT_Poison_10foot
  991. {363358, 25f}, // X1_Unique_Monster_Generic_AOE_DOT_Poison_20foot
  992. {368156, 13f}, // X1_Unique_Monster_Generic_AOE_Lightning_Ring
  993. {358917, 13f}, // X1_Unique_Monster_Generic_AOE_Sphere_Distortion
  994. {377086, 13f}, // X1_Unique_Monster_Generic_Projectile_Arcane
  995. {377087, 13f}, // X1_Unique_Monster_Generic_Projectile_Cold
  996. {377088, 13f}, // X1_Unique_Monster_Generic_Projectile_Fire
  997. {377089, 13f}, // X1_Unique_Monster_Generic_Projectile_Holy
  998. {377090, 13f}, // X1_Unique_Monster_Generic_Projectile_Lightning
  999. {377091, 13f}, // X1_Unique_Monster_Generic_Projectile_Physical
  1000. {377092, 13f}, // X1_Unique_Monster_Generic_Projectile_Poison
  1001. {123842,60f},
  1002.  
  1003. {(int)SNOActor.x1_LR_boss_terrorDemon_A_projectile, 10f},
  1004.  
  1005.  
  1006. {4803, 25f}, // Molten Core
  1007. {4804, 25f}, // Molten Core
  1008. {224225, 25f}, // Molten Core
  1009. {247987, 25f}, // Molten Core
  1010. {139741, 15},
  1011.  
  1012. };
  1013.  
  1014. public readonly static HashSet<TrinityItemType> NoPickupClickTypes = new HashSet<TrinityItemType>
  1015. {
  1016. TrinityItemType.PowerGlobe,
  1017. TrinityItemType.HealthGlobe,
  1018. TrinityItemType.ProgressionGlobe,
  1019. TrinityItemType.HoradricRelic,
  1020. };
  1021.  
  1022. /*
  1023. * Combat-related dictionaries/defaults
  1024. */
  1025.  
  1026. /// <summary>
  1027. /// ActorSnoId's of Very fast moving mobs (eg wasps), for special skill-selection decisions
  1028. /// </summary>
  1029. public static HashSet<int> FastMovingMonsterIds { get { return fastMovementMonsterIds; } }
  1030. private static readonly HashSet<int> fastMovementMonsterIds = new HashSet<int>
  1031. {
  1032. 5212
  1033. };
  1034.  
  1035. /// <summary>
  1036. /// A list of crappy "summoned mobs" we should always ignore unless they are very close to us, eg "grunts", summoned skeletons etc.
  1037. /// </summary>
  1038. public static HashSet<int> ShortRangeAttackMonsterIds { get { return shortRangeAttackMonsterIds; } }
  1039. private static readonly HashSet<int> shortRangeAttackMonsterIds = new HashSet<int>
  1040. {
  1041. 4084, 4085, 5395, 144315,
  1042. };
  1043.  
  1044. /// <summary>
  1045. /// Dictionary of Actor SNO's and cooresponding weighting/Priority
  1046. /// </summary>
  1047. public static Dictionary<int, int> MonsterCustomWeights { get { return monsterCustomWeights; } }
  1048. private static readonly Dictionary<int, int> monsterCustomWeights = new Dictionary<int, int>
  1049. {
  1050. // Wood wraiths all this line (495 & 496 & 6572 & 139454 & 139456 & 170324 & 170325)
  1051. {495, 901}, {496, 901}, {6572, 901}, {139454, 901}, {139456, 901}, {170324, 901}, {170325, 901},
  1052. // -- added 4099 (act 2 fallen shaman)
  1053. // Fallen Shaman prophets goblin Summoners (365 & 4100)
  1054. {365, 1901}, {4099, 1901}, {4100, 1901},
  1055. // The annoying grunts summoned by the above
  1056. {4084, -250},
  1057. // Wretched mothers that summon zombies in act 1 (6639)
  1058. {6639, 951},
  1059. // Fallen lunatic (4095)
  1060. {4095, 2999},
  1061. // Pestilence hands (4738)
  1062. {4738, 1901},
  1063. // Belial Minions
  1064. {104014, 1500},
  1065. // Act 1 doors that skeletons get stuck behind
  1066. {454, 1500},
  1067. // Cydaea boss (95250)
  1068. {95250, 1501},
  1069.  
  1070. //Cydaea Spiderlings (137139)
  1071. {137139, -301},
  1072. // GoatMutantshaman Elite (4304)
  1073. {4304, 999},
  1074. // GoatMutantshaman (4300)
  1075. {4300, 901},
  1076. // Succubus (5508)
  1077. {5508, 801},
  1078. // skeleton summoners (5387, 5388, 5389)
  1079. {5387, 951}, {5388, 951}, {5389, 951},
  1080. // Weak skeletons summoned by the above
  1081. {5395, -401},
  1082. // Wasp/Bees - Act 2 annoying flyers (5212)
  1083. {5212, 751},
  1084. // Dark summoner - summons the helion dogs (6035)
  1085. {6035, 501},
  1086. // Dark berserkers - has the huge damaging slow hit (6052)
  1087. {6052, 501},
  1088. // The giant undead fat grotesques that explode in act 1 (3847)
  1089. {3847, 401},
  1090. // Hive pods that summon flyers in act 1 (4152, 4153, 4154)
  1091. {4152, 901}, {4153, 901}, {4154, 901},
  1092. // Totems in act 1 that summon the ranged goatmen (166452)
  1093. {166452, 901},
  1094. // Totems in act 1 dungeons that summon skeletons (176907)
  1095. {176907, 901},
  1096. // Act 2 Sand Monster + Zultun Kulle (kill sand monster first)
  1097. {226849, 20000}, {80509, 1100},
  1098. // Maghda and her minions
  1099. {6031, 801}, {178512, 901},
  1100. // Uber Bosses - Skeleton King {255929}, Maghda {256189} & Pets {219702} which must be killed first
  1101. {255929, 2999}, {219702, 1999}, {256189, 999},
  1102. // Uber Bosses - Zoltun Kulle {256508} & Siegebreaker {256187}
  1103. // Siegebreaker removed so the focus remains on Zoltun Kulle until he is dead
  1104. {256508, 2999},
  1105. //{256508, 2999}, {256187, 1899},
  1106. // Uber Bosses - Ghom {256709} & Rakanot {256711}
  1107. {256709, 2999}, {256711, 1899},
  1108.  
  1109. // A5 Forgotton War trash
  1110. { 300864, -300 },
  1111. };
  1112.  
  1113.  
  1114. /// <summary>
  1115. /// A list of all known SNO's of treasure goblins/bandits etc.
  1116. /// </summary>
  1117. public static HashSet<int> GoblinIds { get { return goblinIds; } }
  1118. private static readonly HashSet<int> goblinIds = new HashSet<int>
  1119. {
  1120. //5984, 5985, 5987, 5988, 405186, 380657
  1121.  
  1122. // treasureGoblin_A
  1123. 5984,
  1124. // treasureGoblin_B
  1125. 5985,
  1126. // treasureGoblin_backpack
  1127. 5986,
  1128. // treasureGoblin_C
  1129. 5987,
  1130. // treasureGoblin_Portal
  1131. //54862,
  1132. // treasureGoblin_Portal_Proxy
  1133. //54887,
  1134. // treasureGoblin_portal_emitter
  1135. //59948,
  1136. // treasureGoblin_portal_opening
  1137. //60549,
  1138. // treasureGoblin_portal_closing
  1139. //60558,
  1140. // treasureGoblin_portal_summon_trailActor
  1141. //108403,
  1142. // treasureGoblin_stunImmune_trailActor
  1143. //129286,
  1144. // Lore_Bestiary_TreasureGoblin
  1145. //147316,
  1146. // treasureGoblin_A_Slave
  1147. //326803,
  1148. // treasureGoblin_C_Unique_DevilsHand
  1149. 343046,
  1150. // p1_treasureGobin_A_Unique_GreedMinion
  1151. 380657,
  1152. // treasureGoblin_G
  1153. 391593,
  1154. // p1_treasureGoblin_inBackpack_A
  1155. 394196,
  1156. // p1_treasureGoblin_jump_trailActor
  1157. //403549,
  1158. // p1_treasureGoblin_tentacle_A
  1159. 405186, //Rainbow
  1160. // p1_treasureGoblin_tentacle_backpack
  1161. 405189,
  1162. // treasureGoblin_D_Splitter
  1163. 408354,
  1164. // treasureGoblin_E
  1165. 408655,
  1166. // treasureGoblin_F
  1167. 408989,
  1168. // treasureGoblin_Portal_Open
  1169. //410460,
  1170. // treasureGoblin_D_Splitter_02
  1171. 410572,
  1172. // treasureGoblin_D_Splitter_03
  1173. 410574,
  1174. // treasureGoblin_H
  1175. 413289,
  1176. // p1_treasureGoblin_teleport_shell
  1177. //428094,
  1178. // p1_treasureGoblin_backpack_B
  1179. 428205,
  1180. // p1_treasureGoblin_backpack_F
  1181. 428206,
  1182. // p1_treasureGoblin_backpack_C
  1183. 428211,
  1184. // p1_treasureGoblin_backpack_H
  1185. 428213,
  1186. // p1_treasureGoblin_backpack_D
  1187. 428247,
  1188. // treasureGoblin_I
  1189. 428663,
  1190. // treasureGoblin_J
  1191. 429161,
  1192. // p1_treasureGoblin_backpack_J
  1193. 429526,
  1194. // treasureGoblin_B_WhatsNew
  1195. 429615,
  1196. // treasureGoblin_F_WhatsNew
  1197. 429619,
  1198. // treasureGoblin_C_WhatsNew
  1199. 429620,
  1200. // treasureGoblin_B_FX_WhatsNew
  1201. 429624,
  1202. // p1_treasureGoblin_backpack_E
  1203. 429660,
  1204. // treasureGoblin_A_LegacyPuzzleRing
  1205. //429689,
  1206. // p1_treasureGoblin_backpack_I
  1207. 433905,
  1208. // treasureGoblin_J_WhatsNew
  1209. 434630,
  1210. // treasureGoblin_J_FX_WhatsNew
  1211. 434631,
  1212. // treasureGoblin_E_WhatsNew
  1213. 434632,
  1214. // treasureGoblin_D_WhatsNew
  1215. 434633,
  1216. // treasureGoblin_Anniversary_Event
  1217. 434745,
  1218. // treasureGoblin_K-613 ActorSnoId: 450993, Menagerist Goblin
  1219. 450993,
  1220. };
  1221.  
  1222. /// <summary>
  1223. /// Contains ActorSnoId of ranged units that should be attacked even if outside of kill radius
  1224. /// </summary>
  1225. public static HashSet<int> RangedMonsterIds { get { return rangedMonsterIds; } }
  1226. private static readonly HashSet<int> rangedMonsterIds = new HashSet<int>
  1227. {
  1228. 365, 4100, // fallen
  1229. 4304, 4300, // goat shaman
  1230. 4738, // pestilence
  1231. 4299, // goat ranged
  1232. 62736, 130794, // demon flyer
  1233. 5508, // succubus
  1234. 5388, 4286, 256015, 256000, 255996,
  1235. 5984, 5985, 5987, 5988, 405186, 450993, //goblins
  1236. };
  1237. // A list of bosses in the game, just to make CERTAIN they are treated as elites
  1238. /// <summary>
  1239. /// Contains ActorSnoId of known Bosses
  1240. /// </summary>
  1241. public static HashSet<int> BossIds { get { return bossIds; } }
  1242. private static readonly HashSet<int> bossIds = new HashSet<int>
  1243. {
  1244. // Siegebreaker (96192), Azmodan (89690), Cydea (95250), Heart-thing (193077),
  1245. 96192, 89690, 95250, 193077,
  1246. //Kulle (80509), Small Belial (220160), Big Belial (3349), Diablo 1 (114917), terror Diablo (133562)
  1247. 80509, 220160, 3349, 114917, 133562,
  1248. 62975, // Belial TrueForm
  1249. //Maghda, Kamyr (MiniBoss before Belial)
  1250. 6031, 51298,
  1251. // Ghom
  1252. 87642,
  1253. // I dunno?
  1254. 255929, 256711, 256508, 256187, 256189, 256709,
  1255. // Another Cydaea
  1256. 137139,
  1257. // Diablo shadow clones (needs all of them, there is a male & female version of each class!)
  1258. 144001, 144003, 143996, 143994,
  1259. // Jondar, Chancellor, Queen Araneae (act 1 dungeons), Skeleton King, Butcher
  1260. 86624, 156353, 51341, 5350, 3526,
  1261. 361347, //Jondar from the Adventure mode
  1262. 215103, // Istaku
  1263. 4630, // Rakanoth
  1264. 256015, // Xah'Rith Keywarden
  1265. 115403, // A1 Cain Skeleton boss
  1266. 4373, 4376, 177539, // A1 Robbers
  1267. 168240, // A2 Jewler quest
  1268. 84919, // Skeleton King
  1269. 108444, // ZombieFemale_A_TristramQuest (Wretched Mothers)
  1270. 176889, // ZombieFemale_Unique_WretchedQueen
  1271. 129439, //Arsect The Venomous
  1272. 164502, // sandMonster_A_Head_Guardian
  1273. 378665, // Greed
  1274.  
  1275. // A5
  1276. 316839, // x1_deathOrb_bodyPile
  1277. 375106, // A5 x1_Death_Orb_Monster
  1278. 375111, // A5 x1_Death_Orb_Master_Monster
  1279. 279394, // A5 Adria
  1280.  
  1281. 300862, // X1_BigRed_Chronodemon_Event_ForgottenWar
  1282. 318425, // X1_CoreEliteDemon_Chronodemon_Event_ForgottenWar
  1283.  
  1284. 300866, // X1_Angel_TrooperBoss_Event_ForgottenWar
  1285.  
  1286. 346482, // X1_PandExt_TimeTrap
  1287. 367456, // x1_Pand_Ext_Event_Hive_Blocker
  1288.  
  1289. 347276, // x1_Fortress_Soul_Grinder_A
  1290.  
  1291. 374751, // x1_PortalGuardian_A
  1292. 307339, // X1_Rockworm_Pand_Unique_HexMaze
  1293. 297730, // x1_Malthael_Boss
  1294. };
  1295.  
  1296. // Three special lists used purely for checking for the existance of a player's summoned mystic ally, gargantuan, or zombie dog
  1297.  
  1298. public static HashSet<int> MysticAllyIds { get { return mysticAllyIds; } }
  1299. private static readonly HashSet<int> mysticAllyIds = new HashSet<int>
  1300. {
  1301. 169123, 123885, 169890, 168878, 169891, 169077, 169904, 169907, 169906, 169908, 169905, 169909
  1302. };
  1303.  
  1304. public static HashSet<int> GargantuanIds { get { return gargantuanIds; } }
  1305. private static readonly HashSet<int> gargantuanIds = new HashSet<int>
  1306. {
  1307. 179780, 179778, 179772, 179779, 179776, 122305,
  1308. // Short Mans Finger
  1309. 432690, //ActorId: 432690, Type: Monster, Name: Legendary_WD_Gargantuan-485, Distance2d: 8.563416,
  1310. 432692, //ActorId: 432692, Type: Monster, Name: Legendary_WD_Gargantuan_Cleave-469,
  1311. 432693, //ActorId: 432693, Type: Monster, Name: Legendary_WD_Gargantuan_Cooldown-476,
  1312. 432695, //ActorId: 432695, Type: Monster, Name: Legendary_WD_Gargantuan_Slam-502,
  1313. 432694, //ActorId: 432694, Type: Monster, Name: Legendary_WD_Gargantuan_Poison-508,
  1314. 432691, //ActorId: 432691, Type: Monster, Name: Legendary_WD_Gargantuan_Absorb-522,
  1315. };
  1316.  
  1317. public static HashSet<int> ZombieDogIds { get { return zombieDogIds; } }
  1318. private static readonly HashSet<int> zombieDogIds = new HashSet<int>
  1319. {
  1320. 110959, 103235, 103215, 105763, 103217, 51353,
  1321. };
  1322.  
  1323. public static HashSet<int> FetishArmyIds { get { return fetishArmyIds; } }
  1324. private static readonly HashSet<int> fetishArmyIds = new HashSet<int>
  1325. {
  1326. 87189, //rune0, rune2, rune3 Fetish_Melee_A-78285
  1327. 89934, //rune1 Fetish_Skeleton_A-77992
  1328.  
  1329. // rune4 Tiki Torch 5 + 2 shamans
  1330. 409656, //Name: Fetish_Melee_fire-78523,
  1331. 90072, //Fetish_doubleStack_Shaman_A-78522,
  1332.  
  1333. 410238, //rune5 Fetish_Melee_poison-78595,
  1334.  
  1335. //ActorId: 409590, Type: Monster, Name: Fetish_Melee_Sycophants-852,
  1336. };
  1337.  
  1338. public static HashSet<int> DemonHunterPetIds { get { return demonHunterPetIds; } }
  1339. private static readonly HashSet<int> demonHunterPetIds = new HashSet<int>
  1340. {
  1341. 178664,
  1342. 173827,
  1343. 133741,
  1344. 159144,
  1345. 181748,
  1346. 159098,
  1347. 159102,
  1348. 159144,
  1349. 334861,
  1350.  
  1351. };
  1352.  
  1353. public static HashSet<int> DemonHunterSentryIds { get { return demonHunterSentryIds; } }
  1354. private static readonly HashSet<int> demonHunterSentryIds = new HashSet<int>
  1355. {
  1356. 141402, 150025, 150024, 168815, 150026, 150027,
  1357. };
  1358.  
  1359. public static HashSet<int> WizardHydraIds { get { return wizardHydraIds; } }
  1360. private static readonly HashSet<int> wizardHydraIds = new HashSet<int>
  1361. {
  1362. // Some hydras are 3 monsters, only use one of their heads.
  1363. 82972, //Type: Monster Name: Wizard_HydraHead_Frost_1-1037 ActorSnoId: 82972
  1364. 83959, // Type: Monster Name: Wizard_HydraHead_Big-1168 ActorSnoId: 83959
  1365. 325807, // Type: Monster Name: Wizard_HydraHead_fire2_1-1250 ActorSnoId: 325807
  1366. 82109, // Type: Monster Name: Wizard_HydraHead_Lightning_1-1288 ActorSnoId: 82109,
  1367. 81515, // Type: Monster Name: Wizard_HydraHead_Arcane_1-1338 ActorSnoId: 81515,
  1368. 80745, // Type: Monster Name: Wizard_HydraHead_Default_1-1364 ActorSnoId: 80745,
  1369. };
  1370.  
  1371. public static HashSet<int> AncientIds { get { return ancientIds; } }
  1372. private static readonly HashSet<int> ancientIds = new HashSet<int>
  1373. {
  1374. 90443, //Name: Barbarian_CallOfTheAncients_1-1028
  1375. 90535, //Name: Barbarian_CallOfTheAncients_2-1029
  1376. 90536, //Name: Barbarian_CallOfTheAncients_3-1030
  1377. };
  1378.  
  1379. /// <summary>
  1380. /// World-object dictionaries eg large object lists, ignore lists etc.
  1381. /// A list of SNO's to *FORCE* to type: Item. (BE CAREFUL WITH THIS!).
  1382. /// </summary>
  1383. public static HashSet<int> ForceToItemOverrideIds { get { return forceToItemOverrideIds; } }
  1384. private static readonly HashSet<int> forceToItemOverrideIds = new HashSet<int>
  1385. {
  1386. 166943, // DemonTrebuchetKey, infernal key
  1387. 255880, // DemonKey_Destruction
  1388. 255881, // DemonKey_Hate
  1389. 255882, // DemonKey_Terror
  1390. };
  1391.  
  1392. /// <summary>
  1393. /// Interactable whitelist - things that need interacting with like special wheels, levers - they will be blacklisted for 30 seconds after one-use
  1394. /// </summary>
  1395. public static HashSet<int> InteractWhiteListIds { get { return interactWhiteListIds; } }
  1396. private static readonly HashSet<int> interactWhiteListIds = new HashSet<int>
  1397. {
  1398. //328830//x1_Fortress_Portal_Switch (328830)
  1399. 309432, // x1_westm_Bridge
  1400. 209133, // TentacleLord (209133) QuestSnoId: 434753 QuestStep: 1, Description: Slay the Infernal Bovine herd!
  1401. 363725, // Special Event Chest
  1402.  
  1403. 56686, // a3dun_Keep_Bridge_Switch
  1404. 211999, // a3dun_Keep_Bridge_Switch_B
  1405. 52685, // a3dun_Keep_Bridge
  1406. 54882, // a3dun_Keep_Door_Wooden_A
  1407. 105478, // a1dun_Leor_Spike_Spawner_Switch
  1408. 102927, // A1 Cursed Hold Prisoners
  1409. 5747, // A1 Cathedral Switch
  1410. 365097, // Cursed Chest - Damp Cellar
  1411.  
  1412. // A5
  1413. 348096, // Paths of the Drowned - portal switches - x1_Bog_Beacon_B
  1414. 361364, // A5 Siege Rune Path of War
  1415.  
  1416. 274457, // A5 Spirit of Malthael - Tower of Korelan
  1417. 368515, // A5 Nephalem Switch - Passage to Corvus
  1418.  
  1419. 354407, // X1_Angel_Common_Event_GreatWeapon
  1420.  
  1421.  
  1422.  
  1423. };
  1424.  
  1425. public static HashSet<int> HighPriorityInteractables { get { return highPriorityInteractables; } }
  1426. private static readonly HashSet<int> highPriorityInteractables = new HashSet<int>
  1427. {
  1428. 56686, // a3dun_Keep_Bridge_Switch
  1429. 211999, // a3dun_Keep_Bridge_Switch_B
  1430. };
  1431.  
  1432. public static Dictionary<int, int> InteractEndAnimations { get { return interactEndAnimations; } }
  1433. private static readonly Dictionary<int, int> interactEndAnimations = new Dictionary<int, int>()
  1434. {
  1435. {348096, 348093}, // x1_Bog_Beacon_B
  1436. };
  1437.  
  1438. /// <summary>
  1439. /// NOTE: you don't NEED interactable SNO's listed here. But if they are listed here, *THIS* is the range at which your character will try to walk to within the object
  1440. /// BEFORE trying to actually "click it". Certain objects need you to get very close, so it's worth having them listed with low interact ranges
  1441. /// </summary>
  1442. public static Dictionary<int, float> CustomObjectRadius { get { return customObjectRadius; } }
  1443. private static readonly Dictionary<int, float> customObjectRadius = new Dictionary<int, float>
  1444. {
  1445. {56686, 4},
  1446. {52685, 4},
  1447. {54882, 40},
  1448. {3349, 25}, // Belial
  1449. {225270, 35},
  1450. {180575, 10}, // Diablo Arena Health Well
  1451. {375111, 45f}, // A5 x1_Death_Orb_Master_Monster
  1452. {301177, 15f}, // x1_PandExt_Time_Activator
  1453. {368515, 5f}, // A5 Nephalem Switch - Passage to Corvus
  1454. {309432, 37f}, // x1_westm_Bridge
  1455. {54850, 14f}, // a3dun_Keep_SiegeTowerDoor
  1456. {325136, 15f},
  1457. };
  1458.  
  1459. /// <summary>
  1460. /// Navigation obstacles for standard navigation down dungeons etc. to help DB movement
  1461. /// MAKE SURE you add the *SAME* SNO to the "size" dictionary below, and include a reasonable size (keep it smaller rather than larger) for the SNO.
  1462. /// </summary>
  1463. public static HashSet<int> NavigationObstacleIds { get { return navigationObstacleIds; } }
  1464. private static readonly HashSet<int> navigationObstacleIds = new HashSet<int>
  1465. {
  1466. 104596, //GizmoType: DestroyableObject Name: trOut_FesteringWoods_Neph_Column_B-27477 ActorSnoId: 104596
  1467.  
  1468. 174900, 185391, // demonic forge
  1469. 198977,293900, // Azmo room center
  1470. 194682, 81699, 3340, 123325,
  1471.  
  1472. 158681, // A1 Blacksmith_Lore
  1473. 104596, // A1 trOut_FesteringWoods_Neph_Column_B
  1474. 104632, // A1 trOut_FesteringWoods_Neph_Column_B_Broken_Base
  1475. 105303, // A1 trOut_FesteringWoods_Neph_Column_C_Broken_Base_Bottom
  1476. 104827, // A1 trOut_FesteringWoods_Neph_Column_C_Broken_Base
  1477.  
  1478. 332924, // x1_Bog_bloodSpring_small, Blood Spring - Overgrown Ruins
  1479. 332922, // x1_Bog_bloodSpring_medium
  1480. 332923, // x1_Bog_bloodSpring_large
  1481. 321855, // x1_Pand_Ext_Ordnance_Mine
  1482. 355898, // x1_Bog_Family_Guard_Tower_Stump
  1483. 376917, // [1FA3B814] Type: ServerProp Name: x1_Westm_Hub_Stool_A-381422 ActorSnoId: 376917, Distance: 2.337004
  1484. (int)SNOActor.px_Bounty_Camp_Hellportals_Frame, // A4 bounties
  1485. (int)SNOActor.px_Bounty_Camp_Pinger, // A4 bounties
  1486.  
  1487. // DyingHymn A4 Bounties
  1488. 433402,
  1489. 434971,
  1490.  
  1491. // Bulba
  1492. 433383, // A3 - Bounty - Catapult Command - Catapults
  1493. 433384, // A3 - Bounty - Catapult Command - Catapults
  1494. 210433 //A3 - Catapult_a3dunKeep_WarMachines_Snow_Firing
  1495. };
  1496.  
  1497. /// <summary>
  1498. /// Size of the navigation obstacles above (actual SNO list must be matching the above list!)
  1499. /// </summary>
  1500. public static Dictionary<int, float> ObstacleCustomRadius { get { return obstacleCustomRadius; } }
  1501. private static readonly Dictionary<int, float> obstacleCustomRadius = new Dictionary<int, float>
  1502. {
  1503. {174900, 25}, {194682, 20}, {81699, 20}, {3340, 12}, {123325, 25}, {185391, 25},
  1504. {104596, 15}, // trOut_FesteringWoods_Neph_Column_B
  1505. {104632, 15}, // trOut_FesteringWoods_Neph_Column_B_Broken_Base
  1506. {105303, 15}, // trOut_FesteringWoods_Neph_Column_C_Broken_Base_Bottom
  1507. {104827, 15}, // trOut_FesteringWoods_Neph_Column_C_Broken_Base
  1508. {355898, 12}, // x1_Bog_Family_Guard_Tower_Stump
  1509. {376917, 10},
  1510. {293900, 20f}, // Azmo Blocking Shit
  1511.  
  1512.  
  1513. // DyingHymn A4 Bounties
  1514. {433402, 8},
  1515. {434971, 10},
  1516.  
  1517. };
  1518.  
  1519. public static HashSet<int> ForceDestructibles { get { return forceDestructibles; } }
  1520. private static HashSet<int> forceDestructibles = new HashSet<int>()
  1521. {
  1522. 273323, // x1_westm_Door_Wide_Clicky
  1523. 55325, // a3dun_Keep_Door_Destructable
  1524.  
  1525. 225252, // Shamanic Ward - Revenge of Gharbad bounty
  1526.  
  1527. 331397, // x1_westm_Graveyard_Floor_Sarcophagus_Undead_Husband_Event
  1528.  
  1529. 386274, // Tgoblin_Gold_Pile_C
  1530.  
  1531. 211861, //Pinata
  1532.  
  1533. 437152, // A3 - Bounty: Khazra Guardians (436284)
  1534.  
  1535. 121821, // A2 - Bounty: The Putrid Waters (433017)
  1536. };
  1537.  
  1538. /// <summary>
  1539. /// This is the RadiusDistance at which destructibles and barricades (logstacks, large crates, carts, etc.) are added to the cache
  1540. /// </summary>
  1541. public static Dictionary<int, float> DestructableObjectRadius { get { return destructableObjectRadius; } }
  1542. private static readonly Dictionary<int, float> destructableObjectRadius = new Dictionary<int, float>
  1543. {
  1544. {2972, 10}, {80357, 16}, {116508, 10}, {113932, 8}, {197514, 18}, {108587, 8}, {108618, 8}, {108612, 8}, {116409, 18}, {121586, 22},
  1545. {195101, 10}, {195108, 25}, {170657, 5}, {181228, 10}, {211959, 25}, {210418, 25}, {174496, 4}, {193963, 5}, {159066, 12}, {160570, 12},
  1546. {55325, 5}, {5718, 14}, {5909, 10}, {5792, 8}, {108194, 8}, {129031, 30}, {192867, 3.5f}, {155255, 8}, {54530, 6}, {157541, 6},
  1547. {93306, 10},
  1548. };
  1549.  
  1550. /// <summary>
  1551. /// Destructible things that need targeting by a location instead of an ACDGUID (stuff you can't "click on" to destroy in-game)
  1552. /// </summary>
  1553. public static HashSet<int> DestroyAtLocationIds { get { return destroyAtLocationIds; } }
  1554. private static readonly HashSet<int> destroyAtLocationIds = new HashSet<int>
  1555. {
  1556. 170657, 116409, 121586, 155255, 104596, 93306,
  1557. };
  1558.  
  1559. /// <summary>
  1560. /// Resplendent chest SNO list
  1561. /// </summary>
  1562. public static HashSet<int> ResplendentChestIds { get { return resplendentChestIds; } }
  1563. private static readonly HashSet<int> resplendentChestIds = new HashSet<int>
  1564. {
  1565. 62873, 95011, 81424, 108230, 111808, 111809, 211861, 62866, 109264, 62866, 62860, 96993,
  1566. // Magi
  1567. 112182,
  1568. 363725, 357331, // chests after Cursed Chest
  1569.  
  1570. 301177, // A5 Timeless Prison Switch
  1571.  
  1572. 433670, //[1FA93634] GizmoType: Chest Name: x1_Global_Chest_BossBounty-6118 ActorSnoId: 433670 Distance: 14.60398
  1573. };
  1574. /// <summary>
  1575. /// Objects that should never be ignored due to no Line of Sight (LoS) or ZDiff
  1576. /// </summary>
  1577. public static HashSet<int> LineOfSightWhitelist { get { return lineOfSightWhitelist; } }
  1578. private static readonly HashSet<int> lineOfSightWhitelist = new HashSet<int>
  1579. {
  1580.  
  1581. 410366, // Siege_wallMonster_C = 410366, Bounty to kill wall monsters, failing los checks.
  1582. 309432, // x1_westm_Bridge
  1583. 116807, // Butcher Health Well
  1584. 180575, // Diablo arena Health Well
  1585. 129031, // A3 Skycrown Catapults
  1586. 220160, // Small Belial (220160),
  1587. 3349, // Big Belial (3349),
  1588. 210268, // Corrupt Growths 2nd Tier
  1589. 193077, // a3dun_Crater_ST_GiantDemonHeart_Mob
  1590.  
  1591. 375106, // A5 x1_Death_Orb_Monster
  1592. 375111, // A5 x1_Death_Orb_Master_Monster
  1593.  
  1594. 329390, // x1_Pand_BatteringRam_Hook_B_low
  1595. 368515, // A5 Nephalem Switch - Passage to Corvus
  1596. 347276, // x1_Fortress_Soul_Grinder_A
  1597. 326937, // x1_Pand_BatteringRam_Hook_B
  1598. 291368, // x1_Urzael_Boss
  1599. };
  1600.  
  1601. public static HashSet<int> CorruptGrowthIds = new HashSet<int>()
  1602. {
  1603. 210120, //a4dun_Garden_Corruption_Monster
  1604. 210268, //a4dun_Garden_Corruption_HellRift_Monster
  1605. 360111, //a4dun_Garden_Corruption_Monster_Despair
  1606. };
  1607.  
  1608. /// <summary>
  1609. /// Chests/average-level containers that deserve a bit of extra radius (ie - they are more worthwhile to loot than "random" misc/junk containers)
  1610. /// </summary>
  1611. public static HashSet<int> ContainerWhiteListIds { get { return containerWhiteListIds; } }
  1612. private static readonly HashSet<int> containerWhiteListIds = new HashSet<int>
  1613. {
  1614.  
  1615. (int)SNOActor.x1_Catacombs_Weapon_Rack_Raise,
  1616. 62859, // TrOut_Fields_Chest
  1617. 62865, // TrOut_Highlands_Chest
  1618. 62872, // CaOut_Oasis_Chest
  1619. 78790, // trOut_wilderness_chest
  1620. 79016, // trOut_Tristram_chest
  1621. 94708, // a1dun_Leor_Chest
  1622. 96522, // a1dun_Cath_chest
  1623. 130170, // a3dun_Crater_Chest
  1624. 108122, // caOut_StingingWinds_Chest
  1625. 111870, // A3_Battlefield_Chest_Snowy
  1626. 111947, // A3_Battlefield_Chest_Frosty
  1627. 213447, // Lore_AzmodanChest3
  1628. 213446, // Lore_AzmodanChest2
  1629. 51300, // a3dun_Keep_Chest_A
  1630. 179865, // a3dun_Crater_ST_Chest
  1631. 109264, // a3dun_Keep_Chest_Rare
  1632. 212491, // a1dun_Random_Cloud
  1633. 210422, // a1dun_random_pot_of_gold_A
  1634. 211861, // Pinata
  1635. 196945, // a2dun_Spider_EggSack__Chest
  1636. 70534, // a2dun_Spider_Chest
  1637. //289794, // Weaponracks on battlefields of eternity --> best place to farm white crafting materials
  1638. 103919, // Demonic Vessels
  1639. 78030, // GizmoType: Chest Name: trOut_Wilderness_Scarecrow_A-3924 ActorSnoId: 78030
  1640. 173325, // Anvil of Fury
  1641.  
  1642. 301177, // A5 Timeless Prison Switch
  1643.  
  1644. // Kevin Spacey was here
  1645. 193023, //LootType3_GraveGuard_C_Corpse_03
  1646. 156682, //Adventurer_A_Corpse_01_WarrivEvent
  1647. 5758, //trDun_Cath_FloorSpawner_01
  1648. 5724, //trDun_Cath_BookcaseShelves_A
  1649. 85790, //Cath_Lecturn_ LachdanansScroll
  1650. 227305, //Lore_Inarius_Corrupt
  1651. 137125, //FesteringWoods_WarriorsRest_Lore
  1652. };
  1653.  
  1654. /// <summary>
  1655. /// Contains ActorSnoId's of world objects that should be blacklisted
  1656. /// </summary>
  1657. public static HashSet<int> BlackListIds { get { return blacklistIds; } }
  1658. private static HashSet<int> blacklistIds = new HashSet<int>
  1659. {
  1660. (int)SNOActor.a1dun_Leor_Jail_Door_SuperLocked_A_Fake,
  1661. (int)SNOActor.a3dun_Keep_BucketMetal_A_Breakable,
  1662. (int)SNOActor.x1_Catacombs_Breakable_Half_Bridge_Walkway_A,
  1663.  
  1664. //209133, //TentacleLord
  1665. (int)SNOActor.trDun_Cath_Gate_D_UdderChaos, // Door that is locked until you talk to cow king
  1666.  
  1667. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_A,
  1668. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_B,
  1669. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_C,
  1670. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_E,
  1671. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_F,
  1672. (int)SNOActor.x1_BogCave_Breakable_Stalagmites_G,
  1673. (int)SNOActor.px_Cave_A_Breakable_Stalagmites_A,
  1674. (int)SNOActor.px_Cave_A_Breakable_Stalagmites_B,
  1675. (int)SNOActor.px_Cave_A_Breakable_Stalagmites_C,
  1676. (int)SNOActor. px_Cave_A_Breakable_Stalagmites_E,
  1677. (int)SNOActor.px_Cave_A_Breakable_Stalagmites_F,
  1678. (int)SNOActor.px_Cave_A_Breakable_Stalagmites_G,
  1679.  
  1680. 165415, //ActorId: 165415, Type: Gizmo, Name: a2dun_Zolt_SandBridgeBase_BossFight-529, Distance2d: 41.01208, CollisionRadius: 18.31754, MinimapActive: 0, MinimapIconOverride: -1, MinimapDisableArrow: 0
  1681. 165415, //ActorId: 165415, Type: Gizmo, Name: a2dun_Zolt_SandBridgeBase_BossFight-921, Distance2d: 41.67792, CollisionRadius: 18.31754, MinimapActive: 0, MinimapIconOverride: -1, MinimapDisableArrow: 0
  1682. //156328, //ActorId: 156328, Type: Gizmo, Name: a2dun_Zolt_black_soulstone-515, Distance2d: 41.42352, CollisionRadius: 20.39608, MinimapActive: 0, MinimapIconOverride: -1, MinimapDisableArrow: 0
  1683.  
  1684. 5674, //trDun_book_pile_b ActorSnoId=5674
  1685. 362323, // x1_WestmHub_GuardNoHelmUnarmed
  1686. // World Objects
  1687. 163449, 2909, 58283, 58321, 87809, 90150, 91600, 97023, 97350, 97381, 72689, 121327, 54515, 3340, 122076, 123640,
  1688. 60665, 60844, 78554, 86400, 86428, 81699, 86266, 86400, 6190, 80002, 104596, 58836, 104827, 74909, 6155, 6156, 6158, 6159, 75132,
  1689. 181504, 91688, 3007, 3011, 3014, 130858, 131573, 214396, 182730, 226087, 141639, 206569, 15119, 54413, 54926, 2979, 5776, 3949,
  1690. 108490, 52833, 200371, 153752, 2972, 206527, 3628,
  1691. //a3dun_crater_st_Demo_ChainPylon_Fire_Azmodan, a3dun_crater_st_Demon_ChainPylon_Fire_MistressOfPain
  1692. 201680,
  1693. 217285, //trOut_Leor_painting
  1694. 5902, // trDun_Magic_Painting_H_NoSpawn
  1695. // uber fire chains in Realm of Turmoil
  1696. 263014,
  1697. 249192, 251416, 249191, 251730, // summoned skeleton from ring
  1698. // Units below here
  1699. 111456, 5013, 5014, 205756, 205746, 4182, 4183, 4644, 4062, 4538, 52693, 162575, 2928, 51291, 51292,
  1700. 96132, 90958, 90959, 80980, 51292, 51291, 2928, 3546, 129345, 81857, 138428, 81857, 60583, 170038, 174854, 190390,
  1701. 194263, 87189, 90072, 107031, 106584, 186130, 187265,
  1702. 108012, 103279, 74004, 84531, 84538, 190492, 6318, 107705, 105681, 89934,
  1703. 89933, 182276, 117574, 182271, 182283, 182278, 128895, 81980, 82111, 81226, 81227, 107067, 106749,
  1704. 107107, 107112, 106731, 107752, 107829, 90321, 107828, 121327, 249320, 81232, 81231, 81239, 81515, 210433, 195414,
  1705. 80758, 80757, 80745, 81229, 81230, 82109, 83024, 83025, 82972, 83959, 249190, 251396, 138472, 118260, 200226, 192654, 245828,
  1706. 215103, 132951, 217508, 199998, 199997, 114527, 245910, 169123, 123885, 169890, 168878, 169891, 169077, 169904, 169907,
  1707. 169906, 169908, 169905, 169909, 179780, 179778, 179772, 179779, 179776, 122305, 80140, 110959, 103235, 103215, 105763, 103217, 51353,
  1708. 4176, 178664, 173827, 133741, 159144, 181748, 159098, 206569, 200706, 5895, 5896, 5897, 5899, 4686, 85843, 249338,
  1709. 251416, 249192, 4798, 183892,196899, 196900, 196903, 223333, 220636, 218951, 245838,
  1710. //bone pile
  1711. 218951,245838,
  1712. // rrrix act 1
  1713. 108882, 245919, 5944, 165475, 199998, 168875, 105323, 85690, 105321, 108266, 89578,
  1714. 175181, // trDun_Crypt_Skeleton_King_Throne_Parts
  1715. // rrrix act 2
  1716. 213907, 92519, 61544, 105681, 114527, 114642, 139933, 144405, 156890, 164057, 164195, 180254, 180802, 180809, 181173, 181174, 181177, 181181,
  1717. 181182, 181185, 181290, 181292, 181306, 181309, 181313, 181326, 181563, 181857, 181858, 187265, 191433, 191462, 191641, 192880, 192881, 196413, 196435,
  1718. 197280, 199191, 199264, 199274, 199597, 199664, 200979, 200982, 201236, 201580, 201581, 201583, 204183, 205746, 205756, 210087, 213907, 219223,
  1719. 220114, 3011, 3205, 3539, 3582, 3584, 3595, 3600, 4580, 52693, 5466, 55005, 5509, 62522,
  1720. 205756, 5509, 200371, 167185, 181195, 217346, 178161, 60108,
  1721. // rrrix act 3
  1722. 182443, 211456,
  1723. // uber fire chains in Realm of Turmoil and Iron Gate in Realm of Chaos
  1724. 263014,
  1725. 5724, 5727,
  1726. 5869, // trDun_Gargoyle_01
  1727. 5738, // trDun_Cath_Breakable_pillar
  1728.  
  1729. 105478, // a1dun_Leor_Spike_Spawner_Switch
  1730. /*
  1731. * A5
  1732. */
  1733.  
  1734. // Pandemonium Fortress
  1735. 357297, // X1_Fortress_Rack_C
  1736. //374196, // X1_Fortress_Rack_C_Stump
  1737. 357295, // X1_Fortress_Rack_B
  1738. //374195, // X1_Fortress_Rack_B_Stump
  1739. 357299, // X1_Fortress_Rack_D
  1740. //374197, // X1_Fortress_Rack_D_Stump
  1741. 357301, // X1_Fortress_Rack_E
  1742. //374198, // X1_Fortress_Rack_E_Stump
  1743. 357306, // X1_Fortress_Rack_F
  1744. //374199, // X1_Fortress_Rack_F_Stump
  1745. 365503, // X1_Fortress_FloatRubble_A
  1746. 365562, // X1_Fortress_FloatRubble_B
  1747. 365580, // X1_Fortress_FloatRubble_C
  1748. 365602, // X1_Fortress_FloatRubble_D
  1749. 365611, // X1_Fortress_FloatRubble_E
  1750. 365739, // X1_Fortress_FloatRubble_F
  1751.  
  1752. 355365, // x1_Abattoir_furnaceWall
  1753.  
  1754. 304313, // x1_abattoir_furnace_01
  1755. 375383, // x1_Abattoir_furnaceSpinner_Event_Phase2 -- this is a rotating avoidance, with a fire "beam" about 45f in length
  1756.  
  1757. 265637, // x1_Catacombs_Weapon_Rack_Raise
  1758.  
  1759. 321479, // x1_Westm_HeroWorship03_VO
  1760.  
  1761. 328008, // X1_Westm_Door_Giant_Closed
  1762. 312441, // X1_Westm_Door_Giant_Opening_Event
  1763.  
  1764. 328942, // x1_Pand_Ext_ImperiusCharge_Barricade
  1765. 324867, // x1_Westm_DeathOrb_Caster_TEST
  1766. 313302, // X1_Westm_Breakable_Wolf_Head_A
  1767.  
  1768. 368268, // x1_Urzael_SoundSpawner
  1769. 368626, // x1_Urzael_SoundSpawner
  1770. 368599, // x1_Urzael_SoundSpawner
  1771. 368621, // x1_Urzael_SoundSpawner
  1772.  
  1773. 377253, // x1_Fortress_Crystal_Prison_Shield
  1774. 316221, // X1_WarpToPortal
  1775. 370187, // x1_Malthael_Boss_Orb_Collapse
  1776. 328830, // x1_Fortress_Portal_Switch
  1777. 374174, // X1_WarpToPortal
  1778.  
  1779. 356639, // x1_Catacombs_Breakable_Window_Relief
  1780.  
  1781. //x1_Westm_HeroWorship01_VO Dist=10 IsElite=False LoS=True HP=1,00 Dir=SW - Name=x1
  1782. //It's trying to attack that in town
  1783. //x1_Westm_HeroWorship01_VO = 321451,
  1784. //x1_Westm_HeroWorship02_VO = 321454,
  1785. //x1_Westm_HeroWorship03_VO = 321479,
  1786. 321451, 321454, 321479,
  1787.  
  1788.  
  1789. // Bulba
  1790. 430733, //A1 Templar Inquisition
  1791. 432259, //A1 The Triune Reborn
  1792. 434366, //A1 : Wortham Survivors
  1793. 432770, //A1: Queen's Desert
  1794. 433051, //A2: Prisoners of the Cult
  1795. 432331, //A2: Blood and Iron
  1796. 432885, //A2: The Ancient Devices
  1797. 433184, //A3: The Lost Patrol
  1798. 433295, //A3: The Demon Gates
  1799. 433385, //A3: Catapult Command (It's a switch instead of chest, so might be pre 2.2 bounty)
  1800. 433402, //A4: Hell Portals
  1801. 433124, //A4: Tormented Angels
  1802. 433246, //A5: Death's Embrace
  1803. 433316, //A5: Rathma's Gift
  1804.  
  1805. 435630, // Pinger 1
  1806. 434971, // Pinger 2
  1807.  
  1808. 175603, //A3 - Oasis - a2dun_Aqd_Act_Waterwheel_Lever_A_01_WaterPuzzle
  1809.  
  1810. 287208, // X1_Westm_Door_Giant_Closed_A
  1811.  
  1812. 446170, // x1_Monstrosity_ScorpionBug_A_CryptCursedShrine
  1813.  
  1814. };
  1815.  
  1816. /// <summary>
  1817. /// A list of LevelAreaSnoIdId's that the bot should always ignore Line of Sight
  1818. /// </summary>
  1819. public static HashSet<int> NeverRaycastLevelAreaIds { get { return neverRaycastLevelAreaIds; } }
  1820. private static readonly HashSet<int> neverRaycastLevelAreaIds = new HashSet<int>()
  1821. {
  1822. 405915, // p1_TieredRift_Challenge
  1823. };
  1824.  
  1825.  
  1826. public static HashSet<int> AlwaysRaycastWorlds { get { return DataDictionary.alwaysRaycastWorlds; } }
  1827. private static readonly HashSet<int> alwaysRaycastWorlds = new HashSet<int>()
  1828. {
  1829. 271233, // Pandemonium Fortress 1
  1830. 271235, // Pandemonium Fortress 2
  1831. };
  1832.  
  1833.  
  1834.  
  1835. /// <summary>
  1836. /// Last used-timers for all abilities to prevent spamming D3 memory for cancast checks too often
  1837. /// These should NEVER need manually editing
  1838. /// But you do need to make sure every skill used by TrinityPlugin is listed in here once!
  1839. /// </summary>
  1840. public static Dictionary<SNOPower, DateTime> LastUseAbilityTimeDefaults
  1841. {
  1842. get { return lastUseAbilityTimeDefaults; }
  1843. internal set { lastUseAbilityTimeDefaults = value; }
  1844. }
  1845. private static Dictionary<SNOPower, DateTime> lastUseAbilityTimeDefaults = new Dictionary<SNOPower, DateTime>
  1846. {
  1847. {SNOPower.DrinkHealthPotion, DateTime.MinValue},
  1848. {SNOPower.Weapon_Melee_Instant, DateTime.MinValue},
  1849. {SNOPower.Weapon_Ranged_Instant, DateTime.MinValue},
  1850. };
  1851.  
  1852. public static HashSet<int> ForceUseWOTBIds { get { return DataDictionary.forceUseWOTBIds; } }
  1853. private static readonly HashSet<int> forceUseWOTBIds = new HashSet<int>()
  1854. {
  1855. 256015, 256000, 255996
  1856. };
  1857.  
  1858. public static HashSet<int> IgnoreUntargettableAttribute { get { return DataDictionary.ignoreUntargettableAttribute; } }
  1859. private static readonly HashSet<int> ignoreUntargettableAttribute = new HashSet<int>()
  1860. {
  1861. 5432, // A2 Snakem
  1862. };
  1863.  
  1864. public static HashSet<string> WhiteItemCraftingWhiteList { get { return whiteItemCraftingWhiteList; } }
  1865.  
  1866. /// <summary>
  1867. /// Mark the area underneath these objects @ radius 'unwalkable' - use with caution.
  1868. /// </summary>
  1869. public static Dictionary<int, float> PathFindingObstacles = new Dictionary<int, float>
  1870. {
  1871. {(int) SNOActor.a3_Battlefield_demonic_forge, 16f},
  1872. {(int) SNOActor.a3_crater_st_demonic_forge, 16f},
  1873. {(int) SNOActor.Player_Shared_Stash, 6f},
  1874. {(int) SNOActor.PoolOfReflection, 8f},
  1875. {(int) SNOActor.a2dun_Aqd_Act_Wood_Platform_A_01, 5f} // Environment post blocking nav
  1876. };
  1877.  
  1878. private static HashSet<string> whiteItemCraftingWhiteList = new HashSet<string>()
  1879. {
  1880. "Ascended Pauldrons",
  1881. "Ascended Armor",
  1882. "Ascended Bracers",
  1883. "Ascended Crown",
  1884. "Ascended Pauldrons",
  1885. "Archon Sash",
  1886. "Ascended Faulds",
  1887. "Ascended Greaves",
  1888. "Ascended Gauntlets",
  1889.  
  1890. "Limb Cleaver",
  1891. "Doubleshot",
  1892. "Whirlwind Staff",
  1893. "Flesh Render",
  1894. "Penetrator",
  1895. "Ascended Shield",
  1896. "Punyal",
  1897. "Dire Axe",
  1898. "Tsunami Blade",
  1899. "Kerykeion",
  1900. "Steppes Smasher",
  1901. "Grandfather Flail",
  1902. "Oxybeles",
  1903. "Persuader",
  1904. "Skullsplitter",
  1905. "Suwaiya",
  1906. "Tecpatl",
  1907. "Diabolic Wand"
  1908. };
  1909. // Chamber of Suffering (Butcher's Lair)
  1910. public static HashSet<Vector3> ChamberOfSufferingSafePoints = new HashSet<Vector3>
  1911. {
  1912. new Vector3(122.3376f, 120.1721f, 0), // Center
  1913. new Vector3(138.504f, 88.64854f, 0), // Top Left
  1914. new Vector3(98.61596f, 95.93278f, 0), // Top
  1915. new Vector3(93.04589f, 134.9459f, 0), // Top Right
  1916. new Vector3(107.9791f, 150.6952f, 0), // Bottom Right
  1917. new Vector3(146.8563f, 144.0836f, 0), // Bottom
  1918. new Vector3(151.9562f, 104.8417f, 0), // Bottom Left
  1919. };
  1920.  
  1921. public static HashSet<int> TownLevelAreaIds = new HashSet<int>()
  1922. {
  1923. 332339,168314,92945,270011
  1924. };
  1925.  
  1926. public static Dictionary<int, Vector3> ButcherPanelPositions = new Dictionary<int, Vector3>
  1927. {
  1928. { 201426, new Vector3(121, 121, 0)}, // ButcherLair_FloorPanel_MidMiddle_Base
  1929. { 201242, new Vector3(158, 111, 0)}, // ButcherLair_FloorPanel_LowerLeft_Base
  1930. { 200969, new Vector3(152, 151, 0)}, // ButcherLair_FloorPanel_LowerMid_Base
  1931. { 201438, new Vector3(91, 91, 0)}, // ButcherLair_FloorPanel_UpperMid_Base
  1932. { 201423, new Vector3(133, 78, 0)}, // ButcherLair_FloorPanel_UpperLeft_Base
  1933. { 201464, new Vector3(107, 160, 0)}, // ButcherLair_FloorPanel_LowerRight_Base
  1934. { 201454, new Vector3(80, 134, 0)}, // ButcherLair_FloorPanel_UpperRight_Base
  1935. };
  1936.  
  1937. public readonly static Dictionary<Item, SNOPower> PowerByItem = new Dictionary<Item, SNOPower>
  1938. {
  1939. { Legendary.HarringtonWaistguard, SNOPower.ItemPassive_Unique_Ring_685_x1 },
  1940. { Legendary.PoxFaulds, SNOPower.itemPassive_Unique_Pants_007_x1 },
  1941. { Legendary.RechelsRingOfLarceny, SNOPower.ItemPassive_Unique_Ring_508_x1 },
  1942. //{ Legendary.BottomlessPotionofKulleAid, SNOPower.X1_Legendary_Potion_06 },
  1943. //{ Legendary.PridesFall, SNOPower.ItemPassive_Unique_Helm_017_x1 },
  1944. { Legendary.KekegisUnbreakableSpirit, SNOPower.ItemPassive_Unique_Ring_569_x1 },
  1945. };
  1946.  
  1947. public readonly static Dictionary<Item, string> MinionInternalNameTokenByItem = new Dictionary<Item, string>
  1948. {
  1949. { Legendary.Maximus, "DemonChains_ItemPassive" },
  1950. { Legendary.HauntOfVaxo, "_shadowClone_" }
  1951. };
  1952.  
  1953. public readonly static Dictionary<Skill, Set> AllRuneSetsBySkill = new Dictionary<Skill, Set>
  1954. {
  1955. { Skills.Barbarian.FuriousCharge, Sets.TheLegacyOfRaekor },
  1956. { Skills.Wizard.Archon, Sets.VyrsAmazingArcana },
  1957. };
  1958.  
  1959. public readonly static HashSet<TrinityObjectType> InteractableTypes = new HashSet<TrinityObjectType>
  1960. {
  1961. TrinityObjectType.Item,
  1962. TrinityObjectType.Door,
  1963. TrinityObjectType.Container,
  1964. TrinityObjectType.HealthWell,
  1965. TrinityObjectType.CursedChest,
  1966. TrinityObjectType.Interactable,
  1967. TrinityObjectType.Shrine,
  1968. TrinityObjectType.CursedShrine
  1969. };
  1970.  
  1971. public readonly static HashSet<TrinityObjectType> DestroyableTypes = new HashSet<TrinityObjectType>
  1972. {
  1973. TrinityObjectType.Barricade,
  1974. TrinityObjectType.Destructible,
  1975. TrinityObjectType.HealthGlobe,
  1976. TrinityObjectType.ProgressionGlobe
  1977. };
  1978.  
  1979. public readonly static HashSet<SNOActor> Shrines = new HashSet<SNOActor>
  1980. {
  1981. SNOActor.Shrine_Global_Fortune,
  1982. SNOActor.Shrine_Global_Blessed,
  1983. SNOActor.Shrine_Global_Frenzied,
  1984. SNOActor.Shrine_Global_Reloaded,
  1985. SNOActor.Shrine_Global_Enlightened,
  1986. SNOActor.Shrine_Global_Hoarder,
  1987. SNOActor.x1_LR_Shrine_Infinite_Casting,
  1988. SNOActor.x1_LR_Shrine_Electrified,
  1989. SNOActor.x1_LR_Shrine_Invulnerable,
  1990. SNOActor.x1_LR_Shrine_Run_Speed,
  1991. SNOActor.x1_LR_Shrine_Damage
  1992. };
  1993.  
  1994. internal static HashSet<string> ActorIgnoreNames = new HashSet<string>
  1995. {
  1996. "markerlocation",
  1997. "generic_proxy",
  1998. "hireling",
  1999. "start_location",
  2000. "spheretrigger",
  2001. "checkpoint",
  2002. "conductorproxymaster",
  2003. "boxtrigger",
  2004. "savepoint",
  2005. "triggersphere",
  2006. "minimapicon",
  2007. };
  2008.  
  2009. internal static HashSet<string> ActorIgnoreNameParts = new HashSet<string>
  2010. {
  2011. "markerlocation",
  2012. "start_location",
  2013. "checkpoint",
  2014. "savepoint",
  2015. "triggersphere",
  2016. "minimapicon",
  2017. "proxy",
  2018. "invisbox",
  2019. "trigger",
  2020. "invisible"
  2021. };
  2022.  
  2023. internal static HashSet<SNOAnim> ActorChargeAnimations = new HashSet<SNOAnim>
  2024. {
  2025. SNOAnim.Beast_start_charge_02,
  2026. SNOAnim.Beast_charge_02,
  2027. SNOAnim.Beast_charge_04,
  2028. SNOAnim.Butcher_Attack_Charge_01_in,
  2029. SNOAnim.Butcher_Attack_Chain_01_out,
  2030. SNOAnim.Butcher_Attack_05_telegraph,
  2031. SNOAnim.Butcher_Attack_Chain_01_in,
  2032. SNOAnim.Butcher_BreakFree_run_01,
  2033. };
  2034.  
  2035. /// <summary>
  2036. /// Actor types that we dont wan't to even look at from DB's ACD List.
  2037. /// </summary>
  2038. public static HashSet<ActorType> ExcludedActorTypes = new HashSet<ActorType>
  2039. {
  2040. ActorType.Environment,
  2041. ActorType.ClientEffect,
  2042. ActorType.AxeSymbol,
  2043. ActorType.CustomBrain,
  2044. ActorType.Invalid,
  2045. //ActorType.ServerProp,
  2046. //ActorType.Player,
  2047. //ActorType.Projectile, //lots of avoidance are classified as projectile
  2048. ActorType.Critter,
  2049. };
  2050.  
  2051. /// <summary>
  2052. /// ActorSnoId that we want to completely ignore
  2053. /// </summary>
  2054. public static HashSet<int> ExcludedActorIds = new HashSet<int>
  2055. {
  2056. -1,
  2057. 4176, // Generic Proxy
  2058. 5502, // Start Location
  2059. 375658, // Banter Trigger
  2060. 3462, // Box Trigger
  2061. 5466, // Sphere Trigger
  2062. 3461, // OneShot Box Trigger
  2063. //6442, // Waypoint
  2064. 3795, // Checkpoint
  2065. 5992, // OneShot Trigger Sphere
  2066. 180941 // SavePoint
  2067. };
  2068.  
  2069. public static HashSet<MonsterType> NonHostileMonsterTypes = new HashSet<MonsterType>
  2070. {
  2071. MonsterType.Ally,
  2072. MonsterType.Scenery,
  2073. MonsterType.Team,
  2074. MonsterType.None,
  2075. MonsterType.Helper,
  2076. };
  2077.  
  2078. public static Dictionary<int, MonsterType> MonsterTypeOverrides = new Dictionary<int, MonsterType>
  2079. {
  2080. { 86624, MonsterType.Undead }, // Jondar, DB thinks he's permanent ally
  2081. };
  2082.  
  2083. public static HashSet<int> AvoidanceBuffSNO = new HashSet<int>
  2084. {
  2085. 201454,
  2086. 201464,
  2087. 201426,
  2088. 201438,
  2089. 200969,
  2090. 201423,
  2091. 201242,
  2092. };
  2093.  
  2094. public static HashSet<int> WhirlWindIgnoreSNO = new HashSet<int>
  2095. {
  2096. 4304,
  2097. 5984,
  2098. 5985,
  2099. 5987,
  2100. 5988,
  2101. };
  2102.  
  2103. public static HashSet<int> FastMonsterSNO = new HashSet<int>
  2104. {
  2105. 5212
  2106. };
  2107.  
  2108. public static Dictionary<int, AvoidanceType> AvoidanceTypeSNO = new Dictionary<int, AvoidanceType>
  2109. {
  2110. {349774, AvoidanceType.FrozenPulse},
  2111. {343539, AvoidanceType.Orbiter},
  2112. {316389, AvoidanceType.PoisonEnchanted},
  2113. {340319, AvoidanceType.PoisonEnchanted},
  2114. {341512, AvoidanceType.Thunderstorm},
  2115. {337109, AvoidanceType.Wormhole},
  2116. {123839, AvoidanceType.AzmodanBody},
  2117. {123124, AvoidanceType.AzmodanPool},
  2118. {123842, AvoidanceType.AzmoFireball},
  2119. {219702, AvoidanceType.Arcane},
  2120. {221225, AvoidanceType.Arcane},
  2121. {3337, AvoidanceType.BeastCharge},
  2122. {5212, AvoidanceType.BeeWasp},
  2123. {161822, AvoidanceType.Belial},
  2124. {161833, AvoidanceType.Belial},
  2125. {201454, AvoidanceType.ButcherFloorPanel},
  2126. {201464, AvoidanceType.ButcherFloorPanel},
  2127. {201426, AvoidanceType.ButcherFloorPanel},
  2128. {201438, AvoidanceType.ButcherFloorPanel},
  2129. {200969, AvoidanceType.ButcherFloorPanel},
  2130. {201423, AvoidanceType.ButcherFloorPanel},
  2131. {201242, AvoidanceType.ButcherFloorPanel},
  2132. {226350, AvoidanceType.DiabloRingOfFire},
  2133. {226525, AvoidanceType.DiabloRingOfFire},
  2134. {84608, AvoidanceType.Desecrator},
  2135. {93837, AvoidanceType.GhomGas},
  2136. {3847, AvoidanceType.Grotesque},
  2137. {168031, AvoidanceType.DiabloPrison},
  2138. {214845, AvoidanceType.DiabloMeteor},
  2139. {402, AvoidanceType.IceBall},
  2140. {223675, AvoidanceType.IceBall},
  2141. {260377, AvoidanceType.IceTrail},
  2142. {432, AvoidanceType.MageFire},
  2143. {166686, AvoidanceType.MaghdaProjectille},
  2144. {160154, AvoidanceType.MoltenBall},
  2145. {4803, AvoidanceType.MoltenCore},
  2146. {4804, AvoidanceType.MoltenCore},
  2147. {224225, AvoidanceType.MoltenCore},
  2148. {247987, AvoidanceType.MoltenCore},
  2149. {95868, AvoidanceType.MoltenTrail},
  2150. {250031, AvoidanceType.Mortar},
  2151. {108869, AvoidanceType.PlagueCloud},
  2152. {3865, AvoidanceType.PlagueHand},
  2153. {5482, AvoidanceType.PoisonTree},
  2154. {6578, AvoidanceType.PoisonTree},
  2155. {4103, AvoidanceType.ShamanFire},
  2156. //{185924, AvoidanceType.ZoltBubble},
  2157. {139741, AvoidanceType.ZoltTwister}
  2158. };
  2159.  
  2160. public static Dictionary<int, AvoidanceType> AvoidanceProjectileSNO = new Dictionary<int, AvoidanceType>
  2161. {
  2162. { 343539, AvoidanceType.Orbiter },
  2163. { 316389, AvoidanceType.PoisonEnchanted },
  2164. { 340319, AvoidanceType.PoisonEnchanted },
  2165. { 5212, AvoidanceType.BeeWasp },
  2166. { 4103, AvoidanceType.ShamanFire },
  2167. { 160154, AvoidanceType.MoltenBall },
  2168. { 123842, AvoidanceType.AzmoFireball },
  2169. { 139741, AvoidanceType.ZoltTwister },
  2170. { 166686, AvoidanceType.MaghdaProjectille },
  2171. { 185999, AvoidanceType.DiabloRingOfFire },
  2172. { 136533, AvoidanceType.DiabloLightning },
  2173. };
  2174.  
  2175. public static HashSet<SNOPower> CheckVariantBuffs = new HashSet<SNOPower>
  2176. {
  2177. SNOPower.ItemPassive_Unique_Ring_735_x1,
  2178. SNOPower.ItemPassive_Unique_Ring_735_x1,
  2179. };
  2180.  
  2181. public static HashSet<int> GoldSNO = new HashSet<int>
  2182. {
  2183. //GoldCoin
  2184. 376,
  2185. //GoldLarge
  2186. 4311,
  2187. //GoldMedium
  2188. 4312,
  2189. //GoldSmall
  2190. 4313,
  2191. //PlacedGold
  2192. 166389,
  2193. //GoldCoins
  2194. 209200,
  2195. };
  2196.  
  2197. public static HashSet<int> HealthGlobeSNO = new HashSet<int>
  2198. {
  2199. //HealthGlobe
  2200. 4267,
  2201. //HealthGlobe_02
  2202. 85798,
  2203. //healthGlobe_swipe
  2204. 85816,
  2205. //HealthGlobe_03
  2206. 209093,
  2207. //HealthGlobe_04
  2208. 209120,
  2209. //X1_NegativeHealthGlobe
  2210. 333196,
  2211. //x1_healthGlobe
  2212. 366139,
  2213. //x1_healthGlobe_playerIsHealed_attract
  2214. 367978,
  2215. //HealthGlobe_steak
  2216. 375124,
  2217. //HealthGlobe_steak_02
  2218. 375125,
  2219. //x1_healthGlobe_steak_model
  2220. 375132,
  2221. };
  2222.  
  2223. public static HashSet<int> HealthWellSNO = new HashSet<int>
  2224. {
  2225. //caOut_Healthwell
  2226. 3648,
  2227. //HealthWell_Global
  2228. 138989,
  2229. //HealthWell_Water_Plane
  2230. 139129,
  2231. //a4_Heaven_HealthWell_Global
  2232. 218885,
  2233. //a4dun_DIablo_Arena_Health_Well
  2234. 180575,
  2235. };
  2236.  
  2237. public static HashSet<int> ShrineSNO = new HashSet<int>
  2238. {
  2239. //shrine_fxSphere_corrupt
  2240. 5333,
  2241. //Shrine_Global
  2242. 135384,
  2243. //shrine_fxGeo_model_Global
  2244. 139931,
  2245. //Shrine_Global_Glow
  2246. 156680,
  2247. //Shrine_Global_Blessed
  2248. 176074,
  2249. //Shrine_Global_Enlightened
  2250. 176075,
  2251. //Shrine_Global_Fortune
  2252. 176076,
  2253. //Shrine_Global_Frenzied
  2254. 176077,
  2255. //a4_Heaven_Shrine_Global_Blessed
  2256. 225025,
  2257. //a4_Heaven_Shrine_Global_Fortune
  2258. 225027,
  2259. //a4_Heaven_Shrine_Global_Frenzied
  2260. 225028,
  2261. //a4_Heaven_Shrine_Global_Enlightened
  2262. 225030,
  2263. //a4_Heaven_Shrine_Global_DemonCorrupted_Blessed
  2264. 225261,
  2265. //a4_Heaven_Shrine_Global_DemonCorrupted_Enlightened
  2266. 225262,
  2267. //a4_Heaven_Shrine_Global_DemonCorrupted_Fortune
  2268. 225263,
  2269. //a4_Heaven_Shrine_Global_DemonCorrupted_Frenzied
  2270. 225266,
  2271. //a4_Heaven_Shrine_Global_DemonCorrupted_Hoarder
  2272. 260342,
  2273. //a4_Heaven_Shrine_Global_DemonCorrupted_Reloaded
  2274. 260343,
  2275. //a4_Heaven_Shrine_Global_Hoarder
  2276. 260344,
  2277. //a4_Heaven_Shrine_Global_Reloaded
  2278. 260345,
  2279. //Shrine_Global_Hoarder
  2280. 260346,
  2281. //Shrine_Global_Reloaded
  2282. 260347,
  2283. //PVP_Shrine_Murderball
  2284. 275729,
  2285. //x1_LR_Shrine_Damage
  2286. 330695,
  2287. //x1_LR_Shrine_Electrified
  2288. 330696,
  2289. //x1_LR_Shrine_Infinite_Casting
  2290. 330697,
  2291. //x1_LR_Shrine_Invulnerable
  2292. 330698,
  2293. //x1_LR_Shrine_Run_Speed
  2294. 330699,
  2295. //x1_Event_CursedShrine
  2296. 364601,
  2297. //x1_Event_CursedShrine_Heaven
  2298. 368169,
  2299. //x1_player_isShielded_riftShrine_model
  2300. 369696,
  2301. //x1_LR_Shrine_Electrified_TieredRift
  2302. 398654,
  2303. //shrine_Shadow
  2304. 434722,
  2305. };
  2306.  
  2307. public static HashSet<int> CursedShrineSNO = new HashSet<int>
  2308. {
  2309. //x1_Event_CursedShrine
  2310. 364601,
  2311. //x1_Event_CursedShrine_Heaven
  2312. 368169,
  2313. };
  2314.  
  2315. public static HashSet<int> CursedChestSNO = new HashSet<int>
  2316. {
  2317. //x1_Global_Chest_CursedChest
  2318. 364559,
  2319. //x1_Global_Chest_CursedChest_B
  2320. 365097,
  2321. //x1_Global_Chest_CursedChest_B_MutantEvent
  2322. 374391,
  2323. };
  2324.  
  2325. public static HashSet<int> PlayerBannerSNO = new HashSet<int>
  2326. {
  2327. //Banner_Player_1
  2328. 123714,
  2329. //Banner_Player_2
  2330. 123715,
  2331. //Banner_Player_3
  2332. 123716,
  2333. //Banner_Player_4
  2334. 123717,
  2335. //Banner_Player_1_Act2
  2336. 212879,
  2337. //Banner_Player_2_Act2
  2338. 212880,
  2339. //Banner_Player_3_Act2
  2340. 212881,
  2341. //Banner_Player_4_Act2
  2342. 212882,
  2343. //Banner_Player_1_Act5
  2344. 367451,
  2345. //Banner_Player_2_Act5
  2346. 367452,
  2347. //Banner_Player_3_Act5
  2348. 367453,
  2349. //Banner_Player_4_Act5
  2350. 367454,
  2351. };
  2352.  
  2353. public static HashSet<int> PlayerSNO = new HashSet<int>
  2354. {
  2355. //Wizard_Female
  2356. 6526,
  2357. //Wizard_Female_characterSelect
  2358. 6527,
  2359. //Wizard_Male
  2360. 6544,
  2361. //Wizard_Male_characterSelect
  2362. 6545,
  2363. //Wizard_Male_FrontEnd
  2364. 218883,
  2365. //Wizard_Female_FrontEnd
  2366. 218917,
  2367. //Barbarian_Female
  2368. 3285,
  2369. //Barbarian_Female_characterSelect
  2370. 3287,
  2371. //Barbarian_Male
  2372. 3301,
  2373. //Barbarian_Male_characterSelect
  2374. 3302,
  2375. //Barbarian_Male_FrontEnd
  2376. 218882,
  2377. //Barbarian_Female_FrontEnd
  2378. 218909,
  2379. //Demonhunter_Female_FrontEnd
  2380. 218911,
  2381. //Demonhunter_Male_FrontEnd
  2382. 218912,
  2383. //Demonhunter_Female
  2384. 74706,
  2385. //Demonhunter_Male
  2386. 75207,
  2387. //X1_Crusader_Male
  2388. 238284,
  2389. //X1_Crusader_Female
  2390. 238286,
  2391. //X1_Crusader_Male_FrontEnd
  2392. 238287,
  2393. //X1_Crusader_Female_FrontEnd
  2394. 238288,
  2395. //Crusader_Female_characterSelect
  2396. 279361,
  2397. //Crusader_Male_characterSelect
  2398. 279362,
  2399. //WitchDoctor_Male
  2400. 6485,
  2401. //WitchDoctor_Male_characterSelect
  2402. 6486,
  2403. //WitchDoctor_Female
  2404. 6481,
  2405. //WitchDoctor_Female_characterSelect
  2406. 6482,
  2407. //Monk_Male
  2408. 4721,
  2409. //Monk_Male_characterSelect
  2410. 4722,
  2411. //Monk_Female
  2412. 4717,
  2413. //Monk_Female_characterSelect
  2414. 4718,
  2415. };
  2416.  
  2417. public static HashSet<int> SummonerSNO = new HashSet<int>
  2418. {
  2419. //TriuneSummoner_fireBall_obj
  2420. 467,
  2421. //SkeletonSummoner_A
  2422. 5387,
  2423. //SkeletonSummoner_B
  2424. 5388,
  2425. //SkeletonSummoner_C
  2426. 5389,
  2427. //SkeletonSummoner_D
  2428. 5390,
  2429. //TriuneSummoner_A
  2430. 6035,
  2431. //TriuneSummoner_B
  2432. 6036,
  2433. //TriuneSummoner_C
  2434. 6038,
  2435. //TriuneSummoner_D
  2436. 6039,
  2437. //SkeletonSummoner_A_TemplarIntro
  2438. 104728,
  2439. //TownAttack_TriuneSummonerBoss_C
  2440. 105539,
  2441. //triuneSummoner_summonRope_glow
  2442. 111554,
  2443. //TriuneSummoner_B_RabbitHoleEvent
  2444. 111580,
  2445. //Spawner_SkeletonSummoner_A_Immediate_Chand
  2446. 117947,
  2447. //TriuneSummoner_A_Unique_SwordOfJustice
  2448. 131131,
  2449. //a4_heaven_hellportal_summoner_loc
  2450. 143502,
  2451. //TownAttack_SummonerSpawner
  2452. 173527,
  2453. //TownAttack_Summoner
  2454. 178297,
  2455. //TownAttack_Summoner_Unique
  2456. 178619,
  2457. //SkeletonSummoner_E
  2458. 182279,
  2459. //TriuneSummoner_A_CainEvent
  2460. 186039,
  2461. //TriuneSummoner_A_Unique_01
  2462. 218662,
  2463. //TriuneSummoner_A_Unique_02
  2464. 218664,
  2465. //TriuneSummoner_C_Unique_01
  2466. 222001,
  2467. //x1_TriuneSummoner_WestMCultist
  2468. 288215,
  2469. //x1_Spawner_TriuneSummoner_A
  2470. 290730,
  2471. //x1_Spawner_SkeletonSummoner_A
  2472. 292297,
  2473. //x1_westm_Soul_Summoner
  2474. 298827,
  2475. //x1_westm_Soul_Summoner_Hands
  2476. 301425,
  2477. //x1_Spawner_SkeletonSummoner_D
  2478. 303859,
  2479. //x1_TEST_FallenChampion_LR_Summoner
  2480. 308285,
  2481. //x1_westm_Soul_Summoner_Spawner
  2482. 308823,
  2483. //x1_soul_summoner_hands_trail
  2484. 316395,
  2485. //x1_westm_Soul_Summoner_twoHands
  2486. 316560,
  2487. //x1_Soul_Summoner_glowSphere
  2488. 316716,
  2489. //x1_westm_Soul_Summoner_GhostChase
  2490. 330609,
  2491. //x1_devilshand_unique_SkeletonSummoner_B
  2492. 332432,
  2493. //x1_devilshand_unique_TriuneSummoner_C
  2494. 332433,
  2495. //x1_TriuneSummoner_C_Unique_01
  2496. 341240,
  2497. //X1_LR_Boss_SkeletonSummoner_C
  2498. 359094,
  2499. //x1_Heaven_Soul_Summoner
  2500. 361480,
  2501. //TriuneSummoner_Unique_Cultist_Leader_Hershberg
  2502. 396812,
  2503. //TriuneSummoner_Unique_Cultist_Leader_Son_of_Jacob
  2504. 396836,
  2505. //TriuneSummoner_Unique_Cultist_Leader_Poirier
  2506. 396849,
  2507. //TriuneSummoner_Unique_Cultist_Leader_Buckley
  2508. 396863,
  2509. };
  2510.  
  2511.  
  2512.  
  2513.  
  2514. /// <summary>
  2515. /// SNOs that belong to a player, spells, summons, effects, projectiles etc.
  2516. /// </summary>
  2517. public static HashSet<int> PlayerOwnedSNO = new HashSet<int>
  2518. {
  2519. 493, 3368, 6509, 6511, 6513, 6514, 6515, 6516, 6519, 6522, 6523, 6524, 6528, 6535, 6542, 6543, 6550, 6551, 6553, 6554,
  2520. 6558, 6560, 6561, 6562, 6563, 58362, 61419, 61445, 62054, 71129, 75631, 75642, 75726, 75731, 75732, 76019, 77097, 77098,
  2521. 77116, 77333, 77805, 80600, 80745, 80757, 80758, 81103, 81229, 81230, 81231, 81232, 81238, 81239, 81515, 82109, 82111,
  2522. 82660, 82972, 83024, 83025, 83028, 83043, 83959, 83964, 84504, 86082, 86769, 86790, 87621, 87913, 88032, 90364, 91424,
  2523. 91440, 91441, 91702, 92030, 92031, 92032, 93067, 93076, 93560, 93582, 93592, 93718, 97691, 97821, 98010, 99565, 99566,
  2524. 99567, 99572, 99574, 99629, 107916, 112560, 112572, 112585, 112588, 112594, 112675, 112697, 112806, 112808, 112811,
  2525. 117557, 130029, 130030, 130035, 130073, 130074, 130668, 141936, 144003, 147977, 148060, 148070, 148077, 148220, 148634,
  2526. 148700, 149837, 154769, 161695, 161772, 162301, 164699, 166051, 166130, 166172, 167260, 167261, 167262, 167263, 167382,
  2527. 167397, 167419, 167463, 167564, 167628, 167724, 167807, 167814, 167817, 167978, 170169, 170199, 170268, 170287, 170385,
  2528. 170405, 170445, 170496, 170574, 170592, 170935, 171179, 171180, 171184, 171185, 171225, 171226, 176247, 176248, 176262,
  2529. 176265, 176287, 176288, 176356, 176390, 176407, 176440, 176600, 176653, 185106, 185125, 185226, 185233, 185263, 185273,
  2530. 185283, 185301, 185309, 185316, 185459, 185513, 185660, 185661, 185662, 185663, 189372, 189373, 189375, 189458, 189460,
  2531. 191967, 192126, 192210, 192211, 192271, 199154, 201526, 210804, 210896, 215324, 215420, 215488, 215511, 215516, 215700,
  2532. 215711, 215809, 215853, 216040, 216069, 216462, 216529, 216817, 216818, 216851, 216874, 216890, 216897, 216905, 216941,
  2533. 216956, 216975, 216988, 217121, 217130, 217139, 217142, 217172, 217180, 217287, 217307, 217311, 217457, 217458, 217459,
  2534. 219070, 219196, 219200, 219254, 219292, 219295, 219300, 219314, 219315, 219316, 219391, 219392, 219393, 226648, 249225,
  2535. 249226, 249227, 249228, 249975, 249976, 251688, 251689, 251690, 261341, 261342, 261343, 261344, 261616, 261617, 299099,
  2536. 300476, 302468, 314792, 315588, 316207, 316239, 316270, 316271, 317398, 317409, 317501, 317507, 317652, 317809, 319692,
  2537. 319698, 319732, 319771, 322022, 322236, 322350, 322406, 322488, 323029, 323092, 323149, 323897, 324143, 324451, 324459,
  2538. 324466, 325154, 325552, 325804, 325807, 325813, 325815, 326285, 326305, 326308, 326313, 326755, 328146, 328161, 328171,
  2539. 328199, 336410, 337757, 339443, 339473, 341373, 341381, 341396, 341410, 341411, 341412, 341426, 341427, 341441, 341442,
  2540. 342082, 343197, 343293, 343300, 347101, 362960, 362961, 366983, 381908, 381915, 381917, 381919, 385215, 385216, 394102,
  2541. 396290, 396291, 396292, 396293, 409287, 409352, 409430, 409523, 322, 3276, 3277, 3280, 3281, 3282, 3283, 3289, 3290,
  2542. 3291, 3297, 3298, 3303, 3305, 3306, 3308, 3309, 3310, 3314, 3315, 3316, 3317, 3319, 51303, 74636, 79400, 90443, 90535,
  2543. 90536, 92895, 93481, 93903, 99541, 100800, 100832, 100839, 100934, 101068, 108742, 108746, 108767, 108772, 108784,
  2544. 108789, 108808, 108819, 108868, 108907, 108920, 109151, 136261, 143994, 158990, 159030, 159614, 159626, 159631, 159940,
  2545. 160587, 160685, 160818, 160893, 161452, 161457, 161599, 161607, 161654, 161657, 161890, 161892, 161893, 161894, 161960,
  2546. 162005, 162087, 162114, 162386, 162387, 162548, 162577, 162590, 162593, 162621, 162622, 162623, 162766, 162839, 162920,
  2547. 162929, 163353, 163462, 163494, 163501, 163541, 163552, 163783, 163792, 163861, 163925, 163949, 163968, 164066, 164112,
  2548. 164708, 164709, 164710, 164712, 164713, 164714, 164747, 164770, 164788, 164804, 165040, 165043, 165069, 165381, 165382,
  2549. 165514, 165515, 165560, 165561, 165988, 166214, 166222, 166223, 166438, 168307, 168440, 168460, 173342, 174723, 189078,
  2550. 189094, 198346, 209487, 220559, 220562, 220565, 220569, 220632, 252478, 252479, 317733, 356731, 358574, 360571, 362283,
  2551. 362949, 362951, 363301, 363760, 363765, 364460, 364953, 365194, 365291, 365338, 365340, 365342, 365534, 365789, 373063,
  2552. 373074, 373211, 374667, 374683, 375757, 396470, 408515, 408532, 410567, 75678, 75887, 77569, 77604, 77813, 87564, 88244,
  2553. 88251, 111307, 111330, 111503, 129228, 129603, 129621, 129785, 129787, 129788, 129934, 131701, 141937, 143995, 147809,
  2554. 148845, 148846, 148847, 149944, 149946, 149947, 149948, 151832, 151842, 153029, 153864, 153865, 153866, 153867, 153868,
  2555. 154674, 155092, 155147, 155749, 155938, 158843, 158844, 158916, 158917, 158940, 158941, 160932, 165558, 166549, 166550,
  2556. 166556, 166557, 166582, 166583, 166584, 166585, 166618, 166619, 166620, 166621, 166636, 166637, 167169, 167171, 167172,
  2557. 167218, 194565, 194566, 200561, 200672, 200808, 212547, 314804, 347447, 349626, 360546, 360547, 360548, 360549, 360550,
  2558. 360561, 360563, 360564, 360697, 360773, 361118, 361213, 361214, 362954, 362955, 428572, 428574, 129784, 129932, 130366,
  2559. 130572, 130661, 131664, 131672, 132068, 132615, 132732, 133714, 133741, 134841, 134917, 135207, 136149, 141402, 141681,
  2560. 141734, 143853, 143854, 147960, 148788, 148900, 149338, 149770, 149790, 149935, 149949, 149975, 150024, 150025, 150026,
  2561. 150027, 150036, 150037, 150038, 150039, 150061, 150062, 150063, 150064, 150065, 150449, 151591, 151805, 151929, 151998,
  2562. 152116, 152269, 152589, 152736, 152857, 152863, 153075, 153352, 154093, 154194, 154198, 154199, 154200, 154201, 154227,
  2563. 154292, 154590, 154591, 154592, 154593, 154595, 154657, 154736, 154750, 154811, 155096, 155149, 155159, 155276, 155280,
  2564. 155353, 155374, 155376, 155734, 155848, 156100, 157728, 159098, 159102, 159144, 160612, 162563, 165340, 165467, 165767,
  2565. 166462, 166613, 166732, 167223, 167235, 168815, 173827, 178664, 180622, 180640, 181748, 182234, 182263, 186050, 193463,
  2566. 193493, 193496, 193497, 193499, 193500, 196030, 196615, 200810, 215242, 215727, 218467, 218504, 219494, 219509, 219534,
  2567. 219577, 219580, 219609, 219610, 220527, 220800, 221261, 221440, 222109, 222115, 222117, 222122, 222128, 222130, 222135,
  2568. 222141, 222143, 222151, 230674, 251704, 251710, 261665, 366893, 366897, 366921, 366933, 366935, 367223, 367232, 367251,
  2569. 367258, 370495, 370496, 375869, 375871, 376739, 376743, 396318, 405388, 406116, 408096, 408100, 408103, 408300, 408327,
  2570. 408333, 408335, 408379, 408422, 408568, 410274, 410299, 428075, 253211, 253416, 253717, 255056, 256083, 256180, 257376,
  2571. 257777, 257782, 258133, 263866, 265474, 266503, 277722, 277805, 277808, 280196, 280462, 280702, 284686, 284872, 284920,
  2572. 285209, 285380, 285476, 286805, 286925, 289010, 289991, 290291, 290315, 290325, 290330, 290340, 290460, 290494, 290508,
  2573. 290521, 290532, 291672, 292175, 292608, 292837, 292849, 293223, 293293, 293307, 293312, 293318, 293332, 293342, 293644,
  2574. 293682, 293701, 293725, 293762, 293769, 293773, 293797, 293843, 293850, 293866, 293872, 293895, 293912, 293915, 293919,
  2575. 293927, 293930, 293947, 293998, 294005, 294009, 294012, 294023, 294047, 294052, 294057, 294169, 294182, 294330, 294333,
  2576. 294336, 294340, 294348, 294351, 294355, 294358, 294361, 294365, 294368, 294371, 294375, 294378, 294381, 294436, 294439,
  2577. 294442, 294446, 294449, 294452, 294456, 294459, 294462, 294466, 294469, 294472, 294476, 294479, 294482, 294517, 294520,
  2578. 294523, 294527, 294530, 294533, 294537, 294540, 294543, 294547, 294550, 294553, 294557, 294560, 294563, 294732, 295009,
  2579. 295012, 295015, 300142, 304115, 306040, 306210, 306225, 308143, 312522, 312552, 312658, 312661, 314802, 316079, 316835,
  2580. 319402, 323582, 324046, 324050, 324059, 324081, 324126, 324856, 324878, 325092, 325528, 326101, 327375, 327987, 329016,
  2581. 330019, 330042, 330082, 330728, 332236, 332450, 332465, 332631, 332644, 332702, 332705, 332759, 332760, 335993, 335995,
  2582. 336138, 336201, 336202, 336203, 336279, 336285, 336286, 336339, 336356, 336360, 336361, 336468, 336710, 336968, 337088,
  2583. 337184, 338224, 338225, 338226, 338227, 338246, 338252, 338598, 338678, 338807, 339343, 340460, 342209, 342213, 342257,
  2584. 342332, 342336, 342562, 342581, 342587, 342919, 342938, 342940, 342945, 343022, 343099, 343180, 343250, 343262, 343614,
  2585. 343792, 343879, 343881, 343954, 344224, 344305, 344330, 344543, 344546, 344571, 344573, 344577, 344588, 345114, 345224,
  2586. 345228, 345232, 345249, 345295, 345296, 345305, 345682, 345787, 345800, 345892, 346151, 346291, 346293, 346915, 347135,
  2587. 347248, 347249, 347360, 347421, 347466, 347643, 347647, 347677, 347792, 347798, 348203, 348262, 348731, 348735, 348766,
  2588. 348991, 348993, 349465, 349483, 349485, 349498, 349509, 349510, 349534, 349540, 349705, 349895, 349932, 349942, 349943,
  2589. 349959, 349977, 349989, 349991, 350052, 350072, 350083, 350135, 350158, 350204, 350219, 350461, 350468, 350631, 350634,
  2590. 350636, 350685, 350686, 350706, 350808, 351031, 351051, 351093, 351139, 352414, 352433, 352455, 352677, 352680, 352683,
  2591. 352687, 352723, 352737, 352757, 352871, 352933, 352942, 352969, 352985, 353516, 353843, 354249, 354412, 354579, 354606,
  2592. 354969, 355126, 355171, 356719, 356879, 356904, 357248, 357258, 357261, 357317, 357350, 357351, 357355, 357356, 357358,
  2593. 357369, 357381, 357382, 357387, 357388, 357426, 357432, 357436, 357439, 357472, 357475, 357574, 357584, 357587, 357645,
  2594. 357802, 357803, 357903, 357914, 357916, 357946, 357949, 358001, 358010, 358106, 358235, 358236, 358243, 358244, 358245,
  2595. 358246, 359040, 359041, 359042, 359043, 359044, 359045, 359709, 362665, 362952, 362953, 363775, 363890, 369795, 369975,
  2596. 369976, 369977, 369978, 369979, 369980, 428280, 6443, 6450, 6451, 6452, 6453, 6457, 6459, 6463, 6465, 6489, 51353,
  2597. 59155, 61398, 71336, 102723, 103215, 103217, 103235, 104079, 105606, 105763, 105772, 105792, 105795, 105816, 105828,
  2598. 105829, 106426, 106561, 106569, 106593, 106841, 106862, 107507, 107662, 107881, 107889, 107899, 108238, 108389, 108520,
  2599. 108536, 108543, 108550, 108556, 108560, 109122, 109123, 110959, 111243, 111338, 111345, 111372, 111530, 111535, 111566,
  2600. 113765, 120950, 121595, 121904, 121908, 121919, 121920, 121960, 122281, 122305, 123587, 123910, 123911, 123912, 123913,
  2601. 131202, 131504, 131640, 135016, 146534, 171491, 171501, 171502, 175354, 179772, 179776, 179778, 179779, 179780, 181767,
  2602. 181773, 181818, 181842, 181867, 181871, 181880, 182042, 182050, 182056, 182095, 182102, 182119, 182136, 182153, 182574,
  2603. 182576, 182603, 182608, 182610, 182612, 183977, 184445, 184585, 184968, 184999, 185025, 186469, 188447, 188484, 191204,
  2604. 193964, 193965, 193966, 193967, 193968, 193969, 193970, 193971, 193972, 193973, 194308, 194359, 216050, 251637, 348308,
  2605. 354714, 356987, 356991, 357125, 357569, 357846, 358018, 358120, 358358, 358653, 359900, 361799, 366173, 376693, 395431,
  2606. 404291, 404352, 404785, 404802, 405092, 405095, 405096, 405097, 405098, 405104, 426125, 426135, 432690, 432691, 432692,
  2607. 432693, 432694, 432695, 6483, 6487, 6494, 69308, 71643, 74042, 74056, 101441, 105501, 105502, 105812, 105953, 105955,
  2608. 105956, 105957, 105958, 105969, 105977, 106385, 106502, 106504, 106584, 106731, 106749, 107011, 107030, 107031, 107035,
  2609. 107067, 107107, 107112, 107114, 107162, 107223, 107265, 107705, 110714, 112311, 112327, 112338, 112345, 112347, 117574,
  2610. 134115, 134121, 134123, 134125, 134127, 134128, 140874, 144001, 182271, 182276, 182278, 182283, 186485, 193295, 206229,
  2611. 206230, 215811, 215813, 215814, 215815, 215816, 215817, 215818, 215819, 215820, 215822, 215835, 215841, 215844, 215847,
  2612. 215852, 218915, 218916, 251609, 251610, 314817, 362958, 362959, 3919, 4699, 4700, 4701, 4716, 4719, 4724, 4725, 4730,
  2613. 4731, 51327, 59822, 71909, 97399, 97458, 97558, 98829, 98835, 98836, 98871, 98883, 98940, 99063, 99096, 99694, 101550,
  2614. 110525, 110526, 110546, 110549, 117329, 120216, 120239, 120365, 121145, 122566, 123865, 123885, 128993, 129183, 129197,
  2615. 129329, 129333, 136022, 136893, 136925, 137408, 137413, 137491, 137525, 137527, 137528, 137567, 137572, 137656, 137675,
  2616. 137752, 137761, 137767, 137779, 137780, 137781, 137848, 137859, 137928, 137943, 137964, 137968, 137976, 138261, 139403,
  2617. 139419, 139431, 139455, 139780, 139869, 139889, 140271, 140312, 140779, 140878, 141074, 141081, 141143, 141175, 141186,
  2618. 141192, 141198, 141341, 141354, 141376, 141577, 141581, 141622, 141630, 141700, 141736, 141773, 141938, 142048, 142433,
  2619. 142478, 142503, 142514, 142719, 142737, 142788, 142826, 142845, 142851, 143216, 143225, 143273, 143445, 143504, 143509,
  2620. 143513, 143598, 143601, 143759, 143770, 143773, 143776, 143797, 143799, 143800, 143806, 143814, 143818, 143996, 144045,
  2621. 144046, 144100, 144199, 144209, 144214, 144218, 144234, 144461, 144765, 144770, 144773, 144774, 144775, 144776, 144785,
  2622. 144786, 144788, 144789, 144790, 144791, 144832, 144837, 144838, 144840, 144841, 144842, 144843, 144891, 144949, 144950,
  2623. 144952, 144953, 144954, 144955, 144974, 145010, 145025, 145028, 145089, 145195, 145196, 145295, 145310, 145461, 145485,
  2624. 145503, 145541, 145659, 145685, 145709, 145715, 146041, 146048, 146502, 146593, 146596, 147043, 147136, 147227, 147239,
  2625. 147257, 147934, 147935, 147936, 147937, 147938, 149848, 149849, 149851, 150410, 150411, 150412, 150413, 150414, 150415,
  2626. 150416, 150417, 150418, 150419, 168878, 169077, 169123, 169890, 169891, 169904, 169905, 169906, 169907, 169908, 169909,
  2627. 170972, 171008, 172170, 172187, 172191, 172193, 172489, 176921, 176924, 176955, 181336, 181431, 181568, 182353, 182360,
  2628. 182365, 182370, 182384, 191350, 192095, 192103, 197887, 202172, 213766, 215087, 215205, 215635, 218913, 218914, 223650,
  2629. 224033, 224150, 224172, 247403, 247405, 247407, 249990, 249994, 305732, 305733, 305734, 305830, 305831, 305832, 317351,
  2630. 317352, 317353, 317354, 317355, 317356, 319337, 319583, 319776, 320135, 320136, 323124, 357875, 357880, 357881, 358124,
  2631. 358125, 358126, 358128, 358129, 362956, 362957, 363236, 363237, 366341, 367774, 374071, 374080, 374084, 376290, 391711,
  2632. 391762, 392434, 392477, 392611, 392620, 395888, 395892, 396441, 396442, 396443, 396444, 396445, 396650, 409250, 409362,
  2633. 409385, 409486, 409487, 409488, 409528, 409533, 409641, 409688, 409705, 409708, 409710, 409745, 409748, 409852, 409853,
  2634. 409858, 409861, 409930, 410107, 410215, 426074, 426080, 426081, 426083, 426091, 426092, 426095, 426103, 426106, 426107,
  2635. 426110, 426121, 426123,
  2636. };
  2637.  
  2638. public static readonly HashSet<int> BlackHoleIds = new HashSet<int>
  2639. {
  2640. // x1_Wizard_blackHole_proxy
  2641. 336410,
  2642. // x1_Wizard_Blackhole_sphere
  2643. 337757,
  2644. // x1_Wizard_Blackhole_SuperMassive_sphere
  2645. 341373,
  2646. // x1_Wizard_blackHole_SuperMassive_proxy
  2647. 341381,
  2648. // x1_Wizard_blackHole_AbsoluteZero_proxy
  2649. 341396,
  2650. // x1_Wizard_Blackhole_AbsoluteZero_sphere
  2651. 341410,
  2652. // x1_Wizard_blackHole_EventHorizon_proxy
  2653. 341411,
  2654. // x1_Wizard_Blackhole_EventHorizon_sphere
  2655. 341412,
  2656. // x1_Wizard_blackHole_CosmicGate_proxy
  2657. 341426,
  2658. // x1_Wizard_Blackhole_CosmicGate_sphere
  2659. 341427,
  2660. // x1_Wizard_blackHole_SpellSteal_proxy
  2661. 341441,
  2662. // x1_Wizard_Blackhole_SpellSteal_sphere
  2663. 341442,
  2664. // x1_Wizard_Blackhole_CosmicGate_FallOffSphere
  2665. 342082,
  2666. // X1_Wizard_BlackHole_SpellSteal_GlowSphere
  2667. 343197,
  2668. // Wizard_BlackHole_CosmicGate_Impact
  2669. 343293,
  2670. // x1_Wizard_BlackHole_CosmicGate_impactSphere
  2671. 343300,
  2672. };
  2673.  
  2674. //public static readonly HashSet<SNOAnim> SteedChargeAnimations = new HashSet<SNOAnim>
  2675. //{
  2676. // SNOAnim.x1_Crusader_Male_SteedCharge,
  2677. // SNOAnim.x1_Crusader_Female_SteedCharge
  2678. //};
  2679.  
  2680. public static readonly HashSet<int> PlayerUseAnimationIds = new HashSet<int>
  2681. {
  2682. // Barbarian_Female_Emote_Use
  2683. 7434,
  2684. // barbarian_male_Emote_Use
  2685. 7656,
  2686. // Monk_Male_Emote_Use
  2687. 9114,
  2688. // WitchDoctor_Female_Emote_Use
  2689. 10975,
  2690. // WitchDoctor_Male_Emote_Use
  2691. 11077,
  2692. // Wizard_Female_HTH_Emote_Use
  2693. 11235,
  2694. // Wizard_Male_HTH_Emote_Use
  2695. 11331,
  2696. // Monk_Male_DW_SS_Emote_Use
  2697. 54147,
  2698. // Monk_Male_DW_SF_Emote_Use
  2699. 54227,
  2700. // Monk_Male_1HS_Emote_Use
  2701. 54257,
  2702. // Demonhunter_Female_emote_use
  2703. 104096,
  2704. // Monk_Female_Emote_Use
  2705. 115246,
  2706. // Demonhunter_Male_emote_use
  2707. 129089,
  2708. // WitchDoctor_Male_1HT_Emote_Use
  2709. 214609,
  2710. // WitchDoctor_Female_1HT_Emote_Use
  2711. 214656,
  2712. // WitchDoctor_Female_2HT_Emote_Use
  2713. 214680,
  2714. // barbarian_male_1HT_Emote_Use
  2715. 224290,
  2716. // Barbarian_Female_1HT_Emote_Use
  2717. 224732,
  2718. // x1_Crusader_Female_emote_use_loop
  2719. 319741,
  2720. // x1_Crusader_Female_emote_use
  2721. 319742,
  2722. // x1_Crusader_Male_HTH_Emote_use_01
  2723. 325715,
  2724. };
  2725.  
  2726. public static readonly HashSet<int> AvoidanceSNO = new HashSet<int>
  2727. {
  2728. //fastMummy_Gibs, Type=Unknown Dist=0 RActorId=-896461776 ACDId=-896461776 ActorSnoId=4108 Weight=0 WeightReasons=
  2729. 4108,
  2730. //X1_Unique_Monster_Generic_AOE_DOT_Fire_10foot, Type=Unknown Dist=0 RActorId=-965410672 ACDId=-1665138248 ActorSnoId=359693 Weight=0 WeightReasons=
  2731. 359693,
  2732. //p4_ratKing_ratBall_model, Type=Unknown Dist=0 RActorId=-1891447664 ACDId=-1891447664 ActorSnoId=427100 Weight=0 WeightReasons=
  2733. 427100,
  2734. //X1_Unique_Monster_Generic_Projectile_Poison, Type=Unknown Dist=14.0947 RActorId=-1882521582 ACDId=-2050752476 ActorSnoId=377092 Weight=0 WeightReasons=
  2735. 377092,
  2736. //a2dun_Zolt_Random_FallingRocks_C, Type=Unknown Dist=0.01172495 RActorId=-1399259057 ACDId=-1794506715 ActorSnoId=3026 Weight=0 WeightReasons=
  2737. 3026,
  2738. //ZK_tornado_antimatter, Type=Unknown Dist=40.28544 RActorId=-1803735817 ACDId=-1803735817 ActorSnoId=186103 Weight=0 WeightReasons=
  2739. 186103,
  2740. //ZK_tornado_model, Type=Unknown Dist=30.1086 RActorId=-1811046521 ACDId=-1811046521 ActorSnoId=186055 Weight=0 WeightReasons=
  2741. 186055,
  2742. //X1_LR_Boss_morluSpellcaster_Ice ActorSnoId=344119
  2743. //g_monster_projectile_cold_impact ActorSnoId=159164 // Ice AOE Telegraph
  2744. 159164,
  2745. //Grenadier_Proj_mortar_inpact
  2746. 365810,
  2747. //MorluSpellcaster_Meteor_Pending
  2748. 159369,
  2749. //Demonic_Meteor_Pending
  2750. 185367,
  2751. //x1_sniperAngel_shardBolt_bolt
  2752. 333605,
  2753. //x1_sniperAngel_shardBolt_orb
  2754. 333688,
  2755. // a1dun_leor_BigFireGrate, Type=Unit
  2756. 108012,
  2757. // arcaneEnchantedDummy_spawn
  2758. 257306,
  2759. //monsterAffix_Frozen_deathExplosion_Proxy
  2760. 402,
  2761. //monsterAffix_Molten_deathStart_Proxy
  2762. 4803,
  2763. //monsterAffix_Molten_deathExplosion_Proxy
  2764. 4804,
  2765. //monsterAffix_Electrified_deathExplosion_proxy
  2766. 4806,
  2767. //monsterAffix_Desecrator_telegraph
  2768. 84606,
  2769. //monsterAffix_Desecrator_damage_AOE
  2770. 84608,
  2771. //monsterAffix_Vortex_proxy
  2772. 85809,
  2773. //monsterAffix_Vortex_model
  2774. 89862,
  2775. //monsterAffix_Molten_trail
  2776. 95868,
  2777. //monsterAffix_healthLink_jumpActor
  2778. 98220,
  2779. //monsterAffix_Plagued_endCloud
  2780. 108869,
  2781. //monsterAffix_frenzySwipe
  2782. //143266,
  2783. //monsterAffix_vortex_target_trailActor
  2784. 210407,
  2785. //monsterAffix_missileDampening_shield_add
  2786. 219458,
  2787. //MonsterAffix_ArcaneEnchanted_PetSweep
  2788. 219702,
  2789. //monsterAffix_missileDampening_outsideGeo
  2790. 220191,
  2791. //MonsterAffix_ArcaneEnchanted_PetSweep_reverse
  2792. 221225,
  2793. //MonsterAffix_ArcaneEnchanted_Proxy
  2794. 221560,
  2795. //MonsterAffix_ArcaneEnchanted_trailActor
  2796. 221658,
  2797. //monsterAffix_frozen_iceClusters
  2798. 223675,
  2799. //x1_MonsterAffix_frozenPulse_monster
  2800. 349774,
  2801. //x1_MonsterAffix_frozenPulse_shard_search
  2802. 366924,
  2803. //x1_MonsterAffix_frozenPulse_shard
  2804. 349779,
  2805. //monsterAffix_plagued_groundGeo
  2806. 223933,
  2807. //monsterAffix_molten_fireRing
  2808. 224225,
  2809. //monsterAffix_waller_wall
  2810. 226296,
  2811. //monsterAffix_Avenger_glowSphere
  2812. 226722,
  2813. //monsterAffix_ghostly_distGeo
  2814. 226799,
  2815. //monsterAffix_waller_model
  2816. 226808,
  2817. //monsterAffix_invulnerableMinion_distGeo
  2818. 227697,
  2819. //monsterAffix_linked_chainHit
  2820. 228275,
  2821. //monsterAffix_entangler_ringGlow_geo
  2822. 228885,
  2823. //monsterAffix_molten_bomb_buildUp_geo
  2824. 247980,
  2825. //monsterAffix_invulnerableMinion_colorGeo
  2826. 248043,
  2827. //MonsterAffix_Mortar_Pending
  2828. 250031,
  2829. //x1_MonsterAffix_CorpseBomber_projectile
  2830. 316389,
  2831. //X1_MonsterAffix_corpseBomber_bomb
  2832. 325761,
  2833. //X1_MonsterAffix_LightningStorm_Wanderer
  2834. 328307,
  2835. //X1_MonsterAffix_TeleportMines
  2836. 337109,
  2837. //x1_MonsterAffix_CorpseBomber_bomb_start
  2838. 340319,
  2839. //x1_MonsterAffix_Thunderstorm_Impact
  2840. 341512,
  2841. //X1_MonsterAffix_Orbiter_Projectile
  2842. 343539,
  2843. //X1_MonsterAffix_Orbiter_FocalPoint
  2844. 343582,
  2845. //x1_Spawner_Skeleton_MonsterAffix_World_1
  2846. 345764,
  2847. //x1_Spawner_Skeleton_MonsterAffix_World_2
  2848. 345765,
  2849. //x1_Spawner_Skeleton_MonsterAffix_World_3
  2850. 345766,
  2851. //x1_Spawner_Skeleton_MonsterAffix_World_4
  2852. 345767,
  2853. //x1_Spawner_Skeleton_MonsterAffix_World_5
  2854. 345768,
  2855. //x1_MonsterAffix_orbiter_projectile_orb
  2856. 346805,
  2857. //x1_MonsterAffix_orbiter_projectile_focus
  2858. 346837,
  2859. //x1_MonsterAffix_orbiter_glowSphere
  2860. 346839,
  2861. //x1_monsteraffix_mortar_blastwave
  2862. 365830,
  2863. //x1_monsterAffix_generic_coldDOT_runeGeo
  2864. 377326,
  2865. //x1_monsterAffix_generic_coldDOT_rune_emitter
  2866. 377374,
  2867. //MonsterAffix_Avenger_ArcaneEnchanted_PetSweep
  2868. 384431,
  2869. //MonsterAffix_Avenger_ArcaneEnchanted_PetSweep_reverse
  2870. 384433,
  2871. //X1_MonsterAffix_Avenger_Orbiter_Projectile
  2872. 384575,
  2873. //X1_MonsterAffix_Avenger_Orbiter_FocalPoint
  2874. 384576,
  2875. //x1_MonsterAffix_Avenger_CorpseBomber_bomb_start
  2876. 384614,
  2877. //x1_MonsterAffix_Avenger_CorpseBomber_projectile
  2878. 384617,
  2879. //x1_MonsterAffix_Avenger_frozenPulse_monster
  2880. 384631,
  2881. //x1_MonsterAffix_Avenger_arcaneEnchanted_dummySpawn
  2882. 386997,
  2883. //x1_MonsterAffix_Avenger_ArcaneEnchanted_trailActor
  2884. 387010,
  2885. //x1_MonsterAffix_Avenger_orbiter_projectile_orb
  2886. 387679,
  2887. //x1_MonsterAffix_Avenger_orbiter_projectile_focus
  2888. 388435,
  2889. //x1_MonsterAffix_Avenger_corpseBomber_slime
  2890. 389483,
  2891. //x1_Bog_bloodSpring_medium
  2892. 332922,
  2893. //x1_Bog_bloodSpring_large
  2894. 332923,
  2895. //x1_Bog_bloodSpring_small
  2896. 332924,
  2897. //p4_RatKing_RatBallMonster
  2898. 427170,
  2899. //x1_LR_Boss_MalletDemon_FallingRocks
  2900. 368453,
  2901. //X1_LR_Boss_FireNova_projectile
  2902. 373937,
  2903. //X1_LR_Boss_AsteroidRain
  2904. 378237,
  2905. //x1_LR_boss_terrorDemon_A_projectile
  2906. 434843,
  2907. //x1_Bog_Bear_Trap
  2908. 237062
  2909. };
  2910.  
  2911. public static readonly HashSet<SNOAnim> SteedChargeAnimations = new HashSet<SNOAnim>
  2912. {
  2913. SNOAnim.x1_Crusader_Male_1HS_Shield_attack_ShieldBash_Charge_01, //308091,
  2914. SNOAnim.x1_Crusader_Male_1HS_Shield_attack_ShieldBash_Charge_Outtro_01, //308092,
  2915. SNOAnim.x1_Crusader_Female_1HS_Shield_attack_ShieldBash_Charge_Outro, //311186,
  2916. SNOAnim.x1_Crusader_Female_1HS_Shield_attack_ShieldBash_Charge, //311187,
  2917. SNOAnim.x1_Crusader_Female_SteedCharge, //311892,
  2918. SNOAnim.x1_Crusader_Male_cast_Phalanx_ShieldCharge_01, //339946,
  2919. SNOAnim.x1_Crusader_Male_2HT_Shield_attack_ShieldBash_Charge_01, //357447,
  2920. SNOAnim.x1_Crusader_Male_2HT_Shield_attack_ShieldBash_Charge_Outtro_01, //357448,
  2921. SNOAnim.x1_Crusader_Female_2HT_Shield_attack_ShieldBash_Charge, //358735,
  2922. SNOAnim.x1_Crusader_Female_2HT_Shield_attack_ShieldBash_Charge_Outro, //358736,
  2923. };
  2924.  
  2925. public static readonly HashSet<SNOAnim> LeapAnimations = new HashSet<SNOAnim>
  2926. {
  2927. SNOAnim.Barbarian_Female_DW_Leap_Attack_Air, //7411
  2928. SNOAnim.Barbarian_Female_DW_Leap_Attack_ContactEnd, //7412
  2929. SNOAnim.barbarian_male_1HT_LeapAttack_Air, //7521
  2930. SNOAnim.barbarian_male_1HT_LeapAttack_ContactEnd, //7522
  2931. SNOAnim.barbarian_male_1HT_LeapAttack_Start, //7523
  2932. SNOAnim.barbarian_male_2HS_Leap_Attack_Air, //7546
  2933. SNOAnim.barbarian_male_2HS_Leap_Attack_ContactEnd, //7547
  2934. SNOAnim.barbarian_male_2HS_Leap_Attack_Start, //7548
  2935. SNOAnim.barbarian_male_2HT_LeapAttack_Air, //7569
  2936. SNOAnim.barbarian_male_2HT_LeapAttack_ContactEnd, //7570
  2937. SNOAnim.barbarian_male_2HT_LeapAttack_Start, //7571
  2938. SNOAnim.barbarian_male_DW_LeapAttack_Air, //7632
  2939. SNOAnim.barbarian_male_DW_LeapAttack_ContactEnd, //7633
  2940. SNOAnim.barbarian_male_DW_LeapAttack_Start, //7634
  2941. SNOAnim.barbarian_male_Leap_Attack_Air, //7701
  2942. SNOAnim.barbarian_male_Leap_Attack_ContactEnd, //7702
  2943. SNOAnim.barbarian_male_Leap_Attack_Start, //7703
  2944. SNOAnim.barbarian_male_STF_LeapAttack_Air, //7718
  2945. SNOAnim.barbarian_male_STF_LeapAttack_ContactEnd, //7719
  2946. SNOAnim.barbarian_male_STF_LeapAttack_Start, //7720
  2947. SNOAnim.barbarian_male_Leap_Attack_Air_Cannibal //437875,
  2948. };
  2949.  
  2950. public static readonly HashSet<SNOAnim> ChargeAnimations = new HashSet<SNOAnim>
  2951. {
  2952. SNOAnim.barbarian_male_groundStomp_chargeTest, //7661,
  2953. SNOAnim.barbarian_male_groundStomp_chargeTestEnd, //7662,
  2954. SNOAnim.barbarian_male_1HS_Furious_Charge_End, //115910,
  2955. SNOAnim.barbarian_male_1HS_Furious_Charge_Loop, //115911,
  2956. SNOAnim.barbarian_male_STF_Furious_Charge_End, //115912,
  2957. SNOAnim.barbarian_male_STF_Furious_Charge_loop, //115913,
  2958. SNOAnim.barbarian_male_2HT_Furious_Charge_End, //115914,
  2959. SNOAnim.barbarian_male_2HT_Furious_Charge_loop, //115915,
  2960. SNOAnim.barbarian_male_1HT_Furious_Charge_End, //115926,
  2961. SNOAnim.barbarian_male_1HT_Furious_Charge_loop, //115927,
  2962. SNOAnim.Barbarian_Female_1HS_Furious_Charge_End, //116117,
  2963. SNOAnim.Barbarian_Female_1HS_Furious_Charge_Loop, //116118,
  2964. SNOAnim.Barbarian_Female_1HT_Furious_Charge_End, //116119,
  2965. SNOAnim.Barbarian_Female_1HT_Furious_Charge_Loop, //116120,
  2966. SNOAnim.Barbarian_Female_2HT_Furious_Charge_End, //116121,
  2967. SNOAnim.Barbarian_Female_2HT_Furious_Charge_Loop, //116122,
  2968. SNOAnim.Barbarian_Female_1HS_Furious_Charge_Loop_Cannibal, //437861,
  2969. SNOAnim.Barbarian_Female_1HS_Furious_Charge_End_Cannibal, //437862,
  2970. };
  2971.  
  2972.  
  2973. #region Methods
  2974.  
  2975. /// <summary>
  2976. /// Add an ActorSnoId to the blacklist. Returns false if the blacklist already contains the ActorSnoId
  2977. /// </summary>
  2978. /// <param name="actorId"></param>
  2979. /// <returns></returns>
  2980. public static bool AddToBlacklist(int actorId)
  2981. {
  2982. if (!blacklistIds.Contains(actorId))
  2983. {
  2984. blacklistIds.Add(actorId);
  2985. return true;
  2986. }
  2987. else
  2988. return false;
  2989. }
  2990. #endregion
  2991. }
  2992.  
  2993.  
  2994. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement