| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512 |
- using System.Collections.Generic;
- using System.Linq;
- using System.Numerics;
- using Dalamud.Game.Text.SeStringHandling.Payloads;
- using Lumina.Excel.GeneratedSheets;
- namespace HuntBuddy
- {
- public static class Location
- {
- public class PositionInfo
- {
- public float X { get; init; }
- public float Y { get; init; }
- public Vector2 Coordinate => new(this.X, this.Y);
- }
- // MobHuntId as key
- public static readonly Dictionary<uint, PositionInfo> Database = new()
- {
- // Heavensward
- // Coerthas Western Highlands
- { 03481, new PositionInfo { X = 15.0f, Y = 12.0f } }, // Archaeornis
- { 03472, new PositionInfo { X = 32.0f, Y = 24.0f } }, // Bergthurs
- { 03471, new PositionInfo { X = 30.0f, Y = 31.0f } }, // Deepeye
- { 03476, new PositionInfo { X = 28.0f, Y = 12.0f } }, // Frost Grenade
- { 03480, new PositionInfo { X = 11.0f, Y = 17.0f } }, // Gelato
- { 03484, new PositionInfo { X = 10.0f, Y = 14.0f } }, // Ice Commander
- { 03475, new PositionInfo { X = 23.0f, Y = 16.0f } }, // Icetrap
- { 03487, new PositionInfo { X = 28.0f, Y = 09.0f } }, // Inland Tursus
- { 03483, new PositionInfo { X = 19.0f, Y = 29.0f } }, // Lone Yeti
- { 03485, new PositionInfo { X = 22.0f, Y = 21.0f } }, // Polar Bear
- { 03482, new PositionInfo { X = 16.0f, Y = 20.0f } }, // Rheum
- { 03473, new PositionInfo { X = 26.0f, Y = 24.0f } }, // Silver Wolf
- { 03490, new PositionInfo { X = 25.0f, Y = 32.0f } }, // Slate Yeti
- { 03478, new PositionInfo { X = 25.0f, Y = 12.0f } }, // Slush Zoblyn
- { 03470, new PositionInfo { X = 30.0f, Y = 32.0f } }, // Steinbock
- { 03474, new PositionInfo { X = 31.0f, Y = 20.0f } }, // Upland Mylodon
- { 03493, new PositionInfo { X = 09.0f, Y = 09.0f } }, // Vindthurs
- { 03479, new PositionInfo { X = 15.0f, Y = 17.0f } }, // Wooly Yak
- // The Sea of Clouds
- { 03524, new PositionInfo { X = 21.0f, Y = 06.0f } }, // Anzu
- { 03498, new PositionInfo { X = 28.0f, Y = 29.0f } }, // Cloudworm
- { 03496, new PositionInfo { X = 27.0f, Y = 30.0f } }, // Conodont
- { 03505, new PositionInfo { X = 19.0f, Y = 30.0f } }, // Dhalmel
- { 03511, new PositionInfo { X = 17.0f, Y = 10.0f } }, // Endymion
- { 03494, new PositionInfo { X = 11.0f, Y = 33.0f } }, // Gaelicat
- { 03495, new PositionInfo { X = 16.0f, Y = 36.0f } }, // Gastornis
- { 03512, new PositionInfo { X = 23.0f, Y = 09.0f } }, // Groundskeeper
- { 03506, new PositionInfo { X = 20.0f, Y = 30.0f } }, // Korrigan
- { 03501, new PositionInfo { X = 36.0f, Y = 24.0f } }, // Lan'laii Gundu
- { 03502, new PositionInfo { X = 36.0f, Y = 20.0f } }, // Nat'laii Gundu
- { 03516, new PositionInfo { X = 28.0f, Y = 10.0f } }, // Nat'laii Vundu
- { 03497, new PositionInfo { X = 29.0f, Y = 30.0f } }, // Obdella
- { 03499, new PositionInfo { X = 20.0f, Y = 34.0f } }, // Paissa
- { 03500, new PositionInfo { X = 36.0f, Y = 24.0f } }, // Sanuwa
- { 03514, new PositionInfo { X = 30.0f, Y = 14.0f } }, // Sanuwa Vundu
- { 03525, new PositionInfo { X = 21.0f, Y = 07.0f } }, // Toco Toco
- { 03523, new PositionInfo { X = 14.0f, Y = 07.0f } }, // Tsanahale
- { 03503, new PositionInfo { X = 35.0f, Y = 25.0f } }, // Vuk'laii Gundu
- { 03513, new PositionInfo { X = 18.0f, Y = 17.0f } }, // Vundu Totem
- { 03509, new PositionInfo { X = 09.0f, Y = 16.0f } }, // Window Wamoura
- { 03510, new PositionInfo { X = 10.0f, Y = 17.0f } }, // Window Wamouracampa
- { 03504, new PositionInfo { X = 20.0f, Y = 38.0f } }, // Wisent
- // The Dravanian Forelands
- { 03565, new PositionInfo { X = 30.0f, Y = 16.0f } }, // Bandersnatch
- { 03566, new PositionInfo { X = 26.0f, Y = 11.0f } }, // Brown Bear
- { 03570, new PositionInfo { X = 28.0f, Y = 22.0f } }, // Clearwater Nanka
- { 03569, new PositionInfo { X = 27.0f, Y = 25.0f } }, // Clearwater Ninki Nanka
- { 03572, new PositionInfo { X = 28.0f, Y = 32.0f } }, // Dragonfly Watcher
- { 03567, new PositionInfo { X = 27.0f, Y = 22.0f } }, // Dravanian Aevis
- { 03576, new PositionInfo { X = 16.0f, Y = 33.0f } }, // Dravanian Wyvern
- { 03563, new PositionInfo { X = 36.0f, Y = 24.0f } }, // Feather Flea
- { 03578, new PositionInfo { X = 17.0f, Y = 26.0f } }, // Forelands Hippocerf
- { 03579, new PositionInfo { X = 18.0f, Y = 12.0f } }, // Gallimimus
- { 03571, new PositionInfo { X = 25.0f, Y = 29.0f } }, // Loaghtan
- { 03592, new PositionInfo { X = 27.0f, Y = 35.0f } }, // Loth Cultivator
- { 03590, new PositionInfo { X = 27.0f, Y = 35.0f } }, // Loth Firedrone
- { 03591, new PositionInfo { X = 29.0f, Y = 36.0f } }, // Loth Steeldrone
- { 03568, new PositionInfo { X = 28.0f, Y = 25.0f } }, // Melia
- { 03577, new PositionInfo { X = 18.0f, Y = 31.0f } }, // Miacid
- { 03555, new PositionInfo { X = 18.0f, Y = 12.0f } }, // Syricta
- { 03586, new PositionInfo { X = 31.0f, Y = 08.0f } }, // Thunder Dragon
- { 03582, new PositionInfo { X = 13.0f, Y = 15.0f } }, // Tyrannosaur
- { 03581, new PositionInfo { X = 13.0f, Y = 14.0f } }, // Vinegaroon
- { 03564, new PositionInfo { X = 35.0f, Y = 21.0f } }, // Wild Chocobo
- // The Churning Mists
- { 03619, new PositionInfo { X = 17.0f, Y = 27.0f } }, // Amphiptere
- { 03620, new PositionInfo { X = 24.0f, Y = 26.0f } }, // Archaeosaur
- { 03625, new PositionInfo { X = 18.0f, Y = 24.0f } }, // Bladed Vinegaroon
- { 03630, new PositionInfo { X = 25.0f, Y = 10.0f } }, // Blood Dragon
- { 03631, new PositionInfo { X = 09.0f, Y = 36.0f } }, // Cloud Aevis
- { 03629, new PositionInfo { X = 08.0f, Y = 19.0f } }, // Diresaur
- { 03623, new PositionInfo { X = 20.0f, Y = 12.0f } }, // Dragonet
- { 03626, new PositionInfo { X = 34.0f, Y = 21.0f } }, // Elder Syricta
- { 03628, new PositionInfo { X = 25.0f, Y = 30.0f } }, // Elder Wyvern
- { 03668, new PositionInfo { X = 10.0f, Y = 20.0f } }, // Gnarled Melia
- { 03614, new PositionInfo { X = 34.0f, Y = 28.0f } }, // Hropken
- { 03621, new PositionInfo { X = 09.0f, Y = 12.0f } }, // Limestone Golem
- { 03618, new PositionInfo { X = 20.0f, Y = 28.0f } }, // Lower Skylord
- { 03627, new PositionInfo { X = 33.0f, Y = 31.0f } }, // Mists Biast
- { 03622, new PositionInfo { X = 10.0f, Y = 18.0f } }, // Mists Drake
- { 03617, new PositionInfo { X = 23.0f, Y = 25.0f } }, // Moss Dragon
- { 03613, new PositionInfo { X = 28.0f, Y = 32.0f } }, // Sankchinni
- { 03615, new PositionInfo { X = 32.0f, Y = 15.0f } }, // Tulihand
- { 03624, new PositionInfo { X = 37.0f, Y = 18.0f } }, // Vouivre
- { 03616, new PositionInfo { X = 26.0f, Y = 20.0f } }, // Wadjet
- // The Dravanian Hinterlands
- { 03612, new PositionInfo { X = 25.0f, Y = 37.0f } }, // Bifericeras
- { 03609, new PositionInfo { X = 18.0f, Y = 36.0f } }, // Cockatrice
- { 03603, new PositionInfo { X = 12.0f, Y = 16.0f } }, // Crawler
- { 03594, new PositionInfo { X = 24.0f, Y = 21.0f } }, // Damselfly
- { 03598, new PositionInfo { X = 31.0f, Y = 22.0f } }, // Goblin Brandisher
- { 03601, new PositionInfo { X = 31.0f, Y = 22.0f } }, // Goblin Glider
- { 03600, new PositionInfo { X = 31.0f, Y = 22.0f } }, // Goblin Sharpshooter
- { 03599, new PositionInfo { X = 31.0f, Y = 22.0f } }, // Goblin Tinkerer
- { 03605, new PositionInfo { X = 10.0f, Y = 21.0f } }, // Great Morbol
- { 03597, new PositionInfo { X = 37.0f, Y = 24.0f } }, // Narbrooi
- { 03610, new PositionInfo { X = 17.0f, Y = 33.0f } }, // Okeanis
- { 03608, new PositionInfo { X = 12.0f, Y = 33.0f } }, // Opken
- { 03604, new PositionInfo { X = 11.0f, Y = 27.0f } }, // Orn Kite
- { 03607, new PositionInfo { X = 09.0f, Y = 34.0f } }, // Poroggo
- { 03595, new PositionInfo { X = 28.0f, Y = 27.0f } }, // Ratel
- { 03611, new PositionInfo { X = 12.0f, Y = 32.0f } }, // Sun Leech
- { 03593, new PositionInfo { X = 21.0f, Y = 16.0f } }, // Tarantula Hawk
- { 03596, new PositionInfo { X = 34.0f, Y = 19.0f } }, // Wildebeest
- // Azys Lla
- { 03545, new PositionInfo { X = 35.0f, Y = 24.0f } }, // 6th Legion Vanguard
- { 03552, new PositionInfo { X = 27.0f, Y = 33.0f } }, // Adamantite Claw
- { 03540, new PositionInfo { X = 31.0f, Y = 06.0f } }, // Allagan Chimera
- { 03534, new PositionInfo { X = 15.0f, Y = 13.0f } }, // Clockwork Engineer
- { 03536, new PositionInfo { X = 13.0f, Y = 08.0f } }, // Clockwork Harvestman
- { 03535, new PositionInfo { X = 18.0f, Y = 13.0f } }, // Clockwork Paladin
- { 03542, new PositionInfo { X = 35.0f, Y = 09.0f } }, // Corpse Flower
- { 03541, new PositionInfo { X = 29.5f, Y = 12.0f } }, // Empuse
- { 03537, new PositionInfo { X = 13.0f, Y = 17.0f } }, // Enforcement Droid
- { 03539, new PositionInfo { X = 27.0f, Y = 11.0f } }, // Lamia Cybrid
- { 03538, new PositionInfo { X = 28.0f, Y = 13.0f } }, // Lamia Thelytoke
- { 03580, new PositionInfo { X = 13.0f, Y = 33.0f } }, // Lesser Hydra
- { 03559, new PositionInfo { X = 18.0f, Y = 31.0f } }, // Meracydian Amphiptere
- { 03557, new PositionInfo { X = 08.0f, Y = 32.0f } }, // Meracydian Brobinyak
- { 03560, new PositionInfo { X = 08.0f, Y = 27.0f } }, // Meracydian Dragon
- { 03558, new PositionInfo { X = 06.0f, Y = 35.0f } }, // Meracydian Dragonet
- { 03554, new PositionInfo { X = 15.0f, Y = 29.0f } }, // Meracydian Falak
- { 03556, new PositionInfo { X = 14.0f, Y = 35.0f } }, // Meracydian Vouivre
- { 03533, new PositionInfo { X = 12.0f, Y = 15.0f } }, // Owlbear
- { 03543, new PositionInfo { X = 35.0f, Y = 08.0f } }, // Proto-naga
- { 03544, new PositionInfo { X = 33.0f, Y = 13.0f } }, // Reptoid
- { 03532, new PositionInfo { X = 09.0f, Y = 12.0f } }, // Snapper-rook
- // Stormblood
- // The Fringes
- { 05685, new PositionInfo { X = 10.0f, Y = 27.0f } }, // Diakka
- { 05674, new PositionInfo { X = 22.0f, Y = 16.0f } }, // Foper
- { 05697, new PositionInfo { X = 25.0f, Y = 27.0f } }, // Gazelle
- { 05676, new PositionInfo { X = 10.0f, Y = 11.0f } }, // Gazelle Hawk
- { 05679, new PositionInfo { X = 25.0f, Y = 15.0f } }, // Gelid Bhoot
- { 05686, new PositionInfo { X = 10.0f, Y = 27.0f } }, // Goosefish
- { 05671, new PositionInfo { X = 11.0f, Y = 11.0f } }, // Leshy
- { 05687, new PositionInfo { X = 11.0f, Y = 17.0f } }, // Mossling
- { 05683, new PositionInfo { X = 12.0f, Y = 17.0f } }, // Mountain Grizzly
- { 05691, new PositionInfo { X = 35.0f, Y = 25.0f } }, // Qalyana Brahmin
- { 05689, new PositionInfo { X = 35.0f, Y = 25.0f } }, // Qalyana Kshatriya
- { 05690, new PositionInfo { X = 35.0f, Y = 25.0f } }, // Qalyana Shudra
- { 05688, new PositionInfo { X = 35.0f, Y = 25.0f } }, // Sacred Marid
- { 05675, new PositionInfo { X = 10.0f, Y = 12.0f } }, // Sapria
- { 05677, new PositionInfo { X = 22.0f, Y = 11.0f } }, // Spinner
- { 05693, new PositionInfo { X = 29.0f, Y = 24.0f } }, // Teleoceras
- { 05678, new PositionInfo { X = 28.0f, Y = 15.0f } }, // Velodyna Pugil
- { 05680, new PositionInfo { X = 17.0f, Y = 10.0f } }, // Velodyna Sarcosuchus
- // The Peaks
- { 05705, new PositionInfo { X = 25.0f, Y = 11.0f } }, // Crag Claw
- { 05701, new PositionInfo { X = 18.7f, Y = 12.9f } }, // Bloodglider
- { 05702, new PositionInfo { X = 14.0f, Y = 08.0f } }, // Fluturini
- { 05703, new PositionInfo { X = 12.0f, Y = 08.0f } }, // Gyr Abanian Hornbill
- { 05713, new PositionInfo { X = 25.0f, Y = 33.0f } }, // Highland Eruca
- { 05712, new PositionInfo { X = 24.0f, Y = 29.0f } }, // Jhammel
- { 05714, new PositionInfo { X = 15.0f, Y = 27.0f } }, // Kongamato
- { 05707, new PositionInfo { X = 34.0f, Y = 09.0f } }, // Marble Urolith
- { 05715, new PositionInfo { X = 09.0f, Y = 26.0f } }, // Pantera
- { 05708, new PositionInfo { X = 24.0f, Y = 14.0f } }, // Scarab Beetle
- { 05711, new PositionInfo { X = 24.0f, Y = 24.0f } }, // True Griffin
- // The Ruby Sea
- { 05737, new PositionInfo { X = 31.0f, Y = 35.0f } }, // Bombfish
- { 05736, new PositionInfo { X = 34.0f, Y = 05.0f } }, // Coralshell
- { 05740, new PositionInfo { X = 26.0f, Y = 30.0f } }, // Flying Shark
- { 05742, new PositionInfo { X = 23.0f, Y = 33.0f } }, // Gasame
- { 05734, new PositionInfo { X = 14.0f, Y = 10.0f } }, // Gyuki
- { 05751, new PositionInfo { X = 25.0f, Y = 25.0f } }, // Naked Yumemi
- { 05743, new PositionInfo { X = 07.0f, Y = 30.0f } }, // Red Bukan
- { 05745, new PositionInfo { X = 08.0f, Y = 28.0f } }, // Red Honkan
- { 05744, new PositionInfo { X = 09.5f, Y = 25.2f } }, // Red Hyoe
- { 05738, new PositionInfo { X = 33.0f, Y = 11.0f } }, // Sea Serpent
- { 05739, new PositionInfo { X = 26.0f, Y = 06.0f } }, // Shiranui
- { 05746, new PositionInfo { X = 07.0f, Y = 27.0f } }, // Striped Ray
- { 05733, new PositionInfo { X = 29.0f, Y = 37.0f } }, // Tatsunoko
- { 05735, new PositionInfo { X = 35.0f, Y = 21.0f } }, // Unkiu
- { 05750, new PositionInfo { X = 25.0f, Y = 25.0f } }, // Yumemi
- // Yanxia
- { 05761, new PositionInfo { X = 18.0f, Y = 31.0f } }, // Bi Fang
- { 05769, new PositionInfo { X = 28.0f, Y = 08.0f } }, // Ebisu Catfish
- { 05752, new PositionInfo { X = 27.0f, Y = 34.0f } }, // Lupin Bladehand
- { 05754, new PositionInfo { X = 24.0f, Y = 32.0f } }, // Lupin Bowhand
- { 05753, new PositionInfo { X = 23.0f, Y = 28.0f } }, // Lupin Spearhand
- { 05768, new PositionInfo { X = 19.0f, Y = 11.0f } }, // Magatsu Kiyofusa
- { 05763, new PositionInfo { X = 33.0f, Y = 17.0f } }, // Minobi
- { 05757, new PositionInfo { X = 30.0f, Y = 23.0f } }, // Rhino Beetle
- { 05765, new PositionInfo { X = 30.0f, Y = 34.0f } }, // Taoquan
- { 05755, new PositionInfo { X = 24.0f, Y = 32.0f } }, // Tenaga
- { 05764, new PositionInfo { X = 23.0f, Y = 30.0f } }, // Vanara
- { 05762, new PositionInfo { X = 25.0f, Y = 26.0f } }, // Water Serpent
- // The Azim Steppe
- { 05785, new PositionInfo { X = 15.0f, Y = 19.0f } }, // Baras
- { 05788, new PositionInfo { X = 17.0f, Y = 26.0f } }, // Chaochu
- { 05777, new PositionInfo { X = 23.0f, Y = 15.0f } }, // Halgai
- { 05778, new PositionInfo { X = 16.0f, Y = 11.0f } }, // Khun Chuluu
- { 05781, new PositionInfo { X = 31.0f, Y = 17.0f } }, // Mammoth
- { 05783, new PositionInfo { X = 12.0f, Y = 29.0f } }, // Manzasiri
- { 05775, new PositionInfo { X = 28.0f, Y = 13.0f } }, // Matamata
- { 05782, new PositionInfo { X = 09.0f, Y = 21.0f } }, // Matanga
- { 05779, new PositionInfo { X = 23.0f, Y = 10.0f } }, // Muu Shuwuu
- { 05780, new PositionInfo { X = 34.0f, Y = 18.0f } }, // Purbol
- { 05776, new PositionInfo { X = 26.0f, Y = 29.0f } }, // Steppe Dhole
- { 05773, new PositionInfo { X = 31.0f, Y = 32.0f } }, // Steppe Dzo
- // The Lochs
- { 05723, new PositionInfo { X = 18.0f, Y = 32.0f } }, // Abaddon
- { 05725, new PositionInfo { X = 26.0f, Y = 11.0f } }, // Abalathian Minotaur
- { 05720, new PositionInfo { X = 25.0f, Y = 18.0f } }, // Chelone
- { 05727, new PositionInfo { X = 29.0f, Y = 15.0f } }, // Creeping Edila
- { 05729, new PositionInfo { X = 05.7f, Y = 26.7f } }, // Dark Clay Beast
- { 05732, new PositionInfo { X = 23.0f, Y = 10.0f } }, // Guard Bhoot
- { 05716, new PositionInfo { X = 08.0f, Y = 17.0f } }, // Kaluk
- { 05724, new PositionInfo { X = 16.0f, Y = 12.0f } }, // Loch Leech
- { 05730, new PositionInfo { X = 17.0f, Y = 16.0f } }, // Loch Nanka
- { 05717, new PositionInfo { X = 20.0f, Y = 18.0f } }, // Phoebad
- { 05721, new PositionInfo { X = 16.0f, Y = 21.0f } }, // Soblyn
- { 05722, new PositionInfo { X = 22.0f, Y = 23.0f } }, // Salt Dhruva
- { 05728, new PositionInfo { X = 17.0f, Y = 08.0f } }, // Specter
- { 05726, new PositionInfo { X = 25.0f, Y = 29.0f } }, // Vepar
- { 05719, new PositionInfo { X = 20.0f, Y = 25.0f } }, // Yabby
- // Shadowbringers
- // Lakeland
- { 08498, new PositionInfo { X = 19.0f, Y = 09.0f } }, // Chiliad Cama
- { 08502, new PositionInfo { X = 28.0f, Y = 23.2f } }, // Violet Triffid
- { 08503, new PositionInfo { X = 14.0f, Y = 16.5f } }, // Gnole
- { 08504, new PositionInfo { X = 24.4f, Y = 23.9f } }, // Wetland Warg
- { 08505, new PositionInfo { X = 33.2f, Y = 10.0f } }, // White Gremlin
- { 08507, new PositionInfo { X = 25.8f, Y = 23.3f } }, // Hoptrap
- { 08508, new PositionInfo { X = 28.5f, Y = 36.7f } }, // Wolverine
- { 08511, new PositionInfo { X = 11.3f, Y = 11.0f } }, // Smilodon
- { 08514, new PositionInfo { X = 34.2f, Y = 17.0f } }, // Ya-te-veo
- { 08515, new PositionInfo { X = 29.0f, Y = 17.6f } }, // Proterosuchus
- { 08786, new PositionInfo { X = 20.5f, Y = 25.3f } }, // Lake Viper
- // Kholusia
- { 08517, new PositionInfo { X = 31.9f, Y = 18.9f } }, // Ironbeard
- { 08518, new PositionInfo { X = 36.4f, Y = 28.7f } }, // Hobgoblin
- { 08520, new PositionInfo { X = 17.0f, Y = 18.0f } }, // Defective Talos
- { 08522, new PositionInfo { X = 34.8f, Y = 10.5f } }, // Sulfur Byrgen
- { 08523, new PositionInfo { X = 35.4f, Y = 29.2f } }, // Maultasche
- { 08524, new PositionInfo { X = 14.3f, Y = 11.4f } }, // Huldu
- { 08525, new PositionInfo { X = 14.3f, Y = 27.1f } }, // Island Rail
- { 08527, new PositionInfo { X = 17.0f, Y = 11.0f } }, // Cliffkite
- { 08528, new PositionInfo { X = 27.1f, Y = 13.8f } }, // Cliffmole
- { 08529, new PositionInfo { X = 08.0f, Y = 18.0f } }, // Scree Gnome
- { 08532, new PositionInfo { X = 17.8f, Y = 26.5f } }, // Wood Eyes
- { 08533, new PositionInfo { X = 25.0f, Y = 23.5f } }, // Island Wolf
- { 08534, new PositionInfo { X = 10.1f, Y = 29.6f } }, // Kholusian Bison
- { 08536, new PositionInfo { X = 32.5f, Y = 26.2f } }, // Whiptail
- { 08538, new PositionInfo { X = 22.5f, Y = 09.6f } }, // Highland Hyssop
- { 08539, new PositionInfo { X = 19.9f, Y = 33.0f } }, // Tragopan
- { 08540, new PositionInfo { X = 13.0f, Y = 15.0f } }, // Saichania
- { 08541, new PositionInfo { X = 21.0f, Y = 08.7f } }, // Gulgnu
- { 08542, new PositionInfo { X = 21.6f, Y = 32.0f } }, // Germinant
- // Amh Araeng
- { 08544, new PositionInfo { X = 11.4f, Y = 30.4f } }, // Masterless Talos
- { 08545, new PositionInfo { X = 19.1f, Y = 20.9f } }, // Evil Weapon
- { 08547, new PositionInfo { X = 30.4f, Y = 12.3f } }, // Gigantender
- { 08550, new PositionInfo { X = 30.1f, Y = 27.2f } }, // Ancient Lizard
- { 08556, new PositionInfo { X = 29.4f, Y = 21.7f } }, // Sand Mole
- { 08557, new PositionInfo { X = 12.7f, Y = 19.0f } }, // Thistle Mole
- { 08558, new PositionInfo { X = 30.9f, Y = 27.3f } }, // Scissorjaws
- { 08559, new PositionInfo { X = 21.5f, Y = 09.7f } }, // Gnome
- { 08561, new PositionInfo { X = 13.9f, Y = 18.2f } }, // Debitage
- { 08562, new PositionInfo { X = 27.1f, Y = 29.6f } }, // Ghilman
- { 08563, new PositionInfo { X = 25.0f, Y = 34.3f } }, // Flame Zonure
- { 08565, new PositionInfo { X = 15.2f, Y = 16.7f } }, // Phorusrhacos
- { 08566, new PositionInfo { X = 21.7f, Y = 09.8f } }, // Desert Coyote
- { 08567, new PositionInfo { X = 23.9f, Y = 31.8f } }, // Molamander
- // Il Mheg
- { 08155, new PositionInfo { X = 08.4f, Y = 30.0f } }, // Flower Basket
- { 08569, new PositionInfo { X = 18.0f, Y = 31.0f } }, // Echevore
- { 08574, new PositionInfo { X = 31.0f, Y = 14.3f } }, // Garden Porxie
- { 08575, new PositionInfo { X = 19.9f, Y = 16.3f } }, // Phooka
- { 08576, new PositionInfo { X = 11.1f, Y = 26.0f } }, // Etainmoth
- { 08577, new PositionInfo { X = 29.4f, Y = 12.7f } }, // Green Glider
- { 08578, new PositionInfo { X = 21.0f, Y = 08.8f } }, // Moss Fungus
- { 08581, new PositionInfo { X = 07.8f, Y = 18.7f } }, // Hawker
- { 08582, new PositionInfo { X = 25.0f, Y = 11.0f } }, // Rainbow Lorikeet
- { 08583, new PositionInfo { X = 29.5f, Y = 11.4f } }, // Tot Aevis
- { 08584, new PositionInfo { X = 30.4f, Y = 10.6f } }, // Rabbit's Tail
- { 08585, new PositionInfo { X = 19.0f, Y = 32.0f } }, // Rosebear
- { 08586, new PositionInfo { X = 31.6f, Y = 06.4f } }, // Garden Crocota
- { 08587, new PositionInfo { X = 32.0f, Y = 05.8f } }, // Werewood
- { 08590, new PositionInfo { X = 09.4f, Y = 15.0f } }, // Killer Bee
- // The Rak'tika Greatwood
- { 08596, new PositionInfo { X = 08.8f, Y = 35.6f } }, // Tomatl
- { 08597, new PositionInfo { X = 27.3f, Y = 25.6f } }, // Forest Echo
- { 08598, new PositionInfo { X = 25.1f, Y = 14.2f } }, // Cracked Ronkan Doll
- { 08599, new PositionInfo { X = 23.0f, Y = 14.0f } }, // Cracked Ronkan Thorn
- { 08600, new PositionInfo { X = 16.0f, Y = 32.0f } }, // Vampire Vine
- { 08601, new PositionInfo { X = 23.4f, Y = 07.6f } }, // Greatwood Rail
- { 08603, new PositionInfo { X = 29.4f, Y = 21.7f } }, // Snapweed
- { 08604, new PositionInfo { X = 12.0f, Y = 34.0f } }, // Atrociraptor
- { 08606, new PositionInfo { X = 27.7f, Y = 23.2f } }, // Gizamaluk
- { 08609, new PositionInfo { X = 16.9f, Y = 33.3f } }, // Helm Beetle
- { 08610, new PositionInfo { X = 34.1f, Y = 16.5f } }, // Floor Mandrill
- { 08611, new PositionInfo { X = 15.0f, Y = 19.4f } }, // Wild Swine
- { 08612, new PositionInfo { X = 24.9f, Y = 30.2f } }, // Caracal
- { 08614, new PositionInfo { X = 25.0f, Y = 07.2f } }, // Woodbat
- { 08616, new PositionInfo { X = 27.9f, Y = 21.2f } }, // Tarichuk
- { 08789, new PositionInfo { X = 21.1f, Y = 13.2f } }, // Cracked Ronkan Vessel
- // The Tempest
- { 08618, new PositionInfo { X = 28.6f, Y = 06.2f } }, // Clinoid
- { 08619, new PositionInfo { X = 28.2f, Y = 18.3f } }, // Dagon
- { 08621, new PositionInfo { X = 22.6f, Y = 31.7f } }, // Cubus
- { 08622, new PositionInfo { X = 25.1f, Y = 18.6f } }, // Sea Anemone
- { 08623, new PositionInfo { X = 32.1f, Y = 11.7f } }, // Amphisbaena
- { 08625, new PositionInfo { X = 32.5f, Y = 21.5f } }, // Morgawr
- { 08626, new PositionInfo { X = 36.6f, Y = 16.6f } }, // Trilobite
- { 08629, new PositionInfo { X = 27.7f, Y = 08.7f } }, // Sea Gelatin
- { 08630, new PositionInfo { X = 29.0f, Y = 21.0f } }, // Tempest Swallow
- { 08631, new PositionInfo { X = 35.8f, Y = 07.2f } }, // Blue Swimmer
- // Endwalker
- // Labyrinthos
- { 10668, new PositionInfo { X = 28.8f, Y = 08.8f } }, // Troll
- { 10669, new PositionInfo { X = 31.0f, Y = 25.5f } }, // Genomos
- { 10670, new PositionInfo { X = 15.0f, Y = 06.5f } }, // Caribou
- { 10672, new PositionInfo { X = 32.0f, Y = 08.8f } }, // Limascabra
- { 10673, new PositionInfo { X = 21.5f, Y = 13.5f } }, // Luncheon Toad
- { 10674, new PositionInfo { X = 17.0f, Y = 12.0f } }, // Yakow
- { 10677, new PositionInfo { X = 34.0f, Y = 15.0f } }, // Labyrinth Screamer
- { 10678, new PositionInfo { X = 24.0f, Y = 10.7f } }, // Northern Snapweed
- { 10679, new PositionInfo { X = 26.0f, Y = 14.5f } }, // Pephredo
- { 10683, new PositionInfo { X = 37.5f, Y = 19.5f } }, // Mythrilcap
- // Thavnair
- { 10697, new PositionInfo { X = 19.0f, Y = 23.9f } }, // Pisaca
- { 10698, new PositionInfo { X = 13.8f, Y = 18.5f } }, // Vajralangula
- { 10699, new PositionInfo { X = 19.2f, Y = 32.6f } }, // Kacchapa
- { 10700, new PositionInfo { X = 18.4f, Y = 26.7f } }, // Hamsa
- { 10701, new PositionInfo { X = 29.1f, Y = 12.2f } }, // Asvattha
- { 10702, new PositionInfo { X = 27.1f, Y = 27.8f } }, // Guhasaya
- { 10703, new PositionInfo { X = 27.0f, Y = 17.4f } }, // Bhujamga
- { 10704, new PositionInfo { X = 17.6f, Y = 17.8f } }, // Sotormurg
- { 10705, new PositionInfo { X = 22.7f, Y = 30.4f } }, // Gaja
- { 10706, new PositionInfo { X = 19.1f, Y = 11.7f } }, // Thavnairian Jhammel
- { 10707, new PositionInfo { X = 25.9f, Y = 19.0f } }, // Ufiti
- { 10709, new PositionInfo { X = 09.2f, Y = 12.8f } }, // Chamrosh
- { 10711, new PositionInfo { X = 16.1f, Y = 09.2f } }, // Starmite
- { 10712, new PositionInfo { X = 14.3f, Y = 12.7f } }, // Manjusaka
- { 10713, new PositionInfo { X = 23.3f, Y = 19.9f } }, // Odqan
- { 10715, new PositionInfo { X = 13.4f, Y = 28.5f } }, // Akyaali Crab
- { 10716, new PositionInfo { X = 08.2f, Y = 16.2f } }, // Valras
- // Garlemald
- { 10648, new PositionInfo { X = 18.8f, Y = 09.8f } }, // Automated Satellite
- { 10649, new PositionInfo { X = 25.5f, Y = 17.5f } }, // Automated Death Machine
- { 10650, new PositionInfo { X = 15.5f, Y = 19.5f } }, // Automated Cavalry
- { 10651, new PositionInfo { X = 21.8f, Y = 17.4f } }, // Automated Bit
- { 10652, new PositionInfo { X = 15.7f, Y = 09.8f } }, // Automated Roader
- { 10653, new PositionInfo { X = 29.5f, Y = 13.7f } }, // Automated Slasher
- { 10654, new PositionInfo { X = 24.3f, Y = 14.9f } }, // Automated Colossus
- { 10655, new PositionInfo { X = 12.9f, Y = 11.7f } }, // Automated Avenger
- { 10656, new PositionInfo { X = 29.6f, Y = 30.3f } }, // Almasty
- { 10657, new PositionInfo { X = 14.6f, Y = 26.1f } }, // Eblan Bear
- { 10658, new PositionInfo { X = 31.3f, Y = 17.4f } }, // Eblan Icetrap
- { 10659, new PositionInfo { X = 19.8f, Y = 29.1f } }, // Ovibos
- { 10660, new PositionInfo { X = 22.3f, Y = 24.9f } }, // Jotunn
- { 10661, new PositionInfo { X = 28.4f, Y = 33.0f } }, // Ceruleum Zoblyn
- { 10662, new PositionInfo { X = 25.4f, Y = 31.5f } }, // Ilsabardian Tursus
- { 10663, new PositionInfo { X = 18.7f, Y = 24.8f } }, // Canis Lupinus
- { 10664, new PositionInfo { X = 26.1f, Y = 26.5f } }, // Overgrown Rose
- // Mare Lamentorum
- { 10458, new PositionInfo { X = 23.9f, Y = 20.0f } }, // Daphnia
- { 10459, new PositionInfo { X = 23.7f, Y = 20.3f } }, // Osculator
- { 10460, new PositionInfo { X = 08.6f, Y = 35.5f } }, // Sweeper
- { 10461, new PositionInfo { X = 27.3f, Y = 26.0f } }, // Wanderer
- { 10462, new PositionInfo { X = 31.1f, Y = 32.2f } }, // Weeper
- { 10463, new PositionInfo { X = 19.8f, Y = 22.5f } }, // Thinker
- { 10464, new PositionInfo { X = 26.0f, Y = 34.0f } }, // Regolith
- { 10465, new PositionInfo { X = 21.4f, Y = 32.2f } }, // Trimmer
- { 10467, new PositionInfo { X = 12.0f, Y = 36.7f } }, // Panopt
- { 10468, new PositionInfo { X = 11.5f, Y = 22.3f } }, // Dynamite
- { 10469, new PositionInfo { X = 16.7f, Y = 31.8f } }, // Armalcolite
- { 10470, new PositionInfo { X = 12.9f, Y = 09.6f } }, // Caretaker
- { 10471, new PositionInfo { X = 16.1f, Y = 24.9f } }, // Mousse
- { 10473, new PositionInfo { X = 31.2f, Y = 27.0f } }, // Downfall Alarum
- { 10474, new PositionInfo { X = 33.6f, Y = 26.2f } }, // Downfall Droid
- { 10475, new PositionInfo { X = 34.5f, Y = 28.0f } }, // Downfall Hunter
- { 10476, new PositionInfo { X = 13.0f, Y = 10.0f } }, // Supporter
- { 10477, new PositionInfo { X = 30.1f, Y = 11.0f } }, // Scraper
- // Elpis
- { 10590, new PositionInfo { X = 25.7f, Y = 33.9f } }, // Ophion
- { 10591, new PositionInfo { X = 16.5f, Y = 29.9f } }, // Yggdreant
- { 10592, new PositionInfo { X = 22.6f, Y = 20.0f } }, // Okyupete
- { 10594, new PositionInfo { X = 12.4f, Y = 31.8f } }, // Gryps
- { 10595, new PositionInfo { X = 26.6f, Y = 29.7f } }, // Monoceros
- { 10596, new PositionInfo { X = 10.1f, Y = 14.1f } }, // Pegasos
- { 10597, new PositionInfo { X = 28.7f, Y = 25.6f } }, // Bird of Elpis
- { 10599, new PositionInfo { X = 33.4f, Y = 14.3f } }, // Hippe
- { 10600, new PositionInfo { X = 14.1f, Y = 09.9f } }, // Harpuia
- { 10601, new PositionInfo { X = 25.0f, Y = 10.0f } }, // Morbol Marquis
- { 10602, new PositionInfo { X = 29.2f, Y = 09.3f } }, // Akantha
- { 10603, new PositionInfo { X = 24.4f, Y = 14.3f } }, // Lykopersikon
- { 10606, new PositionInfo { X = 21.5f, Y = 06.3f } }, // Lotis
- { 10607, new PositionInfo { X = 10.2f, Y = 34.6f } }, // Phanopsyche
- { 10608, new PositionInfo { X = 12.9f, Y = 23.4f } }, // Melanion
- { 10609, new PositionInfo { X = 12.9f, Y = 08.7f } }, // Ophiotauros
- { 10610, new PositionInfo { X = 13.3f, Y = 15.7f } }, // Elpis Minotaur
- { 10611, new PositionInfo { X = 30.7f, Y = 17.1f } }, // Remora
- // Ultima Thule
- { 10419, new PositionInfo { X = 30.1f, Y = 25.9f } }, // Broken Omicron
- { 10420, new PositionInfo { X = 19.3f, Y = 11.8f } }, // Drifting Ea
- { 10421, new PositionInfo { X = 34.8f, Y = 28.8f } }, // Beta
- { 10422, new PositionInfo { X = 32.9f, Y = 28.8f } }, // Delta
- { 10423, new PositionInfo { X = 36.5f, Y = 25.9f } }, // Lambda
- { 10424, new PositionInfo { X = 32.1f, Y = 26.6f } }, // Level Tricker
- { 10427, new PositionInfo { X = 10.0f, Y = 30.0f } }, // Stellar Amphiptere
- { 10430, new PositionInfo { X = 14.4f, Y = 28.2f } }, // Stellar Brobinyak
- { 10435, new PositionInfo { X = 16.3f, Y = 14.1f } }, // Other One
- };
- public static void OpenMapLink(uint territoryType, uint mapId, uint mobHuntId)
- {
- var mapLinkPayload = new MapLinkPayload(territoryType, mapId, Database[mobHuntId].X, Database[mobHuntId].Y);
- Plugin.GameGui.OpenMapWithMapLink(mapLinkPayload);
- }
- private static Vector2 ConvertPixelPositionToMapCoordinate(int x, int y, float scale)
- {
- var num = scale / 100f;
- return new Vector2(
- ConvertRawPositionToMapCoordinate((int)((x - 1024) * num * 1000f), scale),
- ConvertRawPositionToMapCoordinate((int)((y - 1024) * num * 1000f), scale));
- }
- private static float ConvertRawPositionToMapCoordinate(int pos, float scale)
- {
- var num1 = scale / 100f;
- var num2 = (float)(pos * (double)num1 / 1000.0f);
- return (40.96f / num1 * ((num2 + 1024.0f) / 2048.0f)) + 1.0f;
- }
- public static void TeleportToNearestAetheryte(uint territoryType, uint mapId, uint mobHuntId)
- {
- var mapRow = Plugin.DataManager.Excel.GetSheet<Map>()?.GetRow(mapId);
- if (mapRow == null)
- {
- return;
- }
- var nearestAetheryteId = Plugin.DataManager.Excel.GetSheet<MapMarker>()
- ?.Where(x => x.DataType == 3 && x.RowId == mapRow.MapMarkerRange)
- .Select(
- x => new
- {
- distance = Vector2.DistanceSquared(
- Database[mobHuntId].Coordinate,
- ConvertPixelPositionToMapCoordinate(x.X, x.Y, mapRow.SizeFactor)),
- rowId = x.DataKey
- })
- .OrderBy(x => x.distance)
- .FirstOrDefault()?.rowId;
- var nearestAetheryte =
- territoryType == 399 // Support the unique case of aetheryte not being in the same map
- ? mapRow.TerritoryType?.Value?.Aetheryte.Value
- : Plugin.DataManager.Excel.GetSheet<Aetheryte>()?.FirstOrDefault(
- x =>
- x.IsAetheryte && x.Territory.Row == territoryType && x.RowId == nearestAetheryteId);
- if (nearestAetheryte == null)
- {
- return;
- }
- Plugin.TeleportConsumer?.Teleport(nearestAetheryte.RowId);
- }
- }
- }
|