Mists of Pandaria will introduce more than 600 combat pets. When you first start pet training, having just a team made of your favorite ones might seam like a good idea. But, as you capture more and train them, you will feel the need to build different teams. Maybe you've just entered Searing Gorge, and walking with a mechanical team no longer seams a reasonable option. Maybe your favorite pet just got killed, and your strategy must be reviewed to afford the replacement.
Either way, you will have to switch pets. You will have to switch their abilities to match the rest of the team. And you will have to do it all manually. Over and over again. Would you not rather have a tool that would do it for you? Then we ought you to give PetBattleTeams a try!
As its name implies, PetBattleTeams allows you to set up pet teams and switch between them with a single click. It memorizes not only the pets you've chosen, but also the abilities you've assigned for them. Furthermore, it permits you to quickly swamp pets between teams and link any team in the chat.
We also had the opportunity to have a chat with the add-on's author, Nullberri:
Why did you decide to create this addon?
Initially I had created a pet quality addon to display the enemy’s pet quality in a tooltip, and released that but another developer had designed such a better user experience doing the same thing that I shifted focus.
I’ve been watching the pet forums like a hawk and I just started listening to all the UI feedback and one of them was for the ability to make pet teams and the other was to be able to sort pets. I also wrote Pet Journal Enhanced to sort pets.
The Initial version of pet battle teams was robust under the hood but had a very poor user experience it was just a series of numbered buttons and a save button. Later on I had an epiphany about what information was actually needed to choose which team to use and the fact that the way to display that information already existed in game. I just had to borrow blizzards mini pet battle unit frames and rework it.
They were perfect; they already displayed all of the critical information and the user would already be familiar with how they worked. From there it was mostly about hooking the unit frames up to the pet journal instead of the pet battle system, and adding some additional information and features.
When do you find it to be most useful?
The most useful part is when I’ve decided to switch teams but I don’t yet know which team I’m switching to. Being able to see all of the pets in a team, along with their health and level at a glance really enabled me to make that decision and when I need more info, everything the pet journal could tell me I can learn from a simple flick of the mouse and reading a tooltip without actually switching to that team. Additionally having the frame detached and off to the side means once my pet teams are setup I rarely have to open the pet journal anymore.
How was the experience of working with the World of Warcraft UI?
For the UI side of it, I briefly looked into doing an xml file and a Lua file like most other people choose to, but I was having difficulty in designing the layout so I switched to just pure Lua and started doing it by hand which sped up my development significantly. Instead of tagged templates in the XML I started making functions to compose all the UI elements. Using blizzards template pet battle unit frames really sped up the development while creating a cohesive look to it. Co-opting blizzards code is great, because you don’t have to explain to others how they should use it, they already know.
Any plans for new addons in the future?
Yes I’m playing around with the idea of writing a pet battle AI.
Do you have any advice for others who would like to start modding?
Ignore the XML side of the UI design. Never was I more frustrated than dealing with their layout system. Maybe I didn’t investigate it enough but what I found was if there was a small XML error the whole thing didn’t load and gave no feed back as to what went wrong. Doing all my UI code in Lua gave me immediate feedback if I had done something wrong. Doing it in Lua might take more lines of code; but I actually found it easier to read and follow.
Thank you to Nullberri for answering our questions and developing this add-on.