Mercurial > wow > worldplan
comparison QuestPOI.lua @ 103:8cdd62e7a224
- Solved the quest pins remaining visible issue
author | Nenue |
---|---|
date | Sun, 28 May 2017 19:50:42 -0400 |
parents | fbd4ead2a19f |
children | 9f664a0ef8a8 |
comparison
equal
deleted
inserted
replaced
101:b68af1e44bdc | 103:8cdd62e7a224 |
---|---|
38 local iprint = DEVIAN_WORKSPACE and function(...) _G.print('ItemScan', ...) end or nop | 38 local iprint = DEVIAN_WORKSPACE and function(...) _G.print('ItemScan', ...) end or nop |
39 local rprint = DEVIAN_WORKSPACE and function(...) _G.print('WQRefresh', ...) end or nop | 39 local rprint = DEVIAN_WORKSPACE and function(...) _G.print('WQRefresh', ...) end or nop |
40 local dprint = DEVIAN_WORKSPACE and function(...) _G.print('WQData', ...) end or nop | 40 local dprint = DEVIAN_WORKSPACE and function(...) _G.print('WQData', ...) end or nop |
41 local QuestPOI = WorldPlanPOIMixin | 41 local QuestPOI = WorldPlanPOIMixin |
42 | 42 |
43 local pinBaseIndex = 1520 | 43 local pinBaseIndex = 1400 |
44 local overlayBaseIndex = 1580 | 44 local overlayBaseIndex = 1450 |
45 local previousHighlight | 45 local previousHighlight |
46 | 46 |
47 local FADE_TIMING_MULTIPLIER = 3 | 47 local FADE_TIMING_MULTIPLIER = 3 |
48 local DATA_DEBUG = false | 48 local DATA_DEBUG = false |
49 local PIN_REFRESH_DELAY = 1 | 49 local PIN_REFRESH_DELAY = 1 |
322 self:HideOrShowFrames(true) | 322 self:HideOrShowFrames(true) |
323 end | 323 end |
324 | 324 |
325 function QuestPOI:OnEvent(event, questID) | 325 function QuestPOI:OnEvent(event, questID) |
326 if (self.questID == questID) and IsQuestComplete(self.questID) then | 326 if (self.questID == questID) and IsQuestComplete(self.questID) then |
327 db.log(self.questID .. " Marked completed.") | 327 db.log(event .. ' for ' .. self:GetName().. ' triggered.') |
328 self:Release() | 328 self:Release() |
329 end | 329 end |
330 end | 330 end |
331 | 331 |
332 function QuestPOI:OnHide() | 332 function QuestPOI:OnHide() |
333 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') | 333 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') |
334 self:HideOrShowFrames(false) | 334 self:HideOrShowFrames(false) |
335 -- reset flags | 335 -- reset flags |
336 self:SetAlpha(db.PinAlpha) | 336 self:SetAlpha(db.PinAlpha) |
337 self.isAnimating = nil | 337 self.isAnimating = nil |
338 if db.Config.DebugEnabled then | 338 --if db.Config.DebugEnabled then |
339 db.log(tostring(self.questID) .. ' ' .. tostring(self.title) .. "\n" .. tostring(REWARD_TYPE_NAMES[self.rewardType]) .. ' ' .. tostring(self.itemName) .. ' ' .. tostring(self.itemNumber) .. "\n|cFFFF4400" .. (self.hideReason or 'NO_MESSAGE') .. "|r\n|cFF00FFFF" .. debugstack(2,3,0) .. '|r') | 339 -- db.log(tostring(self.questID) .. ' ' .. tostring(self.title) .. "\n" .. tostring(REWARD_TYPE_NAMES[self.rewardType]) .. ' ' .. tostring(self.itemName) .. ' ' .. tostring(self.itemNumber) .. "\n|cFFFF4400" .. (self.hideReason or 'NO_MESSAGE') .. "|r\n|cFF00FFFF" .. debugstack(2,3,0) .. '|r') |
340 end | 340 --end |
341 self.hideReason = nil | 341 self.hideReason = nil |
342 end | 342 end |
343 | 343 |
344 function QuestPOI:OnEnter() | 344 function QuestPOI:OnEnter() |
345 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then | 345 if self.filtered and (self.questID ~= GetSuperTrackedQuestID()) then |
528 --print('|cFFFF4400OnUpdate(|r'..self:GetID()..'|cFFFF4400)|r poll failed') | 528 --print('|cFFFF4400OnUpdate(|r'..self:GetID()..'|cFFFF4400)|r poll failed') |
529 end | 529 end |
530 return | 530 return |
531 end | 531 end |
532 | 532 |
533 if self.maxAlertLevel then | |
534 self:UpdateStatus() | |
535 end | |
536 | |
537 | |
538 if self.isStale then | 533 if self.isStale then |
539 self:Refresh() | 534 self:Refresh() |
540 end | 535 elseif self.maxAlertLevel then |
541 | 536 self:UpdateStatus() |
537 end | |
542 end | 538 end |
543 | 539 |
544 | 540 |
545 function QuestPOI:StartFading() | 541 function QuestPOI:StartFading() |
546 if not self.toAlpha then | 542 if not self.toAlpha then |
741 | 737 |
742 else | 738 else |
743 return false | 739 return false |
744 end | 740 end |
745 end | 741 end |
746 | |
747 | |
748 | |
749 --[[ set reward category | |
750 local numRewards = GetNumQuestLogRewards(questID) | |
751 local numCurrency = GetNumQuestLogRewardCurrencies(questID) | |
752 local money = GetQuestLogRewardMoney(questID) | |
753 if numRewards >= 1 then | |
754 rewardType, rewardIcon, rewardCount, rewardName, itemID, quality = WorldPlanQuests:GetRewardHeader(questID) | |
755 elseif numCurrency >= 1 then | |
756 rewardName, rewardIcon, rewardCount = GetQuestLogRewardCurrencyInfo(1, questID) | |
757 rewardType = REWARD_CURRENCY | |
758 elseif money >= 1 then | |
759 rewardName = GetMoneyString(money) | |
760 end | |
761 --]] | |
762 | |
763 end | 742 end |
764 end | 743 end |
765 | 744 |
766 | 745 |
767 function QuestPOI:UpdateArtifactPower(rewardLink) | 746 function QuestPOI:UpdateArtifactPower(rewardLink) |
802 self.hideReason = 'SetAnchor() on an unused frame.' | 781 self.hideReason = 'SetAnchor() on an unused frame.' |
803 self:HideOrShowFrames(false) | 782 self:HideOrShowFrames(false) |
804 return | 783 return |
805 end | 784 end |
806 | 785 |
807 | |
808 if owner then | 786 if owner then |
809 self:SetParent(owner) | 787 self:SetParent(owner) |
810 self.Overlay:SetParent(owner) | 788 self.Overlay:SetParent(owner) |
811 self:SetFrameStrata('HIGH') | 789 self:SetFrameStrata('HIGH') |
812 self:SetFrameLevel(pinBaseIndex + self:GetID()) | 790 self:SetFrameLevel(pinBaseIndex + self:GetID()) |
846 -- Non-hieriarchical display states, checked separately from used/filtered states | 824 -- Non-hieriarchical display states, checked separately from used/filtered states |
847 function QuestPOI:OnCriteria() | 825 function QuestPOI:OnCriteria() |
848 self.checkCriteria = nil | 826 self.checkCriteria = nil |
849 local isCriteria, isBounty, isSpellTarget | 827 local isCriteria, isBounty, isSpellTarget |
850 | 828 |
851 print(' ' ..self:GetID() .. ':|cFFFFFF00OnCriteria()' ) | 829 print('|cFFFFFF00OnCriteria(' ..self:GetID() .. ')' ) |
852 | 830 |
853 for index, bounty in pairs(db.Bounties) do | 831 for index, bounty in pairs(db.Bounties) do |
854 if (not IsQuestComplete(bounty.questID)) and IsQuestCriteriaForBounty(self.questID, bounty.questID) then | 832 if (not IsQuestComplete(bounty.questID)) and IsQuestCriteriaForBounty(self.questID, bounty.questID) then |
855 isCriteria = true | 833 isCriteria = true |
856 if db.selectedBounty == bounty then | 834 if db.selectedBounty == bounty then |
934 | 912 |
935 if not self:IsShown() then | 913 if not self:IsShown() then |
936 print('queued for Refresh') | 914 print('queued for Refresh') |
937 self.isStale = true | 915 self.isStale = true |
938 return nil | 916 return nil |
939 end | 917 elseif IsQuestComplete(self.questID) then |
940 | 918 self:Release() |
919 return nil | |
920 end | |
941 if self.checkCriteria then | 921 if self.checkCriteria then |
942 self:OnCriteria() | 922 self:OnCriteria() |
943 end | 923 end |
944 if self.checkFilters then | 924 if self.checkFilters then |
945 self:OnFilters() | 925 self:OnFilters() |
1069 | 1049 |
1070 self.tagIcon:SetShown((not self.filtered) and true or false) | 1050 self.tagIcon:SetShown((not self.filtered) and true or false) |
1071 self.tagIcon:SetAtlas(self.tagAtlas) | 1051 self.tagIcon:SetAtlas(self.tagAtlas) |
1072 self.EliteBorder:SetShown(self.isElite and not self.filtered) | 1052 self.EliteBorder:SetShown(self.isElite and not self.filtered) |
1073 | 1053 |
1074 self:UpdateStatus() | |
1075 | 1054 |
1076 if self.isBounty then | 1055 if self.isBounty then |
1077 --print('is bounty') | 1056 print('is bounty') |
1078 iconBorder:SetVertexColor(trackingBorder:GetVertexColor()) | 1057 iconBorder:SetVertexColor(trackingBorder:GetVertexColor()) |
1079 trackingBorder:SetVertexColor(unpack(BORDER_SELECTED_BOUNTY)) | 1058 trackingBorder:SetVertexColor(unpack(BORDER_SELECTED_BOUNTY)) |
1080 elseif self.isCriteria then | 1059 elseif self.isCriteria then |
1081 --print('is criteria of a bounty') | 1060 print('is criteria of a bounty') |
1082 iconBorder:SetVertexColor(trackingBorder:GetVertexColor()) | 1061 iconBorder:SetVertexColor(trackingBorder:GetVertexColor()) |
1083 trackingBorder:SetVertexColor(unpack(BORDER_CRITERIA)) | 1062 trackingBorder:SetVertexColor(unpack(BORDER_CRITERIA)) |
1084 else | 1063 else |
1085 | 1064 print('is nothing') |
1086 iconBorder:SetVertexColor(unpack(borderColor)) | 1065 iconBorder:SetVertexColor(unpack(borderColor)) |
1087 trackingBorder:SetVertexColor(0,0,0,.5) | 1066 trackingBorder:SetVertexColor(0,0,0,.5) |
1088 end | 1067 end |
1068 self:UpdateStatus() | |
1089 | 1069 |
1090 if SpellCanTargetQuest() then | 1070 if SpellCanTargetQuest() then |
1091 if self.isSpellTarget then | 1071 if self.isSpellTarget then |
1092 icon:SetVertexColor(1,1,1) | 1072 icon:SetVertexColor(1,1,1) |
1093 self:EnableMouse(false) | 1073 self:EnableMouse(false) |
1123 local text, timeState, style = self:GetTimeInfo(timeLeft, self.maxAlertLevel) | 1103 local text, timeState, style = self:GetTimeInfo(timeLeft, self.maxAlertLevel) |
1124 if tl ~= timeState then | 1104 if tl ~= timeState then |
1125 tl = timeState | 1105 tl = timeState |
1126 self.timeLabel:SetText(text) | 1106 self.timeLabel:SetText(text) |
1127 end | 1107 end |
1128 if style then | |
1129 self.RewardBorder:SetVertexColor(style.r, style.g, style.b, style.a) | |
1130 end | |
1131 end | 1108 end |
1132 | 1109 |
1133 self.alertLevel = tl | 1110 self.alertLevel = tl |
1134 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1)) | 1111 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1)) |
1135 else | 1112 else |
1152 self.count:SetShown(isShown) | 1129 self.count:SetShown(isShown) |
1153 self.timeLabel:SetShown(isShown) | 1130 self.timeLabel:SetShown(isShown) |
1154 end | 1131 end |
1155 | 1132 |
1156 function QuestPOI:Release(msg) | 1133 function QuestPOI:Release(msg) |
1157 print('|cFFFF4400'..self:GetID()..':Release()', self.hideReason) | 1134 print('|cFFFF4400Release('..self:GetID()..')', self.hideReason) |
1158 self.hideReason = msg or 'Released by script.' | 1135 self.hideReason = msg or 'Released by script.' |
1136 self:ClearAllPoints() | |
1159 self:SetShown(false) | 1137 self:SetShown(false) |
1160 self:HideOrShowFrames(false) | 1138 self:HideOrShowFrames(false) |
1161 | 1139 |
1162 if self.questID then | 1140 if self.questID then |
1163 db.QuestsByID[self.questID] = nil | 1141 db.QuestsByID[self.questID] = nil |