comparison QuestPOI.lua @ 69:31de7e9e7849

stop hiding pins when the timeleft returns 0; use C_TQ.IsActive
author Nenue
date Wed, 05 Apr 2017 11:36:06 -0400
parents 96183f981acb
children d6c0bed32c51
comparison
equal deleted inserted replaced
68:cce68795f955 69:31de7e9e7849
57 local REWARD_CASH = WORLD_QUEST_REWARD_TYPE_FLAG_GOLD 57 local REWARD_CASH = WORLD_QUEST_REWARD_TYPE_FLAG_GOLD
58 local REWARD_ARTIFACT_POWER = WORLD_QUEST_REWARD_TYPE_FLAG_ARTIFACT_POWER 58 local REWARD_ARTIFACT_POWER = WORLD_QUEST_REWARD_TYPE_FLAG_ARTIFACT_POWER
59 local REWARD_GEAR = WORLD_QUEST_REWARD_TYPE_FLAG_EQUIPMENT 59 local REWARD_GEAR = WORLD_QUEST_REWARD_TYPE_FLAG_EQUIPMENT
60 local REWARD_CURRENCY = WORLD_QUEST_REWARD_TYPE_FLAG_ORDER_RESOURCES 60 local REWARD_CURRENCY = WORLD_QUEST_REWARD_TYPE_FLAG_ORDER_RESOURCES
61 local REWARD_REAGENT = WORLD_QUEST_REWARD_TYPE_FLAG_MATERIALS 61 local REWARD_REAGENT = WORLD_QUEST_REWARD_TYPE_FLAG_MATERIALS
62 local REWARD_HONOR = WORLD_QUEST_REWARD_TYPE_FLAG_HONOR 62
63 local REWARD_TYPE_NAMES = {
64 [REWARD_CASH] = 'Money',
65 [REWARD_ARTIFACT_POWER] = 'AP',
66 [REWARD_GEAR] = 'Equipment',
67 [REWARD_CURRENCY] = 'Currency',
68 [REWARD_REAGENT] = 'Trade Goods'
69 }
63 70
64 local LE_QUEST_TAG_TYPE_PVP = LE_QUEST_TAG_TYPE_PVP 71 local LE_QUEST_TAG_TYPE_PVP = LE_QUEST_TAG_TYPE_PVP
65 local LE_QUEST_TAG_TYPE_PET_BATTLE = LE_QUEST_TAG_TYPE_PET_BATTLE 72 local LE_QUEST_TAG_TYPE_PET_BATTLE = LE_QUEST_TAG_TYPE_PET_BATTLE
66 local LE_QUEST_TAG_TYPE_DUNGEON = LE_QUEST_TAG_TYPE_DUNGEON 73 local LE_QUEST_TAG_TYPE_DUNGEON = LE_QUEST_TAG_TYPE_DUNGEON
67 local LE_QUEST_TAG_TYPE_PROFESSION = LE_QUEST_TAG_TYPE_PROFESSION 74 local LE_QUEST_TAG_TYPE_PROFESSION = LE_QUEST_TAG_TYPE_PROFESSION
73 local LE_QUEST_TAG_TYPE_PROFESSION = LE_QUEST_TAG_TYPE_PROFESSION 80 local LE_QUEST_TAG_TYPE_PROFESSION = LE_QUEST_TAG_TYPE_PROFESSION
74 local LE_QUEST_TAG_TYPE_NORMAL = LE_QUEST_TAG_TYPE_NORMAL 81 local LE_QUEST_TAG_TYPE_NORMAL = LE_QUEST_TAG_TYPE_NORMAL
75 82
76 local DEFAULT_STYLE = { 83 local DEFAULT_STYLE = {
77 border = {1,1,1}, 84 border = {1,1,1},
85 textColor = {1,1,1,1},
78 x = 0, y = 0, 86 x = 0, y = 0,
79 desaturated = true, 87 desaturated = true,
80 iconMask = "Interface\\Minimap\\UI-Minimap-Background", 88 iconMask = "Interface\\Minimap\\UI-Minimap-Background",
81 borderMask = "Interface\\Minimap\\UI-Minimap-Background", 89 borderMask = "Interface\\Minimap\\UI-Minimap-Background",
82 rewardMark = "Interface\\Minimap\\UI-Minimap-Background", 90 rewardMark = "Interface\\Minimap\\UI-Minimap-Background",
101 [REWARD_ARTIFACT_POWER] = {}, 109 [REWARD_ARTIFACT_POWER] = {},
102 [REWARD_GEAR] = { 110 [REWARD_GEAR] = {
103 111
104 hideNumber = true, 112 hideNumber = true,
105 }, 113 },
106 [REWARD_CURRENCY] = {}, 114 [REWARD_CURRENCY] = {
115 textColor = {1,1,0,.5}
116 },
107 [REWARD_REAGENT] = { 117 [REWARD_REAGENT] = {
108 118
109 hideNumber = true, 119 hideNumber = true,
110 }, 120 },
111 } 121 }
363 tagAtlas = "worldquest-icon-dungeon" 373 tagAtlas = "worldquest-icon-dungeon"
364 end 374 end
365 self.worldQuestType = worldQuestType 375 self.worldQuestType = worldQuestType
366 self.tagAtlas = tagAtlas 376 self.tagAtlas = tagAtlas
367 377
368 local dataLoaded, rewardType, itemName, itemTexture, itemNumber, quality = self:UpdateRewards() 378 local dataLoaded, rewardType, itemName, itemTexture, itemNumber, quality, xpType, xpName, xpIcon, xpCount = self:UpdateRewards()
369 dprint('|cFFBB8844 dataLoaded|r =', dataLoaded, rewardType, itemName, itemTexture, itemNumber, quality) 379 dprint('|cFFBB8844 dataLoaded|r =', dataLoaded, rewardType, itemName, itemTexture, itemNumber, quality)
370 if dataLoaded then 380 if dataLoaded then
371 self.rewardType = rewardType 381 self.rewardType = rewardType
372 self.itemName = itemName 382 self.itemName = itemName
373 self.itemTexture = itemTexture 383 self.itemTexture = itemTexture
374 self.itemNumber = itemNumber 384 self.itemNumber = itemNumber
375 self.itemQuality = quality 385 self.itemQuality = quality
376 self.dataLoaded = true 386 self.dataLoaded = true
377 self.isStale = true 387 self.isStale = true
388 self.xpType, self.xpName, self.xpIcon, self.xpCount = xpType, xpName, xpIcon, xpCount
389
378 end 390 end
379 end 391 end
380 392
381 393
382 return self.dataLoaded 394 return self.dataLoaded
383 end 395 end
396
397 local ID_RESOURCES = 1220
398 local ID_LEGIONFALL = 1342
384 399
385 --- Returns true if data has changed (either from loading in or qualifications changed) 400 --- Returns true if data has changed (either from loading in or qualifications changed)
386 function QuestPOI:UpdateRewards() 401 function QuestPOI:UpdateRewards()
387 local questID = self.questID 402 local questID = self.questID
388 if not HaveQuestRewardData(questID) then 403 if not HaveQuestRewardData(questID) then
391 else 406 else
392 local rewardMoney, rewardAP, rewardHonor 407 local rewardMoney, rewardAP, rewardHonor
393 local rewardItems, rewardCurrency = {}, {} 408 local rewardItems, rewardCurrency = {}, {}
394 local rewardIcon, rewardName, rewardCount, rewardStyle, rewardType, itemID, quantity, quality 409 local rewardIcon, rewardName, rewardCount, rewardStyle, rewardType, itemID, quantity, quality
395 local xpIcon, xpName, xpCount, xpType 410 local xpIcon, xpName, xpCount, xpType
411 local foundPrimary
396 412
397 if (GetNumQuestLogRewardCurrencies(questID) > 0 or GetNumQuestLogRewards(questID) > 0 or GetQuestLogRewardMoney(questID) > 0 or GetQuestLogRewardArtifactXP(questID) > 0 or GetQuestLogRewardHonor(questID)) then 413 if (GetNumQuestLogRewardCurrencies(questID) > 0 or GetNumQuestLogRewards(questID) > 0 or GetQuestLogRewardMoney(questID) > 0 or GetQuestLogRewardArtifactXP(questID) > 0 or GetQuestLogRewardHonor(questID)) then
398 local money = GetQuestLogRewardMoney(questID) 414 local money = GetQuestLogRewardMoney(questID)
399 if money > 0 then 415 if money > 0 then
400 rewardMoney = money 416 rewardMoney = money
409 rewardAP = artifactXP 425 rewardAP = artifactXP
410 rewardIcon = "Interface\\ICONS\\inv_7xp_inscription_talenttome01" 426 rewardIcon = "Interface\\ICONS\\inv_7xp_inscription_talenttome01"
411 rewardCount = artifactXP 427 rewardCount = artifactXP
412 rewardType = REWARD_ARTIFACT_POWER 428 rewardType = REWARD_ARTIFACT_POWER
413 qprint(' artifactXP', artifactXP) 429 qprint(' artifactXP', artifactXP)
430 foundPrimary = true
414 end 431 end
415 432
416 local numQuestCurrencies = GetNumQuestLogRewardCurrencies(questID); 433 local numQuestCurrencies = GetNumQuestLogRewardCurrencies(questID);
417 for i = 1, numQuestCurrencies do 434 for i = 1, numQuestCurrencies do
418 local name, texture, numItems = GetQuestLogRewardCurrencyInfo(i, questID); 435 local name, texture, numItems, currencyID = GetQuestLogRewardCurrencyInfo(i, questID);
419 local text = BONUS_OBJECTIVE_REWARD_WITH_COUNT_FORMAT:format(texture, numItems, name); 436 local text = BONUS_OBJECTIVE_REWARD_WITH_COUNT_FORMAT:format(texture, numItems, name);
420 tinsert(rewardCurrency, { 437 tinsert(rewardCurrency, {
421 name = name, 438 name = name,
422 texture = texture, 439 texture = texture,
423 numItems = numItems, 440 numItems = numItems,
424 text = text 441 text = text
425 }) 442 })
426 qprint(' currency', i, name, " |T"..tostring(texture)..":12:12|t") 443
427 rewardIcon = texture 444 qprint(' currency', i, currencyID, name, " |T"..tostring(texture)..":12:12|t")
428 rewardCount = numItems 445 if currencyID == ID_RESOURCES then
429 rewardName = name 446 rewardIcon = texture
430 rewardType = REWARD_CURRENCY 447 rewardCount = numItems
448 rewardName = name
449 rewardType = REWARD_CURRENCY
450 foundPrimary = true
451 elseif currencyID == ID_LEGIONFALL then
452 xpIcon = texture
453 xpCount = numItems
454 xpName = name
455 xpType = REWARD_CURRENCY
456 end
457
431 end 458 end
432 local honorAmount = GetQuestLogRewardHonor(questID); 459 local honorAmount = GetQuestLogRewardHonor(questID);
433 if honorAmount > 0 then 460 if honorAmount > 0 then
434 xpIcon = "Interface\\ICONS\\Achievement_LegionPVPTier4" 461 xpIcon = "Interface\\ICONS\\Achievement_LegionPVPTier4"
435 xpCount = honorAmount 462 xpCount = honorAmount
437 xpType = HONOR_CURRENCY 464 xpType = HONOR_CURRENCY
438 end 465 end
439 466
440 local numQuestRewards = GetNumQuestLogRewards(questID); 467 local numQuestRewards = GetNumQuestLogRewards(questID);
441 if numQuestRewards > 0 then 468 if numQuestRewards > 0 then
442 local foundPrimary
443 for i = 1, numQuestRewards do 469 for i = 1, numQuestRewards do
444 local name, texture, numItems, quality, isUsable, itemID = GetQuestLogRewardInfo(i, questID) 470 local name, texture, numItems, quality, isUsable, itemID = GetQuestLogRewardInfo(i, questID)
445 471
446 if itemID then 472 if itemID then
447 local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, sellPrice, classID, subclassID = GetItemInfo(itemID); 473 local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, sellPrice, classID, subclassID = GetItemInfo(itemID);
494 numItems = numItems, 520 numItems = numItems,
495 quality = quality, 521 quality = quality,
496 isUsable = isUsable 522 isUsable = isUsable
497 }) 523 })
498 if not foundPrimary then 524 if not foundPrimary then
525 print(' -updating primary')
499 rewardType = REWARD_GEAR 526 rewardType = REWARD_GEAR
500 527
501 rewardIcon = texture 528 rewardIcon = texture
502 rewardName = name 529 rewardName = name
503 rewardCount = numItems 530 rewardCount = numItems
514 if (self.itemNumber ~= rewardCount) or (self.rewardType ~= rewardType) or (self.itemName ~= rewardName) or (self.itemTexture ~= rewardIcon) then 541 if (self.itemNumber ~= rewardCount) or (self.rewardType ~= rewardType) or (self.itemName ~= rewardName) or (self.itemTexture ~= rewardIcon) then
515 if DATA_DEBUG and (self.debugTimer <= 0) then 542 if DATA_DEBUG and (self.debugTimer <= 0) then
516 return false 543 return false
517 end 544 end
518 545
519 return true, rewardType, rewardName, rewardIcon, rewardCount, quality 546 return true, rewardType, rewardName, rewardIcon, rewardCount, quality, xpType, xpName, xpIcon, xpCount
520 547
521 else 548 else
522 return false 549 return false
523 end 550 end
524 end 551 end
544 571
545 -- run from OnShow if .isNew is set 572 -- run from OnShow if .isNew is set
546 573
547 function QuestPOI:StartFade() 574 function QuestPOI:StartFade()
548 if not self.isAnimating then 575 if not self.isAnimating then
549 --qprint('|cFFFFFF00'.. self.title .. ' added to quest log.') 576 qprint('|cFFFFFF00clearing new status')
550 self:SetAlpha(0) 577 self:SetAlpha(0)
578 if self.dataLoaded then
579 self:Refresh()
551 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha) 580 self.FadeIn.FadeIn:SetToAlpha(db.PinAlpha)
552 self.PendingFade.FadeIn:SetToAlpha(db.PinAlpha) 581 self.PendingFade.FadeIn:SetToAlpha(db.PinAlpha)
553 self.PendingFade.FadeOut:SetFromAlpha(db.PinAlpha) 582 self.PendingFade.FadeOut:SetFromAlpha(db.PinAlpha)
554 583
555 self.isAnimating = true 584 self.isAnimating = true
556 self.isNew = nil 585 self.isNew = nil
557 self.isStale = true 586 self.isStale = true
558 self.FadeIn:Play() 587 self.FadeIn:Play()
588 end
559 end 589 end
560 end 590 end
561 591
562 function QuestPOI:EndFade() 592 function QuestPOI:EndFade()
563 self.isAnimating = nil 593 self.isAnimating = nil
564 self:SetAlpha(db.PinAlpha) 594 self:SetAlpha(db.PinAlpha)
565 end 595 end
566 596
567 function QuestPOI:OnShow () 597 function QuestPOI:OnShow ()
568 598
569 if self.isStale then
570 qprint('|cFF0088FFflagged for refresh')
571 self:Refresh()
572 end
573
574 if self.isNew then 599 if self.isNew then
575 qprint('|cFFFFFF00popping new pin handler')
576 self:StartFade() 600 self:StartFade()
577 end 601 else
578 602 if not self.isAnimating then
579 if not self.isAnimating then 603 print('|cFF00FF00Alpha correction')
580 self:SetAlpha(db.PinAlpha) -- fix stuck alpha 604 self:SetAlpha(db.PinAlpha) -- fix stuck alpha
581 end 605 end
582 606 if self.isStale then
607 print('|cFF00FF00refresh on show')
608 self:Refresh()
609 end
610 end
583 self:ShowFrames() 611 self:ShowFrames()
584 end 612 end
585 613
586 function QuestPOI:OnHide() 614 function QuestPOI:OnHide()
587 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()') 615 --DEFAULT_CHAT_FRAME:AddMessage('|cFFFFFF00'..self:GetName()..'|r:OnHide()')
588 self:HideFrames() 616 self:HideFrames()
589 -- reset flags 617 -- reset flags
590 self:SetAlpha(db.PinAlpha) 618 self:SetAlpha(db.PinAlpha)
591 self.isAnimating = nil 619 self.isAnimating = nil
620 if db.Config.DebugEnabled then
621 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')
622 end
623 self.hideReason = nil
592 end 624 end
593 625
594 -- Applies position and sizing parameters to the pin data 626 -- Applies position and sizing parameters to the pin data
595 function QuestPOI:SetAnchor(owner, dX, dY, mapWidth, mapHeight, scaleFactor) 627 function QuestPOI:SetAnchor(owner, dX, dY, mapWidth, mapHeight, scaleFactor)
596 dprint(self:GetName()..':SetAnchor()', owner, dX, dY, scaleFactor, self.filtered, self.used) 628 dprint(self:GetName()..':SetAnchor()', owner, dX, dY, scaleFactor, self.filtered, self.used)
597 if not self.used then 629 if not self.used then
630 self.hideReason = 'SetAnchor() on an unused frame.'
598 self:HideFrames() 631 self:HideFrames()
599 return 632 return
600 end 633 end
601 634
602 if owner then 635 if owner then
614 self:SetFrameLevel(pinBaseIndex + self:GetID()) 647 self:SetFrameLevel(pinBaseIndex + self:GetID())
615 self.Overlay:SetFrameLevel(overlayBaseIndex + self:GetID()) 648 self.Overlay:SetFrameLevel(overlayBaseIndex + self:GetID())
616 649
617 local scaleChanged 650 local scaleChanged
618 if scaleFactor and (self.scaleFactor ~= scaleFactor) then 651 if scaleFactor and (self.scaleFactor ~= scaleFactor) then
619 print('scaleFactor') 652 --print('scaleFactor')
620 self:SetScale(scaleFactor) 653 self:SetScale(scaleFactor)
621 self.Overlay:SetScale(scaleFactor) 654 self.Overlay:SetScale(scaleFactor)
622 self.scaleFactor = scaleFactor 655 self.scaleFactor = scaleFactor
623 scaleChanged = true 656 scaleChanged = true
624 end 657 end
643 function QuestPOI:ShowFrames() 676 function QuestPOI:ShowFrames()
644 if not self:IsShown() then 677 if not self:IsShown() then
645 print('|cFFFFFF00' ..self:GetName()..':ShowFrames()') 678 print('|cFFFFFF00' ..self:GetName()..':ShowFrames()')
646 -- do not SetShown() here 679 -- do not SetShown() here
647 end 680 end
648
649 self.count:SetShown(true)
650 self.Overlay:SetShown(true) 681 self.Overlay:SetShown(true)
651 self.count:SetShown(true) 682 self.count:SetShown(true)
652 self.timeLabel:SetShown(true) 683 self.timeLabel:SetShown(true)
653 end 684 end
654 685
655 function QuestPOI:HideFrames() 686 function QuestPOI:HideFrames()
656 if self:IsShown() then 687 if self:IsShown() then
657 print(self:GetName()..':HideFrames()') 688 if not self.hideReason then
689 self.hideReason = "HideFrames() called"
690 end
691 --print(self:GetName()..':HideFrames()')
658 self:SetShown(false) 692 self:SetShown(false)
659 end 693 end
660 self.count:SetShown(false)
661 self.Overlay:SetShown(false) 694 self.Overlay:SetShown(false)
662 self.count:SetShown(false) 695 self.count:SetShown(false)
663 self.timeLabel:SetShown(false) 696 self.timeLabel:SetShown(false)
664 self.used = nil 697 self.used = nil
665 end 698 end
707 end 740 end
708 end 741 end
709 --@end-debug@ 742 --@end-debug@
710 743
711 -- query for reward data if it wasn't found in the original scan 744 -- query for reward data if it wasn't found in the original scan
712 local questID = self.questID 745
713 if not self.dataLoaded then 746 if not self.dataLoaded then
714 print('|cFFFF4400'..self:GetID()..':|r polling reward info') 747 print('|cFFFF4400'..self:GetID()..':|r polling reward info')
715 if not (self.isAnimating) then 748
716 self.PendingFade:Play()
717 end
718 local dataLoaded = self:GetData() 749 local dataLoaded = self:GetData()
719 if dataLoaded and not tContains(db.UpdatedPins, self) then 750 if dataLoaded and not tContains(db.UpdatedPins, self) then
720 751
721 print('|cFF00FF88'..self:GetID()..':|r reward info loaded! queue it up') 752 print('|cFF00FF88'..self:GetID()..':|r delayed reward info, queueing for update')
722 753 self.PendingFade:Stop()
723 tinsert(db.UpdatedPins, self) 754 tinsert(db.UpdatedPins, self)
724 end 755 end
725 return 756 return
726 else 757 end
727 if self.PendingFade:IsPlaying() then 758
728 print('|cFFFF4400'..self:GetID()..':|r cancel fader') 759 if self.maxAlertLevel then
729 self.PendingFade:Stop() 760 self:UpdateStatus()
730 end 761 end
731 762
732 if self.isStale then
733 print(self.questID, '|cFFFFFF00flagged for update')
734 self:CheckFilterRules()
735 self:Refresh()
736 return
737 end
738 end
739
740 self:UpdateStatus()
741 end 763 end
742 764
743 -- Called at static intervals and with Refresh 765 -- Called at static intervals and with Refresh
744 function QuestPOI:UpdateStatus() 766 function QuestPOI:UpdateStatus()
745 -- update time elements 767 -- update time elements
752 774
753 local text, timeState = WorldPlan:GetTimeInfo(timeLeft, self.maxAlertLevel) 775 local text, timeState = WorldPlan:GetTimeInfo(timeLeft, self.maxAlertLevel)
754 if tl ~= timeState then 776 if tl ~= timeState then
755 tl = timeState 777 tl = timeState
756 self.timeLabel:SetText(text) 778 self.timeLabel:SetText(text)
757 end
758 else
759 if self.worldQuestType ~= LE_QUEST_TAG_TYPE_PROFESSION then
760 self:HideFrames()
761 end 779 end
762 end 780 end
763 781
764 if tl and (timeLeft < 120) then 782 if tl and (timeLeft < 120) then
765 self.HighlightBorder:SetVertexColor(1,0,0,0.7) 783 self.HighlightBorder:SetVertexColor(1,0,0,0.7)
769 self.HighlightBorder:SetVertexColor(0,0,0,0.7) 787 self.HighlightBorder:SetVertexColor(0,0,0,0.7)
770 end 788 end
771 self.alertLevel = tl 789 self.alertLevel = tl
772 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1)) 790 self.timeLabel:SetShown(self.worldQuest and (self.maxAlertLevel >= 1))
773 else 791 else
774 if not self.completed then 792 self.hideReason = "No longer active."
775 self.completed = true 793 self:HideFrames()
776 self:HideFrames() 794
777 end
778 end 795 end
779 end 796 end
780 797
781 798
782 function QuestPOI:Refresh () 799 function QuestPOI:Refresh ()
797 local borderWidth = style.borderWidth or DEFAULT_STYLE.borderWidth 814 local borderWidth = style.borderWidth or DEFAULT_STYLE.borderWidth
798 local highlightWidth = style.highlightWidth or DEFAULT_STYLE.highlightWidth 815 local highlightWidth = style.highlightWidth or DEFAULT_STYLE.highlightWidth
799 local tagSize = style.TagSize or DEFAULT_STYLE.TagSize 816 local tagSize = style.TagSize or DEFAULT_STYLE.TagSize
800 local hideIcon = style.hideIcon or DEFAULT_STYLE.hideIcon 817 local hideIcon = style.hideIcon or DEFAULT_STYLE.hideIcon
801 local borderColor = style.border or DEFAULT_STYLE.border 818 local borderColor = style.border or DEFAULT_STYLE.border
819 local textColor = style.textColor or DEFAULT_STYLE.textColor
802 local questID = self.questID 820 local questID = self.questID
803 local iconBorder = self.RewardBorder 821 local iconBorder = self.RewardBorder
804 local trackingBorder = self.HighlightBorder 822 local trackingBorder = self.HighlightBorder
805 local icon = self.icon 823 local icon = self.icon
806 local count = self.count 824 local count = self.count
827 if decimal > 100 then 845 if decimal > 100 then
828 numberString = numberString .. '.' .. tostring(floor(decimal/100)) 846 numberString = numberString .. '.' .. tostring(floor(decimal/100))
829 end 847 end
830 numberString = numberString .. 'k' 848 numberString = numberString .. 'k'
831 end 849 end
850
832 self.count:SetText(numberString) 851 self.count:SetText(numberString)
852 self.count:SetTextColor(unpack(textColor))
833 self.count:Show() 853 self.count:Show()
834 else 854 else
835 self.count:SetText(nil) 855 self.count:SetText(nil)
836 self.count:Hide() 856 self.count:Hide()
837 end 857 end
905 [REWARD_REAGENT]= 'worldQuestFilterProfessionMaterials', 925 [REWARD_REAGENT]= 'worldQuestFilterProfessionMaterials',
906 [REWARD_GEAR] = 'worldQuestFilterEquipment', 926 [REWARD_GEAR] = 'worldQuestFilterEquipment',
907 } 927 }
908 928
909 929
910
911 function QuestPOI:CheckFilterRules () 930 function QuestPOI:CheckFilterRules ()
912 local print = qprint 931 local print = qprint
913 local qType = self.worldQuestType 932 local qType = self.worldQuestType
914 local filtered 933 local filtered
915 local canShow = TQ_IsActive(self.questID) 934 local canShow = TQ_IsActive(self.questID)
916 if SpellCanTargetQuest() then 935
917 -- hiding so player can click a valid target 936 if db.canTargetQuests then
918 self.used = nil 937 self:EnableMouse(false)
919 elseif qType == LE_QUEST_TAG_TYPE_PROFESSION then 938 if not IsQuestIDValidSpellTarget(self.questID) then
939 self.hideReason = "Not a valid spell target."
940 self:SetShown(false)
941 return
942 end
943 else
944 self:EnableMouse(true)
945 end
946
947 if qType == LE_QUEST_TAG_TYPE_PROFESSION then
920 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then 948 if not(self.isKnownProfession or db.Config.ShowAllProfessionQuests) then
921 canShow = nil 949 canShow = nil
922 end 950 end
923 end 951 end
924 if canShow then 952 if canShow then
940 self.isStale = true 968 self.isStale = true
941 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r ', canShow, filtered, self.title) 969 print(' '..self.questID..':|cFFFFFF00CheckFilterRules()|r ', canShow, filtered, self.title)
942 end 970 end
943 self.filtered = filtered 971 self.filtered = filtered
944 end 972 end
945
946 self.used = canShow 973 self.used = canShow
947 974 if not canShow then
948 975 self.hideReason = "Failed filter check."
976 end
977 self:SetShown(canShow)
949 end 978 end
950 979
951 --- Fixes icons upon size update 980 --- Fixes icons upon size update
952 function QuestPOI:UpdateSize () 981 function QuestPOI:UpdateSize ()
953 982