ReadySpells 

(This is an ACE2 addon)

What this addon does:
[INDENT]
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.
[/INDENT]

What do you mean by "ready"?
[INDENT]
[LIST]enough mana/rage/energy[/LIST]
[LIST]correct stance/form[/LIST]
[LIST]in range, valid target[/LIST]
[LIST]not on cooldown (gray for short or GCD cooldown)[/LIST]
[LIST]checks for de/buff not already up[/LIST]
[LIST]many special cases for smart checking, examples:[/LIST]
[LIST]taunt type spells won't show up when targetting a player[/LIST]
[LIST]interrupt spells will show up only when target is spellcasting/channeling[/LIST]
[LIST]etc.[/LIST]
[/INDENT]

Why use this addon?
[INDENT]
I am a key binder. I don't want to:
[LIST]Watch many actions bars and buttons when I only care about a few spells...[/LIST]
[LIST]Watch many cooldown bars shrink...[/LIST]
[LIST]Or instead of watching these,  mash lots of keys hoping spells are ready...[/LIST]
	
I prefer to:
[LIST]Have a small amount of visuals display when a spell is ready to be cast.[/LIST]
[LIST]Push the key once.[/LIST]
		
This addon is probably only useful for key binders (and not mouse clickers).
[/INDENT]

Current Limitations:	
[INDENT]
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.
[/INDENT]

How to configure:
[INDENT]
[LIST]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.
[/LIST]
	
[LIST]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:
[CODE]
	["profiles"] = {
		["Default"] = {
			["classes"] = {
				["DRUID"] = {
					["watchSpells"] = {
						{
							"Bash",
							"Mangle (Bear)",
						},
						{
							"Maul",
						},
					},
					["debuffStacks"] = {
						["Lacerate"] = true,
					},
					["buffStacks"] = {
						["Lifebloom"] = true,
					},
					["manaChecks"] = {
						["Maul"] = 25,
						["Demoralizing Roar"] = 50,
					},
					["swingActivations"] = {
						["Maul"] = true,
					},
[/CODE]
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.
[/LIST]
	
[LIST]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.
[/LIST]
[/INDENT]

I want feedback:
[INDENT]
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?
[/INDENT]

Known Bugs:
[INDENT]
[/INDENT]
	
To do:
[INDENT]
Develop a GUI config for watchSpells.
I'm looking for community help for expanding the base configs and special cases.
[/INDENT]

Version History:
[INDENT]
v0.792
Fix spell reflect so it won't trigger on a helpful spell or if your target is not targeting you.

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.

v0.78
Remove nature checks for ff and fff and elemental check for bleeds.
Increase textframe width to prevent "...".
Tweak some default mana check values.

v0.77
Added default shaman, paladin, and shadow priest configs with limited special cases.
Added activated images for Heroic Strike, Cleave, Maul, and Raptor strike instead of using gray (thanks jeginbuci).
Added support for Arcane Torrent and added to the appropriate classes default configs.
Added cleave mana check.
Tweaks to paladin config.
Changed mouseover frame to move somewhat with the cursor.
Fixed spell reflection.
Fixed a bug where spells on cooldown could show up as blue no mana.

v0.76
Added rogue config and specials cases.
Fixed some interrupts that leave silence debuffs.
Tweaked druid config and some druid and warrior rage costs.

v0.75
Added option (default) to show spells (blued out) even with not enough mana, including manachecks only if they are about to fall.
Made maim work with onCooldownCount.

v0.74
Fixed a bug where the swing activation image was ungreying when other units started casting spells.

v0.73
Fixed a bug where the swing activation image was ungreying when it shouldn't due to server latency and key mashing.
Upped rage swing activations showing to 30 rage.

v0.72
Added another frame for mouseover, now both target and mouseover ReadySpells frames can show at the same time.
Changed mouseover to true by default.
Fixed issues with AE de/buffs showing up in mouseover frame.
Show a countdown with red background for watched de/buff spells about to expire, even if on a long cooldown. (optional)
Set the countdown alpha to match the frame.
Fixed rip countdown not showing without combo points issue.
Fixed issues with textures hanging around after switching configs/learning spells.
Tweak several default configs.

v0.71
--changes:
Added a countdown timer for all hots/dots. (only shows for those ready)
Added a config option to only show ReadySpells in combat (not default).
Made buffStacks, debuffStacks, manaChecks, and swingActivations configurable by editing the SavedVariables ReadySpells.lua file.
Did some rewrite of the de/buff checking... watched de/buffs should now show ready when yours is down, even if someone else's is up except for special cases where only 1 (or 1 stack) can be up.
Now using Babble-Spell.
Tweaked druid,warlock configs.
Added hunter config and special cases.
Now in wowace SVN.
--bug fixes:
Fixed swing activations not ungreying when a non instant spell is cast.
Fixed some anchor to tooltip position bugs.
Fixed a target self taunt bug and added an incombat check.
Fixed a conflagrate bug.
Fixed some mouseover ready issues with special cases.
Other misc bug fixes.

v0.7
--Additions:
Added support for multiple config profiles and autoswitching (default is off) only between config profiles "Default" (solo), "Group", and "Raid".
ReadySpells now updates itself when learning spells(tested) or removing spells (untested)  (no longer need to reload UI).
Implemented OnDisable.
--Tweaks:
Removed SpecialCase to only show Rake when in group, given the profile support above.
Growl, Taunt, Mocking Blow now check if unit target is not self and is not a player before showing ready.
Maul and heroic strike if activated will show up and be greyed out, even when < 25 rage (when they wouldn't normally show).
AE debuffs requiring rage will not show with < 50 rage or if the debuff is up.
-The theory here is the AE debuff only needs to show if there are lots of targets or a boss... and in those cases our rage should be high.
Added a test for damage type immunity, currently only checked by faerie fire on elementals.
Tweaked druid, mage, warlock, warrior default configs and special cases.
Changed some of the config option commands, used better types for more informative current state, also using waterfall.
Stop creating per char db file since its not used.
Make Ace2 colored text in toc consistent with other Ace2 addons.
--Bug fixes:
Mouseover will no longer try to show ReadySpells for corpses.
Fixed a display issues where stack counters text would show over a higher priority spell in the same slot.
Fixed some ready issues with AE buffs and debuffs.
Bash no longer checks combo points like Maim does.
Fixed Curse of Weakness.
Misc bug fixes.

v0.61
Typo fix for taunt and mocking blow that was causing lua errors.
Changed sunder armor, lacerate to only show ready if already up on target.
General case : AE Debuffs only show as ready if not already up on target (some specific ones were already doing this).
Added elementals to monsters that can't bleed.

v0.6
Added de/buff stack counters/countdowns for Lacerate, Sunder Armor, and Lifebloom.
Spells not ready only due to GCD will be greyed out instead of gone.
Swing activations when activated are now grey also (instead of red).
Added support for using mouseover.  
    /rsp toggleMouseover to toggle this setting on and off [default]
    /rsp toggleMouseoverAnchor change display of mouseover ReadySpells to anchor, tooltip [default], or cursor.
Modified Druid and Warrior default configs.
Added a basic Mage and Warlock defult configs.
Added/modified special cases for Druid,Mage,Warlock,Warrior.
Modified some default behavior, lots of code rewrite.
Now using ParserLib when parsing chat combat events.
Lots of other minor changes.
		
v0.53
Fix typo preventing addon from loading (I hope).

v0.52
Fix, Commanding Shout and Battle Shout don't stack.
Tweak default Warrior config.

v0.51
Quick change to make de/buff handling more general... don't show as ready if already up by default.

v0.5
Rewrote the CheckSpecialCases functionality.
Added/modified a ton of SpecialCases for Druid and Warrior spells.
Redid the default Druid config.
Created a default Warrior config. (This needs to be tested by someone with a high level warrior).
		
v0.4
Initial Public Version.
Included default Druid tank config and skeleton default Warrior config.
[/INDENT]
