First just the default thank you; all your addons are amazing and have made my WoWing experience something extra.
Everyone knows that tanking in TBC is mainly shield slam, revenge, devastate while keeping thunderclap and a shout up. Add Shield Block + Heroic strike and you're home. To generate the optimal TPS one need to follow this routine like a slave and time every skill perfectly. My addon idea helps you do that.
An dynamic routine tracker with support for cooldowns and debuff timers.
The first step is to define your routine. For example, Shield Slam, Revenge, Devastate 2x, Demo Shout and Thunder clap. An round icon is showed for each skill in the routine starting from left to right. The most right skill shows the Global Cooldown until the skill can be used. Revenge is show after Devastate as no attacks has been blocked yet.
I run up to the boss and shield slams him in the face and blocks his first attack. Everything is shifted left and Devastate becomes the next to be used skill. Revenge and the second Devastate change places as a prefer use Revenge over Devastate. The next to use skill never changes, so there's always time to pre-plan the push without any stress. Shield slam is moved far to the right and it's cooldown is shown.
I do Devastate, Revenge, Devastate and Demo Shout as planned. Now Demo Shout is moved far to the right with a debuff timer on it. Thunder clap is shown as next skill to use followed by Shield Slam as the cooldown now is up.
I do Thunder Clap as planned and Revenge become available. Now Thunder Clap is moved far to the right, and Demo Shout is moved even more, as Thunder Clap has a shorter debuff duration then Demo Shout. Shield Slam is next skill to use and Revenge and Devastate changes places.
Note that the Icons are not actions bars. I still hit my key bindings to use the skills and the icons only help me to plan ahead. I'm also at any time free to break the recommended routine, maybe a have to drink a pot, use a trinket or last stand, the icons must adapt and recommend how to continue again. Skills without GC doesn't show up, Shield Block and Heroic Strike is handled separately. It's also possible to add my current and incoming rage to the calculation, so the icons never recommend using an skill that is not possible due to the current amount of rage.
It could also be usable for other classes, for example for warlocks with their dot routines and so on.
I use a somewhat similar addon for pretty much exactly one year now, I just never released it. It doesn't use a fixed rotation, but implements a priority list, for choosing the "best" actions for your cooldowns. Are you, by any chance, using the german client? :)
Well, there's not much to see. It displays a couple of symbols (spell textures), one for each cooldown. I usually have Heroic Strike on the left, then comes the GCD, then Shield Block, then Blood Rush. For example when Shield Block is about to become ready (<1s cd), the symbol is shown, and there's an overlay of the remaining cd (like the default action buttons have).
Other than that, the only GUI is a Dewdrop right click menu for switching to a different list. I have lists for trash (no Shield Block, TC, DS, but Shield Bash and Spell Reflect), Hydross-like bosses (no Shield Block), Voidreaver-like (Bosses where I only need Shield Block when I have aggro), Fury, etc. I edit these lists in a lua file.
So, there are multiple lists to choose from. Each list consists of actions. An action consists of a spell (name), a cooldown (default=GCD), and a list of conditions. The addon basically looks at each action, and checks their conditions. As soon as every condition of the same action is true, it displays the action's texture. The cooldown defines where the texture is displayed. For example:
E.g. Condition:TargetDebuffEnds("Donnerknall", 5) creates a new condition that is true iff the Thunder Clap debuff is either not present on my target, or lasts for less than 5s. Condition:SpellAvailable("Donnerknall",1) creates a condition that is true iff Thunder Clap is either off cooldown, or the cooldown is less than 1s. Condition:SpellUsable("Donnerknall") means enough rage (I don't use that one anymore). Since cooldown==nil, the action belongs to the GCD.
All the actions are hard coded.
TODOs prior to release: At least Localization, and a GUI for editing action lists. Optionally a GUI for editing actions, and a GUI for editing conditions.
Well, I thought about it, and I'm not going to release it in it's current state. Mostly because translating spell names is a flawed approach. The addon should have a GUI for everything, especially for editing action lists, actions, and conditions. And the underlying code should be independent of the client's locale. Which is too much work and no gain for me, so I'm not going to do it, sorry. However, if someone's willing to write a similar addon, feel free to contact me.