Displays configured spell visuals when they are ready to be cast (including target and mouseover support).
These visuals are click through, and can be placed in the center of the screen without stealing mouse clicks.
The number of image slots is configurable, and each slot allows many spells that display based on priority.
What do you mean by "ready"?
enough mana/rage/energy
correct stance/form
in range, valid target
not on cooldown (gray for short or GCD cooldown)
checks for de/buff not already up
many special cases for smart checking, examples:
taunt type spells won't show up when targetting a player
interrupt spells will show up only when target is spellcasting/channeling
etc.
Why use this addon?
I am a key binder. I don't want to:
Watch many actions bars and buttons when I only care about a few spells...
Watch many cooldown bars shrink...
Or instead of watching these, mash lots of keys hoping spells are ready...
I prefer to:
Have a small amount of visuals display when a spell is ready to be cast.
Push the key once.
This addon is probably only useful for key binders (and not mouse clickers).
Current Limitations:
This version includes a full default config and specials cases for Druids, Hunters, Mages, Rogue, Warlocks and Warriors.
There is a basic config and some special cases for Paladin, Shadow Priest, and Shaman : these probably need more work.
There is nothing specific to holy priests yet, but many spells should work if configured.
The first time autoswitching creates the new profiles "Group" and "Raid", they are "reset" configurations and not copies of the current "Default" configuration. This is a limitation of AceDB that I have not figured out how to work around.
How to configure:
Step 1 (basic):
Move the ReadySpells anchor then setup the display how you want using several options:
slash commands /ReadySpells, /rsp
DeuceCommander
Waterfall GUI (/rsp gui)
Alt+click to rotate the anchor clockwise.
Shift+click will hide the anchor.
Step 2 (novice, OPTIONAL):
Add/Modify the default settings for class (watchSpells, debuffStacks, buffStacks, manaChecks, swingActivations).
This requires editing the WTF\Account\Name\SavedVariables\ReadySpells.lua file. This file must be edited with all characters logged out because this file gets overwritten on character logout and reload UI.
Look for the appropriate profile (i.e. "Default") and class (i.e. "Druid"), example with 2 slots:
Each watchSpells slot is ordered by priority, highest priority starting with the first spell in each slot.
The priority determines which image gets displayed if more than one is ready.
Create as many slots as you want.
Create multiple profiles for different situations, if desired.
Q: Why do I have to modify a file to configure these?
A: Because no one has taken the time to write a fancy GUI to configure these yet.
Step 3 (expert, not recommended):
Add/modify code to the CheckSpecialCases* fuctions.
This requires editing core.lua.
Allows tremendous customizaiton of when these spells are displayed as ready.
I want feedback:
How well do the default configs work for you... what did you change?
Are there any special cases behavior that you would like to add or modify?
Known Bugs:
To do:
Develop a GUI config for watchSpells.
I'm looking for community help for expanding the base configs and special cases.
Version History:
v0.791
Quick fix for 2.3 and Druid spells while in forms.
v0.79
Stackable hots/dots will now show time_left:stack_count.
Fixed a anchor position save problem that popped up with patch 2.2.x.
<cut> rest of changes in readme.txt
Optional Files - ReadySpells
Sorry, there are currently no optional files available.
Originally posted by Gogusrl Te fact that the icons disapear instead of turning red or something when i`m out of range / mana is bugging me the most also. I`ve tried to change that but with no success so far.
I won't mind this option at all.
Keep up the good work by the way! I been getting the update via WowAce Updater, and so far no crashes yet. HEHE
For those druids that like to change Maim so that it can be seen with just 1 combo points, please follow the link below to the instruction on modifying the code.
Originally posted by Ajuga After some extra testing I'm thinking of scrapping this addon. I mean, why can't I see when a melee ability is ready when I'm out of range? Also it's doesn't update fast enough - when ie. Kill Command is ready on my actionbar it takes up to half a second to appear as a "readyspell icon".
Te fact that the icons disapear instead of turning red or something when i`m out of range / mana is bugging me the most also. I`ve tried to change that but with no success so far.
After some extra testing I'm thinking of scrapping this addon. I mean, why can't I see when a melee ability is ready when I'm out of range? Also it's doesn't update fast enough - when ie. Kill Command is ready on my actionbar it takes up to half a second to appear as a "readyspell icon".
How well do the default configs work for you... what did you change?
Are there any special cases behavior that you would like to add or modify?
So far I'm liking this addon as a hunter. As you can see on my code I really only use it to see when Kill Command, Counterattack and Mongoose is up (they're triggered by a crit, a parry and a dodge). The default settings didn't work at all for me. I have to have actionbars visible at all times - I can't charge someone not knowing what spells I have ready till I'm in melee range, ranged range, death zone, unmounted etc. So I have a feeling this addon suits other classes better than a hunter.
With that said I still have some suggestions for future changes. As you can see on my code I've tried using de/buffStacks which obviously doesn't work for a hunter (they have nothing that stacks). What I tried was to have those buffs and debuffs show at the GameTooltip, so I could mouseover someone and see how much time is left on ie. Freezing Trap Effect or Wing Clip Effect.
Originally posted by Sand I'm having trouble with this add-on. The ReadySpells.lua file doesn't seem to save anywhere on my machine much less the location where it's suppose to be.
The best I get is a small box that reads "/ReadySpells". As a rogue all I'd like is for the icons for Riposte, Gouge and Kick to pop up when they're ready, in that order. As for the code... I'm too new to even begin writing it myself. With that small bit of info can someone post what I'd need to do for my desire?
Anyone figure this out? I'm having the same problem.
I really like this mod, and I'm posting my appreciation of it here so that you know somebody uses it! I love that, as a Warlock, it allows me to monitor my debuffs on a target in an intuitive, non-cluttered manner. However, it would be great if you implemented a configuration GUI for watched spells at some point! I think it'd really make it more accessible to a lot of people.
Hi, i just found readyspells yesterday and it's great. cause i'm a key binder and i can cast my spells faster and with fewer key strokes.
however the addon is really hard to configure. I knew little about WOW addon and nothing about Lua. It spent me hours to find out how the functions work and configure Rampage to work on my Chinese WOW client. Though i am still totally confused about lua language and Ace lib, i'm begining to understand the logic within the code ^o^
(BTW, i can't find the driving event handler, every event handler seems just set a flag here or there...)
And I got some idea when reading the code:
there are so many CheckSpecial... and Test... functions, and spells will go through a complicated route when they are tested. I saw many test conditions and spells are hard coded in every function. Which means if a new spell is added, or logic changed, code in the related functions needs to be changed. That's a lot of work to do, and very difficult for non-developers.
so i think can we do it this way, design the SavedVariables like this:
["classes"] = {
["WARRIOR"] = {
["watchSpells"] = {
{
["Commanding Shout"] = {
["testBuffOrNobuffDown"] = {"Commanding Shout"},
["testInCombat"] = false
},
["Thunder Clap"] = {
["testInCombat"] = true
},
["Battle Shout"] = {
["testBuffOrNobuffDown"] = {"Battle Shout","Commanding Shout"}
}
}, -- [1]
......
....
I mean put the all test conditions specific to spell in the configure file, then code in the CheckReadySpell function may look like this:
......
.....
if self.db.profile.classes[self.playerclass].watchSpells[spellName].testBuffOrNoBuffDown ~= nil then
for testSpell in self.db.profile.classes[self.playerclass].watchSpells[spellName].testBuffOrNoBuffDown do
TestUnitBuffOrDebuffDown(unit, testSpell, true, false)
end
end
if self.db.profile.classes[self.playerclass].watchSpells[spellName].testInCombat = true then
TestInComat(spellName)
end
if ....next condition....
.....
...
(I'm lua noob as mentioned, please just ignore the syntax errors....)
So you don't change every conditional function if spell-check logic changed, just modified the arguments in SavedVariables. Still, default values cound be hard coded in Core.lua, so that we need not to type in every argument.
If you done this, readySpells would be highly configurable, and much popular amoung less experted players. Just my humble opinion
This is a great addon for my warrior I have gotten very accustom to it and its allowed me to get a very minimal interface.
I have a problem related to your rationalization for writing this addon simply that I often forget to use my trinkets. While some addons such as sct/parrot will tell me when a trinket buff start (yeah i just clicked it or fades (pretty much, a yeah i just clicked it). Some addons will show you the cooldown left on the trinkets and they might tell you 'so and so is ready' (well of course its ready, i am out of combat now). What would be nice is to have the trinket right there and clearly tell me 'use me'.
I have a simple macro the hits my two trinkets (both are +AP trinkets) and I use a slimdown autobar (just pots and my trinkets) inline with the /readyspells and I use a button mash to activate a trinket.
/UseRandom Uniting Charm, Bladefist's Breadth
Perhaps out of the scope of the addon, but any other solutions would be great.