Mercurial > wow > buffalo2
diff Modules/PetBattle.lua @ 135:4979b5cca6de
- Fixed lua error from newly obtained artifacts
author | Nenue |
---|---|
date | Thu, 25 Jan 2018 20:58:10 -0500 |
parents | Modules/GuildInfo.lua@86621c60512b |
children |
line wrap: on
line diff
--- /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