Register

Leafkiller's 4.2 Feral Ovale Script

Face-rippin fun.
Posts: 3
Joined: Wed Jul 06, 2011 4:52 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aelfin » Wed Jul 06, 2011 5:01 pm

not sure if you'd be interested, but here's a modified version of your script. it is formatted a little cleaner, no changes to cat (except for showing skullbash in 2nd rotation box) and a few changes for bear (i prefer pulverize over thrash, maul at 45 or clearcasting present, and skullbash in 2nd rot again). bear cd order is a little different, too (enrage/berserk/barkskin/si and 3rd r box shows thrash/swipe). personally i don't like the bear berserk logic as i prefer to decide that but i left it in since i can just unclick the checkbox.

if this is not an appropriate place, perhaps we should start a thread with user mods to the script?

EDIT: added a suggestion for cower

Code: Select all
# Ovale Optimized Script Leafkiller 4.2.4
#       Bear code from tbot
# Ovale source: http://wow.curse.com/downloads/wow-addons/details/ovale.aspx
# Cat Rotation based on the Mew single target default script. Contributions to that have come from many ferals.
# Revision History
# 4.2.4 07/03/2011 - Add Berserk logic into the bear rotaion if suggest Bear Berserk is enabled
# 4.2.3 07/03/2011 - Disable the Berserk clipping code - causes a problem on trash thawt are close to dying
# 4.2.2 06/28/2011 - Tweak the bear rotation slightly - based on the Mew Bear threat script
# 4.2.1 06/25/2011 - New cat rotation for 4.2. Support for 378 The Hungerer and 384 Matrix Restabilizer

Define(BARKSKIN 22812)              #defensive cd
Define(BASH 5211)                   #bear interrupt
Define(BERSERK 50334)               #cat+bear cd buff
Define(COWER 8998)                  #cat aggro reducer
Define(DEMOROAR 99)                 #bear debuff
Define(ENRAGE 5229)                 #bear damage buff
Define(FAERIEFERAL 16857)           #bear+cat debuff
Define(FERALCHARGECAT 49376)
Define(FEROCIOUSBITE 22568)         #cat finish 35-70 mana
Define(FRENZIEDREGENERATION 22842)  #bear defensive
Define(LACERATE 33745)              #bear bleed*3
Define(MANGLEBEAR 33878)            #bear bleed+debuff
Define(MANGLECAT 33876)             #cat bleed+debuff
Define(MAIM 22570)                  #cat interrupt
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(SKULLBASHBEAR 80964)         #bear interrupt
Define(SKULLBASHCAT 80965)          #cat interrupt
Define(SURVIVALINSTINCTS 61336)     #defensive 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)
Define(MATRIXRESTABILIZERPROC 96978)
Define(MATRIXRESTABILIZER 68994)
Define(DEVOUR 96911)
Define(THEHUNGERER 68927)

#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 "Cat Berserk" default mastery=2)
AddCheckBox(bberserk "Bear 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 t12 "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(cd0 t10 "Top right - Matrix Restabilizer" mastery=2)
AddListItem(cd0 t11 "Top right - The Hungerer" 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(cd1 t10 "Bottom right - Matrix Restabilizer" mastery=2)
AddListItem(cd1 t11 "Bottom right - The Hungerer" 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(cd2 t10 "Top far right - Matrix Restabilizer" mastery=2)
AddListItem(cd2 t11 "Top far right - The Hungerer" 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)
AddListItem(cd3 t10 "Bottom far right - Matrix Restabilizer" mastery=2)
AddListItem(cd3 t11 "Bottom far right - The Hungerer" mastery=2)

ScoreSpells(FAERIEFERAL DEMOROAR MANGLEBEAR LACERATE SAVAGEROAR RIP MANGLECAT RAKE SHRED FEROCIOUSBITE PULVERIZE MAUL)

AddIcon help=cd size=small mastery=2 { # enrage / feral charge
    if CheckBoxOn(cooldownsL) {
        if Stance(1)
            Spell(ENRAGE)
        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
        }
    }
}

AddIcon help=cd size=small mastery=2 { # berserk
    if CheckBoxOn(cooldownsL) {
        if Stance(1)
            Spell(BERSERK)
        if Stance(3) {
            if BuffPresent(TIGERSFURY)
                Spell(BERSERK)
            if 0s before Spell(BERSERK)
                Texture(Ability_mount_polarbear_white)
        }
    }
}

AddIcon help=main mastery=2 { # main rotation
    if Stance(1) {
        if CheckBoxOn(bberserk) and 0s before Spell(BERSERK) {
            if Glyph(GLYPHOFBERSERK) {
                unless TargetDebuffExpires(lowerarmor 25 stacks=3) {
                    if BuffPresent(PULVERIZEBUFF 12)
                        Spell(BERSERK)
                }
            }
            unless Glyph(GLYPHOFBERSERK) {
                unless TargetDebuffExpires(lowerarmor 15 stacks=3) {
                    if BuffPresent(PULVERIZEBUFF 12)
                        Spell(BERSERK)
                }
            }
        }
        if CheckBoxOn(lucioles) and CheckBoxOff(aoe) and TargetDebuffExpires(lowerarmor 2 stacks=3)
            Spell(FAERIEFERAL)
        if 1s before Spell(MANGLEBEAR)
            Spell(MANGLEBEAR)
        if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 4)
            Spell(DEMOROAR)
        unless TargetDebuffPresent(LACERATE stacks=1 mine=1)
            Spell(LACERATE)
        if TargetDebuffPresent(LACERATE stacks=3) and BuffExpires(PULVERIZEBUFF 3)
            Spell(PULVERIZE)
        if 0s before Spell(THRASH)
            Spell(THRASH)
        unless TargetDebuffPresent(LACERATE stacks=3)
            Spell(LACERATE)
        if 0s before Spell(FAERIEFERAL)
            Spell(FAERIEFERAL)
        Spell(LACERATE)
    }

    if Stance(3) {
        # TF + Berserk logic - only show Berserk if both are off of cooldown - everyone should macro TF to their Berserk key
        unless BuffPresent(BERSERK) or BuffPresent(CLEARCASTING) {
            if Mana(less 36) and {0s before Spell(TIGERSFURY)} {
                if CheckBoxOn(berserk) Spell(BERSERK)
                    Spell(TIGERSFURY)
            }
        }

        #in case Berserk was not cast with TF
        if BuffPresent(TIGERSFURY) and CheckBoxOn(berserk)
            Spell(BERSERK)

        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 2) 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 TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
            if ComboPoints(more 4)
                Spell(FEROCIOUSBITE)
            if ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1)
                Spell(FEROCIOUSBITE)
        }

        #Extends Rip with shred if glyph
        unless TalentPoints(BLOODINTHEWATERTALENT more 1) and TargetLifePercent(less 25) {
            if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3)
                Spell(SHRED)
        }

        # Time to recast Rip - clip if possible - try to hold off for TF
        if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 2 mine=1) and {BuffPresent(BERSERK) or {target.debuffExpires(RIP mine=1)<spell(TIGERSFURY)}}
            Spell(RIP)

        # FBs during Berserk
        if BuffPresent(BERSERK) {
            if ComboPoints(more 4) and Mana(more 12) and TargetDebuffPresent(RIP 5 mine=1) and BuffPresent(SAVAGEROAR 3)
                Spell(FEROCIOUSBITE)
        }

        # 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 TargetDeadIn(more 8.4) and TargetDebuffExpires(RAKE 2.9 mine=1) and {BuffPresent(BERSERK) or Mana(more 70) or {{spell(TIGERSFURY)+0.8}>target.debuffExpires(RAKE mine=1)}}
            Spell(RAKE)

        if BuffPresent(CLEARCASTING)
            Spell(SHRED)

        # Savage Roar code - both when it is down and the desync code for Rip and Roar
        if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1)
            Spell(SAVAGEROAR)

        # 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)

        if BuffExpires(BERSERK 0) or Mana(less 25) {
            if ComboPoints(more 4) and TargetDebuffPresent(RIP 14 mine=1) and BuffPresent(SAVAGEROAR 10)
                Spell(FEROCIOUSBITE)
        }

        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

        # Shred aggressively for Berserk and TF
        if BuffPresent(BERSERK) or BuffPresent(TIGERSFURY)
            Spell(SHRED)

        # Shred for combo points for Rip or SR
        if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1)
            Spell(SHRED)
        if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2)
            Spell(SHRED)

        # Shred to burn off energy so we can TF without capping
        if { 3s before Spell(TIGERSFURY) }
            Spell(SHRED)

        # Shred is the mob will die within one Rake
        if TargetDeadIn(less 8.5)
            Spell(SHRED)

        # Fallback Shred to prevent energy capping
        if 1.2s before Mana(more 99)
            Spell(SHRED)
    }
}

AddIcon help=main mastery=2 { # main rotation (no filler shreds, otherwise copy of other rotation)
    if Stance(1) {
        if TargetIsCasting(yes) and TargetIsInterruptible(yes) {
            Spell(SKULLBASHBEAR)
            Spell(BASH)
        }
        if Mana(more 45) or BuffPresent(CLEARCASTING) {
            Spell(MAUL)
        }
        if 0s before Spell(MAUL)
            Texture(Spell_nature_timestop)
    }

    if Stance(3) { # cat
        if TargetIsCasting(yes) and TargetIsInterruptible(yes) {
            Spell(SKULLBASHCAT)
            if ComboPoints(more 1)
                Spell(MAIM)
        }

        if Threat(equal 100) and TargetTargetIsPlayer(yes)
            Spell(COWER)

        #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 2) 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 TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
            if ComboPoints(more 4)
                Spell(FEROCIOUSBITE)
            if ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1)
                Spell(FEROCIOUSBITE)
        }

        #Extends Rip with shred if glyph
        unless TalentPoints(BLOODINTHEWATERTALENT more 1) and TargetLifePercent(less 25) {
            if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3)
                Spell(SHRED)
        }

        # Time to recast Rip - clip if possible - try to hold off for TF
        if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 2 mine=1) and {BuffPresent(BERSERK) or {target.debuffExpires(RIP mine=1)<spell(TIGERSFURY)}}
            Spell(RIP)

        # FBs during Berserk
        if BuffPresent(BERSERK) {
            if ComboPoints(more 4) and Mana(more 12) and TargetDebuffPresent(RIP 5 mine=1) and BuffPresent(SAVAGEROAR 3)
                Spell(FEROCIOUSBITE)
        }

        # 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 TargetDeadIn(more 8.4) and TargetDebuffExpires(RAKE 2.9 mine=1) and {BuffPresent(BERSERK) or Mana(more 70) or {{spell(TIGERSFURY)+0.8}>target.debuffExpires(RAKE mine=1)}}
            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)
            Spell(SAVAGEROAR)

        if BuffExpires(BERSERK 0) or Mana(less 25) {
            if ComboPoints(more 4) and TargetDebuffPresent(RIP 14 mine=1) and BuffPresent(SAVAGEROAR 10)
                Spell(FEROCIOUSBITE)
        }
    }
}

AddIcon help=cd size=small mastery=2 { # barkskin / choices
    if CheckBoxOn(cooldownsR) {
        if Stance(1)
            Spell(BARKSKIN)

        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) {
                unless BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffGain(MATRIXRESTABILIZERPROC 105)
                        Item(MATRIXRESTABILIZER)
                }
                if BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffExpires(MATRIXRESTABILIZERPROC 0)
                        Texture(inv_gizmo_electrifiedether)
                }
            }
            if List(cd0 t11) {
                unless BuffPresent(DEVOUR) {
                    if 0s before BuffGain(DEVOUR 60)
                        Item(THEHUNGERER)
                }
                if BuffPresent(DEVOUR) {
                    if 0s before BuffExpires(DEVOUR 0)
                        Texture(spell_deathknight_gnaw_ghoul)
                }
            }

            if List(cd0 t12) {  # 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 2) 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 TargetLifePercent(less 25) and TargetDebuffPresent(RIP mine=1) {
                    if ComboPoints(more 4)
                        Spell(FEROCIOUSBITE)
                    if ComboPoints(more 0) and TargetDebuffExpires(RIP 2.1 mine=1)
                        Spell(FEROCIOUSBITE)
                }

                #Extends Rip with shred if glyph
                unless TalentPoints(BLOODINTHEWATERTALENT more 1) and TargetLifePercent(less 25) {
                    if Glyph(GLYPHOFSHRED) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and Counter(ripshreds less 3)
                        Spell(SHRED)
                }

                # Time to recast Rip - clip if possible - try to hold off for TF
                if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 2 mine=1) and {BuffPresent(BERSERK) or {target.debuffExpires(RIP mine=1)<spell(TIGERSFURY)}}
                    Spell(RIP)

                # FBs during Berserk
                if BuffPresent(BERSERK) {
                    if ComboPoints(more 4) and Mana(more 12) and TargetDebuffPresent(RIP 5 mine=1) and BuffPresent(SAVAGEROAR 3)
                        Spell(FEROCIOUSBITE)
                }

                # 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 TargetDeadIn(more 8.4) and TargetDebuffExpires(RAKE 2.9 mine=1) and {BuffPresent(BERSERK) or Mana(more 70) or {{spell(TIGERSFURY)+0.8}>target.debuffExpires(RAKE mine=1)}}
                    Spell(RAKE)

                if BuffPresent(CLEARCASTING)
                    Spell(SHRED)

                # Savage Roar code - both when it is down and the desync code for Rip and Roar
                if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1)
                    Spell(SAVAGEROAR)

                # 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)

                if BuffExpires(BERSERK 0) or Mana(less 25) {
                    if ComboPoints(more 4) and TargetDebuffPresent(RIP 14 mine=1) and BuffPresent(SAVAGEROAR 10)
                        Spell(FEROCIOUSBITE)
                }

                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

                # Shred aggressively for Berserk and TF
                if BuffPresent(BERSERK) or BuffPresent(TIGERSFURY)
                    Spell(SHRED)

                # Shred for combo points for Rip or SR
                if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1)
                    Spell(SHRED)
                if ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2)
                    Spell(SHRED)

                # Shred to burn off energy so we can TF without capping
                if { 3s before Spell(TIGERSFURY) }
                    Spell(SHRED)

                # Shred is the mob will die within one Rake
                if TargetDeadIn(less 8.5)
                    Spell(SHRED)

                # Fallback Shred to prevent energy capping
                if 1.2s before Mana(more 99)
                    Spell(SHRED)
            }
        }
    }
}

AddIcon help=cd size=small mastery=2 { # survival instincts / choices
    if CheckBoxOn(cooldownsR) {
        if Stance(1)
            Spell(SURVIVALINSTINCTS)

        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 List(cd1 t10) {
                unless BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffGain(MATRIXRESTABILIZERPROC 105)
                        Item(MATRIXRESTABILIZER)
                }
                if BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffExpires(MATRIXRESTABILIZERPROC 0)
                        Texture(inv_gizmo_electrifiedether)
                }
            }
            if List(cd1 t11) {
                unless BuffPresent(DEVOUR) {
                    if 0s before BuffGain(DEVOUR 60)
                        Item(THEHUNGERER)
                }
                if BuffPresent(DEVOUR) {
                    if 0s before BuffExpires(DEVOUR 0)
                        Texture(spell_deathknight_gnaw_ghoul)
                }
            }
        }
    }
}
AddIcon help=cd size=small mastery=2 { # frenzied regen / choices
    if CheckBoxOn(cooldownsR) {
        if Stance(1)
            Spell(FRENZIEDREGENERATION)

        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)
                }
            }
            if List(cd2 t10) {
                unless BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffGain(MATRIXRESTABILIZERPROC 105)
                        Item(MATRIXRESTABILIZER)
                }
                if BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffExpires(MATRIXRESTABILIZERPROC 0)
                        Texture(inv_gizmo_electrifiedether)
                }
            }
            if List(cd2 t11) {
                unless BuffPresent(DEVOUR) {
                    if 0s before BuffGain(DEVOUR 60)
                        Item(THEHUNGERER)
                }
                if BuffPresent(DEVOUR) {
                    if 0s before BuffExpires(DEVOUR 0)
                        Texture(spell_deathknight_gnaw_ghoul)
                }
            }
        }
    }
}
AddIcon help=cd size=small mastery=2 { # thrash/swipe / choices
    if CheckBoxOn(cooldownsR) {
        if Stance(1) {
            if 1s before Spell(THRASH)
                Spell(THRASH)
            if 1s before Spell(SWIPEBEAR)
                Spell(SWIPEBEAR)
        }

        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)
                }
            }
            if List(cd3 t10) {
                unless BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffGain(MATRIXRESTABILIZERPROC 105)
                        Item(MATRIXRESTABILIZER)
                }
                if BuffPresent(MATRIXRESTABILIZERPROC) {
                    if 0s before BuffExpires(MATRIXRESTABILIZERPROC 0)
                        Texture(inv_gizmo_electrifiedether)
                }
            }
            if List(cd3 t11) {
                unless BuffPresent(DEVOUR) {
                    if 0s before BuffGain(DEVOUR 60)
                        Item(THEHUNGERER)
                }
                if BuffPresent(DEVOUR) {
                    if 0s before BuffExpires(DEVOUR 0)
                        Texture(spell_deathknight_gnaw_ghoul)
                }
            }
        }
    }
}
Last edited by Aelfin on Tue Jul 19, 2011 6:12 pm, edited 1 time in total.

Honored
Posts: 76
Joined: Sat Jun 04, 2011 4:21 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Yawning » Sun Jul 10, 2011 10:13 pm

Leafkiller wrote:
Yawning wrote:If I get bored enough and all the mutant dogs are dead I may consider doing something like this


Fixed.


The mutated dogs are dead. (To be accurate, I got tired of being torn up by mutated dogs that can tank 5 rounds of 5.45x39 mm.)

http://code.google.com/p/mew-wow-druid- ... tail?r=788

It's not mentioned in the change logs, but it is now possible to see if trinkets are up from the script as well as micro manage on use type effects. Default behavior in tip of tree is to sync things with TF, giving priority to "Everything but lolEngineering, since every other supported clicky effect is superior".

Note: Before anyone asks.... "No, I will not add a special case for seeing which Matrix Restabilizer proc it is. No, I will not add support for swapping weapons with different enchants so you can try to weave them."
"Understanding is a three-edged sword."

Mew: http://code.google.com/p/mew-wow-druid-model/

Posts: 3
Joined: Thu Jul 14, 2011 7:41 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aryun » Mon Jul 18, 2011 8:16 am

Hey guys,

First just wanted to say thank you to everyone who contributes to these wonderful forums - I have been an avid reader since 4.0 but have only recently registered to post.

I have been playing my druid since tbc but only specced feral at Cata's launch. I can easily say it is the most fun I have had with a class / spec and the feral community, tools and spreadsheets etc available just makes me feel apart of something very special.

Anyway - I have been using Ovale since launch, it has been a great add-on to help me get to grips with the rotation but since last week I have experienced a change in the rotation I just wanted to query.

Previously (general situations and simplified from feral charge, FFF etc) Ovale would prompt me to Mangle, Rake, Shred to 5cp and Rip, Shred, SR etc etc. However this last week since updating to Leaf's most recent script it is prompting me to SR prior to applying Rip on my primary target.

Is this as intended or have I messed something up? I have still not switched over to a hit / exp capped gearset so assume that applying a 5cp Rip is far far more important than buffing SR (which probably benefits more at hit / exp cap). Even so it is my understanding that whatever build / gear set used Rip > SR.

I hope that is ok - apologies but I am by far at ease with theorycrafting / detailed scripts / calcs but I am eager to learn and improve my performance in raid.

Thank you very much for your anticipated help and guidance.

Kind regards,

Aryun, Eonar EU

Posts: 24
Joined: Sat May 28, 2011 4:30 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aurea » Mon Jul 18, 2011 12:49 pm

hi leafkiller,

i got a question about the behaviour of your script while flying in the alysrazor encounter. it doesn't seem to suggest using fb often enough. since i'm pretty busy collcting my rings i'm blindly following ovale and constantly being energy capped.
can you explain this behaviour?

regards,

aurea // gorgonnash - eu
Last edited by Aurea on Mon Jul 18, 2011 2:23 pm, edited 1 time in total.

Exalted
User avatar
Posts: 1391
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Tinderhoof » Mon Jul 18, 2011 2:09 pm

Aryun wrote:Previously (general situations and simplified from feral charge, FFF etc) Ovale would prompt me to Mangle, Rake, Shred to 5cp and Rip, Shred, SR etc etc. However this last week since updating to Leaf's most recent script it is prompting me to SR prior to applying Rip on my primary target.

Is this as intended or have I messed something up? I have still not switched over to a hit / exp capped gearset so assume that applying a 5cp Rip is far far more important than buffing SR (which probably benefits more at hit / exp cap). Even so it is my understanding that whatever build / gear set used Rip > SR.

Hi Aurea. Welcome to the community.

I am pretty sure the only gear related things the script can look for is trinket proc's and if you a wearing T11 4p or T12 4p. The script gives you suggestions based on the buffs you have, your energy count, combo points, and debuff times, but not on hit/exp or mastery levels.

What you are seeing is normal and expected. Because of the back door bleed nerf to Rip (loss of strength ap) and not using the T11 4p (no 3% extra ap) and the buff to Savage Roar (50% - 80% white damage boost) it now makes sense to get SR up and running first. This also is assuming you will be berserking near the start so getting Rip up quickly shouldn't be a problem.

Posts: 3
Joined: Thu Jul 14, 2011 7:41 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aryun » Mon Jul 18, 2011 4:04 pm

Thanks Tinder, much appreciated!

I think I just felt a bit dirty not getting Rip up as soon as possible^^

Keep up the good work -

Aryun

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Mon Jul 18, 2011 8:27 pm

If you happen to be at 5 combo points it will ask you to Rip ahead of SR. With less than that SR will go first. There used to be a condition on SR to not cast it if Rip was within 6 seconds of dropping off, but in 4.2 it turned out to be a dps gain to remove that condition.

Tinder is correct, the script is based on a sim that assumes Berserk is cast at the start of the fight, but I don't think this matters. SR is just worth a lot more now than it used to be, and at the start of the fight, you are going to cast it with one combo point, and burn one extra gcd, so the impact on Rip will be pretty minimal regardless of whether or not you hit Berserk. You will be hitting TF pretty quickly and that should be enough to get Rip up. The change was verified with both a 372 4 piece T11 setup and also a 391 setup.

Honored
Posts: 76
Joined: Sat Jun 04, 2011 4:21 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Yawning » Fri Jul 22, 2011 12:06 pm

So now that the tools support modeling AoE and tab doting, you're going to extend the script for it right?

PS: Sync your SVN tree.
"Understanding is a three-edged sword."

Mew: http://code.google.com/p/mew-wow-druid-model/

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Fri Jul 22, 2011 6:17 pm

I looked at your checkins a couple of days ago and saw you were putting in multi-target stuff - but not enough text in the check-in notes to know what you actually did...

I will check that out.

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Fri Jul 22, 2011 6:26 pm

Aurea wrote:hi leafkiller,

i got a question about the behaviour of your script while flying in the alysrazor encounter. it doesn't seem to suggest using fb often enough. since i'm pretty busy collcting my rings i'm blindly following ovale and constantly being energy capped.
can you explain this behaviour?


I was just doing that last night. The script does not account for the (de)buff that effectively gives unlimited energy and as a result does not try to FB aggressively (as it does during Berserk). Just as bad if not worse is that it does not call for TF/Berserk at all while you are flying since energy never goes low enough. I can fix these issues by looking for the Blazing Power (de)buff and putting in special conditionals for it.

Normally I do not put in special code for fights, but this is one I am working on right now...so I will see what I can do. It is going to be challenging to test the script though.

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Fri Jul 22, 2011 8:10 pm

Ok I just posted 4.2.5.

I did two things in this version.

1. I removed the tf/berserk-less rotation from the top right cooldown box options. Having a third rotation was too resource consuming and of limited use (I put it in for heroic Meloriak but did not find it that useful).

2. I put in support for the "Blazing Power" debuff which you get from going through the rings on Alysrazor.

WARNING: I have not tested this code on Alysrazor. I did verify on a training dummy that the script seems to be working correctly in the absence of the debuff. If you have any issues with it, swap back to the 4.2.4 script which is saved in the first post of this thread along with the new 4.2.5 script.

The Alysrazor code will ignore the minimum mana requirement for TF/Berserk and will try to aggressively FB all the time (just as it does during Berserk).

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Fri Jul 22, 2011 8:29 pm

Aelfin wrote:not sure if you'd be interested, but here's a modified version of your script. it is formatted a little cleaner, no changes to cat (except for showing skullbash in 2nd rotation box) and a few changes for bear (i prefer pulverize over thrash, maul at 45 or clearcasting present, and skullbash in 2nd rot again). bear cd order is a little different, too (enrage/berserk/barkskin/si and 3rd r box shows thrash/swipe). personally i don't like the bear berserk logic as i prefer to decide that but i left it in since i can just unclick the checkbox.

if this is not an appropriate place, perhaps we should start a thread with user mods to the script?

EDIT: added a suggestion for cower


I checked moving pulverize ahead of thrash in Mew (with the crappy 359 profile) and it was a threat loss. I need to get a better sample bear profile in there (even if it is simply logging out in my bear gear/spec) to test that with better gear. The 45 energy vs. 50 energy is kind of a wash while the clearcasting change makes sense - although for any raid tanking, Maul will be on all the time anyways. I did not look through your bear changes at the end of the script yet, so I have no opinion about those.

I like the skullbash/cower code, but I think I would rather have it in one of the other cooldown boxes and not the second rotation box. For example, you could be on an add that is not tanked and it could obscure the upcoming rotation. It would be easy enough make that pop up in one of the other boxes as something you configure.

Maintaining and syncing multiple versions of the script can be pretty painful (I used to do that) so best would be if I can satisfy your needs in this script (of course that makes your life easier but has no effect on mine - so feel free to keep updating my script as you desire).

I am space constrained when I try to post two versions of the script in the same post here - and your formatting changes add more characters to the script - so I am not going to incorporate them :p

Edit - a good place to work in the skullbash/cower code would be in the upper left box in conjunction with the feral charge code (which is not nearly as useful now that we no longer have zero distance charging available).

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Fri Jul 22, 2011 9:01 pm

I have a version of my script with the interrupt/cower logic in the upper left box. For the bear cooldown tracking, the easiest thing to do would be to provide dropdowns so people can put whatever they want into each box. For example, I don't care about enrage - I just macroed it into several of my abilities and I ignore it now - so I don't track it.

I will see how the interrupt stuff looks over the next few days and also see about making some dropdowns for bear abilities. By then I should have some feedback on the Alysrazor changes.

Revered
Posts: 457
Joined: Sat Jan 29, 2011 7:17 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby shinryu » Fri Jul 22, 2011 10:47 pm

Haven't tested the new one, but just from conceptualizing, won't you run into some wonky problems if you go through some rings during the tornado phase on Alysrazor and then get stuck with the game telling you to spam FB during the burn phase, when in actuality you'd still want to maintain the rotation? Or is that addressed somewhere?

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Sat Jul 23, 2011 1:35 am

Not if I am reading the buff correctly. It says instant restoration of energy with no reference to the stacking.

Exalted
User avatar
Posts: 556
Joined: Sat May 28, 2011 3:43 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Konungr » Sat Jul 23, 2011 1:48 am

shinryu wrote:Haven't tested the new one, but just from conceptualizing, won't you run into some wonky problems if you go through some rings during the tornado phase on Alysrazor and then get stuck with the game telling you to spam FB during the burn phase, when in actuality you'd still want to maintain the rotation? Or is that addressed somewhere?



From someone that does Air Phase Kitty strictly (45.3k on this weeks attempt - puts me at 3rd ranking for World of Logs Actual rankings {If you take out the Bear-Imprint and < 1 Min parses} and if my guild would starting running logs) the buff will instantly restore energy when you go through it, not sure how much, don't pay that close attention, and give you a stacking Haste buff. During the Burnout Phase, you will be FBing, A lot.

Generally as soon as I hit the air, I berserk, so that it will be up for the air-phase and i start to fly around and grab rings, keeping up my normal rotation and following the Ovale Script. Each time you pass through one it gives you instant energy (probably like 20-40 if I had to guess) and stacks another Haste buff. When you hit 24 stacks, you gain the 75% Crit buff and you can grab a 25th stack of the Haste buff, continuing to run through the rings will refresh the 2 40 sec buffs, so it is imperative that you run through a ring during Tornados right before she crashes.

As soon as she is down, I Feral Charge and Berserk/Potion/Etc. At this point you have 150% Haste and 115% Crit, which means you are energy capped for the entire burnout phase with guaranteed Crits. Once I get T12 4PC, I have a strong feeling that I am going to have Berserk that lasts for longer than a minute, given that there is no limit on the number of times it will extend Berserk.

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Sat Jul 23, 2011 2:31 am

Does your energy stay high or does it only go up when you go through a ring*, and then just regen faster from the high haste?

I may need to change the code to look for some minimum stack level.

* My current script is not correct if the energy return is only when you go through the rings and you only have a small stack.

Exalted
User avatar
Posts: 556
Joined: Sat May 28, 2011 3:43 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Konungr » Sat Jul 23, 2011 2:41 am

Leafkiller wrote:Does your energy stay high or does it only go up when you go through a ring*, and then just regen faster from the high haste?

I may need to change the code to look for some minimum stack level.

* My current script is not correct if the energy return is only when you go through the rings and you only have a small stack.


Well you use and regen energy at the normal rate, but every stack you gain gives you 8% haste, which means more than an extra shred a minute. From the spell on wowhead it looks like it returns either 20% or 33% resource back. Once you are at full 25 stacks, you gain about 25 energy per second (~150% Haste), so you are in a whacked-half-berserk phase, then when you activate Berserk, you will become energy capped, since you are only using 20 energy with your most expensive attack and gaining 25, granted you will only get 3 shreds before you get to FB.

User avatar
Posts: 48
Joined: Wed Oct 20, 2010 2:56 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Lax » Sat Jul 23, 2011 9:49 am

Leafkiller wrote:Does your energy stay high or does it only go up when you go through a ring*, and then just regen faster from the high haste?

I may need to change the code to look for some minimum stack level.

* My current script is not correct if the energy return is only when you go through the rings and you only have a small stack.


Yes, you gain energy as you go through a ring. Basically, you want to get the energy a bit down, before you fly though a ring to not waste the energy gain. One problem with the ovale script (before your recent changes atleast) was that it would try and stay at very high energy levels, which is very bad when you are flying.

Posts: 24
Joined: Sat May 28, 2011 4:30 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aurea » Sat Jul 23, 2011 10:47 am

25 stacks means 200% extra haste. add that to the extra energy gain from the rings and you're getting yourself into a energy excess scenario pretty fast.

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Sat Jul 23, 2011 1:50 pm

Ok - now that I understand the mechanics, I know what I need to do with the code. First some hard data. 128 haste rating is about 1% haste. Your energy regen rate = (1+haste/100) * 10. I took one of the experimental 378 profiles that Konungr built (Haste-Hit Exp - Crit) as an example of very high haste. The profile has 1834 haste rating or about 14.3 haste. So the energy regen for this profile is 11.4 energy per second. If he had a stack of 25, that is a 200% increase to haste - so his haste would be about 43, and that would make energy regen about 14.3 per second, which is not going to greatly impact TF as you will be able to get energy below 35.

Here is the tooltip for Blazing Power:
Imbued with a fraction of Alysrazor's blazing power! Increases haste by 8% for 40 sec. Also restores mana, rage, energy, and runic power instantly.


It looks like it will restore all of your energy every time you pass through a ring, and will add the 8% haste buff on top of that. So while you are in the air, and hitting rings continually, your energy is pretty close to unlimited. It is probably not a good idea to cast Berserk while in the air as halving the cost of abilities is not meaningful if you never run out of energy. You do, however, want to cast TF on cooldown to get the 6 second damage increase. I can check for this in the code pretty simply - by looking at the remaining duration of the Blazing Power debuff, and if is >= 35 seconds, recommending TF regardless of energy level. I will not recommend Berserk at this point even if it is off of cooldown and checked on.

Once you are in the ground phase, assuming you find a ring to run through during the tornado, you will be left with maybe 30 seconds of improved haste and the massive crit bonus. This is a good time to hit Berserk as you are not hitting rings anymore and per the math above, the energy regen rate is no where near close to what Berserk does for you.

Now onto the subject of FB. It turns out that doing aggressive FBs during Berserk is a *small* dps gain without the 4 piece set bonus - very small. So outside of Berserk, even with a 25 stack of the debuff, you will not notice a significant dps change between lots of FBs vs. lots of Shreds. Once you are on the ground, with Berserk the aggressive FB code will be enabled anyways.

TLDR: I am going to remove conditionals from the FB code that look for the Blazing Power debuff. I am going to change the conditional on TF to recommend it if it is off of cooldown and the Blazing Power Debuff as at least 35 seconds left (i.e. you passed through a ring in the last 5 seconds). I recommend saving Berserk for the ground phase. I will post a new script later today. Right now I have some errands to run.

Posts: 24
Joined: Sat May 28, 2011 4:30 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Aurea » Sat Jul 23, 2011 4:31 pm

big thanks for your work, once again :]

<3 aurea

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Sat Jul 23, 2011 5:02 pm

New script has been posted - this one should be safe to use and changes the Blazing power code to recommend TF during the air phase (that is untested still). I also made the bear cooldowns configurable and added in skullbash and cower code into the upper left hand box:

4.2.7 Posted - fixed the Blazing Power code to recommend TF during the air phase (removed FB and Berserk calls
from Blazing Power). Made the bear cooldown boxes configurable. Added Skullbash and cower code to the
upper left hand box (it will hide the contents temporarily - I may need to add a switch for this).


Anyone doing the air phase on Alysrazor - please let me know if TF is recommended properly (it has no max energy constraint, but will fire if the cooldown remaining on Blazing Power is >= 35). Also, people let me know if the Skullbash/cower code is an annoyance - I can make it configurable. I did have to add 4 new dropdowns for the bear cooldowns, so there is a lot to configure now...

Exalted
User avatar
Posts: 1143
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Leafkiller » Sun Jul 24, 2011 12:18 pm

I posted yet another version of the Ovale script, 4.2.8. Due to length considerations, I removed the previous version of the script from the main post. Next time I update the script I should be able to include 2 again.

Based on an observation that the DPE of FB is considerably higher than Shred outside of Berserk (in the Alysrazor strategy section), I put code back in to aggressively FB when there are >=35 seconds on Blazing Power (and combo points > 4 and energy > 24). This will need to be tested this to see if it is a workable number (hopefully Tues/Wed of next week we will know). If needed I can bump up the window beyond 5 seconds.

4.2.8 Put back in aggressive FBing during Alysrazor air phase based on duration of Blazing Power debuff.

Exalted
User avatar
Posts: 556
Joined: Sat May 28, 2011 3:43 pm

Re: Leafkiller's 4.2 Feral Ovale Script

Postby Konungr » Sun Jul 24, 2011 12:50 pm

I have a question, is there a reason my Ovale stuns my Game for ~10 secs whenever I Ctrl+V the script into the window and then again for ~3 secs when I hit Accept?

PreviousNext

Return to Kitty DPS

Who is online

Users browsing this forum: Google Adsense [Bot] and 5 guests