Pokedex
IMPORTANT UPDATE FOR 9.2
The "new hotness" feature for mounts has been completely rewritten to work better with how the game has operated the last several expansions. The problems were that 1) multiple new mounts are often acquired in a small window of time followed by periods of drought and 2) flying mounts are often acquired when the vast majority of time was being spent in ground mount only zones.
The result is that many new mounts never really get a chance to be highlighted by the system before getting bumped down into the full pool. The solution is to track multiple hot mounts. Now, when you acquire a new mount its given a heat value. When you summon a mount, we will first check that slider percentage to see if we should summon from the pool of hot mounts. If so, we'll select from amongst just those mounts with hotter mounts having a greater chance of being summoned. A mount summoned this way loses one from its heat value. When a mount hits zero its no longer hot and falls into the general pool of mounts.
This system should ensure that all new mounts you acquire will have their time in the sun with the most recently acquired mounts being summoned the most often.
USING POKEDEX - THE SHORT VERSION
The games Key Binding UI will contain a section for Pokedex. The only two commands you'll probably want or need to keybind are Toggle Mount and Summon Companion. SummonOtherMount is a useful bind for those times when you don't want the type of mount we selected (for example, we choose a swimming mount but you want a regular one). Pokedex configuration can be reached through the games addons menu or by typing /pd. The full list of commands can be found at http://www.wowace.com/addons/pokedex/pages/main/actions/.
ADDON DESCRIPTION
Pokedex allows random summoning of mounts and companions using preference values set by user to influence selection. Pokedex will summon the appropriate mount, or invoke a class specific movement ability like Ghost Wolf or Burning Rush, based on what the current location and conditions support. Pokedex can also randomly set character's title using the same basic ranking system.
The chance of a particular item (mount, companion or title) being selected is equal to the rank you have assigned to it divided by the total of the ranks for all other eligible items. Put another way, each point of ranking is one ticket to the raffle drawing to see which mount is selected. If all items are still set to the default value, then they all have an equal chance of being selected. An item which you have assigned a value of 0 will never be selected.
PROFILE SUPPORT
Pokedex has support for all the normal ace3 profile stuff (change current, copy, etc), with a couple of twists so that you can have the benefits of sharing a profile and still be able to make character specific tweaks by overriding the rank value on that character. See http:www.wowace.com/addons/pokedex/pages/profiles/ for more info.
ADDITIONAL FEATURES
The New Hotness - The idea behind this feature is that your most recently acquired pet/mount/title is something you're probably excited about and what to see more often than the rest of your collection. Or maybe you want to flaunt it in front of the all the people who are still trying to get, for example, their Sinister Squashling. When dealing with large numbers of pets or mounts, even setting it to the max rank will not cause it to show up very often. So rather than make you downrank every other item, the hotness feature acts as a way to get that one pet or mount out more often. If there is a hot pet, we'll first do a percentile roll against the heat of hot item. If the heat is set to 50, then 50 percent of the time we would summon that hot pet. The other 50 percent of the time, we'll do the usual random selection out of the weighted pet pool.
Safe Dismount - This feature is disabled by default but can be turned on in Pokedex's options ui. This feature allows you to keep as a default behavior that of having the Auto Dismount in Flight option turned off, so that accidently trying to cast a spell in flight won't send you plummeting to your death, but allows you to choose override scenarios where you do want actions to dismount you automatically so that they can be executed. The scenarios you can opt into are 1) when you are in combat, 2) targeting something attackable or 3) attempting to gather a resource via mining, herbalism or skinning.
Random Titles - You can also rank titles the way you do pets and mounts and have Pokedex periodically change your title.
Auto summon pet - You can have Pokedex summon a non-combat pet, if you don't already have one out, every time you dismount or change zone.
Druid forms, Ghost Wolf and Burning Rush support - Pokedex supports using Druid forms, Shaman Ghost Wolf and Warlock Burning Rush in the appropriate situations as part of the Toggle Mount command.
autocast Water Walking when mounting - An option exists (off by default) for Shamans to cast Water Walking and Affliction Warlocks to cast a Soulburned Unending Breath as they summon a mount with the Toggle Mount command. This way the buff is already in place when they encounter water so they don't have to dismount, buff and then remount (all while wondering why Death Knights get to cast Path of Frost while mounted).
autocast Horn of Winter when mounting - For Death Knights, Pokedex can cast Horn of Winter whenever you mount. This is useful for keeping the buff up while questing or resource gathering (e.g. mining).
What are the specifics of the situation you're seeing? Which fast mounts are getting treated as being slower than they should be and/or which slow mounts are being treated as faster? Also, are you playing in a language other than US English? If so then it could be a string matching error.
Hopefully we can get this figured out for you quickly.
So the problem is that we generally detect mount speeds by examining the tooltip for the mount. And since we're trying to match against English phrases we aren't finding what we're looking for and are unable to properly catergorize your mounts.
The use of these strings in decision making code was obviously a bad idea. It did allow some parts to be written quickly and simply but it creates a chicken and egg problem: if the addon doesn't work correctly in another language how do you get people interested enough in it to want to help localize?
I looked through my string table to find other strings which are used for making decisions inside the addon (as opposed to those which are used for communicating to the user). For the addon to work correctly in an non english locale, all of those types of strings would have to be translated. I've marked them with a comment of REQUIRED, so the filtered list of just those for the french locale is http://www.wowace.com/addons/pokedex/localization/frFR/?search=required.
I'm still ramping up on how to support locales but I decided to use French as a test case. Using wowhead I was able to get translations which I think will be good for almost all of those strings. The only one I couldn't find something for was "Skinnable". If you install the latest beta, v3.3.05 then I have high hopes that the addon will work much better for you.
Going forward, though, what I'm going to try to do as much as I can to rewrite all those sections that are currently working off those strings. I'll probably have to create a big table with all the mounts in it so I can look them up by spellID and see what they're speed is. I'll still have the tooltip parsing in there as fallback for new mounts I haven't added in yet, but at least things will be correct for the majority of mounts. There are also some libs people have written that should help provide me with some things like zone names.
So, keep an eye on this space. The most recent BETA build and the Release that will follow it should hopefully work better for french and users of all non-english languages can use the web tool to start adding translations. The next release after that will hopefully make the core more language agnostic and have hopefully have no or reduced functional dependencies on localization.
/run local L = LibStub("AceLocale-3.0"):GetLocale("Pokedex"); print(L["Outland"]);
If its loaded the french strings you should get Outreterre in the chat window. If it says Outland then that could mean that I didn't do something right in setting up the locales. Of course, if it does say Outreterre then that would indicate problems beyond just the strings.
When you log in or use a pokedex command, are there errors thrown?
I'm assuming that is what you see in the UI, that in the select mount type dropdown you only have one entry which is Runners. When categorization is working correctly you should see several categories, the common ones being "Very Fast Flyers", "Flyers", "Very Fast Runners" and "Runners". Once we have mounts in the correct groups then we can correctly summon the fastest for location.
Tons of code cleanup. Change title feature tweaked to work around blizz api changes (to change on mount instead of on load). Fixed bugs related to initializing when blizz cache had been invalidated.
/pd debug - command line feature lets you turn on chat frame output for various features.
Safe dismount feature - manages the "auto dismount while flying" setting to turn it off in situations where you'd want to quick dismount and keep it on the rest of the time to prevent accidents. Not integrated into options yet - to disable this feature, change the option pokedex.lua in your saved variables folder.
Checked in and released an new BETA build for testing:
Tons of code cleanup. Change title feature tweaked to work around blizz api changes (to change on mount instead of on load). Fixed bugs related to initializing when blizz cache had been invalidated.
/pd debug - command line feature lets you turn on chat frame output for various features for debugging purposes.
Safe dismount feature - manages the "auto dismount while flying" setting to turn it off in situations where you'd want to quick dismount and keep it on the rest of the time to prevent accidents. Not integrated into options yet - to disable this feature, change the option pokedex.lua in your saved variables folder.
NOTE: Changing Title on load was broken by patch 3.3. Blizzard has changed that function to make it a secure function meaning direct user action must initiate the call. Current plan is to offer new options that will let you tie title change to other pokedex actions. For example, you could have it change your title every time you mount up, or perhaps only the first time you mount up for a given session. I'm open to all suggestions for how to improve/reimplement this option.
In addition to dismounting off mounts, it should also pop you out of vehicles.
AH HA. Yup, that did what I wanted. I actually use the Key Bindings interface, not a macro. I just assumed the one closest to the top of the list was the proper one to set my binding to. Maybe move the ToggleMount option up in case others make the same mistake I did?
Also, YES. I didn't even think about that. I would love to be able to auto dismount for mining and herbing, etc. And very smart from a PVP perspective. That's the main reason I was trying to get "Toggle" to work. Get that into a release version!
Side note: Your "toggle" works way better because it actually just dismounts instead of instantly trying to summon another mount. That annoyed me in other mount mods.
Okay - I think I understand what your problem is and what the solution would be. You say you click your "Pokedex mount" button - I'm assuming what that means is you have on a button a macro calling "/pd summonmount". So, if you want one button to work as both mount and dismount, just replace that with "/pd togglemount". ToggleMount will call summonmount if you are unmounted and dismissmount if you are mounted - so one button does both. I have no trouble dismounting while moving if that's what I want to do and I just use one button as well for mounting/dismounting.
If you have the blizzard checkbox off (so that casts won't dismount you while flying) and changing hunter aspects still kicks you off in midair, then that's a blizzard bug. You'd have to report it on the forums.
So, heh, I'm actually right now working on code that selectively turns on the "let casts dismount me" option if certain conditions are met (and you choose to opt into those conditions of course, like the title change on load). I have it working now on my machine for mining - so if I'm not quite landed when I click on something like a saronite node it *will* dismount me rather than making me land or manually dismount. But while flying around looking for those nodes if I accidently hit one of my instant cast spells, it will be safely on the no autodismount setting. Another condition I'll probably add is if you're in combat (so you can just start mashing buttons to return fire rather than having to dismount first), and I might add some for if you're in WG or maybe even if you just have something attackable targeted. So, the idea is the use the blizz option to prevent you from accidents, but let you cast away to dismount for those situations where you're probably doing it on purpose.
It's possible I'm crazy but when using the Blizzard Auto Dismount I have to be at a complete stop (midair or on ground) and click my "Pokedex mount" button to dismount. With Mountiful I could just turn off SafeFlying and whenever I clicked my mount button it would dismount me whether I was running or standing still. (This would make for amusing "air swimming" sometimes.) The Blizzard feature also makes it so that if I accidentally press one of my Aspect (hunter) spells I get dismounted.......which is very bad if I'm up high. >_>
I know I should have used the Ticket function but I'm generally wary of new addons without comments (personal prejudice much?) so I wanted to leave a comment for others to see. ;)
On that note, I don't have anything to add because I like your addon for its lack of bloat! I can set a button for my plethora of mounts (and it chooses newer ones for me which I love), a button for my pets (ditto to the love), and choose random titles which I had also been hunting for. The others like this are either too complicated in their features or too sparse in their control.
First off, thank you for being a user of this addon. I don't think this lets me directy respond to your comment (in terms of creating a threaded view) so tickets are probably a better place for things like feature requests.
Now on to the specific feature. I'm not familiar with that addon - a cursory look at its page and the name of the feature made me think that it was intended to keep you from dismounted due to spell cast while flying. But Blizzard already has a Auto Dismount in Flight checkbox under Interface\Controls. If unchecked a spell cast will autodismount me of a ground mount or a flying mount that is on the ground, but it won't dismount me if I'm flying.
Thinking about the issue for a minutes I came up with some cool ideas for ways to improve that functionality that I may add (like maybe a checkbox for having dismount in flight toggle back on when in WG), but I'd like to hear what functionality it was that you wanted. Was it just the same as the checkbox blizz provides or were there other bells and whistles. And don't limit yourself necessarily to exactly what the other add did for you, feel free to sort of design the behavior you want and I'll see if its doable.
I love the simplicity and "Hotness" of your addon! However, I miss the "SafeFlying on/off" of the Mountiful mod I had been using. Think you could code it in?
Seems like it may be a fairly simple code edit. Anyone know of a fix?