Mercurial > wow > buffalo2
view Modules/GuildInfo.lua @ 133:86621c60512b v7.3.2-20171222
- Fixed AP calc tooltip appearing while hidden
- Fixed PaperDoll relic tooltips missing nether crucible info
author | Nenue |
---|---|
date | Fri, 22 Dec 2017 20:36:40 -0500 |
parents | 15a7f27b11e6 |
children |
line wrap: on
line source
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