Mercurial > wow > buffalo2
changeset 135:4979b5cca6de
- Fixed lua error from newly obtained artifacts
author | Nenue |
---|---|
date | Thu, 25 Jan 2018 20:58:10 -0500 |
parents | 24dc16a49b15 |
children | 414e37af1b1b |
files | Modules/ArtifactPower.lua Modules/GuildInfo.lua Modules/GuildInfo.xml Modules/LFGFrame.lua Modules/LFGFrame.xml Modules/PaperDoll.lua Modules/PetBattle.lua Modules/PetBattle.xml Veneer.toc |
diffstat | 9 files changed, 567 insertions(+), 537 deletions(-) [+] |
line wrap: on
line diff
--- a/Modules/ArtifactPower.lua Fri Dec 22 20:37:15 2017 -0500 +++ b/Modules/ArtifactPower.lua Thu Jan 25 20:58:10 2018 -0500 @@ -344,8 +344,6 @@ self:TryToShow() elseif event == 'BAG_UPDATE' then local containerID = ... - - self:QueueBag(containerID) elseif event == 'ITEM_LOCK_CHANGED' then
--- a/Modules/GuildInfo.lua Fri Dec 22 20:37:15 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,403 +0,0 @@ - -local print = DEVIAN_WORKSPACE and function(...) print('VnRoster', ...) end or nop - -VeneerRosterKunMixin = { - anchorFrame = 'LFGListFrame', - anchorPoint = 'TOPLEFT', - - AchievementsDirty = true, - GuildInfoDirty = true, - blocks = {}, -} - - -local module = VeneerRosterKunMixin - -function module:OnLoad() - Veneer:AddHandler(self, self.anchorPoint) - --self:RegisterEvent('GUILD_ROSTER_UPDATE') - --self:RegisterEvent('GUILD_TRADESKILL_UPDATE') - - --self:RegisterEvent('LFG_LIST_SEARCH_RESULT_UPDATED') - --self:RegisterEvent('LFG_LIST_SEARCH_RESULTS_RECEIVED') - --self:RegisterEvent('LFG_LIST_AVAILABILITY_UPDATE') - --self:RegisterEvent('LFG_LIST_LOCK_INFO_RECEIVED') - self:RegisterEvent('ADDON_LOADED') - - hooksecurefunc("LFGListSearchPanel_SelectResult", function(obj) - print('LFGListSearchPanel_SelectResult') - self.selectedID = obj.selectedResult - print('selected =', self.selectedID) - self:UpdateAchievementLinks() - end) - hooksecurefunc("LFGListSearchPanel_SignUp", function(obj) - print('LFGListSearchPanel_SignUp', obj.selectedResult) - - - self.selectedID = obj.selectedResult - print('selected =', self.selectedID) - self:UpdateAchievementLinks() - end) -end - -function module:Setup() - VeneerHandlerMixin.Setup(self) - self:SetParent(LFGListFrame) - self:SetPoint('TOPLEFT', LFGListFrame,'TOPRIGHT') - self:SetShown(true) -end - -function module:SetDirty() - if self:IsVisible() then - self:Update() - else - self.GuildInfoDirty = true - self.AchievementsDirty = true - end -end -local firstLoad = true -function module:OnShow() - print('|cFF00FFFFOnShow()|r') - self:Update(firstLoad) - firstLoad = nil -end - -function module:UpdateGuildInfo() - local numMembers = GetNumGuildMembers() - print(numMembers) - for i = 1, numMembers do - --print(GetGuildRosterInfo(i)) - end - self.GuildInfoDirty = nil -end - --- cheevos to link -local overlaps = { - [11781] = 11875, - [12002] = 12111, -} -local cheevos = { - -- Mythic Prog - { - -- Antorus - 12002, -- argus - 12001, -- aggramar - 12000, -- coven - 11999, -- barry - 11998, -- kin'garoth - 11997, -- imonar - 11996, -- eonar - 11995, -- portal keeper - 11994, -- high command - 11993, -- doggos - 11992, -- worldbreaker - - -- Tomb of Sargeras - 11781, -- kj - 11780, -- avatar - 11779, -- maiden - 11776, -- mistress - 11778, -- host, - 11777, -- sisters - 11775, -- harjatan, - 11774, -- di, - 11773, -- goroth - }, - -- Completion - { - 12111, -- CE Argus, - 12110, -- AotC Argus, - 11875, -- CE KJ - 11874, -- AotC KJ - 11790 -- Deceiver's Fall, - - - }, - -- Mythic+ - { - 11162, -- master - 11185, -- conqueror - } -} - -local invasion = {} -local cheev = {} - -function cheev:OnClick() - local resultID = LFGListFrame.SearchPanel.selectedResult or self:GetParent().selectedID - print('current selection = ', resultID) - if ACTIVE_CHAT_EDIT_BOX then - ChatEdit_InsertLink(self.link) - elseif resultID then - local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName = C_LFGList.GetSearchResultInfo(resultID); - --print(name, comment, leaderName) - ChatFrame_OpenChat("/w "..leaderName.." "..self.link, DEFAULT_CHAT_FRAME) - end -end - -function invasion:OnClick() - -end - -function module:UpdateInvasionButtons() - -end - -local listed = {} - -function module:UpdateAchievementLinks() - print('UpdateAchievementLinks()') - - local resultID = LFGListFrame.SearchPanel.selectedResult or self.selectedID - self:Show() - - - local index = 0 - local lastBlock - local contentsHeight = 0 - for _, group in ipairs(cheevos) do - for _, id in ipairs(group) do - local _, name, points, completed, month, day, year, description, flags, icon = GetAchievementInfo(id) - if completed then - - -- if the highest mythic kill - if listed[overlaps[id]] then - break - end - - - index = index + 1 - --print(index) - local block =self.blocks[index] - if not block then - block = CreateFrame('Button', 'VeneerRosterKunBlock'..index, self, 'VeneerRosterKunBlock') - block:SetScript('OnClick', cheev.OnClick) - block:SetID(index) - self.blocks[index] = block - end - - block.link = GetAchievementLink(id) - block.Icon:SetTexture(icon) - block.Label:SetText(name) - block:ClearAllPoints() - if lastBlock then - block:SetPoint('TOPLEFT', lastBlock, 'BOTTOMLEFT', 0, 0) - else - block:SetPoint('TOPLEFT') - end - --print(block:GetHeight(), block:GetPoint(1)) - block:Show() - - contentsHeight = contentsHeight + block:GetHeight() - - --print(index, name, icon) - lastBlock = block - listed[id] = true - break; - end - end - end - ---[[ - local areaPOIs = C_WorldMap.GetAreaPOIForMap(GetCurrentMapAreaID(), 1); - if areaPOIs then - - - for i, areaPoiID in ipairs(areaPOIs) do - local poiInfo = C_WorldMap.GetAreaPOIInfo(GetCurrentMapAreaID(), areaPoiID, 1); - - index = index + 1 - --print(index) - local block =self.blocks[index] - if not block then - block = CreateFrame('Button', 'VeneerRosterKunBlock'..index, self, 'VeneerRosterKunBlock') - block:SetScript('OnClick', invasion.OnClick) - block:SetID(index) - self.blocks[index] = block - end - - - - end - end - --]] - - --print(index, #self.blocks) - if index < #self.blocks then - for i = index+1, #self.blocks do - --print('hiding', i) - self.blocks[i]:Hide() - end - - end - - self:SetHeight(contentsHeight) - -end - -function module:Update(forced) - - - if self.GuildInfoDirty or forced then - self:UpdateGuildInfo() - end - if self.AchievementsDirty or forced then - self:UpdateAchievementLinks() - end - - -end -function module:SetupGuildUI() - self:UnregisterEvent('ADDON_LOADED') -end -function module:OnEvent(event, ...) - print('|cFFFF0088OnEvent()|r', event, ...) - if event == 'ADDON_LOADED' then - local addon = ... - if addon == 'Blizzard_GuildUI' then - self:SetupGuildUI() - end - elseif event == 'LFG_LIST_SEARCH_RESULTS_RECEIVED' then - elseif event == 'LFG_LIST_SEARCH_RESULT_UPDATED' then - end -end - - -VeneerPetBattleActionMixin = {} -VeneerPetBattleInfoMixin = {} -local pb = VeneerPetBattleInfoMixin -local action = VeneerPetBattleActionMixin - - -function pb:OnShow() - self:ClearAllPoints() - self:SetPoint('TOPLEFT', PetBattleFrame.EnemyBuffFrame, 'BOTTOMLEFT', 0, -12) - self:RegisterEvent('PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE') - self:RegisterEvent('PET_BATTLE_ACTION_SELECTED') - self:RegisterEvent('PET_BATTLE_TURN_STARTED') - print('pet on show') - self:Refresh() -end - -function pb:OnHide() - print('pet on hide') - self:UnregisterAllEvents() -end - -function pb:OnEvent(event) - print('pb event|cFFFF8800', event) - self:Refresh() -end - -function pb:Refresh() - local myPetSlot = C_PetBattles.GetActivePet(1) - local myPetType = C_PetBattles.GetPetType(1, myPetSlot) - - local index = 0 - local nonActiveIndex = 0 - local lastFrame, lastNonActive - for petSlot = 1, C_PetBattles.GetNumPets(2) do - - for abilitySlot = 1,3 do - local _, name, texture, cooldown, tooltip,_, abilityType, noStrongWeakHints = C_PetBattles.GetAbilityInfo(2, petSlot, abilitySlot) - local petHealth = C_PetBattles.GetHealth(2, petSlot) - - if petHealth >= 1 then - local isUsable, currentCooldown, currentLockdown = C_PetBattles.GetAbilityState(2, petSlot, abilitySlot); - --print(index, petSlot, abilitySlot, name, currentCooldown, currentLockdown, cooldown, petHealth) - - index = index + 1 - local frame = self.Abilities[index] - - frame.ownerID = 2 - frame.petIndex = petSlot - frame.abIndex = abilitySlot - frame.tooltip = tooltip - frame.Name:SetText(name) - frame.Icon:SetTexture(texture) - frame.TypeIcon:SetTexture("Interface\\PetBattles\\PetIcon-"..PET_TYPE_SUFFIX[abilityType]) - - - for i = 1,C_PetBattles.GetNumPets(1) do - local myPetType = C_PetBattles.GetPetType(1, i) - if not (myPetType or abilityType) then - frame.BetterIcon[i]:Hide(); - else - local modifier = C_PetBattles.GetAttackModifier(abilityType, myPetType) - if ( noStrongWeakHints or modifier == 1 ) then - frame.BetterIcon[i]:Hide(); - elseif (modifier > 1) then - frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Strong"); - frame.BetterIcon[i]:Show(); - elseif (modifier < 1) then - frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Weak"); - frame.BetterIcon[i]:Show(); - end - - end - end - - - if cooldown >= 1 then - frame.Border2:Show() - else - - frame.Border2:Hide() - end - - - currentCooldown = (currentCooldown >= 1) and currentCooldown or 0 - if petHealth == 0 then - frame.Cooldown:SetText(nil) - frame.Cooldown:SetTextColor(1,0,0) - else - if currentLockdown >= 1 and currentLockdown > currentCooldown then - frame.Cooldown:SetTextColor(1,0,0) - else - frame.Cooldown:SetTextColor(1,1,1) - end - frame.Cooldown:SetText((currentCooldown >= 1) and currentCooldown or nil) - end - - frame:ClearAllPoints() - if petSlot == C_PetBattles.GetActivePet(2) then - frame:SetSize(48,48) - frame.Border2:SetSize(72,72) - frame.Icon:SetDesaturated(false) - frame.Name:SetTextColor(1,1,0) - if lastFrame then - frame:SetPoint('TOPLEFT', lastFrame, 'BOTTOMLEFT', 0, -4) - else - frame:SetPoint('TOPLEFT', self, 'TOPLEFT') - end - lastFrame = frame - else - frame:SetSize(24,24) - frame.Border2:SetSize(36,36) - frame.Name:SetTextColor(0.5,0.5,0.5) - frame.Icon:SetDesaturated(true) - if lastNonActive then - frame:SetPoint('TOPLEFT', lastNonActive, 'BOTTOMLEFT', 0, -2) - else - frame:SetPoint('TOPLEFT', self, 'TOPLEFT', 128, 0) - end - lastNonActive = frame - end - frame:Show() - end - end - end - - for i = index + 1, #self.Abilities do - self.Abilities[i]:Hide() - end -end - -function action:OnEnter() - PetBattleAbilityTooltip_SetAbility(self.ownerID, self.petIndex, self.abIndex); - PetBattleAbilityTooltip_Show("TOPRIGHT", self:GetParent(), "TOPLEFT", -5, 0, self.additionalText); -end - -function action:OnLeave() - PetBattlePrimaryAbilityTooltip:Hide(); -end \ No newline at end of file
--- a/Modules/GuildInfo.xml Fri Dec 22 20:37:15 2017 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ -..\FrameXML\UI.xsd"> - <Script file="GuildInfo.lua" /> - - <Frame name="$parentRosterKun" mixin="VeneerRosterKunMixin" parent="Veneer" inherits="VeneerHandlerTemplate"> - - <Size x="200"/> - <Layers> - <Layer level="BACKGROUND"> - <Texture setAllPoints="true"> - <Color a="0.5" r="0" g="0" b="0" /> - </Texture> - </Layer> - </Layers> - - - </Frame> - - <Button name="VeneerRosterKunBlock" parent="VeneerRosterKun" parentArray="blocks" virtual="true"> - <Size x="200" y="36" /> - <Layers> - <Layer level="BACKGROUND"> - <Texture parentKey="Icon"> - <Anchors> - <Anchor point="TOPLEFT" /> - - </Anchors> - <Size x="36" y="36" /> - </Texture> - </Layer> - <Layer level="OVERLAY"> - <FontString inherits="GameFontNormal" parentKey="Label"> - <Anchors> - <Anchor point="LEFT" relativePoint="RIGHT" relativeKey="$parent.Icon" x="4" y="0" /> - </Anchors> - </FontString> - </Layer> - </Layers> - <HighlightTexture> - <Color a="0.2" r="0" g="0" b="1" /> - </HighlightTexture> - </Button> - - - <Frame name="VeneerPetBattleAbilityTemplate" parent="VeneerPetBattleInfo" parentArray="Abilities" virtual="true" mixin="VeneerPetBattleActionMixin"> - <Size x="48" y="48" /> - <Scripts> - <OnEnter method="OnEnter" /> - <OnLeave method="OnLeave" /> - </Scripts> - <Layers> - <Layer level="BACKGROUND"> - <Texture parentKey="Icon" setAllPoints="true" /> - - </Layer> - <Layer level="OVERLAY"> - <Texture parentArray="BetterIcon"> - <Size x="24" y="24" /> - <Anchors> - <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" /> - </Anchors> - </Texture> - <Texture parentArray="BetterIcon"> - <Size x="24" y="24" /> - <Anchors> - <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="26" y="0" /> - </Anchors> - </Texture> - <Texture parentArray="BetterIcon"> - <Size x="24" y="24" /> - <Anchors> - <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="54" y="0" /> - </Anchors> - </Texture> - <FontString parentKey="Name" inherits="GameFontNormal"> - <Anchors> - <Anchor point="TOPLEFT" relativePoint="TOPRIGHT" x="4" y="-4" /> - </Anchors> - </FontString> - <FontString parentKey="Cooldown" inherits="GameFont_Gigantic"> - <Anchors> - <Anchor point="CENTER" /> - </Anchors> - </FontString> - - <Texture parentKey="TypeIcon"> - <Size x="16" y="16" /> - <TexCoords left="0.79687500" right="0.49218750" top="0.50390625" bottom="0.65625000"/> - <Anchors> - <Anchor point="TOPRIGHT" /> - - </Anchors> - </Texture> - - <Texture setAllPoints="true" hidden="true" file=""> - - </Texture> - <Texture parentKey="Border2" file="Interface\PetBattles\PetBattle-GoldSpeedFrame" hidden="true"> - <Size x="48" y="48"/> - <Anchors> - <Anchor point="CENTER" relativeKey="$parent.Icon"/> - </Anchors> - <TexCoords left="0.0" right="0.84375" top="0.0" bottom="0.8515625"/> - </Texture> - </Layer> - </Layers> - </Frame> - - <Frame name="VeneerPetBattleInfo" parent="PetBattleFrame" hidden="false" mixin="VeneerPetBattleInfoMixin"> - <Size x="128" y="64" /> - <Scripts> - <OnLoad method="OnLoad" /> - <OnEvent method="OnEvent" /> - <OnShow method="OnShow" /> - <OnHide method="OnHide" /> - </Scripts> - <Frames> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - <Frame inherits="VeneerPetBattleAbilityTemplate" /> - </Frames> - </Frame> - - -</Ui> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Modules/LFGFrame.lua Thu Jan 25 20:58:10 2018 -0500 @@ -0,0 +1,282 @@ + +local print = DEVIAN_WORKSPACE and function(...) print('LFGFrame', ...) end or nop + +VeneerRosterKunMixin = { + anchorFrame = 'LFGListFrame', + anchorPoint = 'TOPLEFT', + + InvasionsDirty = true, + AchievementsDirty = true, + GuildInfoDirty = true, + blocks = {}, +} + + +local module = VeneerRosterKunMixin + +function module:OnLoad() + Veneer:AddHandler(self, self.anchorPoint) + self:RegisterEvent('ADDON_LOADED') + + hooksecurefunc("LFGListCategorySelection_StartFindGroup", function(panel, questID) + print('LFGListCategorySelection_StartFindGroup', panel:GetParent(), questID) + end) + hooksecurefunc("LFGListCategorySelection_SelectCategory", function(panel, categoryID, filters) + print('LFGListCategorySelection_SelectCategory', panel:GetParent(), categoryID, filters) + print('\n',debugstack(3)) + end) + hooksecurefunc("LFGListSearchPanel_SetCategory", function(panel, categoryID, filters, baseFilters) + print('LFGListSearchPanel_SetCategory', panel:GetParent(), categoryID, filters, baseFilters) + end) +end + +function module:Setup() + VeneerHandlerMixin.Setup(self) + self:SetParent(LFGListFrame) + self:SetPoint('TOPLEFT', LFGListFrame,'TOPRIGHT') + self:SetShown(true) +end + +function module:SetDirty() + if self:IsVisible() then + self:Update() + else + self.GuildInfoDirty = true + self.AchievementsDirty = true + self.InvasionsDirty = true + end +end +local firstLoad = true +function module:OnShow() + print('|cFF00FFFFOnShow()|r') + self:Update(firstLoad) + firstLoad = nil + + local locationName = GetRealZoneText() + + if not C_LFGList.GetActiveEntryInfo() and locationName and locationName:match('Invasion') and not InCombatLockdown() then + PVEFrame_ShowFrame("GroupFinderFrame", LFGListPVEStub); + local panel = LFGListFrame.CategorySelection + LFGListCategorySelection_SelectCategory(panel, 6, 0); + LFGListCategorySelection_StartFindGroup(panel, locationName); + end +end + +function module:UpdateGuildInfo() + local numMembers = GetNumGuildMembers() + print(numMembers) + for i = 1, numMembers do + --print(GetGuildRosterInfo(i)) + end + self.GuildInfoDirty = nil +end + +-- cheevos to link +local overlaps = { + [11781] = 11875, + [12002] = 12111, +} +local cheevos = { + -- Mythic Prog + { + -- Antorus + 12002, -- argus + 12001, -- aggramar + 12000, -- coven + 11999, -- barry + 11998, -- kin'garoth + 11997, -- imonar + 11996, -- eonar + 11995, -- portal keeper + 11994, -- high command + 11993, -- doggos + 11992, -- worldbreaker + + -- Tomb of Sargeras + 11781, -- kj + 11780, -- avatar + 11779, -- maiden + 11776, -- mistress + 11778, -- host, + 11777, -- sisters + 11775, -- harjatan, + 11774, -- di, + 11773, -- goroth + }, + -- Completion + { + 12111, -- CE Argus, + 12110, -- AotC Argus, + 11875, -- CE KJ + 11874, -- AotC KJ + 11790 -- Deceiver's Fall, + + + }, + -- Mythic+ + { + 11162, -- master + 11185, -- conqueror + } +} + +local invasion = {} +local cheev = {} + +function cheev:OnClick() + local resultID = LFGListFrame.SearchPanel.selectedResult or self:GetParent().selectedID + print('current selection = ', resultID) + if ACTIVE_CHAT_EDIT_BOX then + ChatEdit_InsertLink(self.link) + elseif resultID then + local id, activityID, name, comment, voiceChat, iLvl, honorLevel, age, numBNetFriends, numCharFriends, numGuildMates, isDelisted, leaderName = C_LFGList.GetSearchResultInfo(resultID); + --print(name, comment, leaderName) + ChatFrame_OpenChat("/w "..leaderName.." "..self.link, DEFAULT_CHAT_FRAME) + end +end + +function invasion:OnClick() + if not InCombatLockdown() then + PVEFrame_ShowFrame("GroupFinderFrame", LFGListPVEStub); + local panel = LFGListFrame.CategorySelection + LFGListCategorySelection_SelectCategory(panel, 6, 0); + LFGListCategorySelection_StartFindGroup(panel, self.searchText); + end + +end + +local listed = {} + + +function module:Update(forced) + if self.GuildInfoDirty or forced then + self:UpdateGuildInfo() + end + local numBlocks = 0 + if self.AchievementsDirty or forced then + numBlocks = self:UpdateAchievementLinks(numBlocks) + end + + if self.InvasionsDirty or forced then + numBlocks = self:UpdateInvasionButtons(numBlocks) + end + + local lastBlock + local contentsHeight = 0 + for index, block in ipairs(self.blocks) do + if index > numBlocks then + block:Hide() + else + block:ClearAllPoints() + if lastBlock then + block:SetPoint('TOPLEFT', lastBlock, 'BOTTOMLEFT', 0, -2) + else + block:SetPoint('TOPLEFT', LFGListFrame, 'TOPRIGHT', 0, 0) + end + block:Show() + lastBlock = block + + contentsHeight = contentsHeight + block:GetHeight() + end + end + self:SetHeight(contentsHeight) +end + + +function module:GetBlock(index) + + local block =self.blocks[index] + if not block then + block = CreateFrame('Button', 'VeneerRosterKunBlock'..index, self, 'VeneerRosterKunBlock') + + block:SetID(index) + self.blocks[index] = block + end + return block +end + +function module:UpdateInvasionButtons(offset) + print('UpdateInvasionButtons()') + offset = offset or 0 + local lastBlock = self.lastAchievement + + local contentsHeight = 0 + local areaPOIs = C_WorldMap.GetAreaPOIForMap(GetCurrentMapAreaID(), 1); + if areaPOIs then + + + for i, areaPoiID in ipairs(areaPOIs) do + local poiInfo = C_WorldMap.GetAreaPOIInfo(GetCurrentMapAreaID(), areaPoiID, 1); + + offset = offset + 1 + --print(index) + local block = self:GetBlock(offset) + block:SetScript('OnClick', invasion.OnClick) + block.Label:SetText(poiInfo.description) + block.Icon:SetAtlas(poiInfo.atlasName) + block.searchText = poiInfo.description + block.buttonType = 'group-poi' + end + end + return offset, contentsHeight +end + +function module:UpdateAchievementLinks(offset) + print('UpdateAchievementLinks()') + offset = offset or 0 + local resultID = LFGListFrame.SearchPanel.selectedResult or self.selectedID + self:Show() + + + local contentsHeight = 0 + for _, group in ipairs(cheevos) do + for _, id in ipairs(group) do + local _, name, points, completed, month, day, year, description, flags, icon = GetAchievementInfo(id) + if completed then + -- if the highest mythic kill + if listed[overlaps[id]] then + break + end + offset = offset + 1 + local block = self:GetBlock(offset) + block:SetScript('OnClick', cheev.OnClick) + --print(index) + + block.link = GetAchievementLink(id) + block.Icon:SetTexture(icon) + block.Label:SetText(name) + block.buttonType = 'cheevo' + + contentsHeight = contentsHeight + block:GetHeight() + + --print(index, name, icon) + listed[id] = true + break; + end + end + end + + self.lastAchievement = lastBlock + + return offset, contentsHeight + + --[[ + --]] + + +end + +function module:SetupGuildUI() + self:UnregisterEvent('ADDON_LOADED') +end +function module:OnEvent(event, ...) + print('|cFFFF0088OnEvent()|r', event, ...) + if event == 'ADDON_LOADED' then + local addon = ... + if addon == 'Blizzard_GuildUI' then + self:SetupGuildUI() + end + elseif event == 'LFG_LIST_SEARCH_RESULTS_RECEIVED' then + elseif event == 'LFG_LIST_SEARCH_RESULT_UPDATED' then + end +end \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Modules/LFGFrame.xml Thu Jan 25 20:58:10 2018 -0500 @@ -0,0 +1,46 @@ +<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ +..\FrameXML\UI.xsd"> + + <Script file="LFGFrame.lua" /> + + <Frame name="$parentRosterKun" mixin="VeneerRosterKunMixin" parent="Veneer" inherits="VeneerHandlerTemplate"> + + <Size x="200"/> + <Layers> + <Layer level="BACKGROUND"> + <Texture setAllPoints="true"> + <Color a="0.5" r="0" g="0" b="0" /> + </Texture> + </Layer> + </Layers> + + + </Frame> + + <Button name="VeneerRosterKunBlock" parent="VeneerRosterKun" parentArray="blocks" virtual="true"> + <Size x="200" y="36" /> + <Layers> + <Layer level="BACKGROUND"> + <Texture parentKey="Icon"> + <Anchors> + <Anchor point="TOPLEFT" /> + + </Anchors> + <Size x="36" y="36" /> + </Texture> + </Layer> + <Layer level="OVERLAY"> + <FontString inherits="GameFontNormal" parentKey="Label"> + <Anchors> + <Anchor point="LEFT" relativePoint="RIGHT" relativeKey="$parent.Icon" x="4" y="0" /> + </Anchors> + </FontString> + </Layer> + </Layers> + <HighlightTexture> + <Color a="0.2" r="0" g="0" b="1" /> + </HighlightTexture> + </Button> + + +</Ui> \ No newline at end of file
--- a/Modules/PaperDoll.lua Fri Dec 22 20:37:15 2017 -0500 +++ b/Modules/PaperDoll.lua Thu Jan 25 20:58:10 2018 -0500 @@ -309,6 +309,7 @@ local tooltip = VeneerPaperDollTooltip for i = 1, numRelics do + relicCache[i] = relicCache[i] or {} local relicName, relicIcon, relicType, relicLink = C_ArtifactUI.GetRelicInfo(i); local relicLevel = relicCache[i][2] or "" local relicForge = relicCache[i][5] or {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Modules/PetBattle.lua Thu Jan 25 20:58:10 2018 -0500 @@ -0,0 +1,143 @@ + +local print = DEVIAN_WORKSPACE and function(...) print('VnRoster', ...) end or nop + + + +VeneerPetBattleActionMixin = {} +VeneerPetBattleInfoMixin = {} +local pb = VeneerPetBattleInfoMixin +local action = VeneerPetBattleActionMixin + + +function pb:OnShow() + self:ClearAllPoints() + self:SetPoint('TOPLEFT', PetBattleFrame.EnemyBuffFrame, 'BOTTOMLEFT', 0, -12) + self:RegisterEvent('PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE') + self:RegisterEvent('PET_BATTLE_ACTION_SELECTED') + self:RegisterEvent('PET_BATTLE_TURN_STARTED') + print('pet on show') + self:Refresh() +end + +function pb:OnHide() + print('pet on hide') + self:UnregisterAllEvents() +end + +function pb:OnEvent(event) + print('pb event|cFFFF8800', event) + self:Refresh() +end + +function pb:Refresh() + local myPetSlot = C_PetBattles.GetActivePet(1) + local myPetType = C_PetBattles.GetPetType(1, myPetSlot) + + local index = 0 + local nonActiveIndex = 0 + local lastFrame, lastNonActive + for petSlot = 1, C_PetBattles.GetNumPets(2) do + + for abilitySlot = 1,3 do + local _, name, texture, cooldown, tooltip,_, abilityType, noStrongWeakHints = C_PetBattles.GetAbilityInfo(2, petSlot, abilitySlot) + local petHealth = C_PetBattles.GetHealth(2, petSlot) + + if petHealth >= 1 then + local isUsable, currentCooldown, currentLockdown = C_PetBattles.GetAbilityState(2, petSlot, abilitySlot); + --print(index, petSlot, abilitySlot, name, currentCooldown, currentLockdown, cooldown, petHealth) + + index = index + 1 + local frame = self.Abilities[index] + + frame.ownerID = 2 + frame.petIndex = petSlot + frame.abIndex = abilitySlot + frame.tooltip = tooltip + frame.Name:SetText(name) + frame.Icon:SetTexture(texture) + frame.TypeIcon:SetTexture("Interface\\PetBattles\\PetIcon-"..PET_TYPE_SUFFIX[abilityType]) + + + for i = 1,C_PetBattles.GetNumPets(1) do + local myPetType = C_PetBattles.GetPetType(1, i) + if not (myPetType or abilityType) then + frame.BetterIcon[i]:Hide(); + else + local modifier = C_PetBattles.GetAttackModifier(abilityType, myPetType) + if ( noStrongWeakHints or modifier == 1 ) then + frame.BetterIcon[i]:Hide(); + elseif (modifier > 1) then + frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Strong"); + frame.BetterIcon[i]:Show(); + elseif (modifier < 1) then + frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Weak"); + frame.BetterIcon[i]:Show(); + end + + end + end + + + if cooldown >= 1 then + frame.Border2:Show() + else + + frame.Border2:Hide() + end + + + currentCooldown = (currentCooldown >= 1) and currentCooldown or 0 + if petHealth == 0 then + frame.Cooldown:SetText(nil) + frame.Cooldown:SetTextColor(1,0,0) + else + if currentLockdown >= 1 and currentLockdown > currentCooldown then + frame.Cooldown:SetTextColor(1,0,0) + else + frame.Cooldown:SetTextColor(1,1,1) + end + frame.Cooldown:SetText((currentCooldown >= 1) and currentCooldown or nil) + end + + frame:ClearAllPoints() + if petSlot == C_PetBattles.GetActivePet(2) then + frame:SetSize(48,48) + frame.Border2:SetSize(72,72) + frame.Icon:SetDesaturated(false) + frame.Name:SetTextColor(1,1,0) + if lastFrame then + frame:SetPoint('TOPLEFT', lastFrame, 'BOTTOMLEFT', 0, -4) + else + frame:SetPoint('TOPLEFT', self, 'TOPLEFT') + end + lastFrame = frame + else + frame:SetSize(24,24) + frame.Border2:SetSize(36,36) + frame.Name:SetTextColor(0.5,0.5,0.5) + frame.Icon:SetDesaturated(true) + if lastNonActive then + frame:SetPoint('TOPLEFT', lastNonActive, 'BOTTOMLEFT', 0, -2) + else + frame:SetPoint('TOPLEFT', self, 'TOPLEFT', 128, 0) + end + lastNonActive = frame + end + frame:Show() + end + end + end + + for i = index + 1, #self.Abilities do + self.Abilities[i]:Hide() + end +end + +function action:OnEnter() + PetBattleAbilityTooltip_SetAbility(self.ownerID, self.petIndex, self.abIndex); + PetBattleAbilityTooltip_Show("TOPRIGHT", self:GetParent(), "TOPLEFT", -5, 0, self.additionalText); +end + +function action:OnLeave() + PetBattlePrimaryAbilityTooltip:Hide(); +end \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Modules/PetBattle.xml Thu Jan 25 20:58:10 2018 -0500 @@ -0,0 +1,92 @@ +<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ +..\FrameXML\UI.xsd"> + + <Script file="PetBattle.lua" /> + + <Frame name="VeneerPetBattleAbilityTemplate" parent="VeneerPetBattleInfo" parentArray="Abilities" virtual="true" mixin="VeneerPetBattleActionMixin"> + <Size x="48" y="48" /> + <Scripts> + <OnEnter method="OnEnter" /> + <OnLeave method="OnLeave" /> + </Scripts> + <Layers> + <Layer level="BACKGROUND"> + <Texture parentKey="Icon" setAllPoints="true" /> + + </Layer> + <Layer level="OVERLAY"> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" /> + </Anchors> + </Texture> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="26" y="0" /> + </Anchors> + </Texture> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="54" y="0" /> + </Anchors> + </Texture> + <FontString parentKey="Name" inherits="GameFontNormal"> + <Anchors> + <Anchor point="TOPLEFT" relativePoint="TOPRIGHT" x="4" y="-4" /> + </Anchors> + </FontString> + <FontString parentKey="Cooldown" inherits="GameFont_Gigantic"> + <Anchors> + <Anchor point="CENTER" /> + </Anchors> + </FontString> + + <Texture parentKey="TypeIcon"> + <Size x="16" y="16" /> + <TexCoords left="0.79687500" right="0.49218750" top="0.50390625" bottom="0.65625000"/> + <Anchors> + <Anchor point="TOPRIGHT" /> + + </Anchors> + </Texture> + + <Texture setAllPoints="true" hidden="true" file=""> + + </Texture> + <Texture parentKey="Border2" file="Interface\PetBattles\PetBattle-GoldSpeedFrame" hidden="true"> + <Size x="48" y="48"/> + <Anchors> + <Anchor point="CENTER" relativeKey="$parent.Icon"/> + </Anchors> + <TexCoords left="0.0" right="0.84375" top="0.0" bottom="0.8515625"/> + </Texture> + </Layer> + </Layers> + </Frame> + + <Frame name="VeneerPetBattleInfo" parent="PetBattleFrame" hidden="false" mixin="VeneerPetBattleInfoMixin"> + <Size x="128" y="64" /> + <Scripts> + <OnLoad method="OnLoad" /> + <OnEvent method="OnEvent" /> + <OnShow method="OnShow" /> + <OnHide method="OnHide" /> + </Scripts> + <Frames> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + </Frames> + </Frame> + + +</Ui> \ No newline at end of file
--- a/Veneer.toc Fri Dec 22 20:37:15 2017 -0500 +++ b/Veneer.toc Thu Jan 25 20:58:10 2018 -0500 @@ -18,6 +18,7 @@ Modules\TalkingHead.xml Modules\BuffFrame.xml Modules\PaperDoll.xml -Modules\GuildInfo.xml +Modules\PetBattle.xml Modules\ArtifactPower.xml -Modules\FriendsFrame.xml \ No newline at end of file +Modules\FriendsFrame.xml +Modules\LFGFrame.xml \ No newline at end of file