| 
Nenue@6
 | 
     1 --- ${PACKAGE_NAME}
 | 
| 
Nenue@6
 | 
     2 -- @file-author@
 | 
| 
Nenue@6
 | 
     3 -- @project-revision@ @project-hash@
 | 
| 
Nenue@6
 | 
     4 -- @file-revision@ @file-hash@
 | 
| 
Nenue@6
 | 
     5 -- Created: 1/17/2016 6:51 PM
 | 
| 
Nenue@6
 | 
     6 
 | 
| 
Nenue@6
 | 
     7 local ADDON, Turok = ...
 | 
| 
Nenue@6
 | 
     8 local T, _G, pairs, pairs = Turok.Addon, _G, pairs, ipairs
 | 
| 
Nenue@6
 | 
     9 local mod = T:NewModule("PetBattle")
 | 
| 
Nenue@6
 | 
    10 local print = function(...) _G.print('Petz', ...) end
 | 
| 
Nenue@6
 | 
    11 local trace = function(self, e, ...)
 | 
| 
Nenue@6
 | 
    12   print(e, ...)
 | 
| 
Nenue@6
 | 
    13 end
 | 
| 
Nenue@6
 | 
    14 
 | 
| 
Nenue@6
 | 
    15 local PBS
 | 
| 
Nenue@6
 | 
    16 local turn_font = [[Interface\Addons\Turok\Media\font\ArchivoNarrow-Bold.ttf]]
 | 
| 
Nenue@6
 | 
    17 local turn_size = 24
 | 
| 
Nenue@6
 | 
    18 local turn_outline = 'OUTLINE'
 | 
| 
Nenue@6
 | 
    19 local icon_size = 64
 | 
| 
Nenue@6
 | 
    20 local spacing = 5
 | 
| 
Nenue@6
 | 
    21 local padding = 0
 | 
| 
Nenue@6
 | 
    22 local strongweak_size = 20
 | 
| 
Nenue@6
 | 
    23 
 | 
| 
Nenue@6
 | 
    24 local cpb = C_PetBattles
 | 
| 
Nenue@6
 | 
    25 T.defaults.petbattle = {
 | 
| 
Nenue@6
 | 
    26   swatch = {
 | 
| 
Nenue@6
 | 
    27     anchor = 'BOTTOM', anchorTo = 'BOTTOM',
 | 
| 
Nenue@6
 | 
    28     parent = 'UIParent',
 | 
| 
Nenue@6
 | 
    29     x = 0, y =240,
 | 
| 
Nenue@6
 | 
    30     width = 200, height = 100,
 | 
| 
Nenue@6
 | 
    31     font = [[Interface\Addons\Turok\Media\font\ArchivoNarrow-Bold.ttf]],
 | 
| 
Nenue@6
 | 
    32     size = 16,
 | 
| 
Nenue@6
 | 
    33   },
 | 
| 
Nenue@6
 | 
    34   spell = {
 | 
| 
Nenue@6
 | 
    35     anchor = 'TOPLEFT', anchorTo = 'TOPLEFT',
 | 
| 
Nenue@6
 | 
    36     size = 24,
 | 
| 
Nenue@6
 | 
    37     width = 72, height = 72,
 | 
| 
Nenue@6
 | 
    38     x = 0, y =0,
 | 
| 
Nenue@6
 | 
    39     padding = 0,
 | 
| 
Nenue@6
 | 
    40     spacing = 0,
 | 
| 
Nenue@6
 | 
    41   },
 | 
| 
Nenue@6
 | 
    42   sideSwatch = {
 | 
| 
Nenue@6
 | 
    43     width = 100, height = 50, padding = 0, spacing = 5,
 | 
| 
Nenue@6
 | 
    44     anchor = 'TOPLEFT', anchorTo = 'BOTTOMLEFT', x = 0, y = 0,
 | 
| 
Nenue@6
 | 
    45     parent = 'TkPetSwatch',
 | 
| 
Nenue@6
 | 
    46   },
 | 
| 
Nenue@6
 | 
    47   sideSpell = {
 | 
| 
Nenue@6
 | 
    48     anchor = 'TOPLEFT', anchorTo = 'TOPLEFT',
 | 
| 
Nenue@6
 | 
    49     size = 16,
 | 
| 
Nenue@6
 | 
    50     width = 36, height = 36,
 | 
| 
Nenue@6
 | 
    51     padding = 0,
 | 
| 
Nenue@6
 | 
    52     spacing = 0,
 | 
| 
Nenue@6
 | 
    53   },
 | 
| 
Nenue@6
 | 
    54   icon = {
 | 
| 
Nenue@6
 | 
    55     size = 72,
 | 
| 
Nenue@6
 | 
    56     width = 64,
 | 
| 
Nenue@6
 | 
    57     height = 64,
 | 
| 
Nenue@6
 | 
    58   }
 | 
| 
Nenue@6
 | 
    59 }
 | 
| 
Nenue@6
 | 
    60 mod.abilityButtons = {}
 | 
| 
Nenue@6
 | 
    61 mod.switcherButtons = {}
 | 
| 
Nenue@6
 | 
    62 mod.icons = {}
 | 
| 
Nenue@6
 | 
    63 mod.strongweak = {}
 | 
| 
Nenue@6
 | 
    64 mod.turns = {}
 | 
| 
Nenue@6
 | 
    65 mod.petlist = {}
 | 
| 
Nenue@6
 | 
    66 local PLAYER, ENEMY = 1, 2
 | 
| 
Nenue@6
 | 
    67 local function PBS_UpdateEnemySwatch(self)
 | 
| 
Nenue@6
 | 
    68 
 | 
| 
Nenue@6
 | 
    69   print('UpdateSwatch')
 | 
| 
Nenue@6
 | 
    70   local db = TurokData.petbattle.swatch
 | 
| 
Nenue@6
 | 
    71   local playerActivePet = cpb.GetActivePet(PLAYER)
 | 
| 
Nenue@6
 | 
    72   local enemyActivePet = cpb.GetActivePet(ENEMY)
 | 
| 
Nenue@6
 | 
    73   local enemyNumPets = cpb.GetNumPets(ENEMY)
 | 
| 
Nenue@6
 | 
    74   local playerPetType = cpb.GetPetType(PLAYER, playerActivePet)
 | 
| 
Nenue@6
 | 
    75   local enemyPetType = cpb.GetPetType(ENEMY, enemyActivePet)
 | 
| 
Nenue@6
 | 
    76   local enemyPetName = cpb.GetName(ENEMY, playerActivePet)
 | 
| 
Nenue@6
 | 
    77   for petSlot=1, 3 do
 | 
| 
Nenue@6
 | 
    78     local swatchFrame = (petSlot == enemyActivePet) and self or ((petSlot < enemyNumPets) and self.sideSwatch or self.sideSwatch2)
 | 
| 
Nenue@6
 | 
    79     local db = (swatchFrame == self) and db.spell or db.sideSpell
 | 
| 
Nenue@6
 | 
    80     local type = cpb.GetPetType(ENEMY, petSlot)
 | 
| 
Nenue@6
 | 
    81     print(cText('  PetType='), enemyActivePet)
 | 
| 
Nenue@6
 | 
    82     print(cText('  current='), enemyPetType)
 | 
| 
Nenue@6
 | 
    83     for spellSlot=1, 3 do
 | 
| 
Nenue@6
 | 
    84       print('    ', cText('PetSlotOffset='), cNum(petSlot), cText('AbilitySlotOffset'), cNum(spellSlot))
 | 
| 
Nenue@6
 | 
    85       local id, name, texture, cooldown, desc, numTurns, attackType, noStrongWeakHints = cpb.GetAbilityInfo(ENEMY, petSlot, spellSlot)
 | 
| 
Nenue@6
 | 
    86       local usable, remaining = cpb.GetAbilityState(ENEMY, petSlot, spellSlot)
 | 
| 
Nenue@6
 | 
    87 
 | 
| 
Nenue@6
 | 
    88       --print('info', cpb.GetAbilityInfo(ENEMY, petSlot, spellSlot))
 | 
| 
Nenue@6
 | 
    89       -- print('effect', cpb.GetAbilityEffectInfo(id, turnIdx, effectIdx, paramName)
 | 
| 
Nenue@6
 | 
    90       --print('state', cpb.GetAbilityState(ENEMY,petSlot,spellSlot))
 | 
| 
Nenue@6
 | 
    91       --print('statemod', cpb.GetAbilityStateModification(ENEMY,petSlot,spellSlot))
 | 
| 
Nenue@6
 | 
    92       --print('proc', cpb.GetAbilityProcTurnIndex(ENEMY,petSlot,spellSlot))
 | 
| 
Nenue@6
 | 
    93       --print('statemod', cpb.GetAbilityState(ENEMY,petSlot,spellSlot))
 | 
| 
Nenue@6
 | 
    94       local AbilityButton, icon, strong, turns -- Icon, Strength/Weakness, Turns cooldown
 | 
| 
Nenue@6
 | 
    95       if not swatchFrame.buttons[spellSlot] then
 | 
| 
Nenue@6
 | 
    96         swatchFrame.buttons[spellSlot] = CreateFrame('Frame', 'TkPetSpell'..spellSlot, swatchFrame, 'TkPetSpellTemplate')
 | 
| 
Nenue@6
 | 
    97         AbilityButton = swatchFrame.buttons[spellSlot]
 | 
| 
Nenue@6
 | 
    98 
 | 
| 
Nenue@6
 | 
    99         AbilityButton:SetSize(db.width, db.height)
 | 
| 
Nenue@6
 | 
   100         AbilityButton:SetPoint(db.anchor, swatchFrame, db.anchor, (spellSlot-1)*(db.width+ db.spacing), 0)
 | 
| 
Nenue@6
 | 
   101 
 | 
| 
Nenue@6
 | 
   102         AbilityButton.icon:SetSize(db.width, db.height)
 | 
| 
Nenue@6
 | 
   103         AbilityButton.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
 | 
| 
Nenue@6
 | 
   104 
 | 
| 
Nenue@6
 | 
   105         AbilityButton.strongWeakHint:SetSize(strongweak_size, strongweak_size)
 | 
| 
Nenue@6
 | 
   106         AbilityButton.strongWeakHint:SetPoint('CENTER', swatchFrame.buttons[spellSlot], 'CENTER', 0, 0)
 | 
| 
Nenue@6
 | 
   107 
 | 
| 
Nenue@6
 | 
   108         AbilityButton.turnsLeft:SetFont(turn_font, turn_size, turn_outline)
 | 
| 
Nenue@6
 | 
   109         AbilityButton.turnsLeft:SetPoint('CENTER', icon, 'CENTER')
 | 
| 
Nenue@6
 | 
   110       else
 | 
| 
Nenue@6
 | 
   111         AbilityButton = swatchFrame.buttons[spellSlot]
 | 
| 
Nenue@6
 | 
   112       end
 | 
| 
Nenue@6
 | 
   113       local icon, strong , turns = AbilityButton.icon, AbilityButton.strongWeakHint, AbilityButton.turnsLeft
 | 
| 
Nenue@6
 | 
   114 
 | 
| 
Nenue@6
 | 
   115       print('Working on:', swatchFrame, AbilityButton)
 | 
| 
Nenue@6
 | 
   116       print('AbilityState('..petSlot..', '..spellSlot..')', 'usable=', usable, 'turnsLeft=', remaining)
 | 
| 
Nenue@6
 | 
   117       print(cWord(name), cKey(attackType))
 | 
| 
Nenue@6
 | 
   118 
 | 
| 
Nenue@6
 | 
   119       if petSlot > enemyNumPets then
 | 
| 
Nenue@6
 | 
   120         -- this will also eval true when pet battle over since numPets will be 0
 | 
| 
Nenue@6
 | 
   121         AbilityButton.popOut:Play()
 | 
| 
Nenue@6
 | 
   122       else
 | 
| 
Nenue@6
 | 
   123         local abilityChanged
 | 
| 
Nenue@6
 | 
   124         if id ~= AbilityButton.spellID then
 | 
| 
Nenue@6
 | 
   125           abilityChanged = true
 | 
| 
Nenue@6
 | 
   126           AbilityButton.spellID = id
 | 
| 
Nenue@6
 | 
   127           AbilityButton.spellName = name
 | 
| 
Nenue@6
 | 
   128           AbilityButton.spellDesc = desc
 | 
| 
Nenue@6
 | 
   129           AbilityButton.spellType = attackType
 | 
| 
Nenue@6
 | 
   130           AbilityButton.spellMaxCooldown = cooldown
 | 
| 
Nenue@6
 | 
   131           AbilityButton.spellDesc = desc
 | 
| 
Nenue@6
 | 
   132           AbilityButton.spellCooldown = remaining
 | 
| 
Nenue@6
 | 
   133           AbilityButton.spellNumTurns = numTurns
 | 
| 
Nenue@6
 | 
   134         end
 | 
| 
Nenue@6
 | 
   135         if AbilityButton.petType ~= enemyPetType then
 | 
| 
Nenue@6
 | 
   136           AbilityButton.petType = enemyPetType
 | 
| 
Nenue@6
 | 
   137           AbilityButton.noStrongWeakHints = noStrongWeakHints
 | 
| 
Nenue@6
 | 
   138         end
 | 
| 
Nenue@6
 | 
   139 
 | 
| 
Nenue@6
 | 
   140         if not usable then
 | 
| 
Nenue@6
 | 
   141           icon:SetDesaturated(true)
 | 
| 
Nenue@6
 | 
   142           icon:SetVertexColor(0.5, 0.5, 0.5, 1)
 | 
| 
Nenue@6
 | 
   143         else
 | 
| 
Nenue@6
 | 
   144           icon:SetDesaturated(false)
 | 
| 
Nenue@6
 | 
   145           icon:SetVertexColor(1, 1, 1, 1)
 | 
| 
Nenue@6
 | 
   146         end
 | 
| 
Nenue@6
 | 
   147 
 | 
| 
Nenue@6
 | 
   148         icon:SetTexture(texture)
 | 
| 
Nenue@6
 | 
   149         turns:SetText((cooldown > 0) and cooldown or nil)
 | 
| 
Nenue@6
 | 
   150         --AbilityButton.damage:SetText()
 | 
| 
Nenue@6
 | 
   151 
 | 
| 
Nenue@6
 | 
   152         print('noStrongWeakHints', noStrongWeakHints)
 | 
| 
Nenue@6
 | 
   153         print('abilityModification', cpb.GetAttackModifier(enemyPetType, playerPetType))
 | 
| 
Nenue@6
 | 
   154         local modifier = cpb.GetAttackModifier(enemyPetType, playerPetType)
 | 
| 
Nenue@6
 | 
   155         if not noStrongWeakHints  then
 | 
| 
Nenue@6
 | 
   156           if modifier < 1 then
 | 
| 
Nenue@6
 | 
   157             strong:SetTexture(0,1,0,0.5)
 | 
| 
Nenue@6
 | 
   158           else
 | 
| 
Nenue@6
 | 
   159             strong:SetTexture(1,0,0,0.5)
 | 
| 
Nenue@6
 | 
   160           end
 | 
| 
Nenue@6
 | 
   161 
 | 
| 
Nenue@6
 | 
   162           strong:Show()
 | 
| 
Nenue@6
 | 
   163         else
 | 
| 
Nenue@6
 | 
   164           strong:Hide()
 | 
| 
Nenue@6
 | 
   165         end
 | 
| 
Nenue@6
 | 
   166         if numTurns then
 | 
| 
Nenue@6
 | 
   167           print('numTurns=',numTurns)
 | 
| 
Nenue@6
 | 
   168         end
 | 
| 
Nenue@6
 | 
   169         if not AbilityButton:IsVisible() or abilityChanged then
 | 
| 
Nenue@6
 | 
   170           AbilityButton:Show()
 | 
| 
Nenue@6
 | 
   171           AbilityButton.popIn:Play()
 | 
| 
Nenue@6
 | 
   172         end
 | 
| 
Nenue@6
 | 
   173 
 | 
| 
Nenue@6
 | 
   174       end
 | 
| 
Nenue@6
 | 
   175 
 | 
| 
Nenue@6
 | 
   176 
 | 
| 
Nenue@6
 | 
   177     end
 | 
| 
Nenue@6
 | 
   178     swatchFrame:SetSize(db.width*3+db.spacing*2+db.padding*2, db.height+padding*2)
 | 
| 
Nenue@6
 | 
   179     swatchFrame.petName = enemyPetName
 | 
| 
Nenue@6
 | 
   180     swatchFrame.petType = enemyPetType
 | 
| 
Nenue@6
 | 
   181     local db = (swatchFrame == self) and db.swatch or db.sideSwatch
 | 
| 
Nenue@6
 | 
   182     swatchFrame:Show()
 | 
| 
Nenue@6
 | 
   183   end
 | 
| 
Nenue@6
 | 
   184 end
 | 
| 
Nenue@6
 | 
   185 
 | 
| 
Nenue@6
 | 
   186 local function PBS_Switch ()
 | 
| 
Nenue@6
 | 
   187   print('Switch button was clicked.')
 | 
| 
Nenue@6
 | 
   188 end
 | 
| 
Nenue@6
 | 
   189 mod.PLAYER_ENTERING_WORLD = function(self, e)
 | 
| 
Nenue@6
 | 
   190   print(cpb.IsInBattle())
 | 
| 
Nenue@6
 | 
   191   if cpb.IsInBattle() then
 | 
| 
Nenue@6
 | 
   192     PBS_UpdateEnemySwatch(PBS, e, 2)
 | 
| 
Nenue@6
 | 
   193   end
 | 
| 
Nenue@6
 | 
   194 
 | 
| 
Nenue@6
 | 
   195 
 | 
| 
Nenue@6
 | 
   196   if _G.PetBattleFrame.BottomFrame.SwitchPetButton then
 | 
| 
Nenue@6
 | 
   197     print("There's a pet battle frame button ")
 | 
| 
Nenue@6
 | 
   198     --_G.PetBattleFrame.BottomFrame.SwitchPetButton:SetScript('OnClick', PBS_Switch)
 | 
| 
Nenue@6
 | 
   199   end
 | 
| 
Nenue@6
 | 
   200 end
 | 
| 
Nenue@6
 | 
   201 
 | 
| 
Nenue@6
 | 
   202 local PBS_Hide = function()
 | 
| 
Nenue@6
 | 
   203   for i = 1, 3 do
 | 
| 
Nenue@6
 | 
   204     if PBS.buttons[i] then
 | 
| 
Nenue@6
 | 
   205       PBS.buttons[i].popOut:Play()
 | 
| 
Nenue@6
 | 
   206     end
 | 
| 
Nenue@6
 | 
   207     if PBS.sideSwatch.buttons[i] then
 | 
| 
Nenue@6
 | 
   208       PBS.sideSwatch.buttons[i].popOut:Play()
 | 
| 
Nenue@6
 | 
   209     end
 | 
| 
Nenue@6
 | 
   210     if PBS.sideSwatch2.buttons[i] then
 | 
| 
Nenue@6
 | 
   211       PBS.sideSwatch2.buttons[i].popOut:Play()
 | 
| 
Nenue@6
 | 
   212     end
 | 
| 
Nenue@6
 | 
   213   end
 | 
| 
Nenue@6
 | 
   214 end
 | 
| 
Nenue@6
 | 
   215 
 | 
| 
Nenue@6
 | 
   216 local PBS_Event = function(self, e, ...)
 | 
| 
Nenue@6
 | 
   217   print('event', e)
 | 
| 
Nenue@6
 | 
   218   local owner = ...
 | 
| 
Nenue@6
 | 
   219   if e == 'PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE' or e == 'PET_BATTLE_OPENING_DONE' then
 | 
| 
Nenue@6
 | 
   220     PBS_UpdateEnemySwatch(PBS)
 | 
| 
Nenue@6
 | 
   221   elseif e == 'PET_BATTLE_CLOSE' then
 | 
| 
Nenue@6
 | 
   222     PBS_Hide(PBS)
 | 
| 
Nenue@6
 | 
   223   end
 | 
| 
Nenue@6
 | 
   224 end
 | 
| 
Nenue@6
 | 
   225 function mod:OnEnable()
 | 
| 
Nenue@6
 | 
   226   PBS = CreateFrame('Frame', 'TkPetSwatch', UIParent, 'TkPetSwatchTemplate')
 | 
| 
Nenue@6
 | 
   227   PBS.buttons = {}
 | 
| 
Nenue@6
 | 
   228   PBS.sideSwatch = CreateFrame('Frame', 'TkSideSwatch', PBS, 'TkPetSwatchTemplate')
 | 
| 
Nenue@6
 | 
   229   PBS.sideSwatch.buttons = {}
 | 
| 
Nenue@6
 | 
   230   PBS.sideSwatch2 = CreateFrame('Frame', 'TkSideSwatch', PBS, 'TkPetSwatchTemplate')
 | 
| 
Nenue@6
 | 
   231   PBS.sideSwatch2.buttons = {}
 | 
| 
Nenue@6
 | 
   232   local db = TurokData.petbattle
 | 
| 
Nenue@6
 | 
   233   T.SetFrameLayout(PBS, db.swatch)
 | 
| 
Nenue@6
 | 
   234   T.SetFrameLayout(PBS.sideSwatch, db.sideSwatch)
 | 
| 
Nenue@6
 | 
   235   T.SetFrameLayout(PBS.sideSwatch2, db.sideSwatch)
 | 
| 
Nenue@6
 | 
   236   PBS.sideSwatch2:ClearAllPoints()
 | 
| 
Nenue@6
 | 
   237   PBS.sideSwatch2:SetPoint('LEFT', PBS.sideSwatch, 'RIGHT', db.sideSpell.spacing, 0)
 | 
| 
Nenue@6
 | 
   238 
 | 
| 
Nenue@6
 | 
   239   mod.effectIndex = {
 | 
| 
Nenue@6
 | 
   240     cpb.GetAllEffectNames()
 | 
| 
Nenue@6
 | 
   241   }
 | 
| 
Nenue@6
 | 
   242 
 | 
| 
Nenue@6
 | 
   243   PBS:SetScript('OnEvent', PBS_Event)
 | 
| 
Nenue@6
 | 
   244   PBS:RegisterEvent('PET_BATTLE_OPENING_DONE')
 | 
| 
Nenue@6
 | 
   245   PBS:RegisterEvent('PET_BATTLE_PET_CHANGED')
 | 
| 
Nenue@6
 | 
   246   PBS:RegisterEvent('PET_BATTLE_OVER')
 | 
| 
Nenue@6
 | 
   247   PBS:RegisterEvent('PET_BATTLE_CLOSE')
 | 
| 
Nenue@6
 | 
   248   PBS:RegisterEvent('PET_BATTLE_ABILITY_CHANGED')
 | 
| 
Nenue@6
 | 
   249   PBS:RegisterEvent('PET_BATTLE_ACTION_SELECTED')
 | 
| 
Nenue@6
 | 
   250   --PBS:RegisterEvent('PET_BATTLE_AURA_APPLIED')
 | 
| 
Nenue@6
 | 
   251   --PBS:RegisterEvent('PET_BATTLE_AURA_CANCELED')
 | 
| 
Nenue@6
 | 
   252   --PBS:RegisterEvent('PET_BATTLE_PET_TYPE_CHANGED')
 | 
| 
Nenue@6
 | 
   253   PBS:RegisterEvent('PET_BATTLE_TURN_STARTED')
 | 
| 
Nenue@6
 | 
   254   --PBS:RegisterEvent('PET_BATTLE_HEALTH_CHANGED')
 | 
| 
Nenue@6
 | 
   255   --PBS:RegisterEvent('PET_BATTLE_MAX_HEALTH_CHANGED')
 | 
| 
Nenue@6
 | 
   256   PBS:RegisterEvent('PET_BATTLE_PET_ROUND_RESULTS')
 | 
| 
Nenue@6
 | 
   257   PBS:RegisterEvent('PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE')
 | 
| 
Nenue@6
 | 
   258 end
 | 
| 
Nenue@6
 | 
   259 
 | 
| 
Nenue@6
 | 
   260 --[[
 | 
| 
Nenue@6
 | 
   261 mod.PET_BATTLE_OPENING_DONE	 = trace
 | 
| 
Nenue@6
 | 
   262 mod.PET_BATTLE_OPENING_START = trace
 | 
| 
Nenue@6
 | 
   263 mod.PET_BATTLE_OVER	 = trace
 | 
| 
Nenue@6
 | 
   264 mod.PET_BATTLE_ABILITY_CHANGED = trace
 | 
| 
Nenue@6
 | 
   265 mod.PET_BATTLE_ACTION_SELECTED = trace
 | 
| 
Nenue@6
 | 
   266 mod.PET_BATTLE_AURA_APPLIED = trace  -- <team> <slot> <id>
 | 
| 
Nenue@6
 | 
   267 mod.PET_BATTLE_AURA_CANCELED = trace -- <team> <slot> <id>
 | 
| 
Nenue@6
 | 
   268 mod.PET_BATTLE_AURA_CHANGED = trace -- <team> <slot> <id>
 | 
| 
Nenue@6
 | 
   269 mod.PET_BATTLE_CAPTURED = trace
 | 
| 
Nenue@6
 | 
   270 mod.PET_BATTLE_CLOSE = trace
 | 
| 
Nenue@6
 | 
   271 mod.PET_BATTLE_FINAL_ROUND = trace -- <team>
 | 
| 
Nenue@6
 | 
   272 mod.PET_BATTLE_HEALTH_CHANGED = trace -- <team> <pet slot> <delta>
 | 
| 
Nenue@6
 | 
   273 mod.PET_BATTLE_LEVEL_CHANGED = trace
 | 
| 
Nenue@6
 | 
   274 mod.PET_BATTLE_LOOT_RECEIVED = trace
 | 
| 
Nenue@6
 | 
   275 mod.PET_BATTLE_MAX_HEALTH_CHANGED = trace
 | 
| 
Nenue@6
 | 
   276 mod.PET_BATTLE_PET_CHANGED = trace -- <team>
 | 
| 
Nenue@6
 | 
   277 mod.PET_BATTLE_PET_TYPE_CHANGED = trace -- <team> <slot> <type>
 | 
| 
Nenue@6
 | 
   278 mod.PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE = trace -- <round number>
 | 
| 
Nenue@6
 | 
   279 mod.PET_BATTLE_PET_ROUND_RESULTS = trace -- <round number>
 | 
| 
Nenue@6
 | 
   280 mod.PET_BATTLE_PVP_DUEL_REQUESTED = trace
 | 
| 
Nenue@6
 | 
   281 mod.PET_BATTLE_PVP_DUEL_REQUEST_CANCEL = trace
 | 
| 
Nenue@6
 | 
   282 mod.PET_BATTLE_QUEUE_PROPOSAL_ACCEPTED = trace
 | 
| 
Nenue@6
 | 
   283 mod.PET_BATTLE_QUEUE_PROPOSAL_DECLINED = trace
 | 
| 
Nenue@6
 | 
   284 mod.PET_BATTLE_QUEUE_PROPOSE_MATCH = trace
 | 
| 
Nenue@6
 | 
   285 mod.PET_BATTLE_QUEUE_STATUS	 = trace
 | 
| 
Nenue@6
 | 
   286 mod.PET_BATTLE_TURN_STARTED = trace
 | 
| 
Nenue@6
 | 
   287 mod.PET_BATTLE_XP_CHANGED = trace -- <team> <slot> <exp>
 | 
| 
Nenue@6
 | 
   288 --]] |