Files
RuskiCandyBuckets/db/christmas.lua
2025-12-26 18:45:59 +01:00

194 lines
8.9 KiB
Lua

local _G = _G
local pairs = pairs
local string_format = string.format
local table_insert = table.insert
local table_wipe = table.wipe
local GetMapNameByID = GetMapNameByID
local WorldMapTooltip = WorldMapTooltip
local _, ns = ...
local texture = ns:GetNormalizedHolidayTexture(235473)
local iconTitle = "Present"
local iconTexture = "Interface\\Icons\\inv_holiday_christmas_present_01"
local iconTextureInstance = "Interface\\Icons\\Spell_Shadow_Teleport"
local nodes = {}
-- How these came to be:
-- /run SetMapToCurrentZone(); SetMapByID(GetCurrentMapAreaID()); print(string.format("%s, %s, %.2f, %.2f", GetCurrentMapAreaID(), GetQuestID(), GetPlayerMapPosition("player")))
--
-- What I need you to do is when you find a present click on the quest but DO NOT TURN IT IN IMMEDIATELY
-- Instead run this command, it will print something to chat
-- Make sure everything is non 0
-- Example
-- 4, 0, 0.59956729412079, 0.57692295312881
-- Bad!! 4, 0!!
-- We do not want 0! 0 bad!
-- Number #1 = 0 - bad!
-- Number #2 = 0 - bad!
-- Number #3 = 0 - maybe OK
--
-- 4, 81038, 0.59956729412079, 0.57692295312881
-- Number #1 = 4 - harasho
-- Number #2 = 81038 - parada
-- Mnogo harasho!
local db = {
["Eastern Kingdoms"] = {
[81032] = { area = 281, side = 3, level = 0, x = 50.00, y = 37.00 },
[81031] = { area = 241, side = 3, level = 0, x = 55.00, y = 66.00 },
[81030] = { area = 182, side = 3, level = 0, x = 45.00, y = 71.00 },
[81033] = { area = 606, side = 3, level = 0, x = 18.00, y = 36.00 },
[81034] = { area = 181, side = 3, level = 0, x = 55.00, y = 46.00 },
[81035] = { area = 43, side = 3, level = 0, x = 50.00, y = 51.00 },
[81038] = { area = 4, side = 3, level = 0, x = 36.00, y = 52.00 },
[81036] = { area = 81, side = 3, level = 0, x = 38.00, y = 64.00 },
[81037] = { area = 11, side = 3, level = 0, x = 61.00, y = 50.00 },
[81039] = { area = 101, side = 3, level = 0, x = 37.00, y = 30.00 },
[81040] = { area = 9, side = 3, level = 0, x = 56.00, y = 30.00 },
[81041] = { area = 607, side = 3, level = 0, x = 45.00, y = 35.00 },
[81042] = { area = 141, side = 3, level = 0, x = 47.00, y = 50.00 },
[81043] = { area = 121, side = 3, level = 0, x = 61.00, y = 30.00 },
[81044] = { area = 61, side = 3, level = 0, x = 75.00, y = 50.00 },
[81046] = { area = 201, side = 3, level = 0, x = 49.00, y = 49.00 },
[81045] = { area = 161, side = 3, level = 0, x = 74.00, y = 46.00 },
[81047] = { area = 720, side = 3, level = 0, x = 64.00, y = 20.00 },
[81048] = { area = 261, side = 3, level = 0, x = 37.00, y = 76.00 },
[81029] = { area = 42, side = 3, level = 0, x = 39.00, y = 62.00 },
[81026] = { area = 41, side = 3, level = 0, x = 45.00, y = 22.00 },
[81027] = { area = 464, side = 3, level = 0, x = 36.00, y = 60.00 },
[81028] = { area = 476, side = 3, level = 0, x = 67.00, y = 71.00 },
[81056] = { area = 479, side = 3, level = 0, x = 59.00, y = 42.00 },
[81055] = { area = 475, side = 3, level = 0, x = 42.00, y = 19.00 },
[81054] = { area = 467, side = 3, level = 0, x = 69.00, y = 45.00 },
[81053] = { area = 477, side = 3, level = 0, x = 60.00, y = 24.00 },
[81052] = { area = 478, side = 3, level = 0, x = 72.00, y = 37.00 },
[81051] = { area = 473, side = 3, level = 0, x = 41.00, y = 23.00 },
[81050] = { area = 465, side = 3, level = 0, x = 46.00, y = 50.00 },
[81076] = { area = 949, side = 3, level = 0, x = 51.00, y = 33.00 },
[81077] = { area = 941, side = 3, level = 0, x = 54.00, y = 66.00 },
[81078] = { area = 950, side = 3, level = 0, x = 39.00, y = 33.00 },
[81079] = { area = 946, side = 3, level = 0, x = 34.00, y = 47.00 },
[81080] = { area = 948, side = 3, level = 0, x = 57.00, y = 90.00 },
[81081] = { area = 947, side = 3, level = 0, x = 62.00, y = 89.00 },
[81075] = { area = 945, side = 3, level = 0, x = 41.00, y = 75.00 },
[81067] = { area = 806, side = 3, level = 0, x = 35.00, y = 30.00 },
[81071] = { area = 809, side = 3, level = 0, x = 76.00, y = 09.00 },
[81072] = { area = 810, side = 3, level = 0, x = 71.00, y = 56.00 },
[81073] = { area = 858, side = 3, level = 0, x = 39.00, y = 23.00 },
[81068] = { area = 857, side = 3, level = 0, x = 76.00, y = 08.00 },
[81069] = { area = 807, side = 3, level = 0, x = 76.00, y = 26.00 },
[81070] = { area = 811, side = 3, level = 0, x = 21.00, y = 69.00 },
[81074] = { area = 951, side = 3, level = 0, x = 22.00, y = 58.00 },
[81049] = { area = 640, side = 3, level = 0, x = 48.00, y = 54.00 },
[81057] = { area = 486, side = 3, level = 0, x = 85.00, y = 30.00 },
[81058] = { area = 493, side = 3, level = 0, x = 44.00, y = 78.00 },
[81060] = { area = 492, side = 3, level = 0, x = 64.00, y = 22.00 },
[81066] = { area = 495, side = 3, level = 0, x = 43.00, y = 82.00 },
[81065] = { area = 496, side = 3, level = 0, x = 28.00, y = 46.00 },
[81063] = { area = 490, side = 3, level = 0, x = 62.00, y = 42.00 },
[81064] = { area = 491, side = 3, level = 0, x = 31.00, y = 26.00 },
[81062] = { area = 488, side = 3, level = 0, x = 57.00, y = 35.00 },
[81061] = { area = 510, side = 3, level = 0, x = 19.00, y = 16.00 },
[81059] = { area = 501, side = 3, level = 0, x = 57.00, y = 41.00 },
[81082] = { area = 1015, side = 3, level = 0, x = 61.00, y = 68.00 },
[81083] = { area = 1018, side = 3, level = 0, x = 54.00, y = 82.00 },
[81084] = { area = 1024, side = 3, level = 0, x = 60.00, y = 48.00 },
[81085] = { area = 1017, side = 3, level = 0, x = 82.00, y = 09.00 },
[81086] = { area = 1033, side = 3, level = 0, x = 42.00, y = 67.00 },
[81087] = { area = 1021, side = 3, level = 0, x = 61.00, y = 33.00 },
[81003] = { area = 20, side = 3, level = 0, x = 50.00, y = 29.00 },
[81004] = { area = 22, side = 3, level = 0, x = 63.00, y = 60.00 },
[81005] = { area = 23, side = 3, level = 0, x = 37.00, y = 45.00 },
[81009] = { area = 21, side = 3, level = 0, x = 63.00, y = 63.00 },
[81008] = { area = 24, side = 3, level = 0, x = 33.00, y = 34.00 },
[81006] = { area = 26, side = 3, level = 0, x = 86.00, y = 59.00 },
[81007] = { area = 16, side = 3, level = 0, x = 56.00, y = 33.00 },
[81010] = { area = 40, side = 3, level = 0, x = 44.00, y = 25.00 },
[81011] = { area = 700, side = 3, level = 0, x = 64.00, y = 78.00 },
[81013] = { area = 35, side = 3, level = 0, x = 47.00, y = 45.00 },
[81012] = { area = 27, side = 3, level = 0, x = 77.00, y = 57.00 },
[81016] = { area = 17, side = 3, level = 0, x = 44.00, y = 49.00 },
[81015] = { area = 28, side = 3, level = 0, x = 43.00, y = 37.00 },
[81017] = { area = 29, side = 3, level = 0, x = 45.00, y = 41.00 },
[81018] = { area = 30, side = 3, level = 0, x = 71.00, y = 81.00 },
[81019] = { area = 36, side = 3, level = 0, x = 40.00, y = 35.00 },
[81020] = { area = 38, side = 3, level = 0, x = 33.00, y = 51.00 },
[81021] = { area = 32, side = 3, level = 0, x = 48.00, y = 67.00 },
[81022] = { area = 34, side = 3, level = 0, x = 25.00, y = 34.00 },
[81023] = { area = 39, side = 3, level = 0, x = 26.00, y = 17.00 },
[81025] = { area = 19, side = 3, level = 0, x = 39.00, y = 61.00 },
[81024] = { area = 673, side = 3, level = 0, x = 54.00, y = 32.00 },
[81001] = { area = 462, side = 3, level = 0, x = 69.00, y = 52.00 },
[81002] = { area = 463, side = 3, level = 0, x = 59.00, y = 14.00 },
[81000] = { area = 499, side = 3, level = 0, x = 43.00, y = 39.00 },
[81014] = { area = 614, side = 3, level = 0, x = 69.00, y = 27.00 },
},
}
ns.modules[texture] = {
loaded = false,
texture = iconTexture,
title = iconTitle,
nodes = nodes,
load = function(self)
local faction = ns:GetPlayerFaction()
if not faction then return false end
for _, entries in pairs(db) do
for quest, data in pairs(entries) do
if not ns:IsQuestCompleted(quest) then
table_insert(nodes, {
quest = quest,
area = data.area,
level = data.level,
x = data.x / 100,
y = data.y / 100,
title = data.title,
text = data.text,
instance = data.instance,
})
end
end
end
table_wipe(db)
self.loaded = true
return true
end,
OnShow = function(self)
if self.node.instance then self.icon:SetTexture(iconTextureInstance) end
end,
OnEnter = function(self)
WorldMapTooltip:SetOwner(self, "ANCHOR_RIGHT")
if self.node.title then
WorldMapTooltip:SetText(self.node.title)
else
if self.node.instance then
WorldMapTooltip:SetText(iconTitle .. ": Instance")
else
WorldMapTooltip:SetText(iconTitle)
end
end
WorldMapTooltip:AddLine(GetMapNameByID(self.node.area), 1, 0.82, 0, false)
if self.node.text then WorldMapTooltip:AddLine(self.node.text, 1, 1, 1, true) end
WorldMapTooltip:AddLine(
string_format("%.1f, %.1f", self.node.x * 100, self.node.y * 100),
1,
1,
1,
false
)
WorldMapTooltip:AddLine(string_format("Quest %d", self.node.quest), 0.8, 0.8, 0.8, false)
if ns.WaypointAddons:GetAddon() then
WorldMapTooltip:AddLine("<Click for waypoint.>", 0.8, 0.8, 0.8, false)
end
WorldMapTooltip:Show()
end,
OnLeave = function(self) WorldMapTooltip:Hide() end,
}