annotate 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
rev   line source
Nick@108 1
Nick@108 2 local print = DEVIAN_WORKSPACE and function(...) print('VnRoster', ...) end or nop
Nick@108 3
Nenue@133 4
Nenue@133 5
Nenue@133 6 VeneerPetBattleActionMixin = {}
Nenue@133 7 VeneerPetBattleInfoMixin = {}
Nenue@133 8 local pb = VeneerPetBattleInfoMixin
Nenue@133 9 local action = VeneerPetBattleActionMixin
Nenue@133 10
Nenue@133 11
Nenue@133 12 function pb:OnShow()
Nenue@133 13 self:ClearAllPoints()
Nenue@133 14 self:SetPoint('TOPLEFT', PetBattleFrame.EnemyBuffFrame, 'BOTTOMLEFT', 0, -12)
Nenue@133 15 self:RegisterEvent('PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE')
Nenue@133 16 self:RegisterEvent('PET_BATTLE_ACTION_SELECTED')
Nenue@133 17 self:RegisterEvent('PET_BATTLE_TURN_STARTED')
Nenue@133 18 print('pet on show')
Nenue@133 19 self:Refresh()
Nenue@133 20 end
Nenue@133 21
Nenue@133 22 function pb:OnHide()
Nenue@133 23 print('pet on hide')
Nenue@133 24 self:UnregisterAllEvents()
Nenue@133 25 end
Nenue@133 26
Nenue@133 27 function pb:OnEvent(event)
Nenue@133 28 print('pb event|cFFFF8800', event)
Nenue@133 29 self:Refresh()
Nenue@133 30 end
Nenue@133 31
Nenue@133 32 function pb:Refresh()
Nenue@133 33 local myPetSlot = C_PetBattles.GetActivePet(1)
Nenue@133 34 local myPetType = C_PetBattles.GetPetType(1, myPetSlot)
Nenue@133 35
Nenue@133 36 local index = 0
Nenue@133 37 local nonActiveIndex = 0
Nenue@133 38 local lastFrame, lastNonActive
Nenue@133 39 for petSlot = 1, C_PetBattles.GetNumPets(2) do
Nenue@133 40
Nenue@133 41 for abilitySlot = 1,3 do
Nenue@133 42 local _, name, texture, cooldown, tooltip,_, abilityType, noStrongWeakHints = C_PetBattles.GetAbilityInfo(2, petSlot, abilitySlot)
Nenue@133 43 local petHealth = C_PetBattles.GetHealth(2, petSlot)
Nenue@133 44
Nenue@133 45 if petHealth >= 1 then
Nenue@133 46 local isUsable, currentCooldown, currentLockdown = C_PetBattles.GetAbilityState(2, petSlot, abilitySlot);
Nenue@133 47 --print(index, petSlot, abilitySlot, name, currentCooldown, currentLockdown, cooldown, petHealth)
Nenue@133 48
Nenue@133 49 index = index + 1
Nenue@133 50 local frame = self.Abilities[index]
Nenue@133 51
Nenue@133 52 frame.ownerID = 2
Nenue@133 53 frame.petIndex = petSlot
Nenue@133 54 frame.abIndex = abilitySlot
Nenue@133 55 frame.tooltip = tooltip
Nenue@133 56 frame.Name:SetText(name)
Nenue@133 57 frame.Icon:SetTexture(texture)
Nenue@133 58 frame.TypeIcon:SetTexture("Interface\\PetBattles\\PetIcon-"..PET_TYPE_SUFFIX[abilityType])
Nenue@133 59
Nenue@133 60
Nenue@133 61 for i = 1,C_PetBattles.GetNumPets(1) do
Nenue@133 62 local myPetType = C_PetBattles.GetPetType(1, i)
Nenue@133 63 if not (myPetType or abilityType) then
Nenue@133 64 frame.BetterIcon[i]:Hide();
Nenue@133 65 else
Nenue@133 66 local modifier = C_PetBattles.GetAttackModifier(abilityType, myPetType)
Nenue@133 67 if ( noStrongWeakHints or modifier == 1 ) then
Nenue@133 68 frame.BetterIcon[i]:Hide();
Nenue@133 69 elseif (modifier > 1) then
Nenue@133 70 frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Strong");
Nenue@133 71 frame.BetterIcon[i]:Show();
Nenue@133 72 elseif (modifier < 1) then
Nenue@133 73 frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Weak");
Nenue@133 74 frame.BetterIcon[i]:Show();
Nenue@133 75 end
Nenue@133 76
Nenue@133 77 end
Nenue@133 78 end
Nenue@133 79
Nenue@133 80
Nenue@133 81 if cooldown >= 1 then
Nenue@133 82 frame.Border2:Show()
Nenue@133 83 else
Nenue@133 84
Nenue@133 85 frame.Border2:Hide()
Nenue@133 86 end
Nenue@133 87
Nenue@133 88
Nenue@133 89 currentCooldown = (currentCooldown >= 1) and currentCooldown or 0
Nenue@133 90 if petHealth == 0 then
Nenue@133 91 frame.Cooldown:SetText(nil)
Nenue@133 92 frame.Cooldown:SetTextColor(1,0,0)
Nenue@133 93 else
Nenue@133 94 if currentLockdown >= 1 and currentLockdown > currentCooldown then
Nenue@133 95 frame.Cooldown:SetTextColor(1,0,0)
Nenue@133 96 else
Nenue@133 97 frame.Cooldown:SetTextColor(1,1,1)
Nenue@133 98 end
Nenue@133 99 frame.Cooldown:SetText((currentCooldown >= 1) and currentCooldown or nil)
Nenue@133 100 end
Nenue@133 101
Nenue@133 102 frame:ClearAllPoints()
Nenue@133 103 if petSlot == C_PetBattles.GetActivePet(2) then
Nenue@133 104 frame:SetSize(48,48)
Nenue@133 105 frame.Border2:SetSize(72,72)
Nenue@133 106 frame.Icon:SetDesaturated(false)
Nenue@133 107 frame.Name:SetTextColor(1,1,0)
Nenue@133 108 if lastFrame then
Nenue@133 109 frame:SetPoint('TOPLEFT', lastFrame, 'BOTTOMLEFT', 0, -4)
Nenue@133 110 else
Nenue@133 111 frame:SetPoint('TOPLEFT', self, 'TOPLEFT')
Nenue@133 112 end
Nenue@133 113 lastFrame = frame
Nenue@133 114 else
Nenue@133 115 frame:SetSize(24,24)
Nenue@133 116 frame.Border2:SetSize(36,36)
Nenue@133 117 frame.Name:SetTextColor(0.5,0.5,0.5)
Nenue@133 118 frame.Icon:SetDesaturated(true)
Nenue@133 119 if lastNonActive then
Nenue@133 120 frame:SetPoint('TOPLEFT', lastNonActive, 'BOTTOMLEFT', 0, -2)
Nenue@133 121 else
Nenue@133 122 frame:SetPoint('TOPLEFT', self, 'TOPLEFT', 128, 0)
Nenue@133 123 end
Nenue@133 124 lastNonActive = frame
Nenue@133 125 end
Nenue@133 126 frame:Show()
Nenue@133 127 end
Nenue@133 128 end
Nenue@133 129 end
Nenue@133 130
Nenue@133 131 for i = index + 1, #self.Abilities do
Nenue@133 132 self.Abilities[i]:Hide()
Nenue@133 133 end
Nenue@133 134 end
Nenue@133 135
Nenue@133 136 function action:OnEnter()
Nenue@133 137 PetBattleAbilityTooltip_SetAbility(self.ownerID, self.petIndex, self.abIndex);
Nenue@133 138 PetBattleAbilityTooltip_Show("TOPRIGHT", self:GetParent(), "TOPLEFT", -5, 0, self.additionalText);
Nenue@133 139 end
Nenue@133 140
Nenue@133 141 function action:OnLeave()
Nenue@133 142 PetBattlePrimaryAbilityTooltip:Hide();
Nenue@133 143 end