Docs: Update Changelog with new Ascension quests

This commit is contained in:
Xurkon
2026-02-18 22:49:11 -06:00
parent 86f9b39a8d
commit dd6329de97
14 changed files with 494 additions and 45 deletions
+28 -8
View File
@@ -398,14 +398,6 @@ function QuestieArrow:UpdateNearestTargets()
local usingAutoLogic = Questie.db.profile.autoTrackQuests or not hasTracked
local playerZoneId = QuestiePlayer:GetCurrentZoneId()
-- Auto mode logic: If autoTrack is on OR NOTHING is tracked
local usingAutoLogic = Questie.db.profile.autoTrackQuests or not hasTracked
local playerZoneId = QuestiePlayer:GetCurrentZoneId()
-- Auto mode logic: If autoTrack is on OR NOTHING is tracked
local usingAutoLogic = Questie.db.profile.autoTrackQuests or not hasTracked
local playerZoneId = QuestiePlayer:GetCurrentZoneId()
local function _CollectQuestTargets(quest)
if not quest then
return
@@ -772,3 +764,31 @@ function QuestieArrow:Initialize()
QuestieArrow:Refresh()
end
-- Debug function to show current arrow target coordinates
function QuestieArrow:PrintTargetCoords()
if not sortedTargets or not sortedTargets[1] then
print("Questie Arrow: No target currently set!")
return
end
local target = sortedTargets[1]
print("Questie Arrow Target:")
print(" Quest: " .. tostring(target.title))
print(" Level: " .. tostring(target.questLevel))
print(" Zone Coords: " .. string.format("%.1f, %.1f", target.x, target.y))
print(" UI Map ID: " .. tostring(target.uiMapId))
print(" Distance: " .. string.format("%.0f", target.distance))
end
-- Also expose sortedTargets for external access
function QuestieArrow:GetTargets()
return sortedTargets
end
-- Hook into Refresh to show debug info when arrow updates
local _OriginalRefresh = QuestieArrow.Refresh
QuestieArrow.Refresh = function(self, ...)
_OriginalRefresh(self, ...)
-- You can uncomment the line below to see debug output every refresh:
-- QuestieArrow:PrintTargetCoords()
end
+42 -8
View File
@@ -382,16 +382,50 @@ function _QuestEventHandler:MarkQuestAsAbandoned(questId)
end
if questEntry.state == QUEST_LOG_STATES.QUEST_REMOVED then
Questie:Debug(Questie.DEBUG_INFO, "Quest:", questId, "was abandoned")
questEntry.state = QUEST_LOG_STATES.QUEST_ABANDONED
-- Check if objectives were completed before the quest was removed.
-- This handles auto-complete quests that disappear from the log without firing QUEST_TURNED_IN properly.
-- If objectives were complete, treat it as a completion (not abandonment) so objective pins get hidden.
local objectivesWereComplete = false
local quest = QuestieDB.GetQuest(questId)
if quest then
local isComplete = QuestieDB.IsComplete(questId)
objectivesWereComplete = (isComplete == 1)
QuestLogCache.RemoveQuest(questId)
QuestieQuest:SetObjectivesDirty(questId) -- is this necessary? should whole quest.Objectives be cleared at some point of quest removal?
-- Check for Ebonhold auto-complete quests which might be removed before IsComplete returns 1
local desc = quest.Description
if type(desc) == "table" then desc = desc[1] end
QuestieQuest:AbandonedQuest(questId)
QuestieJourney:AbandonQuest(questId)
QuestieAnnounce:AbandonedQuest(questId)
questLog[questId] = nil
if (not objectivesWereComplete) and desc and type(desc) == "string" then
if string.find(desc, "automatically rewarded") then
Questie:Debug(Questie.DEBUG_INFO, "Quest:", questId, "detected as auto-complete by description")
objectivesWereComplete = true
end
end
end
if objectivesWereComplete then
-- Objectives were complete, so this was likely an auto-complete quest.
-- Mark as complete instead of abandoned so objective pins get hidden.
Questie:Debug(Questie.DEBUG_INFO, "Quest:", questId, "objectives were complete - treating as completed (auto-complete quest)")
questEntry.state = QUEST_LOG_STATES.QUEST_TURNED_IN
QuestLogCache.RemoveQuest(questId)
QuestieQuest:CompleteQuest(questId)
QuestieJourney:CompleteQuest(questId)
QuestieAnnounce:CompletedQuest(questId)
questLog[questId] = nil
else
Questie:Debug(Questie.DEBUG_INFO, "Quest:", questId, "was abandoned")
questEntry.state = QUEST_LOG_STATES.QUEST_ABANDONED
QuestLogCache.RemoveQuest(questId)
QuestieQuest:SetObjectivesDirty(questId) -- is this necessary? should whole quest.Objectives be cleared at some point of quest removal?
QuestieQuest:AbandonedQuest(questId)
QuestieJourney:AbandonQuest(questId)
QuestieAnnounce:AbandonedQuest(questId)
questLog[questId] = nil
end
end
end
+12 -1
View File
@@ -595,6 +595,17 @@ function QuestieQuest:AbandonedQuest(questId)
AvailableQuests.CalculateAndDrawAll()
-- Delayed verification to ensure all objective icons are removed
-- This handles race conditions where QuestieQuest:UpdateQuest might redraw icons
-- just as we are abandoning the quest
C_Timer.After(0.5, function()
if QuestieMap.questIdFrames[questId] then
Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest:AbandonedQuest] Lingering frames detected for quest:",
questId, "- forcing cleanup")
QuestieMap:UnloadQuestFrames(questId)
end
end)
Questie:Debug(Questie.DEBUG_INFO, "[QuestieQuest] Abandoned Quest:", questId)
end
@@ -607,7 +618,7 @@ function QuestieQuest:UpdateQuest(questId)
local sourceItemId = (quest and tonumber(quest.sourceItemId)) or 0
if quest and (not Questie.db.char.complete[questId]) then
if quest and (not Questie.db.char.complete[questId] or QuestiePlayer.currentQuestlog[questId]) then
QuestieQuest:PopulateQuestLogInfo(quest)
if QuestieQuest:ShouldShowQuestNotes(questId) then
+5 -20
View File
@@ -2275,24 +2275,10 @@ function QuestieTracker.RemoveQuestWatch(index, isQuestie)
end
if questId then
-- Check if quest is complete - if so, don't untrack it so the finisher can still be shown
local quest = QuestieDB.GetQuest(questId)
local isComplete = quest and QuestieDB.IsComplete(questId)
-- If quest is complete but has a finisher, keep it tracked so arrow can show turn-in location
if isComplete == 1 and quest and quest.Finisher then
Questie:Debug(Questie.DEBUG_DEVELOP,
"[QuestieTracker.RemoveQuestWatch] - Quest complete with finisher, keeping tracked:", questId)
-- Still update tracker but don't untrack
QuestieCombatQueue:Queue(function()
QuestieTracker:Update()
end)
return
end
QuestieTracker:UntrackQuestId(questId)
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieTracker.RemoveQuestWatch] - by Blizzard", questId)
end
end
else
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieTracker.RemoveQuestWatch] - by Questie")
@@ -2301,11 +2287,10 @@ end
function QuestieTracker:UntrackQuestId(questId)
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieTracker:UntrackQuestId] - ", questId)
if not Questie.db.profile.autoTrackQuests then
Questie.db.char.TrackedQuests[questId] = nil
else
Questie.db.char.AutoUntrackedQuests[questId] = true
end
-- Always remove from tracked quests when manually untracking
Questie.db.char.TrackedQuests[questId] = nil
-- Also remove from auto-untracked so it doesn't get re-tracked
Questie.db.char.AutoUntrackedQuests[questId] = nil
if Questie.db.profile.hideUntrackedQuestsMapIcons then
-- Hides objective icons for untracked quests.