You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
6.0 KiB

local myname, ns = ...
-- TODO: this could be greatly simplified if I properly add multiple-achievement support to core...
local function extend(t1, t2)
tAppendAll(t1, t2)
return t1
end
local finalLoot = {
199669, -- Spiked Crimson Spaulders (all bronze)
{199688, pet=3279}, -- Bronze Racing Enthusiast (all silver)
-- Isles Racer title (IsTitleKnown(479) / GetTitleName(478))
}
local Race = ns.Class{
Initialize=function(self, questname, achievements, currencies)
self._questname = questname
self._achievements = achievements
self._currencies = currencies or {}
end,
-- achievement=15941, -- Dragon Racing Completionist: Gold
atlas="racing", scale=1.2,
requires=ns.DRAGONRIDING,
_loot={
[ns.WAKINGSHORES] = extend({
{197370, quest=69571}, -- Renewed Proto-Drake: Red Hair
{197351, quest=69552, note=ADVANCED_LABEL}, -- Renewed Proto-Drake: Gold and Red Armor
}, finalLoot),
[ns.OHNAHRANPLAINS] = extend({
{197599, quest=69803}, -- Windborne Velocidrake: Red Hair
{197580, quest=69784, note=ADVANCED_LABEL}, -- Windborne Velocidrake: Gold and Red Armor
}, finalLoot),
[ns.AZURESPAN] = extend({
{197118, quest=69319}, -- Highland Drake: Brown Hair
{197094, quest=69295, note=ADVANCED_LABEL}, -- Highland Drake: Gold and Red Armor
}, finalLoot),
[ns.THALDRASZUS] = extend({
{196987, quest=69187}, -- Cliffside Wylderdrake: Blonde Hair
{196966, quest=69166, note=ADVANCED_LABEL}, -- Cliffside Wylderdrake: Gold and Orange Armor
}, finalLoot),
[ns.FORBIDDENREACH] = {
-- Forbidden Reach Racer title
},
},
group="races",
note="Rewards are for zone-wide and continent-wide completion",
OnTooltipShow=function(self, tooltip)
for i, achievementid in pairs(self._achievements) do
local _, name, _, complete = GetAchievementInfo(achievementid)
local currencyInfo = self._currencies[i] and C_CurrencyInfo.GetCurrencyInfo(self._currencies[i])
tooltip:AddDoubleLine(
name or achievementid,
currencyInfo and ("%.3f s"):format(currencyInfo.quantity / 1000) or "? s",
complete and 0 or 1, complete and 1 or 0, 0,
complete and 0 or 1, complete and 1 or 0, 0
)
end
end,
__get={
label=function(self)
self.label = ("{questname:%d}"):format(self._questname)
return self.label
end,
found=function(self)
local found = {}
for _, aid in ipairs(self._achievements) do
table.insert(found, ns.conditions.Achievement(aid))
end
self.found = found
return found
end,
loot=function(self)
return self._loot[self._uiMapID]
end,
},
}
-- lines with a ? need their currency verified
ns.RegisterPoints(ns.WAKINGSHORES, {
[63307090] = Race(72434, {15698, 15704}, {2042, 2044}), --Ruby Lifeshrine Loop ? also has 2043 as "medium"
[47028558] = Race(66721, {15714, 15717}, {2048, 2049}), --Wild Preserve Slalom
[41956730] = Race(66727, {15726, 15729}, {2052, 2053}), --Emberflow Flight
[23278430] = Race(66732, {15732, 15735}, {2054, 2055}), --Apex Canopy River Run
[55424119] = Race(66777, {15738, 15741}, {2056, 2057}), --Uktulut Coaster
[73203396] = Race(66786, {15744, 15747}, {2058, 2059}), --Wingrest Roundabout
[62787402] = Race(66710, {15707, 15711}, {2046, 2047}), --Flashfrost Flyover
[42589446] = Race(66725, {15720, 15723}, {2050, 2051}), --Wild Preserve Circuit
})
ns.RegisterPoints(ns.OHNAHRANPLAINS, {
[63753051] = Race(66835, {15759, 15762}, {2060, 2061}), -- Sundapple Copse Circuit ?
[86263582] = Race(66877, {15765, 15768}, {2062, 2063}), -- Fen Flythrough ?
[80897219] = Race(66880, {15771, 15774}, {2064, 2065}), -- Ravine River Run ?
[25715507] = Race(66885, {15777, 15780}, {2066, 2067}), -- Emerald Garden Ascent ?
[59933555] = Race(66921, {15784}, {2069}), -- Maruukai Dash ?
[47497062] = Race(66933, {15787}, {2070}), -- Mirror of the Sky Dash ?
[43746676] = Race(70710, {16304, 16307}, {2119, 2120}), -- River Rapids Route ?
})
ns.RegisterPoints(ns.AZURESPAN, {
[47914078] = Race(66946, {15790, 15793}, {2074, 2075}), -- The Azure Span Sprint ?
[20952262] = Race(67002, {15801, 15804}, {2076, 2077}), -- The Azure Span Slalom ?
[71292466] = Race(67031, {15820, 15823}, {2078, 2079}), -- The Vakthros Ascent ?
[16564937] = Race(67296, {15837, 15840}, {2083, 2084}), -- Iskaara Tour ?
[48493578] = Race(67565, {15843, 15846}, {2085, 2086}), -- Frostland Flyover ?
[42265674] = Race(67741, {15849, 15852}, {2089, 2090}), -- Archive Ambit ?
})
ns.RegisterPoints(ns.THALDRASZUS, {
[57777501] = Race(67095, {15829, 15832}, {2080, 2081}), -- The Flowing Forest Flight
[57236690] = Race(69957, {15857, 15860}, {2092, 2093}), -- Tyrhold Trial
[37654893] = Race(70051, {15893, 15896}, {2096, 2097}), -- Cliffside Circuit
[60294159] = Race(70059, {15899, 15902}, {2098, 2099}), -- Academy Ascent
[39517619] = Race(70157, {15905, 15908}, {2101, 2102}), -- Garden Gallivant
[58053361] = Race(70161, {15911, 15914}, {2103, 2104}), -- Caverns Criss-Cross
})
ns.RegisterPoints(ns.FORBIDDENREACH, {
[76136563] = Race(73017, {17216, 17219, 17222}, {2201, 2207, 2213}), -- Stormsunder Crater Circuit
[31326573] = Race(73020, {17225, 17239, 17242}, {2202, 2208, 2214}), -- Morqut Ascent
[63095195] = Race(73025, {17245, 17248, 17251}, {2203, 2209, 2215}), -- Aerie Chasm Cruise
[63658406] = Race(73029, {17254, 17257, 17260}, {2204, 2210, 2216}), -- Southern Reach Route
[41361455] = Race(73033, {17263, 17266, 17269}, {2205, 2211, 2217}), -- Caldera Coaster
[49426006] = Race(73061, {17272, 17275, 17278}, {2206, 2212, 2218}), -- Forbidden Reach Rush
})