# AllTheThings

## [DF-3.9.0](https://github.com/DFortun81/AllTheThings/tree/DF-3.9.0) (2024-01-16)
[Full Changelog](https://github.com/DFortun81/AllTheThings/compare/DF-3.8.13...DF-3.9.0) [Previous Releases](https://github.com/DFortun81/AllTheThings/releases)

- Recreate Missing FIles  
- Reparses with 10.2.5  
- -- New Warlock Grimoires  
- Harvest: 10.2.0.52808  
- Harvest: 10.2.5.52902  
- Classic: Reparsed database.  
- Classic: Settings menu now looks a bit more like the retail version. (WIP)  
- Update TOC and DataPatch for Parser  
    Fixed some new Pepe costumes  
    Parsed  
- Don't need a runner for this. It happens only on quest accept, which is infrequent enough to not need it. (also classic doesn't use runners, so this was throwing an exception every time someone accepted a quest!)  
- more 9.0.2ish QI adding  
- Some tooltip debugging code copied to earlier in logic  
- Fixed checking Object for tooltip by name in the proper mapID when only a single matching Object is found  
- Retail: Breadcrumb warning no longer alerts about breadcrumbs which are already locked by some other means  
- Fixed TW version of 'Bag of Shiny Things' having modifiers  
- Zannok Silithus Vendor  
    As reported in Retail-Errors  
- Update Mount Hyjal.lua  
- Retail: Fixed Heirlooms being considered 'saved' when they aren't something inherently collectible  
- Slightly adjusted an object comment.  
- Updated the Essential Artificial quest in gnomer.  
- Simplified 'Helping Hand' criteria  
- Popouts of Criteria should reliably include their respective Achievement in the Sources group  
    Some streamlining of logic for create popouts to fix some situations where it would not include expected details of the popped-out Thing (i.e. Meta-Achievements from within the Achievements category)  
- Classic: Added +Locked to the settings.  
- Some better data-linkage for one of the 'Other Interests' daily quests  
    Retail: Repeatable, non-WQ quests which have a cost and are active in your quest log are now shown as collectible to aid in locating the proper cost items  
- Parser now allows you to create custom objects should an objectID be unknown.  
- checked and updated mote of naszugo  
- Added the Heartswood object data.  
- added maps to mote  
- Classic: Moved the breadcrumb quests for Devourer of Souls (Warlock) to their respective zones of interest.  
- Removed some unused AssignChildren references.  
- Classic: The UI Windows now properly apply their back and expanded properties to their dynamic children.  
- Classic: Adjusted the language on some pre-10.1.7 bounty items for /attbounty.  
- Fixed some horrendously spammy refresh handling for Retail windows (TBD if this is actually necessary in the long run)  
- Adjusted listing for Gol'than the Malodorous to use proper source/cost design  
- Some Achievements missing proper Faction restrictions  
- Removed a debug comment  
    Ignore a couple more merge fields  
- Loki variant now has more data in its print to make it more obvious  
- Fixed the logic for the subclass variants and added a loki variant for them.  
- The variants are now actually base class instances with fully populated names.  
- The conditionals now receive the subclass instance to reference.  
- You can now define "variants" on a class conditional definition and it'll populate  
- Voone's Twitchbow and Rockfist now appear in /attbounty  
- The class constructor can now handle returning a second boolean for whether the subclass has been conditionally handled. (also sped up the logic a little bit)  
- Classes can now call t.base(t, key) to call to the base function.  
- Cleaned up Criteria handling for 'Broken Isles Mining Techniques' (18839)  
- Baked WorldQuest logic back into Quests  
- Locked Quests now work in Classic.  
- Some adjustments to classic settings, reenabling lock criteria for classic.  
- Battle Pets now uses new common collection logic and now stores all known Battle Pets for your account (like everything else does)  
- Sort debugging prints  
- Merge branch 'master' of https://github.com/DFortun81/AllTheThings  
- Sort can default the comparison in the public function instead of in every call of the private function  
- added all possible ulduar tw box items. with 4 out of 18 possible zone drops confirmed and 3 out of 15 heigan drops, its likely they all drop  
    added date to those confirmed  
- Quest module fixes (#1549)  
    * Retail: Added/adjusted various SetCollected/SetCached methods [WIP]
  
    * Added the timestamps container for the current character (sync window update requirement)
  
    * Only check for reporting inaccurate quests on 'Accepted' quests
  
    * Fixed Quest chat report not using HQT color
  
    Using 'Unknown' over 'Retrieving data' in places where it's not retrieving anymore
  
    * Commented out a huge amount of quests from being ignored for quest chat report
  
    Fixed ignored quests from being baked into everyone's saved variables (this is a per-user problem that only a few people have had issues with due to multi-account situations... we don't want to just blanket ignore random quests for everyone)
  
    * PartySync local was not ddefined early enough
  
    * Adjusted some Quest events so they aren't so spammy on startup
  
    * Retail uses event-driven Quest name retrieval again
  
    * Not using QuestUtils
  
    * Retail: Quest module now uses SetCollected/SetCached functionality to remove 'some' dependency on direct access of ATT Account data (more to adjust)
  
    Retail: Fixed handling of checking Quest completion state to allow proper unflagged quest tracking
  
    Retail: Quest caching on load and refresh is now much faster by way of doing batched updates to ATT's data cache
  
    Retail: Quest state changes once again automatically refresh the respective ATT groups (i.e. your ATT windows update the moment quest state changes are detected)
  
    * Fixed 'Etherwyrm Cage Key' being a CharacterUnlock (it's a proper cost, no need to track the item specifically)
  
    * Retail: Fixed checking for character-specific OPA quests due to missing Guid
  
    * CRITERIA\_UPDATE is way too spammy to be used without throttling
  
    * Unhandled Events now print their name instead of just blank lines in chat
  
    * Event handler table is now a metatable that reports when unhandled events are processed
  
    * Retail: Locked Quests are now a sub-class with improved caching of current locked state which should properly change lock status when a character becomes locked or unlocked
  
    Regular Quest collectible logic no longer considers locked state since Locked Quests use separate collectible handling
  
    * Fixed Quest collectible logic based on not checking locked state
  
    Localized SearchForObject
  
    * Retail: Fixed and cleaned up handling for Locked/Breadcrumb/Locked & Breadcrumb Quests
  
    * Retail: Cleaned up checking for breadcrumb prevention
  
    Retail: Fixed lots of Things losing their proper text coloring
  
    * Retail: Breadcrumbs now have the same color as in Classic (which now differentiates them from Locked Quests)
  
    Retail: Breadcrumb quests now enforce their Breadcrumb coloring directly from the Class
  
    TryColorizeName no longer supports 'isBreadcrumb'
  
    * Chat links should still be ChatLink color...
  
    * Fixed completed quests which are technically other Things (i.e.Rare, Object, etc.) to show the proper name in the chat message
  
    * Retail: Removed QUEST\_LOG\_UPDATE event handling since it is used in many situations which are irrelevant to ATT functionality (like opening your map)
  
    Retail: CRITERIA\_UPDATE is again handled with a cooldown and out-of-combat protection to prevent unnecessary processing (this again allows immediate quest updates in situations where the player may not even be performing an action)
  
    * Retail: Quests with maxReputation once again act as a 'cost' for the corresponding Faction if needed
  
    * Localized OneTimeQuest data for Quest usage on Startup
  
    Simplified table key assignments
  
    * Prioritize Class-defined indicatorIcon and moved Quest indicator icon logic to Quest lib
  
    * Fixed turned in Quests being double-reported in chat
  
    * Re-added One-Time Quest indicator (Maybe we can derive another way to handle multuiple sub-types where certain Objects need additional logic without themselves actually representing a different Type of Object as a sub-class)
  
    * Retail: Added a Debug chat warning if CreateObject is used badly
  
    Retail: Fixed an issue where /att list would create Quest objects which didn't do anything
  
    * Some comment adjustments to reduce diff
  
    Quest name being retrieved only trigger a window refresh if the questID has already been marked as unavailable from the Server (i.e. someone going through a fresh quest line on reset day should get populated quest names when accepting each quest as the Server loads the name)
  
    Added a function to reset a cached quest name since it's different between Retail/Classic
  
    * Retail: New Setting 'Replace Quest Tooltips' to control whether ATT replaces default Quest tooltips with custom ATT handling
  
    * How about the actual Settings checkbox...
  
    ---------
  
    Co-authored-by: Crieve <dylanfortune@live.com>  
- Classic: Bonespike Shoulder has been marked as Unobtainable since TBC Prepatch.  
- Some improvements and fixes to Nested Quest chain sequence logic  
