Leafkiller's 4.1 Feral Ovale Script
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
The upper left box is used for feral charge and will show you the dash icon if you are not in range to feral charge and it is a reasonable time to do so. It does not check for whether or not you have stampede, in which case you can just ignore it.
The lower left box is used for Berserk. The Polar bear is what I put up there when Berserk is off of cooldown but it is a non-optimum time to cast it (as in it will delay the next TF). There are times you want to cast it anyways, which is why I toss up that texture rather than the Berserk texture.
The lower left box is used for Berserk. The Polar bear is what I put up there when Berserk is off of cooldown but it is a non-optimum time to cast it (as in it will delay the next TF). There are times you want to cast it anyways, which is why I toss up that texture rather than the Berserk texture.
Re: Leafkiller's 4.1 Feral Ovale Script
It shows the dash when I'm actually closer than I need to be? That's odd. Same with the clock icon, though I guess that's also saying 'wait'?
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
The Dash icon simply tells you that you are not in range to Feral Charge - which can be too close or too far away. Yes the "Spell_nature_timestop" texture indicates that it is not a good time to run away to FC - which is due to having TF or Berserk active, having more than 69 energy, Panther close to expiring, or Rake close to expiring.
In the current content, there is not a lot of opportunity to run away - but being able to see when you can FC on the bosses that have zero distance FC available is very useful.
In the current content, there is not a lot of opportunity to run away - but being able to see when you can FC on the bosses that have zero distance FC available is very useful.
Re: Leafkiller's 4.1 Feral Ovale Script
Zaxxan wrote:I've nto noticed any werd suggestions but I have been noticing that the window for the suggested next ability sometimes starts to flicker quite badly. Only that window the rest seem fine, and it only started after 4.1 + Updated Script.
I've seen this quite a bit as well, where the "next ability" icon will flash very quickly. I don't know if it's a bug with Ovale itself, or something in the script that's looping the display, but it can be a bit annoying.
Also odd in cat form: occasionally Faerie Fire will pop up in the "what to do now" box, even when it's still applied with multiple minutes left on the debuff. It's like the "do Faerie Fire if there aren't resources to do anything else" part of the bear script is showing up for cats sometimes, too.
On that note: should bears really do Faerie Fire all the time when they don't have any rage? I haven't done any sort of simulation to see, but from a practical matter, it isn't it usually better to do an auto-attack once or twice to build up rage, instead of doing a small damage attack that doesn't generate any rage, in that situation?
For both cats and bear scripts, it might be useful to have some sort of "just auto-attack" icon show up when it's better to build up energy/rage for a GCD or two.
Re: Leafkiller's 4.1 Feral Ovale Script
If FFF is already applied on the target, the script only suggests to refresh it because you have absolutely nothing else to do. It will avoid having to refresh it later, in a less favorable situation, while in Berserker for example. Casting FFF does not reset your swing and does not prevent to pull energy.
It is the same for bear : casting FFF does not reset your swing so you can still auto-attack to build up rage and also use FFF to make more damages and aggro while you are waiting for CDs or rage.
It is the same for bear : casting FFF does not reset your swing so you can still auto-attack to build up rage and also use FFF to make more damages and aggro while you are waiting for CDs or rage.
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
You see flickering when the optimal next ability changes (FBN had that a lot). Some abilities are very time or energy sensitive. Over time I have made some changes to the rotation to minimize that - but only when the changes tested out as no worse than dps neutral. For instance, I removed the code to refresh SR early as it not only was no longer proving a noticeable dps improvement (less than 10dps) but was tied to a very tight window.
Re: Leafkiller's 4.1 Feral Ovale Script
That brings up another question: is it still worthwhile to try to refresh Rip and Rake 2 seconds early? Or is it better to wait until it's expiring/expired, to refresh them? The script seems to suggest waiting until the end.
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
The script tries to clip the last tick of rip/rake - it does not wait for them to drop off.
Re: Leafkiller's 4.1 Feral Ovale Script
Hi, I have been looking on this forum for a way to disable the "bear version" of this script. I know it sounds silly but tends to distract me when I am tanking. Is there a quick way to disable Ovale poppig up when I go into bear form?
Thanks in advance and i apologize if I have missed it being mentioned somewhere before.
Thanks in advance and i apologize if I have missed it being mentioned somewhere before.
Re: Leafkiller's 4.1 Feral Ovale Script
Basically I assume that you can delete every part of the code which begins with "if Stance(1)", stance 1 being the bear form and stance 3 being the cat form. That should desactivate every spell icons while you are in bear form.
Re: Leafkiller's 4.1 Feral Ovale Script
Leafkiller wrote:The script tries to clip the last tick of rip/rake - it does not wait for them to drop off.
From what I have read, I understand that in cataclysm blizzard changed bleeds (dots). If reapplied before the last tick, the bleed is not clipped. That last tick is added to the new bleed.
Re: Leafkiller's 4.1 Feral Ovale Script
Oberon wrote:Hi, I have been looking on this forum for a way to disable the "bear version" of this script. I know it sounds silly but tends to distract me when I am tanking. Is there a quick way to disable Ovale poppig up when I go into bear form?
Thanks in advance and i apologize if I have missed it being mentioned somewhere before.
/ovale show and /ovale hide to do it manually. Otherwise you'd have to edit the script itself. You could macro these to your cat/bear shapeshifts (mine are already macros anyhow).
Re: Leafkiller's 4.1 Feral Ovale Script
Re: Leafkiller's 4.1 Feral Ovale Script
Hey Leaf,
I read on EJ that you and tangedyn discussed about refreshing Rip with a 5cp Rip while TF is active. Since it is considered as a DPS increase, I am wondering if it will be implemented in a new ovale code soon or not?
I read on EJ that you and tangedyn discussed about refreshing Rip with a 5cp Rip while TF is active. Since it is considered as a DPS increase, I am wondering if it will be implemented in a new ovale code soon or not?
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
I guess it depends. Here is what Tangedyn wrote:
Back in Feb/March - after we had already dropped FB from the rotation, Civilian brought this up on the Mew thread at EJB. Based on the discussion with Civilian, I did a series of tests trying different conditions testing TFed refreshes of Rip - and it was generally a small dps loss. I reported this here: http://elitistjerks.com/f73/t110356-fer ... ost1886053 (read down - there is a fairly long back and forth discussion on this between myself and Civilian).
In the end the one difference I found between my testing and Civilian's napkin math was that he was assuming 12 tick Rips and Mew models 11. The game itself is very inconsistent on this as we have seen logs that report 11, 12 or 13 tick Rips - with nothing obvious as to why this happens (I don't know if this is still happening). This is why I asked Tangedyn if the testing was done with the 1 1/2 tick per Rip Shred option enabled - which models a 12 tick Rip - but he said this was not the case.
So...the testing that Tangedyn reported on was a surprise to me - although it is post 4.1 and it is possible the 4.1 changes affected this. However, Tangedyn did not say under what conditions the testing was done and I have not had the opportunity to ask him or Yawning about this (I have been busy with some RL activities of late). Nor was there an indication of how much of a dps up it is.
I have an additional issue that is specific to Ovale. The Mew code for this checks the following: "!status.isRipTFed()". I am not aware of a way to check that in game - other than looking at the remaining duration of Rip and deciding that it is low enough to conclude the Rip was not cast during TF (10 seconds or less) so I would have to restrict refreshing to that.
One of the concerns from an Ovale perspective is how to test for a Rip that cannot be over-written. Civilian wrote this:
Honestly I am not sure what the rules are in game for when you can or cannot overwrite a Rip (other than AP), but it is a concern in an Ovale script - because it could get stuck for the entire duration of the TF telling you to Rip and failing. Assuming that this condition exists, I might limit refreshing Rip to the end of the TF duration - perhaps when it has no more than 1 1/2 seconds remaining. So my conditions would be RipRemaining < 10 and TF remaining < 1.5 - which is pretty restrictive.
So, when I get some time, I will do some preliminary testing on what the impact is on dps of refreshing Rip during TF. If it is substantial, I will do some testing based on Ovale limitations - to see if I can script something that provides a decent dps gain. Adding the code is not an issue - but I want to make sure it is worth doing.
Just a quick note, we've pretty much confirmed with Mew that it is now a DPS gain to clip Rip when TF is up. Previously it was a DPS loss when we still used FB as a finisher making CPs a limited resource. Also confirmed that letting Rip drop to synch up with an upcoming TF does not improve DPS.
Back in Feb/March - after we had already dropped FB from the rotation, Civilian brought this up on the Mew thread at EJB. Based on the discussion with Civilian, I did a series of tests trying different conditions testing TFed refreshes of Rip - and it was generally a small dps loss. I reported this here: http://elitistjerks.com/f73/t110356-fer ... ost1886053 (read down - there is a fairly long back and forth discussion on this between myself and Civilian).
In the end the one difference I found between my testing and Civilian's napkin math was that he was assuming 12 tick Rips and Mew models 11. The game itself is very inconsistent on this as we have seen logs that report 11, 12 or 13 tick Rips - with nothing obvious as to why this happens (I don't know if this is still happening). This is why I asked Tangedyn if the testing was done with the 1 1/2 tick per Rip Shred option enabled - which models a 12 tick Rip - but he said this was not the case.
So...the testing that Tangedyn reported on was a surprise to me - although it is post 4.1 and it is possible the 4.1 changes affected this. However, Tangedyn did not say under what conditions the testing was done and I have not had the opportunity to ask him or Yawning about this (I have been busy with some RL activities of late). Nor was there an indication of how much of a dps up it is.
I have an additional issue that is specific to Ovale. The Mew code for this checks the following: "!status.isRipTFed()". I am not aware of a way to check that in game - other than looking at the remaining duration of Rip and deciding that it is low enough to conclude the Rip was not cast during TF (10 seconds or less) so I would have to restrict refreshing to that.
One of the concerns from an Ovale perspective is how to test for a Rip that cannot be over-written. Civilian wrote this:
It's typically assumed in the models that you won't be able to reapply rip because the game sometimes forbids it. Realistically the only times I find I can't reapply rip are when an agility potion has worn off or I've lost the strength of the panther stack. However, those holding trinkets with AP/agility temporary buffs, and those with tailoring or engineering professions, would see more such situations where rip cannot be reapplied.
Honestly I am not sure what the rules are in game for when you can or cannot overwrite a Rip (other than AP), but it is a concern in an Ovale script - because it could get stuck for the entire duration of the TF telling you to Rip and failing. Assuming that this condition exists, I might limit refreshing Rip to the end of the TF duration - perhaps when it has no more than 1 1/2 seconds remaining. So my conditions would be RipRemaining < 10 and TF remaining < 1.5 - which is pretty restrictive.
So, when I get some time, I will do some preliminary testing on what the impact is on dps of refreshing Rip during TF. If it is substantial, I will do some testing based on Ovale limitations - to see if I can script something that provides a decent dps gain. Adding the code is not an issue - but I want to make sure it is worth doing.
Re: Leafkiller's 4.1 Feral Ovale Script
Thank you very much for this detailed answer. I understand better now why you have doubts about the behavior of Rip in game. As usual, I trust you to make our rotation as perfect as possible. 
Re: Leafkiller's 4.1 Feral Ovale Script
Leaf, having not done anything with ovale, does it have any sort of memory or variables you can pull from?
Here's what I mean. If you could have it remember (via variables) the Attack Power and Tiger's Fury status on application of Rip/Rake (well probably really just Rip since its the one that causes problems), than you could solve some of the problems you wrote about.
Granted I have no idea if this is possible using Ovale's code. I know you can do it through Lua (which I'm only vaguely familiar with).
Here's what I mean. If you could have it remember (via variables) the Attack Power and Tiger's Fury status on application of Rip/Rake (well probably really just Rip since its the one that causes problems), than you could solve some of the problems you wrote about.
Granted I have no idea if this is possible using Ovale's code. I know you can do it through Lua (which I'm only vaguely familiar with).
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
I think I would have to request enhancements to the Ovale code for that - much as happened when support for Ripshred counting went in. My guess is the dps gain from clipping Rips will not be that much - but I do need to check it...
Re: Leafkiller's 4.1 Feral Ovale Script
I dunno if it's been mentioned, but Berserk has been acting kinda odd lately; like say for example on trash pulls, you know normally I don't bother using Berserk so I just follow through on other attacks, yet the odd thing is the script will keep recommending Berserk even if I'm under like a quarter of Energy until it's time to like, say, refresh Rake or use another CP ability, which then seems to make it go away for a while.
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
The script will recommend Berserk more often now because there is no longer a cap on energy - so if you have pooled energy above 64, and there is significant time before TF comes off of cooldown (15 seconds or 10 seconds with GoBerserk) then Berserk will continue to be recommended.
You can control this by clicking on the Ovale frame and clicking off the suggest Berserk option.
===============
Oddly enough I was thinking about a restructure to the script just last night. I am thinking about having three suggestion boxes (instead of two) as follows:
First box suggests the full rotation including Berserk/TF. If both Berserk and TF are off of cooldown, it will suggest Berserk only. It is assumed that everyone has macroed TF to Berserk, in other words, when you cast Berserk, you should always try to cast TF first in a macro. You should not do the reverse - you still need a standalone TF key. I am also thinking of including a call to Feral Charge if it is actually castable (for zero travel time fights such as Cho'gall or add switching fights).
Second Box suggests the full rotation including fillers but does not include TF or Berserk.
Third box suggest the full rotation with no fillers and no TF or Berserk.
The motivation is to have a fully optimized suggestion box that includes all of the key abilities at an optimized time, while still knowing what fillers to cast when you do not want to use one of the specials (such as holding off on TF/Berserk for the exposed head phase on Magmaw) and still retaining insight into which of the major cooldown spells is coming next.
===============
Please provide feedback on this idea. I know it will make my play easier as there are times I want to see the full rotation including Berserk/TF and times I only want to see what the next ability is while holding off of TF/berserk and that can occur in the same fight.
I am not sure what to do with the existing cooldown boxes and will probably leave those unchanged in this new script (they can be hidden anyways).
You can control this by clicking on the Ovale frame and clicking off the suggest Berserk option.
===============
Oddly enough I was thinking about a restructure to the script just last night. I am thinking about having three suggestion boxes (instead of two) as follows:
First box suggests the full rotation including Berserk/TF. If both Berserk and TF are off of cooldown, it will suggest Berserk only. It is assumed that everyone has macroed TF to Berserk, in other words, when you cast Berserk, you should always try to cast TF first in a macro. You should not do the reverse - you still need a standalone TF key. I am also thinking of including a call to Feral Charge if it is actually castable (for zero travel time fights such as Cho'gall or add switching fights).
Second Box suggests the full rotation including fillers but does not include TF or Berserk.
Third box suggest the full rotation with no fillers and no TF or Berserk.
The motivation is to have a fully optimized suggestion box that includes all of the key abilities at an optimized time, while still knowing what fillers to cast when you do not want to use one of the specials (such as holding off on TF/Berserk for the exposed head phase on Magmaw) and still retaining insight into which of the major cooldown spells is coming next.
===============
Please provide feedback on this idea. I know it will make my play easier as there are times I want to see the full rotation including Berserk/TF and times I only want to see what the next ability is while holding off of TF/berserk and that can occur in the same fight.
I am not sure what to do with the existing cooldown boxes and will probably leave those unchanged in this new script (they can be hidden anyways).
Re: Leafkiller's 4.1 Feral Ovale Script
having the option to choose which TF/Berserk option you want to have displayed would be really nice, however having a 3rd suggestion box added where it may end up being simply being a wasted box on some fights wouldn't be all that appealing. One of my favorite things about the ovale script for feral is that it is only 2 boxes.
Perhaps making the box have a clickable option where you can choose which conditions you would like ovale to suggest for TF/Zerk would be more appropriate? I'm not great with scripting some I'm not sure how complicated producing those kind of on the fly options are within the current set up.
cheers
Perhaps making the box have a clickable option where you can choose which conditions you would like ovale to suggest for TF/Zerk would be more appropriate? I'm not great with scripting some I'm not sure how complicated producing those kind of on the fly options are within the current set up.
cheers
Re: Leafkiller's 4.1 Feral Ovale Script
Leafkiller wrote:The script will recommend Berserk more often now because there is no longer a cap on energy - so if you have pooled energy above 64, and there is significant time before TF comes off of cooldown (15 seconds or 10 seconds with GoBerserk) then Berserk will continue to be recommended.
You can control this by clicking on the Ovale frame and clicking off the suggest Berserk option.
===============
Oddly enough I was thinking about a restructure to the script just last night. I am thinking about having three suggestion boxes (instead of two) as follows:
First box suggests the full rotation including Berserk/TF. If both Berserk and TF are off of cooldown, it will suggest Berserk only. It is assumed that everyone has macroed TF to Berserk, in other words, when you cast Berserk, you should always try to cast TF first in a macro. You should not do the reverse - you still need a standalone TF key. I am also thinking of including a call to Feral Charge if it is actually castable (for zero travel time fights such as Cho'gall or add switching fights).
Second Box suggests the full rotation including fillers but does not include TF or Berserk.
Third box suggest the full rotation with no fillers and no TF or Berserk.
The motivation is to have a fully optimized suggestion box that includes all of the key abilities at an optimized time, while still knowing what fillers to cast when you do not want to use one of the specials (such as holding off on TF/Berserk for the exposed head phase on Magmaw) and still retaining insight into which of the major cooldown spells is coming next.
===============
Please provide feedback on this idea. I know it will make my play easier as there are times I want to see the full rotation including Berserk/TF and times I only want to see what the next ability is while holding off of TF/berserk and that can occur in the same fight.
I am not sure what to do with the existing cooldown boxes and will probably leave those unchanged in this new script (they can be hidden anyways).
Maybe if it's an option where you can choose which one you have displayed by default (with the predictor as the 2nd) that would be fine...but having all 3 out at once would probably just be unnecessary hassle/clutter imo, there's enough to pay attention to usually without having to remember which box you're following...
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
It is a question of prediction. Knowing that it is an optimum time in a perfect rotation to hit berserk/TF together is useful. Knowing what the rotation should look like at times you are intentionally delaying TF is also useful. The Prediction box shows you the next major ability that is coming off of cooldown - and having that data is (at the risk of being repetitive) useful.
None of us will know how useful in game it is short of testing it. I will play with it and see how it feels in raiding.
None of us will know how useful in game it is short of testing it. I will play with it and see how it feels in raiding.
- Leafkiller
- Exalted
-
- Posts: 1127
- Joined: Fri Jun 04, 2010 4:28 am
Re: Leafkiller's 4.1 Feral Ovale Script
I played with it and the 3 boxes was too much - but I did come up with a solution that works for me at least. I took the rotation that has no TF/Berserk and made it an option for the top right cooldown box. This allows me to see what fillers to use if I decide to hold off on TF/Berserk.
I also changed the TF code to suggest Berserk in place of TF if both are off of cooldown and the "berserk" option is enabled. I am assuming that everyone has TF macroed to their Berserk now.
A third change was to remove filler Mangles and Berserk from the non-filler suggestion window as those distracted from seeing what was coming off of cooldown next.
Here is the experimental script if anyone else wants to test it:
I also changed the TF code to suggest Berserk in place of TF if both are off of cooldown and the "berserk" option is enabled. I am assuming that everyone has TF macroed to their Berserk now.
A third change was to remove filler Mangles and Berserk from the non-filler suggestion window as those distracted from seeing what was coming off of cooldown next.
Here is the experimental script if anyone else wants to test it:
- Code: Select all
# Ovale Optimized Script Leafkiller 1.4.1
# Bear code from tbot
# Started with the Ovale default druid script, this includes significant work from Alaron and goes back to the work of Fatalsaints
# Script source: http://fluiddruid.net/forum/viewtopic.php?f=3&t=33
# Ovale source: http://wow.curse.com/downloads/wow-addons/details/ovale.aspx
# Initial optimized version based on Sim work from Alaron with some modifications from Leafkiller
# Revision History (post 1.4)
# 1.4.1 05/23/2011
# Move the new rotation into a cooldown box as an optional choice.
# 1.4 05/23/2011
# Experimentail Script with an additional Icon - one for full rotation, one
# with no Berserk/TF and one with no fillers. Also only call for Berserk if both
# Berserk and TF are off of cooldown. Also remove filler Mangles and Berserk from third Icon.
Define(BARKSKIN 22812)
Define(BERSERK 50334) #cat+bear cd buff
Define(DEMOROAR 99) #bear
Define(ENRAGE 5229) #bear
Define(FAERIEFERAL 16857) #bear+cat
Define(FERALCHARGECAT 49376)
Define(FEROCIOUSBITE 22568) #cat finish 35-70 mana
Define(FRENZIEDREGENERATION 22842) #bear
Define(LACERATE 33745) #bear bleed*3
Define(MANGLECAT 33876) #cat bleed+debuff
Define(MANGLEBEAR 33878) #bear bleed+debuff
Define(MAUL 6807) #bear
Define (PANTHER 90166) #tier 11 4 piece cat
Define(PULVERIZE 80313) #bear after lacerate*3
Define (PULVERIZEBUFF 80951) #buff has a different spellid then the ability
Define(RAKE 1822) #cat bleed
Define(RAVAGE 6785) #cat behind+(prowling or stampede)
Define(RIP 1079) #cat bleed
SpellInfo(RIP resetcounter=ripshreds)
Define(SAVAGEROAR 52610) #cat damage buff
Define(SHRED 5221) #cat behind
SpellInfo(SHRED inccounter=ripshreds)
Define(SURVIVALINSTINCTS 61336) #cat+bear surv cd
Define(SWIPEBEAR 779) #bear aoe
Define(SWIPECAT 62078) #cat aoe
Define(THRASH 77758) #bear aoe bleed
Define(TIGERSFURY 5217) #cat buff
#Trinket Procs
Define(UNHEEDEDWARNING 59520)
Define(HEEDLESSCARNAGE 92108) #Unheeded Warning Proc
Define(ESSENCEOFCYCLONEH 65140) # heroic Esscence of Cyclone
Define(TWISTEDH 92351)
#Glyphs
Define(GLYPHOFSHRED 54815)
Define(GLYPHOFRIP 54818)
Define(GLYPHOFBERSERK 62969)
#Buff
Define(CLEARCASTING 16870)
Define(STAMPEDE 81022)
#Talents
Define(BLOODINTHEWATERTALENT 8341)
AddCheckBox(demo SpellName(DEMOROAR) default mastery=2)
AddCheckBox(berserk SpellName(BERSERK) default mastery=2)
AddCheckBox(cooldownsL "Show Left Rotation Boxes" default mastery=2)
AddCheckBox(cooldownsR "Show Right Cooldown Boxes" default mastery=2)
AddCheckBox(lucioles SpellName(FAERIEFERAL) default mastery=2)
AddCheckBox(mangle SpellName(MANGLECAT) default mastery=2)
AddCheckBox(t11 "Detect t11 set bonus" default mastery=2)
AddListItem(cd0 t0 "Top right - No Cooldown" default mastery=2)
AddListItem(cd0 t10 "Top right - Rotation no TF/B" mastery=2)
AddListItem(cd0 t1 "Top right - Mangle" mastery=2)
AddListItem(cd0 t2 "Top right - Rake" mastery=2)
AddListItem(cd0 t3 "Top right - Rip" mastery=2)
AddListItem(cd0 t4 "Top right - Savage Roar" mastery=2)
AddListItem(cd0 t5 "Top right - Tiger's Fury" mastery=2)
AddListItem(cd0 t6 "Top right - Trinket 0" mastery=2)
AddListItem(cd0 t7 "Top right - Trinket 1" mastery=2)
AddListItem(cd0 t8 "Top right - Unheeded Warning" mastery=2)
AddListItem(cd0 t9 "Top right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd1 t0 "Bottom right - No Cooldown" default mastery=2)
AddListItem(cd1 t1 "Bottom right - Mangle" mastery=2)
AddListItem(cd1 t2 "Bottom right - Rake" mastery=2)
AddListItem(cd1 t3 "Bottom right - Rip" mastery=2)
AddListItem(cd1 t4 "Bottom right - Savage Roar" mastery=2)
AddListItem(cd1 t5 "Bottom right - Tiger's Fury" mastery=2)
AddListItem(cd1 t6 "Bottom right - Trinket 0" mastery=2)
AddListItem(cd1 t7 "Bottom right - Trinket 1" mastery=2)
AddListItem(cd1 t8 "Bottom right - Unheeded Warning" mastery=2)
AddListItem(cd1 t9 "Bottom right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd2 t0 "Top far right - No Cooldown" default mastery=2)
AddListItem(cd2 t1 "Top far right - Mangle" mastery=2)
AddListItem(cd2 t2 "Top far right - Rake" mastery=2)
AddListItem(cd2 t3 "Top far right - Rip" mastery=2)
AddListItem(cd2 t4 "Top far right - Savage Roar" mastery=2)
AddListItem(cd2 t5 "Top far right - Tiger's Fury" mastery=2)
AddListItem(cd2 t6 "Top far right - Trinket 0" mastery=2)
AddListItem(cd2 t7 "Top far right - Trinket 1" mastery=2)
AddListItem(cd2 t8 "Top far right - Unheeded Warning" mastery=2)
AddListItem(cd2 t9 "Top far right - Heroic Essence of Cyclone" mastery=2)
AddListItem(cd3 t0 "Bottom far right - No Cooldown" default mastery=2)
AddListItem(cd3 t1 "Bottom far right - Mangle" mastery=2)
AddListItem(cd3 t2 "Bottom far right - Rake" mastery=2)
AddListItem(cd3 t3 "Bottom far right - Rip" mastery=2)
AddListItem(cd3 t4 "Bottom far right - Savage Roar" mastery=2)
AddListItem(cd3 t5 "Bottom far right - Tiger's Fury" mastery=2)
AddListItem(cd3 t6 "Bottom far right - Trinket 0" mastery=2)
AddListItem(cd3 t7 "Bottom far right - Trinket 1" mastery=2)
AddListItem(cd3 t8 "Bottom far right - Unheeded Warning" mastery=2)
AddListItem(cd3 t9 "Bottom far right - Heroic Essence of Cyclone" mastery=2)
ScoreSpells(FAERIEFERAL DEMOROAR MANGLEBEAR LACERATE SAVAGEROAR RIP
MANGLECAT RAKE SHRED FEROCIOUSBITE PULVERIZE MAUL)
AddIcon help=cd size=small mastery=2 { # TF Icon or Barkskin for Bear
if CheckBoxOn(cooldownsL) {
if Stance(3) {
# off of cooldown and in range
if TargetInRange(FERALCHARGECAT)
Spell(FERALCHARGECAT)
# FC Runaway code
unless BuffPresent(TIGERSFURY) or BuffPresent(BERSERK) or Mana(more 69) or BuffPresent(CLEARCASTING) {
unless ArmorSetParts(T11 more 3) and BuffExpires(PANTHER 4) {
if 2s before Spell(FERALCHARGECAT) {
unless TargetDebuffExpires(RAKE 5.9 mine=1) or TargetInRange(FERALCHARGECAT)
Texture(Ability_druid_dash)
}
}
}
# default - shows cooldown
if 0s before Spell(FERALCHARGECAT)
Texture(Spell_nature_timestop) # default - FC is off of cooldown other conditons not met
}
if Stance(1) {Spell(BARKSKIN)}
}
}
AddIcon help=cd size=small mastery=2 { # Berserk Icon
if CheckBoxOn(cooldownsL) {
if Stance(1) {
Spell(BERSERK)
}
if Stance(3) {
if BuffPresent(TIGERSFURY) Spell(BERSERK)
unless BuffPresent(TIGERSFURY) {
if Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
if 0s before Spell(BERSERK) Texture(Ability_mount_polarbear_white)
}
}
}
# Main rotation
AddIcon help=main mastery=2 {
if Stance(1) { #bear
if CheckBoxOn(lucioles) and CheckBoxOff(aoe) and TargetDebuffExpires(lowerarmor 2 stacks=3) {
Spell(FAERIEFERAL)
}
if 1s before Spell(MANGLEBEAR) {
Spell(MANGLEBEAR priority=4)
}
if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 4) {
Spell(DEMOROAR)
}
unless TargetDebuffPresent(LACERATE stacks=1 mine=1) {
Spell(LACERATE)
}
if 0s before Spell(THRASH) {
Spell(THRASH)
}
if TargetDebuffPresent(LACERATE stacks=3) and BuffExpires(PULVERIZEBUFF 1) {
Spell(PULVERIZE)
}
unless TargetDebuffPresent(LACERATE stacks=3) {
Spell(LACERATE)
}
if 0s before Spell(FAERIEFERAL) {
Spell(FAERIEFERAL)
}
Spell(LACERATE)
}
if Stance(3) { # cat
unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
if Mana(less 36) {
if CheckBoxOn(berserk) Spell(BERSERK)
Spell(TIGERSFURY)
}
}
unless TargetInRange(MANGLECAT) {
Texture(ability_druid_catformattack)
}
#refresh PANTHER (T11)
if ArmorSetParts(T11 more 3) and BuffPresent(PANTHER) and CheckBoxOn(t11) {
if BuffExpires(PANTHER 4) Spell(MANGLECAT)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Berserk Code
if CheckBoxOn(berserk) {
if BuffPresent(TIGERSFURY) Spell(BERSERK)
unless BuffPresent(TIGERSFURY) {
if Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 20s before Spell(TIGERSFURY) Spell(BERSERK)
}
unless Glyph(GLYPHOFBERSERK) {
if Mana(more 64) unless 15s before Spell(TIGERSFURY) Spell(BERSERK)
}
}
}
# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - clip if possible
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
}
# clip Rake early if TF is up and rake ramining is less than 9 seconds
if TargetDebuffExpires(RAKE 8.9 mine=1) and TargetDeadIn(more 8) and BuffPresent(TIGERSFURY) {
Spell(RAKE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 8.4) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
#stack up PANTHER (T11)
if ArmorSetParts(T11 more 3) and CheckBoxOn(t11) {
unless BuffPresent(PANTHER stacks=3) Spell(MANGLECAT)
}
# Conditions for Shreding now that everything else is taken into account
if Mana(more 69) Spell(SHRED)
if BuffPresent(CLEARCASTING) or TargetDeadIn(less 10) or BuffPresent(BERSERK) or BuffPresent(TIGERSFURY)
Spell(SHRED)
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1) Spell(SHRED)
if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2) Spell(SHRED)
if { 3s before Spell(TIGERSFURY) } Spell(SHRED)
}
}
# Main Rotation (no filler shreds, otherwise copy of other rotation)
AddIcon help=main mastery=2
{
if Stance(1) {
if Mana(more 70) {
Spell(MAUL)
}
}
if Stance(3) { # cat
#refresh PANTHER (T11)
if ArmorSetParts(T11 more 3) and BuffPresent(PANTHER) and CheckBoxOn(t11) {
if BuffExpires(PANTHER 4) Spell(MANGLECAT)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - clip if possible
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
}
# clip Rake early if TF is up and rake ramining is less than 9 seconds
if TargetDebuffExpires(RAKE 8.9 mine=1) and TargetDeadIn(more 8.4) and BuffPresent(TIGERSFURY) {
Spell(RAKE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 8.4) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd0 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd0 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd0 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd0 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd0 t5) Spell(TIGERSFURY)
if List(cd0 t6) Item(Trinket0Slot usable=1)
if List(cd0 t7) Item(Trinket1Slot usable=1)
if List(cd0 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd0 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
if List(cd0 t10) { # rotation with no TF/B
unless TargetInRange(MANGLECAT) {
Texture(ability_druid_catformattack)
}
#refresh PANTHER (T11)
if ArmorSetParts(T11 more 3) and BuffPresent(PANTHER) and CheckBoxOn(t11) {
if BuffExpires(PANTHER 4) Spell(MANGLECAT)
}
if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 1) and TargetDeadIn(more 15) {
Spell(FAERIEFERAL)
}
if TargetDebuffExpires(bleed 1) and CheckBoxOn(mangle) {
Spell(MANGLECAT)
}
# Ravage Code - this is the catch all
if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 3) {
Spell(RAVAGE)
}
# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
if TalentPoints(BLOODINTHEWATERTALENT more 1) and ComboPoints(more 4) and TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
Spell(FEROCIOUSBITE)
}
#Extends Rip with shred if glyph
if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3) {
Spell(SHRED)
}
# Burn combo points on FB if the target is about to die - on a boss fight this is redundant with BotW phase
if ComboPoints(more 4) and TargetDeadIn(less 7) {
Spell(FEROCIOUSBITE)
}
# Time to recast Rip - clip if possible
if ComboPoints(more 4) and TargetDeadIn(more 6) {
if TargetDebuffExpires(RIP 1.9 mine=1) Spell(RIP)
}
# clip Rake early if TF is up and rake ramining is less than 9 seconds
if TargetDebuffExpires(RAKE 8.9 mine=1) and TargetDeadIn(more 8) and BuffPresent(TIGERSFURY) {
Spell(RAKE)
}
# intentionally clip Rake to maximize uptime
if TargetDebuffExpires(RAKE 2.9 mine=1) and TargetDeadIn(more 8.4) {
Spell(RAKE)
}
# Savage Roar code - both when it is down and the desync code for Rip and Roar
if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) and TargetDebuffPresent(RIP 6 mine=1) {
Spell(SAVAGEROAR)
}
if BuffPresent(STAMPEDE) and BuffPresent(TIGERSFURY) {
unless BuffPresent(CLEARCASTING) Spell(RAVAGE)
}
#stack up PANTHER (T11)
if ArmorSetParts(T11 more 3) and CheckBoxOn(t11) {
unless BuffPresent(PANTHER stacks=3) Spell(MANGLECAT)
}
# Conditions for Shreding now that everything else is taken into account
if Mana(more 69) Spell(SHRED)
if BuffPresent(CLEARCASTING) or TargetDeadIn(less 10) or BuffPresent(BERSERK) or BuffPresent(TIGERSFURY)
Spell(SHRED)
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1) Spell(SHRED)
if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2) Spell(SHRED)
if { 3s before Spell(TIGERSFURY) } Spell(SHRED)
}
}
if Stance(1) {
Spell(SURVIVALINSTINCTS)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd1 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd1 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd1 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd1 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd1 t5) Spell(TIGERSFURY)
if List(cd1 t6) Item(Trinket0Slot usable=1)
if List(cd1 t7) Item(Trinket1Slot usable=1)
if List(cd1 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd1 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
if Stance(1) {
Spell(FRENZIEDREGENERATION)
}
}
}
AddIcon help=cd size=small mastery=2 { # Rake/Manglebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd2 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd2 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd2 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd2 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd2 t5) Spell(TIGERSFURY)
if List(cd2 t6) Item(Trinket0Slot usable=1)
if List(cd2 t7) Item(Trinket1Slot usable=1)
if List(cd2 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd2 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
}
}
AddIcon help=cd size=small mastery=2 { # Rip/Swipebear Icon
if CheckBoxOn(cooldownsR) {
if Stance(3) {
if List(cd3 t1) {
if ArmorSetParts(T11 more 3) {
if BuffExpires(PANTHER 0) Spell(MANGLECAT)
}
unless ArmorSetParts(T11 more 3) {
if TargetDebuffExpires(bleed 0) Spell(MANGLECAT)
}
}
if List(cd3 t2) if TargetDebuffExpires(RAKE 0 mine=1) Spell(RAKE)
if List(cd3 t3) if TargetDebuffExpires(RIP 0 mine=1) Spell(RIP)
if List(cd3 t4) if BuffExpires(SAVAGEROAR 0) Spell(SAVAGEROAR)
if List(cd3 t5) Spell(TIGERSFURY)
if List(cd3 t6) Item(Trinket0Slot usable=1)
if List(cd3 t7) Item(Trinket1Slot usable=1)
if List(cd3 t8) {
unless BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffGain(HEEDLESSCARNAGE 50) Item(UNHEEDEDWARNING)
}
if BuffPresent(HEEDLESSCARNAGE) {
if 0s before BuffExpires(HEEDLESSCARNAGE 0) Texture(Spell_deathknight_butcher)
}
}
if List(cd3 t9) {
unless BuffPresent(TWISTEDH) {
if 0s before BuffGain(TWISTEDH 50) Item(ESSENCEOFCYCLONEH)
}
if BuffPresent(TWISTEDH) {
if 0s before BuffExpires(TWISTEDH 0) Texture(Ability_rogue_dirtydeeds)
}
}
}
}
}
Re: Leafkiller's 4.1 Feral Ovale Script
As far as me, I may be in the minority here, but here's how I have it setup:
I have TF and my Synapse springs macroed to all my rotational abilities attacks (except FC/Ravage). I do this because quite honestly, on progression fights, its not worth my time to manually use Tiger's Fury when I can use that mental energy/keybind somewhere else. I'm probably not going to set any records using this method but I do above average DPS.
So I turn off the Berserk suggestion and simply wait for the small side box to show me an optimal time to Berserk (usually shortly after a TF). I also use one of the 4 optional side boxes for TF so I can usually guess when its time to Berserk and know when its coming.
I'll probably try out the script soon, just wanted to give you some insight as to how I played and see if it gave you any thought as to how the script is written.
I have TF and my Synapse springs macroed to all my rotational abilities attacks (except FC/Ravage). I do this because quite honestly, on progression fights, its not worth my time to manually use Tiger's Fury when I can use that mental energy/keybind somewhere else. I'm probably not going to set any records using this method but I do above average DPS.
So I turn off the Berserk suggestion and simply wait for the small side box to show me an optimal time to Berserk (usually shortly after a TF). I also use one of the 4 optional side boxes for TF so I can usually guess when its time to Berserk and know when its coming.
I'll probably try out the script soon, just wanted to give you some insight as to how I played and see if it gave you any thought as to how the script is written.
Who is online
Users browsing this forum: Bing [Bot], Fortybones, Google [Bot], Raolf, requital, Yriss and 5 guests
