Ovale Spell Priority

Ovale Spell Priority

6M Downloads

Guardian Druid rotation

Opened this issue ยท 1 comments

commented

For some reason when I'm in guardian druid spec the only spells that are ever suggested are mangle, moonfire, and ironfur.

commented

I have replied a similar forum thread before it closes.
The guardian spec is not working for now. Based on the existing script, I have worked on my script.
The script is quickly written for the following spec:
http://www.wowhead.com/talent-calc/druid/guardian/cAKz

I hope it will help.
Enjoy!


############## GUARDIAN CORE ##############

Define(swipe 213771)

Include(ovale_common)
Include(ovale_trinkets_mop)
Include(ovale_trinkets_wod)
Include(ovale_druid_spells)

AddCheckBox(opt_interrupt L(interrupt) default specialization=guardian)
AddCheckBox(opt_melee_range L(not_in_melee_range) specialization=guardian)

AddFunction GuardianUseItemActions
{
    Item(Trinket0Slot usable=1)
    Item(Trinket1Slot usable=1)
}

AddFunction GuardianGetInMeleeRange
{
    if CheckBoxOn(opt_melee_range) and Stance(druid_bear_form) and not target.InRange(mangle) or { Stance(druid_cat_form) or Stance(druid_claws_of_shirvallah) } and not target.InRange(shred)
    {
        if target.InRange(wild_charge) Spell(wild_charge)
        Texture(misc_arrowlup help=L(not_in_melee_range))
    }
}

AddFunction GuardianInterruptActions
{
    if CheckBoxOn(opt_interrupt) and not target.IsFriend() and target.IsInterruptible()
    {
        if target.InRange(skull_bash) Spell(skull_bash)
        if not target.Classification(worldboss)
        {
            if target.InRange(mighty_bash) Spell(mighty_bash)
            Spell(typhoon)
            if target.InRange(maim) Spell(maim)
            Spell(war_stomp)
        }
    }
}

### actions.default

AddFunction GuardianDefaultMainActions
{

    #frenzied_regeneration,if=!ticking&incoming_damage_6s%health.max>0.25+(2-charges_fractional)*0.15
    if not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(6) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 Spell(frenzied_regeneration)
    #pulverize,cycle_targets=1,if=buff.pulverize.down
    if BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
    #mangle
    Spell(mangle)
    #pulverize,cycle_targets=1,if=buff.pulverize.remains<gcd
    if BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
    #thrash_bear,if=active_enemies>=2
    Spell(thrash_bear)
    #pulverize,cycle_targets=1,if=buff.pulverize.remains<3.6
    if BuffRemaining(pulverize_buff) < 3.6 and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
    #thrash_bear,if=talent.pulverize.enabled&buff.pulverize.remains<3.6
    if Talent(pulverize_talent) and BuffRemaining(pulverize_buff) < 3.6 Spell(thrash_bear)
    #moonfire,cycle_targets=1,if=!ticking
    if not target.DebuffPresent(moonfire_debuff) Spell(moonfire)
    #moonfire,cycle_targets=1,if=remains<3.6
    Spell(swipe)
    if target.DebuffRemaining(moonfire_debuff) < 3.6 Spell(moonfire)
    #moonfire,cycle_targets=1,if=remains<7.2
    if target.DebuffRemaining(moonfire_debuff) < 7.2 Spell(moonfire)
    #moonfire
    Spell(moonfire)
}

AddFunction GuardianDefaultMainPostConditions
{
}

AddFunction GuardianDefaultShortCdActions
{
    #auto_attack
    GuardianGetInMeleeRange()
    #ironfur,if=buff.ironfur.downage.deficit<25
    if BuffExpires(ironfur_buff) or RageDeficit() < 25 Spell(ironfur)
    #barkskin
    Spell(barkskin)
    #bristling_fur,if=buff.ironfur.remains<2&rage<40
    if BuffRemaining(ironfur_buff) < 2 and Rage() < 40 Spell(bristling_fur)

    unless { BuffExpires(ironfur_buff) or RageDeficit() < 25 } and Spell(ironfur) or not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(6) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 and Spell(frenzied_regeneration) or BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(mangle) or BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize)
    {
        #lunar_beam
        Spell(lunar_beam)
    }
}

AddFunction GuardianDefaultShortCdPostConditions
{
    { BuffExpires(ironfur_buff) or RageDeficit() < 25 } and Spell(ironfur) or not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(6) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 and Spell(frenzied_regeneration) or BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(mangle) or BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Enemies() >= 2 and Spell(thrash_bear) or BuffRemaining(pulverize_buff) < 3.6 and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Talent(pulverize_talent) and BuffRemaining(pulverize_buff) < 3.6 and Spell(thrash_bear) or not target.DebuffPresent(moonfire_debuff) and Spell(moonfire) or target.DebuffRemaining(moonfire_debuff) < 3.6 and Spell(moonfire) or target.DebuffRemaining(moonfire_debuff) < 7.2 and Spell(moonfire) or Spell(moonfire)
}

AddFunction GuardianDefaultCdActions
{
    #skull_bash
    GuardianInterruptActions()
    #blood_fury
    Spell(blood_fury_apsp)
    #berserking
    Spell(berserking)
    #arcane_torrent
    Spell(arcane_torrent_energy)
    #use_item,slot=trinket2
    GuardianUseItemActions()

    unless { BuffExpires(ironfur_buff) or RageDeficit() < 25 } and Spell(ironfur) or not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(6) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 and Spell(frenzied_regeneration) or BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(mangle) or BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(lunar_beam)
    {
        #incarnation
        Spell(incarnation_son_of_ursoc)
    }
}

AddFunction GuardianDefaultCdPostConditions
{
    { BuffExpires(ironfur_buff) or RageDeficit() < 25 } and Spell(ironfur) or not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(6) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 and Spell(frenzied_regeneration) or BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(mangle) or BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Spell(lunar_beam) or Enemies() >= 2 and Spell(thrash_bear) or BuffRemaining(pulverize_buff) < 3.6 and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize) or Talent(pulverize_talent) and BuffRemaining(pulverize_buff) < 3.6 and Spell(thrash_bear) or not target.DebuffPresent(moonfire_debuff) and Spell(moonfire) or target.DebuffRemaining(moonfire_debuff) < 3.6 and Spell(moonfire) or target.DebuffRemaining(moonfire_debuff) < 7.2 and Spell(moonfire) or Spell(moonfire)
}

### actions.precombat

AddFunction GuardianPrecombatMainActions
{
    #flask,type=flask_of_the_seventh_demon
    #food,type=azshari_salad
    #bear_form
    Spell(bear_form)
}

AddFunction GuardianPrecombatMainPostConditions
{
}

AddFunction GuardianPrecombatShortCdActions
{
}

AddFunction GuardianPrecombatShortCdPostConditions
{
    Spell(bear_form)
}

AddFunction GuardianPrecombatCdActions
{
}

AddFunction GuardianPrecombatCdPostConditions
{
    Spell(bear_form)
}

### Guardian icons.

AddCheckBox(opt_druid_guardian_aoe L(AOE) default specialization=guardian)

AddIcon checkbox=!opt_druid_guardian_aoe enemies=1 help=shortcd specialization=guardian
{
    if not InCombat() GuardianPrecombatShortCdActions()
    unless not InCombat() and GuardianPrecombatShortCdPostConditions()
    {
        GuardianDefaultShortCdActions()
    }
}

AddIcon checkbox=opt_druid_guardian_aoe help=shortcd specialization=guardian
{
    if not InCombat() GuardianPrecombatShortCdActions()
    unless not InCombat() and GuardianPrecombatShortCdPostConditions()
    {
        GuardianDefaultShortCdActions()
    }
}

AddIcon enemies=1 help=main specialization=guardian
{
    if not InCombat() GuardianPrecombatMainActions()
    unless not InCombat() and GuardianPrecombatMainPostConditions()
    {
        GuardianDefaultMainActions()
    }
}

AddIcon checkbox=opt_druid_guardian_aoe help=aoe specialization=guardian
{
    if not InCombat() GuardianPrecombatMainActions()
    unless not InCombat() and GuardianPrecombatMainPostConditions()
    {
        GuardianDefaultMainActions()
    }
}

AddIcon checkbox=!opt_druid_guardian_aoe enemies=1 help=cd specialization=guardian
{
    if not InCombat() GuardianPrecombatCdActions()
    unless not InCombat() and GuardianPrecombatCdPostConditions()
    {
        GuardianDefaultCdActions()
    }
}

AddIcon checkbox=opt_druid_guardian_aoe help=cd specialization=guardian
{
    if not InCombat() GuardianPrecombatCdActions()
    unless not InCombat() and GuardianPrecombatCdPostConditions()
    {
        GuardianDefaultCdActions()
    }
}