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