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