Developer level support for manually adding daily rares
jagaudet opened this issue · 9 comments
Similar to #70, I've added code to WorldBosses.lua like so:
--- WorldBosses.lua.orig 2019-07-14 12:23:27.000000000 -0700
+++ WorldBosses.lua 2019-07-14 12:46:33.000000000 -0700
@@ -70,4 +70,8 @@
[9002] = { quest=47461, name=L["Lord Kazzak"], expansion=7, level=120}, -- Lord Kazzak
[9003] = { quest=47462, name=L["Azuregos"], expansion=7, level=120}, -- Azuregos
[9004] = { quest=47463, name=L["Dragon of Nightmare"], expansion=7, level=120}, -- Dragon of Nightmare
+ [9501] = { quest=55512, name=L["Arachnoid Harvester"], expansion=7, level=120}, -- Arachnoid Harvester
+ [9502] = { quest=55546, name=L["Armored Vaultbot"], expansion=7, level=120}, -- Armored Vaultbot
+ [9503] = { quest=55852, name=L["Gear Checker Cogstar"], expansion=7, level=120}, -- Gear Checker Cogstar
+
}
The point here, of course, is to track the three rares on Mechagon that still have loot drops I need, across all of my characters. It works great, but I have to manually edit the expiry time in SavedVariables each day (or just remove them entirely the next day) because the addon assumes it's a weekly expiry, not a daily expiry.
If we could add "expiry=daily" to such a manual entry, then people could extend this for customized use without too much trouble.
Interestingly, version 8.0.9 seems to pick up that they are daily quests without any further modification.
Ah, I almost forgot. If you want them tracked like world boss which are able to check progress in one line, put them in trackedQuest
in Progress.lua, and you can remove them from WorldBosses.lua and Quests.lua.
{
name = L["Arachnoid Harvester"],
quest = 55512,
daily = true,
},
But I don't like the idea to track tons of rares in SI, so I'm afraid this won't be added into SI.
Thanks for that tip. I gave it a try; using _specialQuests
in Quests.lua appears to bundle the rares behind a quest counter, requiring one to mouseover the counter for each character to drill into the details. Whereas adding as a WorldBoss gives each rare its own line, allowing one to eyeball the list to see which characters haven't killed it yet. The WorldBoss ease of use is more important than it automatically resetting each day, unfortunately.
As a middle ground, I can use both, which will allow me to copy the expiry from the quest data to the World Boss data, negating the need to work out the epoch time of the next day's reset. That will certainly simplify the manual editing of the data file each day.
Thanks, that worked. To keep it clean, I had to also add ProgressX = true
lines to SavedVariables.lua
, and I couldn't put them in front of "Conquest" or the display shifted in a weird way; characters who had the checkbox for the rare looked fine, otherwise the data below it shifted up a row to fill the empty slot. I'd imagine if there was an easy way to fill the empty slot with "0/1", similar to how the Warfront rows look, that would also have solved it.
This method separates the rares from the weekly bosses, which is nice. I don't need to track Conquest or Expeditions, so now I have a nice isolated cluster of tracked rares. It's also a cleaner solution in that I don't have to generate a bogus ID, though I expect the IDs I was using would not have been an issue. Thanks for the help!
If I spot anything unrelated to my mods that seems to be impacted by the daily-vs-weekly reset that changed sometime after 8.0.9, I'll file a separate bug for it.
I wasn't able to add these rares to the trackedQuest in Progress.lua without the addon breaking in-game (it no longer showed anything but an empty frame). Could you please provide more detailed instructions on how to add these rares?
I also didn't follow the ProgressX=true modifications. Where do I make those changes in the SavedVariables.lua?
My current diffs:
--- ../test/SavedInstances/Progress.lua 2019-07-10 14:27:20.000000000 -0700
+++ Progress.lua 2019-07-23 15:00:50.000000000 -0700
@@ -112,6 +112,32 @@
weekly = true,
resetFunc = KeepProgress,
},
+ {
+ name = "Arachnoid Harvester",
+ quest = 55512,
+ daily = true,
+ resetFunc = KeepProgress,
+ },
+ {
+ name = "Armored Vaultbot",
+ quest = 55546,
+ daily = true,
+ },
+ {
+ name = "Gear Checker Cogstar",
+ quest = 55852,
+ daily = true,
+ },
+ {
+ name = "Soundless",
+ quest = 56298,
+ daily = true,
+ },
+ {
+ name = "Mechanized Chest",
+ quest = 57081,
+ daily = true,
+ }
}
function P:OnEnable()
--- ../test/SavedInstances/SavedInstances.lua 2019-07-10 14:27:20.000000000 -0700
+++ SavedInstances.lua 2019-07-23 15:01:22.000000000 -0700
@@ -1,4 +1,4 @@
-local addonName, addon = ...
+local addonName, addon = ...
local addonAbbrev = "SI"
local core = addon.core
local L = addon.L
@@ -483,6 +483,11 @@
TrackParagon = true,
Progress1 = true, -- PvP Conquest
Progress2 = true, -- Island Weekly
+ Progress3 = true, -- Arachnoid Harvester
+ Progress4 = true, -- Vaultbot
+ Progress5 = true, -- Cogstar
+ Progress6 = true, -- Soundless
+ Progress7 = true, -- Mechanized Chest
Warfront1 = true, -- Arathi Highlands
Warfront2 = true, -- Darkshores
},
Note that Mechanized Chest is actually weekly, but they aren't auto-clearing anyways (you have to log in that character to reset these dailies), so it doesn't matter. It tracks if you've opened one for the week, for the Mechagon mini drop.