LocationDb.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. using System.Collections.Generic;
  2. using Dalamud.Game.Text.SeStringHandling.Payloads;
  3. namespace HuntBuddy
  4. {
  5. public static class LocationDb
  6. {
  7. public class PositionInfo
  8. {
  9. public float X { get; set; }
  10. public float Y { get; set; }
  11. }
  12. // MobHuntId as key
  13. public static readonly Dictionary<uint, PositionInfo> Database = new()
  14. {
  15. // Shadowbringers
  16. // Lakeland
  17. { 08498, new PositionInfo { X = 19.0f, Y = 09.0f } }, // Chiliad Cama
  18. { 08502, new PositionInfo { X = 28.0f, Y = 23.2f } }, // Violet Triffid
  19. { 08503, new PositionInfo { X = 14.0f, Y = 16.5f } }, // Gnole
  20. { 08504, new PositionInfo { X = 24.4f, Y = 23.9f } }, // Wetland Warg
  21. { 08505, new PositionInfo { X = 33.2f, Y = 10.0f } }, // White Gremlin
  22. { 08507, new PositionInfo { X = 25.8f, Y = 23.3f } }, // Hoptrap
  23. { 08508, new PositionInfo { X = 28.5f, Y = 36.7f } }, // Wolverine
  24. { 08511, new PositionInfo { X = 11.3f, Y = 11.0f } }, // Smilodon
  25. { 08514, new PositionInfo { X = 34.2f, Y = 17.0f } }, // Ya-te-veo
  26. { 08515, new PositionInfo { X = 29.0f, Y = 17.6f } }, // Proterosuchus
  27. { 08786, new PositionInfo { X = 20.5f, Y = 25.3f } }, // Lake Viper
  28. // Kholusia
  29. { 08517, new PositionInfo { X = 31.9f, Y = 18.9f } }, // Ironbeard
  30. { 08518, new PositionInfo { X = 36.4f, Y = 28.7f } }, // Hobgoblin
  31. { 08520, new PositionInfo { X = 17.0f, Y = 18.0f } }, // Defective Talos
  32. { 08522, new PositionInfo { X = 34.8f, Y = 10.5f } }, // Sulfur Byrgen
  33. { 08523, new PositionInfo { X = 35.4f, Y = 29.2f } }, // Maultasche
  34. { 08524, new PositionInfo { X = 14.3f, Y = 11.4f } }, // Huldu
  35. { 08525, new PositionInfo { X = 14.3f, Y = 27.1f } }, // Island Rail
  36. { 08527, new PositionInfo { X = 17.0f, Y = 11.0f } }, // Cliffkite
  37. { 08528, new PositionInfo { X = 27.1f, Y = 13.8f } }, // Cliffmole
  38. { 08529, new PositionInfo { X = 08.0f, Y = 18.0f } }, // Scree Gnome
  39. { 08532, new PositionInfo { X = 17.8f, Y = 26.5f } }, // Wood Eyes
  40. { 08533, new PositionInfo { X = 25.0f, Y = 23.5f } }, // Island Wolf
  41. { 08534, new PositionInfo { X = 10.1f, Y = 29.6f } }, // Kholusian Bison
  42. { 08536, new PositionInfo { X = 32.5f, Y = 26.2f } }, // Whiptail
  43. { 08538, new PositionInfo { X = 22.5f, Y = 09.6f } }, // Highland Hyssop
  44. { 08539, new PositionInfo { X = 19.9f, Y = 33.0f } }, // Tragopan
  45. { 08540, new PositionInfo { X = 13.0f, Y = 15.0f } }, // Saichania
  46. { 08541, new PositionInfo { X = 21.0f, Y = 08.7f } }, // Gulgnu
  47. { 08542, new PositionInfo { X = 21.6f, Y = 32.0f } }, // Germinant
  48. // Amh Araeng
  49. { 08544, new PositionInfo { X = 11.4f, Y = 30.4f } }, // Masterless Talos
  50. { 08545, new PositionInfo { X = 19.1f, Y = 20.9f } }, // Evil Weapon
  51. { 08547, new PositionInfo { X = 30.4f, Y = 12.3f } }, // Gigantender
  52. { 08550, new PositionInfo { X = 30.1f, Y = 27.2f } }, // Ancient Lizard
  53. { 08556, new PositionInfo { X = 29.4f, Y = 21.7f } }, // Sand Mole
  54. { 08557, new PositionInfo { X = 12.7f, Y = 19.0f } }, // Thistle Mole
  55. { 08558, new PositionInfo { X = 30.9f, Y = 27.3f } }, // Scissorjaws
  56. { 08559, new PositionInfo { X = 21.5f, Y = 09.7f } }, // Gnome
  57. { 08561, new PositionInfo { X = 13.9f, Y = 18.2f } }, // Debitage
  58. { 08562, new PositionInfo { X = 27.1f, Y = 29.6f } }, // Ghilman
  59. { 08563, new PositionInfo { X = 25.0f, Y = 34.3f } }, // Flame Zonure
  60. { 08565, new PositionInfo { X = 15.2f, Y = 16.7f } }, // Phorusrhacos
  61. { 08566, new PositionInfo { X = 21.7f, Y = 09.8f } }, // Desert Coyote
  62. { 08567, new PositionInfo { X = 23.9f, Y = 31.8f } }, // Molamander
  63. // Il Mheg
  64. { 08155, new PositionInfo { X = 08.4f, Y = 30.0f } }, // Flower Basket
  65. { 08569, new PositionInfo { X = 18.0f, Y = 31.0f } }, // Echevore
  66. { 08574, new PositionInfo { X = 31.0f, Y = 14.3f } }, // Garden Porxie
  67. { 08575, new PositionInfo { X = 19.9f, Y = 16.3f } }, // Phooka
  68. { 08576, new PositionInfo { X = 11.1f, Y = 26.0f } }, // Etainmoth
  69. { 08577, new PositionInfo { X = 29.4f, Y = 12.7f } }, // Green Glider
  70. { 08578, new PositionInfo { X = 21.0f, Y = 08.8f } }, // Moss Fungus
  71. { 08581, new PositionInfo { X = 07.8f, Y = 18.7f } }, // Hawker
  72. { 08582, new PositionInfo { X = 25.0f, Y = 11.0f } }, // Rainbow Lorikeet
  73. { 08583, new PositionInfo { X = 29.5f, Y = 11.4f } }, // Tot Aevis
  74. { 08584, new PositionInfo { X = 30.4f, Y = 10.6f } }, // Rabbit's Tail
  75. { 08585, new PositionInfo { X = 19.0f, Y = 32.0f } }, // Rosebear
  76. { 08586, new PositionInfo { X = 31.6f, Y = 06.4f } }, // Garden Crocota
  77. { 08587, new PositionInfo { X = 32.0f, Y = 05.8f } }, // Werewood
  78. { 08590, new PositionInfo { X = 09.4f, Y = 15.0f } }, // Killer Bee
  79. // The Rak'tika Greatwood
  80. { 08596, new PositionInfo { X = 08.8f, Y = 35.6f } }, // Tomatl
  81. { 08597, new PositionInfo { X = 27.3f, Y = 25.6f } }, // Forest Echo
  82. { 08598, new PositionInfo { X = 25.1f, Y = 14.2f } }, // Cracked Ronkan Doll
  83. { 08599, new PositionInfo { X = 23.0f, Y = 14.0f } }, // Cracked Ronkan Thorn
  84. { 08600, new PositionInfo { X = 16.0f, Y = 32.0f } }, // Vampire Vine
  85. { 08601, new PositionInfo { X = 23.4f, Y = 07.6f } }, // Greatwood Rail
  86. { 08603, new PositionInfo { X = 29.4f, Y = 21.7f } }, // Snapweed
  87. { 08604, new PositionInfo { X = 12.0f, Y = 34.0f } }, // Atrociraptor
  88. { 08606, new PositionInfo { X = 27.7f, Y = 23.2f } }, // Gizamaluk
  89. { 08609, new PositionInfo { X = 16.9f, Y = 33.3f } }, // Helm Beetle
  90. { 08610, new PositionInfo { X = 34.1f, Y = 16.5f } }, // Floor Mandrill
  91. { 08611, new PositionInfo { X = 15.0f, Y = 19.4f } }, // Wild Swine
  92. { 08612, new PositionInfo { X = 24.9f, Y = 30.2f } }, // Caracal
  93. { 08614, new PositionInfo { X = 25.0f, Y = 07.2f } }, // Woodbat
  94. { 08616, new PositionInfo { X = 27.9f, Y = 21.2f } }, // Tarichuk
  95. { 08789, new PositionInfo { X = 21.1f, Y = 13.2f } }, // Cracked Ronkan Vessel
  96. // The Tempest
  97. { 08618, new PositionInfo { X = 28.6f, Y = 06.2f } }, // Clinoid
  98. { 08619, new PositionInfo { X = 28.2f, Y = 18.3f } }, // Dagon
  99. { 08621, new PositionInfo { X = 22.6f, Y = 31.7f } }, // Cubus
  100. { 08622, new PositionInfo { X = 25.1f, Y = 18.6f } }, // Sea Anemone
  101. { 08623, new PositionInfo { X = 32.1f, Y = 11.7f } }, // Amphisbaena
  102. { 08625, new PositionInfo { X = 32.5f, Y = 21.5f } }, // Morgawr
  103. { 08626, new PositionInfo { X = 36.6f, Y = 16.6f } }, // Trilobite
  104. { 08629, new PositionInfo { X = 27.7f, Y = 08.7f } }, // Sea Gelatin
  105. { 08630, new PositionInfo { X = 29.0f, Y = 21.0f } }, // Tempest Swallow
  106. { 08631, new PositionInfo { X = 35.8f, Y = 07.2f } }, // Blue Swimmer
  107. // Endwalker
  108. // Labyrinthos
  109. { 10668, new PositionInfo { X = 28.8f, Y = 08.8f } }, // Troll
  110. { 10669, new PositionInfo { X = 31.0f, Y = 25.5f } }, // Genomos
  111. { 10670, new PositionInfo { X = 15.0f, Y = 06.5f } }, // Caribou
  112. { 10672, new PositionInfo { X = 32.0f, Y = 08.8f } }, // Limascabra
  113. { 10673, new PositionInfo { X = 21.5f, Y = 13.5f } }, // Luncheon Toad
  114. { 10674, new PositionInfo { X = 17.0f, Y = 12.0f } }, // Yakow
  115. { 10677, new PositionInfo { X = 34.0f, Y = 15.0f } }, // Labyrinth Screamer
  116. { 10678, new PositionInfo { X = 24.0f, Y = 10.7f } }, // Northern Snapweed
  117. { 10679, new PositionInfo { X = 26.0f, Y = 14.5f } }, // Pephredo
  118. { 10683, new PositionInfo { X = 37.5f, Y = 19.5f } }, // Mythrilcap
  119. // Thavnair
  120. { 10697, new PositionInfo { X = 19.0f, Y = 23.9f } }, // Pisaca
  121. { 10698, new PositionInfo { X = 13.8f, Y = 18.5f } }, // Vajralangula
  122. { 10699, new PositionInfo { X = 19.2f, Y = 32.6f } }, // Kacchapa
  123. { 10700, new PositionInfo { X = 18.4f, Y = 26.7f } }, // Hamsa
  124. { 10701, new PositionInfo { X = 29.1f, Y = 12.2f } }, // Asvattha
  125. { 10702, new PositionInfo { X = 27.1f, Y = 27.8f } }, // Guhasaya
  126. { 10703, new PositionInfo { X = 27.0f, Y = 17.4f } }, // Bhujamga
  127. { 10704, new PositionInfo { X = 17.6f, Y = 17.8f } }, // Sotormurg
  128. { 10705, new PositionInfo { X = 22.7f, Y = 30.4f } }, // Gaja
  129. { 10706, new PositionInfo { X = 19.1f, Y = 11.7f } }, // Thavnairian Jhammel
  130. { 10707, new PositionInfo { X = 25.9f, Y = 19.0f } }, // Ufiti
  131. { 10709, new PositionInfo { X = 09.2f, Y = 12.8f } }, // Chamrosh
  132. { 10711, new PositionInfo { X = 16.1f, Y = 09.2f } }, // Starmite
  133. { 10712, new PositionInfo { X = 14.3f, Y = 12.7f } }, // Manjusaka
  134. { 10713, new PositionInfo { X = 23.3f, Y = 19.9f } }, // Odqan
  135. { 10715, new PositionInfo { X = 13.4f, Y = 28.5f } }, // Akyaali Crab
  136. { 10716, new PositionInfo { X = 08.2f, Y = 16.2f } }, // Valras
  137. // Garlemald
  138. { 10648, new PositionInfo { X = 18.8f, Y = 09.8f } }, // Automated Satellite
  139. { 10649, new PositionInfo { X = 25.5f, Y = 17.5f } }, // Automated Death Machine
  140. { 10650, new PositionInfo { X = 15.5f, Y = 19.5f } }, // Automated Cavalry
  141. { 10651, new PositionInfo { X = 21.8f, Y = 17.4f } }, // Automated Bit
  142. { 10652, new PositionInfo { X = 15.7f, Y = 09.8f } }, // Automated Roader
  143. { 10653, new PositionInfo { X = 29.5f, Y = 13.7f } }, // Automated Slasher
  144. { 10654, new PositionInfo { X = 24.3f, Y = 14.9f } }, // Automated Colossus
  145. { 10655, new PositionInfo { X = 12.9f, Y = 11.7f } }, // Automated Avenger
  146. { 10656, new PositionInfo { X = 29.6f, Y = 30.3f } }, // Almasty
  147. { 10657, new PositionInfo { X = 14.6f, Y = 26.1f } }, // Eblan Bear
  148. { 10658, new PositionInfo { X = 31.3f, Y = 17.4f } }, // Eblan Icetrap
  149. { 10659, new PositionInfo { X = 19.8f, Y = 29.1f } }, // Ovibos
  150. { 10660, new PositionInfo { X = 22.3f, Y = 24.9f } }, // Jotunn
  151. { 10661, new PositionInfo { X = 28.4f, Y = 33.0f } }, // Ceruleum Zoblyn
  152. { 10662, new PositionInfo { X = 25.4f, Y = 31.5f } }, // Ilsabardian Tursus
  153. { 10663, new PositionInfo { X = 18.7f, Y = 24.8f } }, // Canis Lupinus
  154. { 10664, new PositionInfo { X = 26.1f, Y = 26.5f } }, // Overgrown Rose
  155. // Mare Lamentorum
  156. { 10458, new PositionInfo { X = 23.9f, Y = 20.0f } }, // Daphnia
  157. { 10459, new PositionInfo { X = 23.7f, Y = 20.3f } }, // Osculator
  158. { 10460, new PositionInfo { X = 08.6f, Y = 35.5f } }, // Sweeper
  159. { 10461, new PositionInfo { X = 27.3f, Y = 26.0f } }, // Wanderer
  160. { 10462, new PositionInfo { X = 31.1f, Y = 32.2f } }, // Weeper
  161. { 10463, new PositionInfo { X = 19.8f, Y = 22.5f } }, // Thinker
  162. { 10464, new PositionInfo { X = 26.0f, Y = 34.0f } }, // Regolith
  163. { 10465, new PositionInfo { X = 21.4f, Y = 32.2f } }, // Trimmer
  164. { 10467, new PositionInfo { X = 12.0f, Y = 36.7f } }, // Panopt
  165. { 10468, new PositionInfo { X = 11.5f, Y = 22.3f } }, // Dynamite
  166. { 10469, new PositionInfo { X = 16.7f, Y = 31.8f } }, // Armalcolite
  167. { 10470, new PositionInfo { X = 12.9f, Y = 09.6f } }, // Caretaker
  168. { 10471, new PositionInfo { X = 16.1f, Y = 24.9f } }, // Mousse
  169. { 10473, new PositionInfo { X = 31.2f, Y = 27.0f } }, // Downfall Alarum
  170. { 10474, new PositionInfo { X = 33.6f, Y = 26.2f } }, // Downfall Droid
  171. { 10475, new PositionInfo { X = 34.5f, Y = 28.0f } }, // Downfall Hunter
  172. { 10476, new PositionInfo { X = 13.0f, Y = 10.0f } }, // Supporter
  173. { 10477, new PositionInfo { X = 30.1f, Y = 11.0f } }, // Scraper
  174. // Elpis
  175. { 10590, new PositionInfo { X = 25.7f, Y = 33.9f } }, // Ophion
  176. { 10591, new PositionInfo { X = 16.5f, Y = 29.9f } }, // Yggdreant
  177. { 10592, new PositionInfo { X = 22.6f, Y = 20.0f } }, // Okyupete
  178. { 10594, new PositionInfo { X = 12.4f, Y = 31.8f } }, // Gryps
  179. { 10595, new PositionInfo { X = 26.6f, Y = 29.7f } }, // Monoceros
  180. { 10596, new PositionInfo { X = 10.1f, Y = 14.1f } }, // Pegasos
  181. { 10597, new PositionInfo { X = 28.7f, Y = 25.6f } }, // Bird of Elpis
  182. { 10599, new PositionInfo { X = 33.4f, Y = 14.3f } }, // Hippe
  183. { 10600, new PositionInfo { X = 14.1f, Y = 09.9f } }, // Harpuia
  184. { 10601, new PositionInfo { X = 25.0f, Y = 10.0f } }, // Morbol Marquis
  185. { 10602, new PositionInfo { X = 29.2f, Y = 09.3f } }, // Akantha
  186. { 10603, new PositionInfo { X = 24.4f, Y = 14.3f } }, // Lykopersikon
  187. { 10606, new PositionInfo { X = 21.5f, Y = 06.3f } }, // Lotis
  188. { 10607, new PositionInfo { X = 10.2f, Y = 34.6f } }, // Phanopsyche
  189. { 10608, new PositionInfo { X = 12.9f, Y = 23.4f } }, // Melanion
  190. { 10609, new PositionInfo { X = 12.9f, Y = 08.7f } }, // Ophiotauros
  191. { 10610, new PositionInfo { X = 13.3f, Y = 15.7f } }, // Elpis Minotaur
  192. { 10611, new PositionInfo { X = 30.7f, Y = 17.1f } }, // Remora
  193. // Ultima Thule
  194. { 10419, new PositionInfo { X = 30.1f, Y = 25.9f } }, // Broken Omicron
  195. { 10420, new PositionInfo { X = 19.3f, Y = 11.8f } }, // Drifting Ea
  196. { 10421, new PositionInfo { X = 34.8f, Y = 28.8f } }, // Beta
  197. { 10422, new PositionInfo { X = 32.9f, Y = 28.8f } }, // Delta
  198. { 10423, new PositionInfo { X = 36.5f, Y = 25.9f } }, // Lambda
  199. { 10424, new PositionInfo { X = 32.1f, Y = 26.6f } }, // Level Tricker
  200. { 10427, new PositionInfo { X = 10.0f, Y = 30.0f } }, // Stellar Amphiptere
  201. { 10430, new PositionInfo { X = 14.4f, Y = 28.2f } }, // Stellar Brobinyak
  202. { 10435, new PositionInfo { X = 16.3f, Y = 14.1f } }, // Other One
  203. };
  204. public static void OpenMapLink(uint territoryType, uint mapId, uint mobHuntId)
  205. {
  206. var mapLinkPayload = new MapLinkPayload(territoryType, mapId, Database[mobHuntId].X, Database[mobHuntId].Y);
  207. Plugin.GameGui.OpenMapWithMapLink(mapLinkPayload);
  208. }
  209. }
  210. }