Mercurial > wow > buffalo2
comparison Modules/ArtifactPower.lua @ 119:0f47780a83c4
ArtifactPower:
- xp bar animations work beyond concordance rank 3
| author | Nenue |
|---|---|
| date | Sat, 20 May 2017 06:10:52 -0400 |
| parents | 589045559484 |
| children | 5f1ba488c395 |
comparison
equal
deleted
inserted
replaced
| 118:a86b99c84ccc | 119:0f47780a83c4 |
|---|---|
| 9 numItems = 0, | 9 numItems = 0, |
| 10 Tokens = {}, | 10 Tokens = {}, |
| 11 cache = {}, | 11 cache = {}, |
| 12 fishingCache = {}, | 12 fishingCache = {}, |
| 13 scanQueue = {}, | 13 scanQueue = {}, |
| 14 worldQuestAP = 0, | |
| 15 worldQuestItems = {}, | |
| 14 ItemButtons = {}, | 16 ItemButtons = {}, |
| 15 anchorPoint = 'TOP', | 17 anchorPoint = 'TOP', |
| 16 anchorPriority = 3, | 18 anchorPriority = 3, |
| 17 anchorFrom = 'TOP', | 19 anchorFrom = 'TOP', |
| 18 moduleName = 'Artifactor', | 20 moduleName = 'Artifactor', |
| 153 VeneerArtifactPower:TryToShow() | 155 VeneerArtifactPower:TryToShow() |
| 154 end) | 156 end) |
| 155 end | 157 end |
| 156 end | 158 end |
| 157 local PENDING_HOOKS = {} | 159 local PENDING_HOOKS = {} |
| 160 local guid = UnitGUID('player') | |
| 158 | 161 |
| 159 local function RegisterInventoryFrame(name, listType, args) | 162 local function RegisterInventoryFrame(name, listType, args) |
| 160 print('register', name, 'as inventory frame type =', (listType == BAG_FRAMES) and 'bags' or 'bank') | 163 print('register', name, 'as inventory frame type =', (listType == BAG_FRAMES) and 'bags' or 'bank') |
| 161 tinsert(FRAME_LIST, name) | 164 tinsert(FRAME_LIST, name) |
| 162 tinsert(listType, name) | 165 tinsert(listType, name) |
| 167 end | 170 end |
| 168 end | 171 end |
| 169 | 172 |
| 170 function Module:Setup() | 173 function Module:Setup() |
| 171 print(self:GetName()..':Setup()') | 174 print(self:GetName()..':Setup()') |
| 172 local guid = UnitGUID('player') | 175 guid = UnitGUID('player') |
| 173 VeneerData.ArtifactPower = VeneerData.ArtifactPower or defaultSettings | 176 VeneerData.ArtifactPower = VeneerData.ArtifactPower or defaultSettings |
| 174 self.db = VeneerData.ArtifactPower | 177 self.db = VeneerData.ArtifactPower |
| 175 self.db[guid] = self.db[guid] or {} | 178 self.db[guid] = self.db[guid] or {} |
| 176 self.db.cache = self.db.cache or {} | 179 self.db.cache = self.db.cache or {} |
| 177 self.db.fishingCache = self.db.fishingCache or {} | 180 self.db.fishingCache = self.db.fishingCache or {} |
| 181 self.db.cache[i] = data | 184 self.db.cache[i] = data |
| 182 end | 185 end |
| 183 for i, data in pairs(self.fishingCache) do | 186 for i, data in pairs(self.fishingCache) do |
| 184 self.db.fishingCache[i] = data | 187 self.db.fishingCache[i] = data |
| 185 end | 188 end |
| 186 | |
| 187 | 189 |
| 188 self.profile = self.db[guid] | 190 self.profile = self.db[guid] |
| 189 self.profile.cache = self.profile.cache or {} | 191 self.profile.cache = self.profile.cache or {} |
| 190 self.profile.cache.bagItems = self.profile.cache.bagItems or {} | 192 self.profile.cache.bagItems = self.profile.cache.bagItems or {} |
| 191 self.profile.cache.bags = self.profile.cache.bags or {} | 193 self.profile.cache.bags = self.profile.cache.bags or {} |
| 281 AddFrameHooks(_G[name], args) | 283 AddFrameHooks(_G[name], args) |
| 282 PENDING_HOOKS[name] = nil | 284 PENDING_HOOKS[name] = nil |
| 283 end | 285 end |
| 284 end | 286 end |
| 285 | 287 |
| 286 | 288 self:UpdateWorldQuestsAP() |
| 289 self:RegisterEvent('QUEST_LOG_UPDATE') | |
| 287 self.enabled = true | 290 self.enabled = true |
| 291 | |
| 288 self:ScanAllBags() | 292 self:ScanAllBags() |
| 289 self:Reanchor() | 293 self:Reanchor() |
| 290 end | 294 end |
| 291 function Module:OnHide() | 295 function Module:OnHide() |
| 292 print('|cFF88FF00OnHide()|r', debugstack()) | 296 print('|cFF88FF00OnHide()|r', debugstack()) |
| 297 self:UnregisterEvent('QUEST_LOG_UPDATE') | |
| 293 self:Reanchor() | 298 self:Reanchor() |
| 294 end | 299 end |
| 295 function Module:OnEnter() | 300 function Module:OnEnter() |
| 296 | 301 |
| 297 GameTooltip:SetOwner(self, 'ANCHOR_CURSOR') | 302 GameTooltip:SetOwner(self, 'ANCHOR_CURSOR') |
| 377 end | 382 end |
| 378 | 383 |
| 379 if #queued_hooks >= 1 then | 384 if #queued_hooks >= 1 then |
| 380 CreateHook() | 385 CreateHook() |
| 381 end | 386 end |
| 387 elseif event == 'QUEST_LOG_UPDATE' then | |
| 388 self:UpdateWorldQuestsAP() | |
| 382 elseif event == 'PLAYER_REGEN_DISABLED' then | 389 elseif event == 'PLAYER_REGEN_DISABLED' then |
| 383 self:Hide() | 390 self:Hide() |
| 384 end | 391 end |
| 385 end | 392 end |
| 386 | 393 |
| 394 self.Refresh:Hide() | 401 self.Refresh:Hide() |
| 395 end | 402 end |
| 396 | 403 |
| 397 end | 404 end |
| 398 | 405 |
| 399 function Module:OnMouseDown() | 406 function Module:OnMouseDown(button) |
| 400 self.enabled = nil | 407 self.enabled = nil |
| 401 self:Hide() | 408 if button == 'RightButton' then |
| 409 self:Hide() | |
| 410 end | |
| 411 | |
| 402 end | 412 end |
| 403 | 413 |
| 404 function Module:Update() | 414 function Module:Update() |
| 405 if not self:IsShown() then | 415 if not self:IsShown() then |
| 406 print('|cFFFF4400Update()|r') | 416 print('|cFFFF4400Update()|r') |
| 424 if self.fishingAP and self.fishingAP > 0 then | 434 if self.fishingAP and self.fishingAP > 0 then |
| 425 bankText = (bankText and (bankText .. ' | ') or '') .. '|cFF0088FF' .. ShortNumberString(self.fishingAP) .. ' fishing|r' | 435 bankText = (bankText and (bankText .. ' | ') or '') .. '|cFF0088FF' .. ShortNumberString(self.fishingAP) .. ' fishing|r' |
| 426 end | 436 end |
| 427 end | 437 end |
| 428 | 438 |
| 429 self.worldQuestAP = 0 | 439 if self.worldQuestAP then |
| 430 if WorldPlan then | 440 bankText = (bankText and (bankText .. '\n') or '') .. '|cFFFFBB00World Quests:|r |cFFFFFFFF' .. ShortNumberString(self.worldQuestAP) .. '' |
| 431 | 441 end |
| 432 if not self.worldPlanHooked then | 442 |
| 433 WorldPlan:RegisterDataCallback(function() | |
| 434 print('data udpate callback') | |
| 435 self:Update() | |
| 436 end) | |
| 437 self.worldPlanHooked = true | |
| 438 end | |
| 439 | |
| 440 | |
| 441 local showWQ | |
| 442 print('world plan is loaded') | |
| 443 local worldQuests = WorldPlan:GetQuestPins() | |
| 444 for index, pin in ipairs(worldQuests) do | |
| 445 if (pin.rewardType == WORLD_QUEST_REWARD_TYPE_FLAG_ARTIFACT_POWER) and (pin.isActive) and (pin.dataLoaded) then | |
| 446 showWQ = true | |
| 447 print(pin.itemNumber) | |
| 448 self.worldQuestAP = self.worldQuestAP + pin.itemNumber | |
| 449 end | |
| 450 end | |
| 451 | |
| 452 if showWQ then | |
| 453 bankText = (bankText and (bankText .. '\n') or '') .. '|cFFFFBB00World Quests:|r |cFFFFFFFF' .. ShortNumberString(self.worldQuestAP) .. '' | |
| 454 end | |
| 455 | |
| 456 end | |
| 457 | 443 |
| 458 self.SummaryHeader:SetText(bankText) | 444 self.SummaryHeader:SetText(bankText) |
| 459 | 445 |
| 460 local numButtons = 0 | 446 local numButtons = 0 |
| 461 local contentsHeight = 16 + self.SummaryHeader:GetHeight() | 447 local contentsHeight = 16 + self.SummaryHeader:GetHeight() |
| 462 local contentsWidth = self.SummaryHeader:GetWidth() + 16 | 448 local contentsWidth = 400 |
| 463 if self.profile.knowledgeMultiplier then | 449 if self.profile.knowledgeMultiplier then |
| 464 local artifactsWidth = self:UpdateArtifactButtons() | 450 local artifactsWidth = self:UpdateArtifactButtons() |
| 465 | 451 |
| 466 if artifactsWidth ~= 0 then | 452 if artifactsWidth ~= 0 then |
| 467 contentsHeight = contentsHeight + 64 | 453 contentsHeight = contentsHeight + 64 |
| 468 end | 454 end |
| 469 | 455 |
| 470 contentsWidth = max(contentsWidth, artifactsWidth) | 456 contentsWidth = max(contentsWidth, min(artifactsWidth, 400)) |
| 471 | 457 |
| 472 local itemsWidth, itemsHeight = self:UpdateItemButtons() | 458 local itemsWidth, itemsHeight = self:UpdateItemButtons() |
| 473 contentsHeight = contentsHeight + itemsHeight | 459 contentsHeight = contentsHeight + itemsHeight |
| 474 contentsWidth = max(contentsWidth, itemsWidth) | 460 contentsWidth = max(contentsWidth, itemsWidth) |
| 475 end | 461 end |
| 481 | 467 |
| 482 | 468 |
| 483 self:SetWidth(contentsWidth) | 469 self:SetWidth(contentsWidth) |
| 484 self:SetHeight(contentsHeight) | 470 self:SetHeight(contentsHeight) |
| 485 self:Reanchor() | 471 self:Reanchor() |
| 472 end | |
| 473 | |
| 474 local BROKEN_ISLE_ID = 1007 | |
| 475 | |
| 476 function Module:UpdateWorldQuestsAP() | |
| 477 self.waitingForQuestRewardData = false | |
| 478 self.worldQuestAP = 0 | |
| 479 wipe(self.worldQuestItems) | |
| 480 | |
| 481 for zoneIndex = 1, C_MapCanvas.GetNumZones(BROKEN_ISLE_ID) do | |
| 482 local zoneMapID, zoneName, zoneDepth, left, right, top, bottom = C_MapCanvas.GetZoneInfo(BROKEN_ISLE_ID, zoneIndex); | |
| 483 --print(zoneMapID, zoneName) | |
| 484 if zoneDepth <= 1 then -- Exclude subzones | |
| 485 local taskInfo = C_TaskQuest.GetQuestsForPlayerByMapID(zoneMapID, BROKEN_ISLE_ID); | |
| 486 | |
| 487 if taskInfo then | |
| 488 for i, info in ipairs(taskInfo) do | |
| 489 local questID = info.questId | |
| 490 | |
| 491 local questTitle, factionID, capped = C_TaskQuest.GetQuestInfoByQuestID(questID) | |
| 492 --print(questTitle, HaveQuestRewardData(questID)) | |
| 493 if HaveQuestRewardData(questID) then | |
| 494 | |
| 495 | |
| 496 local numQuestRewards = GetNumQuestLogRewards(questID); | |
| 497 | |
| 498 if numQuestRewards > 0 then | |
| 499 for i = 1, numQuestRewards do | |
| 500 local name, texture, numItems, quality, isUsable, itemID = GetQuestLogRewardInfo(i, questID) | |
| 501 if IsArtifactPowerItem(itemID) then | |
| 502 local _, link = GetItemInfo(itemID) | |
| 503 if link then | |
| 504 local ap = self:GetItemAP(itemID, link) | |
| 505 --print('ap =', ap) | |
| 506 if ap then | |
| 507 self.worldQuestAP = self.worldQuestAP + ap | |
| 508 | |
| 509 end | |
| 510 | |
| 511 self.worldQuestItems[itemID] = (self.worldQuestItems[itemID] or 0) + 1 | |
| 512 end | |
| 513 | |
| 514 --print(self.worldQuestAP) | |
| 515 end | |
| 516 | |
| 517 end | |
| 518 | |
| 519 end | |
| 520 | |
| 521 | |
| 522 else | |
| 523 C_TaskQuest.RequestPreloadRewardData(questID); | |
| 524 self.waitingForQuestRewardData = true | |
| 525 end | |
| 526 end | |
| 527 end | |
| 528 end | |
| 529 end | |
| 486 end | 530 end |
| 487 | 531 |
| 488 function Module:UpdateArtifactButtons() | 532 function Module:UpdateArtifactButtons() |
| 489 | 533 |
| 490 -- Artifact icons, in no particular order | 534 -- Artifact icons, in no particular order |
| 905 -- total total of invested and inventory XP | 949 -- total total of invested and inventory XP |
| 906 -- totalCost total of costs between current and actual level | 950 -- totalCost total of costs between current and actual level |
| 907 local actualXP = artifact.currentXP | 951 local actualXP = artifact.currentXP |
| 908 local actualLevel = artifact.level | 952 local actualLevel = artifact.level |
| 909 local actualCost = C_ArtifactUI.GetCostForPointAtRank(actualLevel, artifact.tier) | 953 local actualCost = C_ArtifactUI.GetCostForPointAtRank(actualLevel, artifact.tier) |
| 910 local totalXP = actualXP + unusedXP | 954 local totalXP = actualXP |
| 911 local totalCost = actualCost | 955 local totalCost = actualCost |
| 912 local totalLevel = actualLevel | 956 local totalLevel = actualLevel |
| 913 | 957 |
| 914 print('tier:', artifact.tier) | 958 print('tier:', artifact.tier) |
| 915 print('current:', self.level, self.currentXP, '/', self.currentCost) | 959 print('current:', self.level, self.currentXP, '/', self.currentCost) |
| 922 end | 966 end |
| 923 print('actual:', actualLevel, actualXP, '/', actualCost) | 967 print('actual:', actualLevel, actualXP, '/', actualCost) |
| 924 | 968 |
| 925 | 969 |
| 926 if unusedXP > 0 then | 970 if unusedXP > 0 then |
| 927 local remaining = totalXP | 971 local remaining = totalXP + unusedXP |
| 928 local nextCost = artifact.currentCost | 972 local nextCost = artifact.currentCost |
| 929 totalCost = nextCost | 973 totalCost = nextCost |
| 930 while remaining > nextCost do | 974 while remaining > nextCost do |
| 931 totalLevel = totalLevel + 1 | 975 totalLevel = totalLevel + 1 |
| 932 totalCost = totalCost + nextCost | 976 remaining = remaining - nextCost |
| 933 nextCost = C_ArtifactUI.GetCostForPointAtRank(totalLevel, artifact.tier) | 977 nextCost = C_ArtifactUI.GetCostForPointAtRank(totalLevel, artifact.tier) |
| 934 remaining = remaining - nextCost | 978 print('|cFFFFFF00+ ', totalLevel, remaining, '/', totalCost) |
| 935 print('|cFFFFFF00+ ', totalLevel, remaining, '/', nextCost) | 979 end |
| 936 end | 980 totalXP = remaining |
| 937 | 981 totalCost = nextCost |
| 938 end | 982 end |
| 939 print('total:', totalLevel, totalXP, '/', totalCost) | 983 print('total:', totalLevel, totalXP, '/', totalCost) |
| 940 | 984 |
| 941 self.currentLevel = self.level | 985 self.currentLevel = self.level |
| 942 | 986 |
| 975 -- current: amount shown in blizz ui | 1019 -- current: amount shown in blizz ui |
| 976 -- actual: amount contributing the next level, will be same until current point cap is reached | 1020 -- actual: amount contributing the next level, will be same until current point cap is reached |
| 977 -- potential: total of ap on hand | 1021 -- potential: total of ap on hand |
| 978 print(self.currentXP, self.actualXP, self.potentialXP) | 1022 print(self.currentXP, self.actualXP, self.potentialXP) |
| 979 if self.actualLevel ~= self.level then | 1023 if self.actualLevel ~= self.level then |
| 980 | |
| 981 levelText = self.actualLevel | 1024 levelText = self.actualLevel |
| 982 r1, g1, b1 = 0, 1, 0 | 1025 r1, g1, b1 = 0, 1, 0 |
| 983 --r2, g2, b2 = 0, 1, 0 | 1026 --r2, g2, b2 = 0, 1, 0 |
| 984 xpText = ShortNumberString(self.actualXP) | 1027 xpText = ShortNumberString(self.actualXP) |
| 985 costText = ShortNumberString(self.actualCost) | 1028 costText = ShortNumberString(self.actualCost) |
| 1009 self:SetSize(48,48) | 1052 self:SetSize(48,48) |
| 1010 self:SetNormalTexture(nil, 'ADD') | 1053 self:SetNormalTexture(nil, 'ADD') |
| 1011 end | 1054 end |
| 1012 | 1055 |
| 1013 local currentProgress = (self.currentXP < self.currentCost) and (self.currentXP / self.currentCost) or 1 | 1056 local currentProgress = (self.currentXP < self.currentCost) and (self.currentXP / self.currentCost) or 1 |
| 1014 if self.level <= 53 then | 1057 print('|cFFFF4400', currentProgress) |
| 1058 if self.level <= 92 then | |
| 1015 self.CurrentProgress.animateFrom = self.CurrentProgress:GetHeight() or 1 | 1059 self.CurrentProgress.animateFrom = self.CurrentProgress:GetHeight() or 1 |
| 1016 self.CurrentProgress.animateTo = currentProgress * self:GetHeight() | 1060 self.CurrentProgress.animateTo = currentProgress * self:GetHeight() |
| 1017 self.CurrentProgress:Show() | 1061 self.CurrentProgress:Show() |
| 1018 self.ProgressLine:Show() | 1062 self.ProgressLine:Show() |
| 1019 else | 1063 else |
| 1020 self.CurrentProgress:Hide() | 1064 self.CurrentProgress:Hide() |
| 1021 self.ProgressLine:Hide() | 1065 self.ProgressLine:Hide() |
| 1022 end | 1066 end |
| 1023 | 1067 |
| 1024 if self.actualXP ~= self.currentXP then | 1068 if self.totalXP ~= self.currentXP then |
| 1025 local projectedProgress = (self.actualXP ~= self.actualCost) and (self.actualXP / self.actualCost) or 1 | 1069 local projectedProgress = (self.totalXP / self.totalCost) |
| 1070 print('|cFF00FFFF', projectedProgress) | |
| 1026 if (projectedProgress > currentProgress) then | 1071 if (projectedProgress > currentProgress) then |
| 1027 self.AdjustedProgress:SetPoint('BOTTOM', self.CurrentProgress, 'TOP') | 1072 self.AdjustedProgress:SetPoint('BOTTOM', self.CurrentProgress, 'TOP') |
| 1028 projectedProgress = projectedProgress - currentProgress | 1073 projectedProgress = projectedProgress - currentProgress |
| 1029 else | 1074 else |
| 1030 self.CurrentProgress:Hide() | 1075 self.CurrentProgress:Hide() |
| 1035 self.AdjustedProgress.animateFrom = self.AdjustedProgress:GetHeight() or 1 | 1080 self.AdjustedProgress.animateFrom = self.AdjustedProgress:GetHeight() or 1 |
| 1036 self.AdjustedProgress.animateTo = projectedProgress * self:GetHeight() | 1081 self.AdjustedProgress.animateTo = projectedProgress * self:GetHeight() |
| 1037 self.AdjustedLine:Show() | 1082 self.AdjustedLine:Show() |
| 1038 self.AdjustedProgress:Show() | 1083 self.AdjustedProgress:Show() |
| 1039 else | 1084 else |
| 1085 self.CurrentProgress:SetPoint('BOTTOM', self, 'BOTTOM') | |
| 1040 self.AdjustedProgress:Hide() | 1086 self.AdjustedProgress:Hide() |
| 1041 self.AdjustedLine:Hide() | 1087 self.AdjustedLine:Hide() |
| 1042 end | 1088 end |
| 1089 print(self.CurrentProgress:GetPoint(3)) | |
| 1090 print(self.CurrentProgress:GetSize()) | |
| 1043 | 1091 |
| 1044 if self.actualLevel ~= self.currentLevel then | 1092 if self.actualLevel ~= self.currentLevel then |
| 1045 self:SetNormalTexture([[Interface\Buttons\UI-Quickslot-Depress]], 'ADD') | 1093 self:SetNormalTexture([[Interface\Buttons\UI-Quickslot-Depress]], 'ADD') |
| 1046 self:GetNormalTexture():SetBlendMode('BLEND') | 1094 self:GetNormalTexture():SetBlendMode('BLEND') |
| 1047 self:GetNormalTexture():SetVertexColor(1,1,1) | 1095 self:GetNormalTexture():SetVertexColor(1,1,1) |
| 1048 else | 1096 else |
| 1049 self:SetNormalTexture(nil, 'ADD') | 1097 self:SetNormalTexture(nil, 'ADD') |
| 1050 | 1098 end |
| 1051 end | |
| 1052 | |
| 1053 | |
| 1054 | |
| 1055 | |
| 1056 self.Icon:SetTexture(self.texture) | 1099 self.Icon:SetTexture(self.texture) |
| 1057 end | 1100 end |
| 1058 | 1101 |
| 1059 | 1102 local XP_SCALING_DURATION = .5 |
| 1060 function Artifact:AnimateProgress(region) | 1103 function Artifact:AnimateProgress(region) |
| 1061 local cTime = GetTime() | 1104 local cTime = GetTime() |
| 1062 if not region.animateStart then | 1105 if not region.animateStart then |
| 1063 region.animateStart = cTime | 1106 region.animateStart = cTime |
| 1064 end | 1107 end |
| 1065 local progressTo, progressFrom = region.animateTo, region.animateFrom | 1108 local progressTo, progressFrom = region.animateTo, region.animateFrom |
| 1066 local elapsed = cTime - region.animateStart | 1109 local elapsed = cTime - region.animateStart |
| 1067 if elapsed >= .5 then | 1110 if elapsed >= XP_SCALING_DURATION then |
| 1068 region:SetHeight(progressTo) | 1111 region:SetHeight(progressTo) |
| 1069 region.animateTo = nil | 1112 region.animateTo = nil |
| 1070 region.animateStart = nil | 1113 region.animateStart = nil |
| 1071 region.animateFrom = nil | 1114 region.animateFrom = nil |
| 1072 else | 1115 else |
| 1073 local progress = elapsed / .5 | 1116 local progress = elapsed / XP_SCALING_DURATION |
| 1074 local height = (progressFrom + (progressTo - progressFrom) * progress) | 1117 local height = (progressFrom + (progressTo - progressFrom) * progress) |
| 1075 --print(self:GetName(), progressTo, progressFrom, (progressTo - progressFrom), ceil(progress*10)/10, ceil(height)) | 1118 --print(self:GetName(), progressTo, progressFrom, (progressTo - progressFrom), ceil(progress*10)/10, ceil(height)) |
| 1076 region:SetHeight(height) | 1119 region:SetHeight(height) |
| 1077 end | 1120 end |
| 1078 end | 1121 end |
| 1088 end | 1131 end |
| 1089 | 1132 |
| 1090 function Artifact:OnEnter() | 1133 function Artifact:OnEnter() |
| 1091 GameTooltip:SetOwner(self, 'ANCHOR_CURSOR') | 1134 GameTooltip:SetOwner(self, 'ANCHOR_CURSOR') |
| 1092 GameTooltip:SetText(self.name) | 1135 GameTooltip:SetText(self.name) |
| 1093 GameTooltip:AddLine(ShortNumberString(self.currentXP) .. ' / '..ShortNumberString(self.currentCost), 1, 1, 0) | 1136 GameTooltip:AddLine(ShortNumberString(self.currentXP) .. ' / '..ShortNumberString(self.currentCost), 1, 1, 1) |
| 1094 if self.actualLevel ~= self.level then | 1137 if self.actualLevel ~= self.level then |
| 1095 GameTooltip:AddLine(ShortNumberString(self.actualLevel - self.level) .. ' points unlocked', 0, 1, 0) | 1138 GameTooltip:AddLine(ShortNumberString(self.actualLevel - self.level) .. ' points unlocked', 1, 1, 0) |
| 1096 end | 1139 end |
| 1097 if self.currentXP < self.currentCost then | 1140 if self.currentXP < self.currentCost then |
| 1098 GameTooltip:AddLine(ShortNumberString(self.currentCost - self.currentXP) .. ' for level ' .. (self.currentLevel+1), 1, 1, 0) | 1141 GameTooltip:AddLine(ShortNumberString(self.currentCost - self.currentXP) .. ' for level ' .. (self.currentLevel+1), 1, 1, 0) |
| 1099 else | 1142 else |
| 1100 GameTooltip:AddLine(ShortNumberString(self.actualCost - self.actualXP) .. ' for level ' .. (self.actualLevel+1), 0, 1, 0) | 1143 GameTooltip:AddLine(ShortNumberString(self.actualCost - self.actualXP) .. ' for level ' .. (self.actualLevel+1), 0, 1, 0) |
| 1120 function Artifact:OnClick(button, down) | 1163 function Artifact:OnClick(button, down) |
| 1121 if self.isEquipped then | 1164 if self.isEquipped then |
| 1122 SocketInventoryItem(16) | 1165 SocketInventoryItem(16) |
| 1123 else | 1166 else |
| 1124 if IsShiftKeyDown() then | 1167 if IsShiftKeyDown() then |
| 1125 SocketContainerItem(self.containerID, self.slotID) | 1168 SocketContainerItem(self.containerID, self.slotID) |
| 1126 else | 1169 else |
| 1127 | 1170 |
| 1128 end | 1171 end |
| 1129 end | 1172 end |
| 1130 end | 1173 end |
