Note: This is the "work in progress" test version of GOATS. If you want the last release check here
This is my first attempt at something I've ever wanted to have: an ingame automatically-growing archive of EVERY demon I enslave in the World of Warcraft.
This idea came to my mind while reading the warlock forums. I was overwhelmingly bored by those "low DPS" threads when I suddenly stumbled across something I thought interesting. It was a compilation of demons (with skills and stats) somebody had enslaved in Outland.
However, as wonderful as that list could ever be, I'm sure it must've been a PITA to gather the info, format it and publish it. Thus the idea of creating a mod like this one was born among the lines of that thread.
Time went on as I waited for someone with .lua knowledge to take over this project, but no one seemed to care about it.
That's when I decided to learn lua and xml and write it myself.
What does it do?
Whenever you enslave a demon, a message should appear on your screen stating: GOATS: New demon tracked! or GOATS: Already known if (guess what!) you have already tracked it.
From that moment, you'll be able to check that demon's spells, stats (including elite status) and even appearance by clicking on the GOATS-Minimap button. And by appearance, I mean his/her fully textured model.
To avoid having to load those models every time, though, a simple frame and a line of text will tell you what kind of demon it was (eredar, felguard, imp,...).
Thre's also a feature that lets you "comment" a demon if you find it necessary. Said demon will appear in a different color and every time you check his/her stats and skills, you'll be able to see the comment you wrote.
The color in which normal, commented, elite and elite-commented demons are listed is fully customizable in the options menu (check addons\GOATS or middle-click the minimap button).
You can now check if a demon is on your list or if you got an IMMUNE message from him just by hovering over his model or his target frame.
All descriptions will be shown in English for non-supported locales (supported locales are: French, Spanish and English).
If you wish to contribute, feel free to do so
Sorting, though, is on the To-Do list.
Hope you like it.
Known bugs, hints, tips,...
(TIP) If somehow the DB screws up, /goats wipe should solve it. (this will remove ALL saved data)
(TIP) Right-Click on the minimap button to track the pet (though it should be tracked already if you casted Enslave Demon on it).
(TIP) Models are saved within YOUR cache, which means that if you somehow erase it (this happens automatically during a patch) all your demons will be displayed as their sample equivalents (or a yellow question mark, if selected demon's race is unknown). Don't worry, though, because your cache will refill automatically as you see things in the world (and your demons will eventually come back!).
(TIP) If you track a demon you had never seen before, its model will not be avaiable until you disconnect. This is because new models are stored in the cache when you exit the game. You should be able to view them as soon as you log back in.
(BUG/TIP) Sometimes GOATS window might (happened only twice but...) close on opening the map. If this happens, open GOATS again and then close the map (in this order).
(K. BUG) GOATS refuses to work fine while in combat. For some time, it couldn't even be closed/hidden. It will still let you see what you were seeing before you entered combat, but almost everything else will work funny.
--Changed the way generic models are noted (last one was a bit too intrussive).
--Wenever you try to see the model of a tracked demon and said demon is not in your Cache, a sample model will be loaded (stating "Race Model"). This sample model should be very similar to the "true" one, but it may have a different color texture. I think that's better than the yellow question mark ^^
--Fixed Map icon position. FIXED MODELS!!. Also, messed with how the mod handles location tracking. Good news are that you'll now be able to track demons in instances and see their location later. Bad news are that with this version you'll most likely lose any previously saved locations data.
--I fixed the inability to close the frame while in combat and made some adjustments so that there's no need to relog for models to show up (no more unexpected question marks). If you find any other bug, just tell me.
--Test release. Did some minor improvements in hopes to solve some bugs.
--Added Tooltip support for every locale. The descriptions will be in English, though (unless someone is willing to translate them).
--Fixed a dumb bug. Tooltip functionality will only work for supported locales (i.e. French, Spanish and English)
--Added Tooltip functionality. A small line in the tooltip will tell you if the hovered demon is in your list and if it can be eslaved. The mod will also record when you get a big IMMUNE text and get pwned, so that you never get pwned again ;)
--Fixed a silly bug that that happened on deleting a demon. Made some adjustments in regards to 4.0 API changes. Please, tell me if any errors pop up.
--Fixed a bug where Elite demons were not displaying in the map.
Fixed highlight selection. You'll only need to click once and the highlight will scroll properly.
Changed all 'this' to 'self' to better adapt for 4.0.
Established priorities as to whether race or name model should be displayed (it was somewhat random, now true model will be displayed if it's in your cache).
Resistances and comments fixed. They will now scroll properly.
--Added French locale (thanks to Myriana). Check the 'comments' tab in this page if you experience any problems.
Also you'll now be able to navigate through your saved demons models.
--Fixed Commented Elite demons not displaying properly colored. Also did some minor improvements.
Still trying to get sorting done.
--The addon will no longer freeze when clicking the 'appearance' tab. Yep, you'll get your models instantly!
--Optimized the way the addon handles models. You should experience a slight increase in loading time (loading screen), but an overall decrease in the time it takes to show a model. It still hangs up a little, though.
--Fixed Demon Map display.
--Fixed demons not being tracked on casting Enslave Demon.
--Fixed a bug introduced in previous version. Damage frame is done (with DPS tooltip!).
--Options panel done. Colors in which demons are listed can now be changed.
Also finished map display. Sometimes, though, GOATS window will close on opening the map. If this happens, open GOATS again and then close the map (in this order).
--Resistances done (finally!). Also finished working on the design of the options menu. Next version should have it functional.
--Full support for demon-specific comments. You may now attach any note you may find convenient to any specific demon. Check 'abilities' frame to see them.
Commented and/or elite demons should now display in a different color. I recently started working on an options menu to allow users to change those colors.
Minimap button has finally got a tooltip (yay!).
--Fixed some obscure bugs. No longer required to hover over pets abilities ^^
Elite demons should now have a different-colored name (same for commented ones, wich will be introduced in a future version)
--Stabilized/optimized some methods. Model "might" now display the correct demon.
--Race field should now be working.
Getting close to model display (model controls are done too, check 'appearance' button).
Also added a new method to "track" demons: right-click on the minimap button.
If the pet bar is hidden, abilities will not be tracked
If you haven't hovered altleast once over atleast one of pet's abilities, the mod will not be able to get their ids (thus won't be able to show tooltips once the pet is gone).
--Me lufs felboars!
--Got a workaround for tooltips (SetSpellById seemed not to be working at all). Also got the damage reduction from armor to display properly.
Once DDamage, resistances and map display are done, i'll push this to beta state (wich should not delay too much).
--Worked out the four abilities. Added shift-click functionality to link them on chat. Still trying to get tooltipts to show once the pet is gone.
--Data (with the exception of the Damage value) is almost done. Location and elite status are done too. Next version should have resistances and/or map display done. I'm saving race for the last, as I have no obviuos method to get the model file path of the pet. If anybody gets around something... feel free to help! ^^
Note: Forgot to mention I changed the 'demon tracker' from Detect Invisibility to Unending Breath.
--Managed to learn how SavedVariables work.
Created a minimap button: left click to toggle window, right click to reload ui.
Buffing your pet with Detect Invisibility (Soul-Shard saving FTW) should add said pet to the database. Health and mana should be displayed correctly and the delete button should now be functional. Race and zone are still random. It's getting close ;)
--Established link between the two frames and created some icons. Selecting a demon should now reflect on the Data frame.
--Got the background working!! Also created the demon races (localized) and tweaked the list frame a lil' bit more (added headers and button grayout functionality).
Next step: Fix highlight selection and link the two frames.
--Revamped List frame. Sorted list in columns (headers still missing). Prepared Side-frame to show model.
Working on highlight selection and the damn background image that refuses to load.
--Got the DemonDataFrame done.
Next stage: create database, sort it in columns (name, level,...) and link it with DemonDataFrame.