------------------------------------------------------------------------------- ---------------------------------- NAMESPACE ---------------------------------- ------------------------------------------------------------------------------- local ADDON_NAME, ns = ... local Class = ns.Class local L = ns.locale local Map = ns.RiftMap local Collectible = ns.node.Collectible local NPC = ns.node.NPC local Rare = ns.node.Rare local Treasure = ns.node.Treasure local Achievement = ns.reward.Achievement local Item = ns.reward.Item local Mount = ns.reward.Mount local Pet = ns.reward.Pet local Toy = ns.reward.Toy local Transmog = ns.reward.Transmog local Arrow = ns.poi.Arrow local Line = ns.poi.Line local Path = ns.poi.Path local POI = ns.poi.POI local KYRIAN = ns.covenants.KYR local NECROLORD = ns.covenants.NEC local NIGHTFAE = ns.covenants.FAE local VENTHYR = ns.covenants.VEN ------------------------------------------------------------------------------- ------------------------------------- MAP ------------------------------------- ------------------------------------------------------------------------------- local map = Map({ id=1961, settings=true }) function map:CanDisplay(node, coord, minimap) local research = select(3,GetFactionInfoByID(2472)) if node.research and research < node.research then return false end return Map.CanDisplay(self, node, coord, minimap) end -- https://github.com/Nevcairiel/HereBeDragons/issues/13 -- local gho = Map({ id=2007 }) -- Grommit Hollow ------------------------------------------------------------------------------- ------------------------------------ RARES ------------------------------------ ------------------------------------------------------------------------------- map.nodes[58211773] = Rare({ id=180246, quest=64258, -- 64439? note=L["carriage_crusher_note"], rewards={ Achievement({id=15107, criteria=52290}), Transmog({item=187370, slot=L["cloth"]}), -- Carriage Crusher's Padded Slippers Transmog({item=187399, slot=L["leather"]}) -- Maw Construct's Shoulderguards } }) -- Carriage Crusher map.nodes[51164167] = Rare({ id=179768, quest=64243, sublabel=L["korthia_limited_rare"], note=L["consumption_note"], rewards={ Achievement({id=15107, criteria=52285}), Item({item=187402, note=L["ring"]}), -- All-Consuming Loop Transmog({item=187245, slot=L["cosmetic"]}), -- Death-Enveloped Spires Transmog({item=187246, slot=L["cosmetic"]}), -- Death-Enveloped Pauldrons Transmog({item=187247, slot=L["cosmetic"]}) -- Death-Enveloped Shoulder Spikes } }) -- Consumption map.nodes[51822081] = Rare({ id=177903, quest=63830, rewards={ Achievement({id=15107, criteria=52277}), Transmog({item=187390, slot=L["plate"]}) -- Dominated Protector's Helm } }) -- Dominated Protector map.nodes[33183938] = Rare({ id=180014, quest=64320, covenant=NIGHTFAE, note=L["escaped_wilderling_note"], rewards={ Achievement({id=15107, criteria=52298}), Mount({item=186492, id=1487, covenant=NIGHTFAE}) -- Summer Wilderling } }) -- Escaped Wilderling map.nodes[59934371] = Rare({ id=180042, quest=64349, covenant=NECROLORD, note=L["fleshwing_note"], rewards={ Achievement({id=15107, criteria=52299}), Transmog({item=187372, slot=L["cloth"]}), -- Miasma Filtering Headpiece Mount({item=186489, id=1449, covenant=NECROLORD}) -- Lord of the Corpseflies } }) -- Fleshwing map.nodes[59203580] = Rare({ id=179108, quest=64428, sublabel=L["korthia_limited_rare"], note=L["kroke_note"], rewards={ Achievement({id=15107, criteria=52304}), Transmog({item=187394, slot=L["plate"]}), -- Tormented Giant's Legplates Transmog({item=187248, slot=L["cosmetic"]}), -- Kroke's Gleaming Spaulders Transmog({item=187250, slot=L["cosmetic"]}) -- Kroke's Wingspiked Pauldrons }, pois={ Path({ 59203580, 60893687, 62273605, 61313445, 59953388, 59053603, 58253784, 57033778, 56863623, 57923572, 59203580 }) } }) -- Kroke the Tormented map.nodes[44222950] = Rare({ id=179684, quest=64233, note=L["malbog_note"], rewards={ Achievement({id=15107, criteria=52283}), Transmog({item=187377, slot=L["leather"]}), -- Malbog's Paws Mount({item=186645, id=1506}) -- Crimson Shardhide }, pois={ POI({60652315}) -- Caretaker Kah-Kay } }) -- Malbog map.nodes[22604140] = Rare({ id=179931, quest=64291, note=L["krelva_note"], rewards={ Achievement({id=15107, criteria=52291}), Transmog({item=187403, slot=L["cloak"]}) -- Relic Breaker's Drape }, pois={ Arrow({22604140, 28523843}), Arrow({28523843, 29144441}), POI({28523843, 29144441}) } }) -- Relic Breaker Krelva map.nodes[56276617] = Rare({ id=180160, quest=64455, note=L["reliwik_note"], rewards={ Achievement({id=15107, criteria=52318}), Mount({item=186652, id=1509}) -- Garnet Razorwing } }) -- Reliwik the Defiant map.nodes[46507959] = Rare({ id=179985, quest=64313, covenant=VENTHYR, note=L["stonecrusher_note"], rewards={ Achievement({id=15107, criteria=52276}), Transmog({item=184790, slot=L["leather"]}) -- Archdruid Van-Yali's Greenthumbs -- Mount({item=186479, id=, covenant=VENTHYR}) -- Mastercraft Gravewing } }) -- Stygian Stonecrusher map.nodes[56873237] = Rare({ id=180032, quest=64338, covenant=KYRIAN, note=L["worldcracker_note"], rewards={ Achievement({id=15107, criteria=52300}), Toy({item=187176}), -- Vesper of Harmony Mount({item=186483, id=1493, covenant=KYRIAN}) -- Foresworn Aquilon } }) -- Wild Worldcracker map.nodes[44983552] = Rare({ id=179859, quest=64278, requires=ns.requirement.Item(186718), note=L["chamber_note"], rewards={ Achievement({id=15107, criteria=52296}), Achievement({id=15066, criteria=52263}), Item({item=187104, quest=63918}), -- Obelisk of Dark Tidings Transmog({item=187387, slot=L["mail"]}), -- Pauldrons of the Unknown Beyond Transmog({item=187368, slot=L["staff"]}) -- Xyraxz's Controlling Rod } }) -- Xyraxz the Unknowable (Chamber of Wisdom) map.nodes[39405240] = Rare({ id=179802, quest=64257, requires=ns.requirement.Item(186718), note=L["chamber_note"], rewards={ Achievement({id=15107, criteria=52295}), Achievement({id=15066, criteria=52262}), Item({item=187103, quest=63917}), -- Everliving Statuette Transmog({item=187391, slot=L["plate"]}), -- Yarxhov's Rib-Cage Transmog({item=187366, slot=L["polearm"]}) -- Fallen Vault Guardian's Spire } }) -- Yarxhov the Pillager (Chamber of Knowledge) -- GHO: 45296726 map.nodes[27755885] = Rare({ id=177336, quest=64442, sublabel=L["korthia_limited_rare"], note=L["in_cave"], rewards={ Achievement({id=15107, criteria=52301}), Transmog({item=187371, slot=L["cloth"]}), -- Velvet Gromit Handwraps Pet({item=186542, id=3136}) -- Korthian Specimen }, pois={ POI({30385480}) -- Entrance } }) -- Zelnithop ------------------------------------------------------------------------------- map.nodes[13007500] = Rare({ id=179472, quest=64246, -- 64280? scale=1.5, note=L["konthrogz_note"], rewards={ Achievement({id=15107, criteria=52303}), Transmog({item=187375, slot=L["cloth"]}), -- Bound Worldeater Tendrils Transmog({item=187378, slot=L["leather"]}), -- Visage of the Obliterator Transmog({item=187384, slot=L["mail"]}), -- Konthrogz's Scaled Handguards Transmog({item=187397, slot=L["plate"]}), -- Vambraces of the In-Between Mount({item=187183, id=1514}) -- Rampaging Mauler } }) -- Konthrogz the Obliterator map.nodes[16007500] = Rare({ id=179760, quest=64245, scale=1.5, note=L["towering_exterminator_note"], rewards={ Achievement({id=15107, criteria=52302}), Transmog({item=187373, slot=L["cloth"]}), -- Soul-Enveloping Leggings Transmog({item=187376, slot=L["leather"]}), -- Mawsworn Lieutenant's Treads Transmog({item=187382, slot=L["mail"]}), -- Mawsworn Exterminator's Hauberk Transmog({item=187392, slot=L["plate"]}), -- Sabatons of the Towering Construct Transmog({item=187035, slot=L["cosmetic"]}), -- Cold Burden of the Damned Transmog({item=187242, slot=L["cosmetic"]}), -- Exterminator's Crest of the Damned Transmog({item=187241, slot=L["cosmetic"]}) -- Watchful Eye of the Damned } }) -- Towering Exterminator map.nodes[14507900] = Rare({ id=180162, quest=64457, scale=1.5, note=L["pop_quiz_note"], rewards={ Achievement({id=15107, criteria=52319}), Item({item=187264, quest=64513}), -- Ve'rayn's Head Item({item=187404, note=L["neck"]}), -- Cartel Ve Amulet Transmog({item=187369, slot=L["cloth"]}) -- Ve'rayn's Formal Robes } }) -- Ve'rayn ------------------------------------------------------------------------------- map.nodes[59335221] = Rare({ id=179913, quest=64285, rlabel=ns.GetIconLink('portal_gy', 20, 4, 1), note=L["rift_rare_exit_note"], rift=2, rewards={ Achievement({id=15107, criteria=52275}), Item({item=187401, note=L["ring"]}), -- Band of the Shaded Rift Transmog({item=187396, slot=L["plate"]}), -- Girdle of the Deadsoul Toy({item=187174}) -- Shaded Judgement Stone (XXX: not confirmed on live!) } }) -- Deadsoul Hatcher map.nodes[50307590] = Rare({ id=179914, quest=64369, rlabel=ns.GetIconLink('portal_gy', 20, 4, 1), note=L["rift_rare_only_note"], rift=2, rewards={ Achievement({id=15107, criteria=52294}), Item({item=187405, note=L["neck"]}), -- Choker of the Hidden Observer Transmog({item=187365, slot=L["1h_axe"]}), -- Rift Splitter Toy({item=187420}) -- Maw-Ocular Viewfinder } }) -- Observer Yorik map.nodes[44604240] = Rare({ id=179608, quest=64263, rlabel=ns.GetIconLink('portal_gy', 20, 4, 1), note=L["rift_rare_exit_note"], rift=2, rewards={ Achievement({id=15107, criteria=52273}), Transmog({item=187400, slot=L["cloth"]}) -- Mantle of Screaming Shadows } }) -- Screaming Shade map.nodes[57607040] = Rare({ id=179911, quest=64284, rlabel=ns.GetIconLink('portal_gy', 20, 4, 1), note=L["rift_rare_exit_note"], rift=2, rewards={ Achievement({id=15107, criteria=52274}), Transmog({item=187381, slot=L["leather"]}), -- Rift-Touched Bindings Transmog({item=187383, slot=L["mail"]}) -- Silent Soulstalker Sabatons } }) -- Silent Soulstalker ------------------------------------------------------------------------------- ---------------------------------- TREASURES ---------------------------------- ------------------------------------------------------------------------------- map.nodes[29595342] = Treasure({ quest=64244, rewards={ Achievement({id=15099, criteria=52241}), Item({item=187349}) -- Anima Laden Egg } }) -- Anima Laden Egg map.nodes[47502920] = Treasure({ quest=64241, note=L["dislodged_nest_note"], rewards={ Achievement({id=15099, criteria=52240}), Toy({item=187339}) -- Silver Shardhide Whistle } }) -- Dislodged Nest map.nodes[50478446] = Treasure({ quest=64252, rewards={ Achievement({id=15099, criteria=52242}), Item({item=187350, status=L["num_research"]:format(300)}) --Displaced Relic } }) -- Displaced Relic map.nodes[68902990] = Treasure({ quest=64234, note=L["forgotten_feather_note"], rewards={ Achievement({id=15099, criteria=52237}), Toy({item=187051}) -- Forgotten Feather } }) -- Forgotten Feather map.nodes[38344296] = Treasure({ quest=64222, rewards={ Achievement({id=15099, criteria=52236}) } }) -- Glittering Nest Materials map.nodes[40145892] = Treasure({ quest=64264, note=L["in_cave"], rewards={ Achievement({id=15099, criteria=52245}), Item({item=187354}) -- Abandoned Broker Satchel }, pois={ POI({42515596}) -- cave entrance } }) -- Infected Vestige map.nodes[52991477] = Treasure({ quest=64238, rewards={ Achievement({id=15099, criteria=52238}) } }) -- Lost Momento map.nodes[45336714] = Treasure({ quest=64268, requires=ns.requirement.Item(187033), note=L["offering_box_note"], rewards={ Achievement({id=15099, criteria=52246}), Toy({item=187344}) -- Offering Kit Maker }, pois={ POI({43556770}) -- Small Offering Key } }) -- Offering Box map.nodes[62065550] = Treasure({ quest=64247, note=L["spectral_bound_note"], label=L["spectral_bound_chest"], rewards={ Transmog({item=187026, note=L["cosmetic"]}), -- Field Warden's Torture Kit Transmog({item=187240, note=L["cosmetic"]}), -- Field Warden's Watchful Eye ns.relics.relic_fragment }, pois={ POI({50505370, 52305320, 52604970, 54205060, quest=64249}), -- west POI({59205670, 60305650, 61005870, 62105770, quest=64250}), -- south POI({57504930, 58224871, 59284858, 61494733, 62735133, quest=64248}) -- north } }) -- Spectral Bound Chest ------------------------------------------------------------------------------- ----------------------------------- RELICS ------------------------------------ ------------------------------------------------------------------------------- local Relic = Class('Relic', ns.node.Treasure, { group=ns.groups.RELIC, icon='star_chest_b', scale=1.6, IsCompleted=function(self) if C_QuestLog.IsOnQuest(self.quest[1]) then return true end return Treasure.IsCompleted(self) end }) ------------------------------------------------------------------------------- -- GHO: 40914788 map.nodes[27305670] = Relic({ quest=63899, questDeps=64506, note=L["in_cave"], rewards={ Achievement({id=15066, criteria=52131}) } }) -- Book of Binding: The Mad Witch map.nodes[45455607] = Relic({ quest=63912, questDeps=64506, rewards={ Achievement({id=15066, criteria=52258}) } }) -- Celestial Shadowlands Chart map.nodes[62035681] = Relic({ quest=63911, questDeps=64506, rewards={ Achievement({id=15066, criteria=52257}) } }) -- Singing Steel Ingot map.nodes[40534135] = Relic({ quest=63860, questDeps=64506, note=L["in_cave"], rewards={ Achievement({id=15066, criteria=52126}) }, pois={ POI({42314094}) -- cave entrance } }) -- Talisman of the Eternal Scholar ------------------------------------------------------------------------------- map.nodes[41146015] = Relic({ quest=63924, note=L["archivist_key_note"]:format("{item:187614}"), research=2, requires=ns.requirement.Item(187614), rewards={ Achievement({id=15066, criteria=52268}) } }) -- Gorak Claw Fetish map.nodes[41304330] = Relic({ quest=63909, note=L["archivist_key_note"]:format("{item:186984}"), research=2, requires=ns.requirement.Item(186984), rewards={ Achievement({id=15066, criteria=52255}), Toy({item=187155}) -- Guise of the Changeling } }) -- Guise of the Changeling map.nodes[33004190] = Relic({ quest=63910, note=L["archivist_key_note"]:format("{item:187612}"), research=2, requires=ns.requirement.Item(187612), rewards={ Achievement({id=15066, criteria=52256}), } }) -- The Netherstar map.nodes[43847698] = Relic({ quest=63921, note=L["archivist_key_note"]:format("{item:187613}"), research=2, requires=ns.requirement.Item(187613), rewards={ Achievement({id=15066, criteria=52265}), Toy({item=187140}) -- Ring of Duplicity } }) -- Ring of Self-Reflection ------------------------------------------------------------------------------- map.nodes[39405241] = Relic({ quest=63915, note=L["chamber_note"], requires=ns.requirement.Item(186718), rewards={ Achievement({id=15066, criteria=52269}) } }) -- Drum of Driving map.nodes[45003550] = Relic({ quest=63916, note=L["chamber_note"], requires=ns.requirement.Item(186718), rewards={ Achievement({id=15066, criteria=52261}) } }) -- Sack of Strange Soil ------------------------------------------------------------------------------- map.nodes[60803490] = Relic({ quest=63919, rift=1, rewards={ Achievement({id=15066, criteria=52264}) } }) -- Book of Binding: The Tormented Sorcerer map.nodes[29005420] = Relic({ quest=63914, rift=1, rewards={ Achievement({id=15066, criteria=52260}) } }) -- Cipher of Understanding map.nodes[52005260] = Relic({ quest=63920, rift=1, rewards={ Achievement({id=15066, criteria=52270}) } }) -- Enigmatic Decrypting Device map.nodes[51402010] = Relic({ quest=63913, rift=1, rewards={ Achievement({id=15066, criteria=52259}) } }) -- Unstable Sin'dorei Explosive ------------------------------------------------------------------------------- map.nodes[18503800] = Relic({ quest=63908, note=L["korthian_shrine_note"], research=5, rewards={ Achievement({id=15066, criteria=52254}) } }) -- Bulwark of Divine Intent map.nodes[24365660] = Relic({ quest=63923, note=L["korthian_shrine_note"], research=5, rewards={ Achievement({id=15066, criteria=52267}) } }) -- Lang Family Wood-Carving map.nodes[39404270] = Relic({ quest=63922, note=L["korthian_shrine_note"], research=5, rewards={ Achievement({id=15066, criteria=52266}), Toy({item=187159}) -- Shadow Slicing Shortsword } }) -- Shadow Slicing Sword ------------------------------------------------------------------------------- -------------------------------- RIFT PORTALS --------------------------------- ------------------------------------------------------------------------------- local RiftPortal = Class('RiftPortal', NPC, { id=179595, scale=1.4, group=ns.groups.RIFT_PORTAL, icon='portal_gy', note=L["rift_portal_note"], requires=ns.requirement.Item(186731) }) map.nodes[41104210] = RiftPortal({pois={POI({42304090})}}) map.nodes[43484699] = RiftPortal() map.nodes[53707200] = RiftPortal() map.nodes[56807460] = RiftPortal() map.nodes[59405370] = RiftPortal() map.nodes[61804460] = RiftPortal() ------------------------------------------------------------------------------- ------------------------------ RIFTBOUND CACHES ------------------------------- ------------------------------------------------------------------------------- local RiftCache = Class('RiftCache', Treasure, { label=L["riftbound_cache"], note=L["riftbound_cache_note"], group=ns.groups.RIFTBOUND_CACHE, rift=1, rewards={ Transmog({item=187251, slot=L["cosmetic"]}), -- Shaded Skull Shoulderguards Transmog({item=187243, slot=L["cosmetic"]}), -- Shadehunter's Crescent Item({item=187276, quest=64522}), -- Stolen Korthian Supplies Item({item=185050, quest=63606, covenant=NIGHTFAE}), -- Spider Soul ns.relics.relic_fragment, Item({item=186017}) -- Korthite Crystal } }) local RIFT_CACHE1 = RiftCache({quest=64470, icon='chest_rd', note=L["in_cave"]}) local RIFT_CACHE2 = RiftCache({quest=64471, icon='chest_pp'}) -- (also 64705?)