703 Ovale thread

Face-rippin fun.

Moderator: Forum Administrators

ahoyahoy
Posts: 13
Joined: Wed Jan 11, 2017 7:07 pm

Re: 703 Ovale thread

Post by ahoyahoy » Thu Aug 23, 2018 4:05 pm

I'm not sure which is the better addon, Ovale or Hekili. I know Hekili has a package editor. Maybe Schmoo's script would run better in Hekili if someone translated it all over.

Cerberon
Posts: 6
Joined: Fri Jul 20, 2018 2:04 pm

Re: 703 Ovale thread

Post by Cerberon » Thu Aug 23, 2018 5:49 pm

Beatrix wrote:
Thu Aug 23, 2018 4:02 pm
Cerberon wrote:
Wed Aug 22, 2018 5:28 pm
Beatrix wrote:
Tue Aug 21, 2018 5:09 pm
Not only does it not show up but even when it did previously, I could not get past the compile errors. Does anyone have an updated script from Shmoo? In the meantime I am using Hekili, but I much prefer Ovale and Shmoo's. Especially since I took a fairishly long break and I am trying to relearn the rotation... :?
Latest version (8.0.9) works. Shmoo's script also works.
Maybe you forgot to add an enter at end of script.
There is the GUID error, but you can ignore that.
But is Shmoo's script the one that comes with Ovale or the one that was posted earlier in the thread. If someone has a link to a working script I would thank you very much
Shmoo's script is the one posted here earlier by Shmoo himself. the default one is crap. Although it could use an update. Hope Shmoo has a new script soon.

DopeSick
Posts: 33
Joined: Tue Dec 27, 2016 9:26 am

Re: 703 Ovale thread

Post by DopeSick » Mon Aug 27, 2018 2:23 pm

https://pastebin.com/L44FLT5f

that one works fine, the default ovale isnt working so hott right now.

Beatrix
Posts: 48
Joined: Wed Oct 27, 2010 12:44 pm

Re: 703 Ovale thread

Post by Beatrix » Mon Aug 27, 2018 3:41 pm

Thanks!

DopeSick
Posts: 33
Joined: Tue Dec 27, 2016 9:26 am

Re: 703 Ovale thread

Post by DopeSick » Thu Aug 30, 2018 1:25 pm

More feral changes coming. Rotation probably change, and talents...again.

J23
Posts: 12
Joined: Fri May 05, 2017 6:47 pm

Re: 703 Ovale thread

Post by J23 » Sun Sep 02, 2018 4:26 pm

ive been getting errors about enhanced rake? Plus it suggests Rip when Rip is at half duration.
Also is there any way to donate to schmoo?? I love his work.

DopeSick
Posts: 33
Joined: Tue Dec 27, 2016 9:26 am

Re: 703 Ovale thread

Post by DopeSick » Sun Sep 02, 2018 4:47 pm

Yeah the script is not working well right now. Changes just went live yesterday morning.

Oronare
Honored
Posts: 118
Joined: Thu Mar 10, 2011 7:24 am

Re: 703 Ovale thread

Post by Oronare » Thu Sep 06, 2018 5:57 am

Very odd with Sabertooth, keeps saying to refresh Rip rather than just Bite, even though Rip only snapshots with the TF/BT in the beginning and there shouldn't ever be a "bigger" rip available to apply.

ShmooDude
Exalted
Posts: 1055
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Thu Sep 06, 2018 1:08 pm

What I'm currently using:
Spoiler: show

Code: Select all

# ShmooDude Feral Script
#
# Options:
# Interrupt - Suggests use of interrupting abilities, including stuns/knockbacks on non-boss targets.
#
# Multiple-targets rotation - If this is disabled, the AoE icon is removed
#
# Use Prolonged Power Potion - Whether or not to suggest using Prolonged Power Potions
#
# Tiger's Fury multiplier prediction - Applies the Tiger's Fury multiplier if Tiger's Fury is ready.
#       e.g. If TF is being suggested, any Rip suggestions will assume you use TF first.
#
# Opener Dropdown Box:
#       Always - Will always use the opener
#              - Prowl, Rake, SR, AF, TF/Incarn, Shred if needed, Rip and a few other tweaks.
#       Use opener on worldbosses - Will use the opener on enemies classified as worldbosses (by Blizzard's classification function)
#       Never - Don't use the opener
# Brutal Slash Behavior Dropdown Box:
#       BrS: Prevent capping charges - Will use BrS at ~2.66 charges on single target
#       BrS: Only use when Tiger's Fury is up - Only suggests to use BrS when Tiger's Fury is up
#       BrS: Prevent capping AND only with TF - Will use BrS at ~2.66 charges on single target
#       BrS: Do not use on single target - Will only use BrS when at number of targets in other dropdown box
# Brutal Slash Targets Dropdown Box:
#       Suggests Brutal Slash as a high priority when the selected number of enemies are present
#       "Only count tagged enemies" in Ovale options (Advanced tab) will only count enemies you have hit recently
#
# Melee Range Dropdown Box:
#       Get in melee range without distance - Shows movement abilities or an arrow
#       Get in melee range with distance - Same as above with text estimating your distance away from the target
#       No get in melee range - Will not show movement abilities or an arrow
#
# Cooldowns/Main Action Dropdown Box:
#       Will put the abilities listed in the indicated icon (shortcd = leftmost; cd = rightmost)
#
# Self-heal Dropdown Box: (only non-BT builds)
#       Aggressively self-heal at XX% - Will prioritize self healing over DPS at the specified percent
#       Self-heal during free globals
#       Don't self-heal in combat

Include(ovale_common)
Include(ovale_druid_base_spells)
Include(ovale_druid_feral_spells)

AddCheckBox(opt_interrupt L(interrupt) default specialization=feral)
AddCheckBox(opt_use_consumables "Use Prolonged Power Potion" default specialization=feral)
AddCheckBox(opt_tigers_fury_multiplier_predict "Tiger's Fury multiplier prediction" default specialization=feral)

###############################################################################################
###   Helper Variables (Functions)
###############################################################################################

#variable,name=execute_percent,value=25+75*talent.sabertooth.enabled
AddFunction execute_percent
{
    25 + 75 * TalentPoints(sabertooth_talent)
}

AddFunction FeralUseItemActions
{
    Item(Trinket0Slot text=13 usable=1)
    Item(Trinket1Slot text=14 usable=1)
}

AddFunction FeralGetInMeleeRange
{
    if target.InRange(shred no)
    {
        #wild_charge
        if target.InRange(wild_charge) Spell(wild_charge)
        #dash,if=movement.distance>25&buff.displacer_beast.down&buff.wild_charge_movement.down
        if target.Distance(atLeast 25) Spell(dash)
        #not_in_melee_range_arrow
        Texture(misc_arrowlup help=L(not_in_melee_range))
    }
}

AddFunction FeralInterruptActions
{
    if CheckBoxOn(opt_interrupt) and not target.IsFriend() and target.Casting()
    {
        #skull_bash
        if target.InRange(skull_bash) and target.IsInterruptible() Spell(skull_bash)
        #mighty_bash
        if target.InRange(mighty_bash) and not target.Classification(worldboss) Spell(mighty_bash)
        #maim
        if target.InRange(maim) and not target.Classification(worldboss) Spell(maim)
        #war_stomp
        if target.Distance(less 5) and not target.Classification(worldboss) Spell(war_stomp)
        #typhoon
        if target.Distance(less 15) and not target.Classification(worldboss) Spell(typhoon)
    }
}

#Tiger's Fury multiplier prediction
AddFunction TFMultPred asvalue=1
{
    if CheckBoxOn(opt_tigers_fury_multiplier_predict)
        and BuffExpires(tigers_fury_buff)
        and SpellCooldown(tigers_fury equal 0)
        and FeralTigersFuryConditions() tigers_fury_buff_value
    1
}

###############################################################################################
###   actions.opener
###############################################################################################


AddListItem(opt_use_opener opener_always "Always use opener" specialization=feral)
AddListItem(opt_use_opener opener_bosses_only "Use opener on worldbosses" specialization=feral default)
AddListItem(opt_use_opener opener_never "Never use opener" specialization=feral)



AddFunction FeralOpenerMainActions
{
    #moonfire_cat,if=talent.lunar_inspiration.enabled&!ticking
    if Talent(lunar_inspiration_talent)
        and target.DebuffExpires(moonfire_cat_debuff)
        Spell(moonfire_cat)

    #savage_roar,if=buff.savage_roar.down&!dot.rip.ticking
    if BuffExpires(savage_roar_buff)
        and target.DebuffExpires(rip_debuff)
        Spell(savage_roar)

    #regrowth,if=talent.sabertooth.enabled&talent.bloodtalons.enabled&buff.bloodtalons.down&combo_points=5&!dot.rip.ticking
    if Talent(sabertooth_talent)
        and Talent(bloodtalons_talent)
        and BuffExpires(bloodtalons_buff)
        and ComboPoints(equal 5)
        and target.DebuffExpires(rip_debuff)
        and BuffExpires(predatory_swiftness_buff) 
        Spell(regrowth text=hardcast)
}

###############################################################################################
###   actions.default
###############################################################################################

AddFunction FeralProwlRakeConditions
{
    BuffPresent(prowl_buff)
            or BuffPresent(shadowmeld_buff)
            or BuffPresent(incarnation_king_of_the_jungle_buff)
                and BuffRemaining(incarnation_king_of_the_jungle_buff less 1)
                and not Talent(bloodtalons_talent)
}

AddFunction FeralSelfHealConditions
{
    BuffPresent(predatory_swiftness_buff) 
        and not Talent(bloodtalons_talent)
}

AddFunction FeralSelfHealConservativeConditions
{
    not List(opt_self_healing self_heal_never) 
        and HealthPercent(less 90) 
        and FeralSelfHealConditions() 
}

AddListItem(opt_self_healing self_heal_never "Do not self-heal in combat" specialization=feral default)
AddListItem(opt_self_healing self_heal_conservative "Self-heal during free globals" specialization=feral)
AddListItem(opt_self_healing self_heal_aggressive_80 "Aggressively self heal at 80%" specialization=feral)
AddListItem(opt_self_healing self_heal_aggressive_60 "Aggressively self heal at 60%" specialization=feral)
AddListItem(opt_self_healing self_heal_aggressive_40 "Aggressively self heal at 40%" specialization=feral)
AddListItem(opt_self_healing self_heal_aggressive_20 "Aggressively self heal at 20%" specialization=feral)

AddFunction FeralAggressiveSelfHealPercent
{
    if List(opt_self_healing self_heal_aggressive_80) HealthPercent(less 80)
    if List(opt_self_healing self_heal_aggressive_60) HealthPercent(less 60)
    if List(opt_self_healing self_heal_aggressive_40) HealthPercent(less 40)
    if List(opt_self_healing self_heal_aggressive_20) HealthPercent(less 20)
    False()
}

AddFunction FeralDefaultMainActions
{
    #cat_form,if=buff.cat_form.down
    if BuffExpires(cat_form_buff)
        Spell(cat_form)
        
    #rend_and_tear
    if target.DebuffRefreshable(rake_debuff) 
        and target.DebuffRefreshable(rip_debuff) 
        and target.TimeToDie(more 15)
        Spell(203242)

    #rake,if=buff.prowl.up|buff.shadowmeld.up|(buff.incarnation.up&buff.incarnation.remains<1&!talent.bloodtalons.enabled)
    if FeralProwlRakeConditions()
        Spell(rake pool_resource=1 text=Prowl)

    # MODIFICATION: List(opt_use_opener opener_always) or List(opt_use_opener opener_bosses_only) and target.Classification(worldboss)
    # REASON:       Allow the user to choose when to use the opener
    #call_action_list,name=opener,if=time<15
    if TimeInCombat(less 15)
        and { List(opt_use_opener opener_always)
            or List(opt_use_opener opener_bosses_only) and target.Classification(worldboss) }
        FeralOpenerMainActions()

    #call_action_list,name=cooldowns
    FeralCooldownsMainActions()

    #ferocious_bite,target_if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>10&target.health.pct<=variable.execute_percent
    if target.DebuffPresent(rip_debuff)
        and target.DebuffRemaining(rip_debuff less 3)
        and target.TimeToDie(more 10)
        and target.HealthPercent() <= execute_percent()
        Spell(ferocious_bite text=Refresh)

    #call_action_list,name=bloodtalons,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&buff.bloodtalons.down
    if FeralBloodtalonsActionsConditions()
        FeralBloodtalonsMainActions()

    #ferocious_bite,if=buff.apex_predator.up
    if BuffPresent(apex_predator_buff)
        Spell(ferocious_bite text=Apex)

    #regrowth,if=health.pct<20
    if FeralAggressiveSelfHealPercent()
        and FeralSelfHealConditions() 
        Spell(regrowth text=Heal)
    
    #run_action_list,name=finishers,if=combo_points>4
    if ComboPoints(equal 5)
        FeralFinishersMainActions()

    #run_action_list,name=generators
    if ComboPoints(less 5)
        FeralGeneratorsMainActions()
}

AddFunction FeralDefaultShortCdActions
{
    # MODIFICATION: Move above unless
    # REASON:       To show during opener
    #auto_attack
    FeralGetInMeleeRange()

    unless BuffExpires(cat_form_buff) and Spell(cat_form) or FeralProwlRakeConditions() and Spell(rake pool_resource=1)
    {
        #call_action_list,name=cooldowns
        FeralCooldownsShortCdActions()
    }
}

AddFunction FeralDefaultCdActions
{
    unless BuffExpires(cat_form_buff) and Spell(cat_form) or FeralProwlRakeConditions() and Spell(rake pool_resource=1)
    {
        # MODIFICATION: Interrupt
        # REASON:       No longer automatically added
        #skull_bash
        FeralInterruptActions()

        #call_action_list,name=cooldowns
        FeralCooldownsCdActions()
    }
}

###############################################################################################
###   actions.cooldowns
###############################################################################################

AddCheckBox(opt_shadowmeld_main_action "Shadowmeld as a main action" specialization=feral)

AddFunction FeralTigersFuryConditions
{
    EnergyDeficit(atLeast 50)
}

# MODIFICATION: target.TimeToDie(more 10)
# REASON:       Does not use Shadowmeld on targets with less than 10 seconds to live
# MODIFICATION: target.InRange(rake)
# REASON:       Cannot move after Shadowmeld so add range check before suggesting
# MODIFICATION: TFMultPred() > 1 when CheckBoxOn(opt_tigers_fury_multiplier_predict)
# REASON:       Make Shadowmeld show up if Tiger's Fury conditions are met
AddFunction FeralShadowmeldConditions
{
    ComboPoints(less 5)
        and Energy() >= PowerCost(rake)
        and target.DebuffPersistentMultiplier(rake_debuff less 2.1)
        and { BuffPresent(tigers_fury_buff) or TFMultPred() > 1 }
        and { not Talent(bloodtalons_talent) or BuffPresent(bloodtalons_buff) }
        and { not Talent(incarnation_talent) or SpellCooldown(incarnation_king_of_the_jungle more 18) }
        and BuffExpires(incarnation_king_of_the_jungle_buff)
        and target.TimeToDie(more 10)
        and target.InRange(rake)
}

AddFunction FeralCooldownsMainActions
{
    #feral_frenzy,if=combo_points=0&target.time_to_die>10
    if ComboPoints(equal 0)
        and target.TimeToDie(more 10)
    Spell(feral_frenzy)

    # MODIFICATION: CheckBoxOn(opt_shadowmeld_main_action)
    # REASON:       Allows player to choose for Shadowmeld suggestions to be in the main Icon
    #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(!talent.bloodtalons.enabled|buff.bloodtalons.up)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&buff.incarnation.down
    if FeralShadowmeldConditions()
        and CheckBoxOn(opt_shadowmeld_main_action)
    Spell(shadowmeld)
}

AddFunction FeralCooldownsShortCdActions
{
    # MODIFICATION: 0.5 to 0.8
    # REASON:       Players need more reaction time.
    #prowl,if=buff.incarnation.remains<0.5&buff.jungle_stalker.up
    if BuffRemaining(incarnation_king_of_the_jungle_buff less 0.8)
        and BuffPresent(jungle_stalker_buff)
    Spell(prowl)

    #tigers_fury,if=energy.deficit>=50
    if FeralTigersFuryConditions()
        Spell(tigers_fury)
}

AddFunction FeralCooldownsCdActions
{
    #incarnation,if=energy>=30
    if Energy(atLeast 30) 
        Spell(incarnation_king_of_the_jungle)

    #berserk,if=energy>=30&cooldown.tigers_fury.remains<5
    if Energy(atLeast 30) 
        and SpellCooldown(tigers_fury less 5)
    Spell(berserk)

    #berserking
    Spell(berserking)

    #potion,name=prolonged_power,if=target.time_to_die<65|(time_to_die<180&(buff.berserk.up|buff.incarnation.up|cooldown.incarnation.remains<25))
    if { target.TimeToDie(less 65)
            or target.TimeToDie(less 180)
                and { BuffPresent(berserk_buff)
                    or BuffPresent(incarnation_king_of_the_jungle_buff)
                    or SpellCooldown(incarnation_king_of_the_jungle less 25) } }
        and CheckBoxOn(opt_use_consumables)
        and target.Classification(worldboss)
    Item(prolonged_power_potion usable=1)

    #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(!talent.bloodtalons.enabled|buff.bloodtalons.up)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&buff.incarnation.down
    # MODIFICATION: CheckBoxOff(opt_shadowmeld_main_action)
    # REASON:       Allows player to choose via checkbox whether to add Shadowmeld to the cd Icon
    if FeralShadowmeldConditions()
        and CheckBoxOff(opt_shadowmeld_main_action)
    Spell(shadowmeld)

    #use_items
    FeralUseItemActions()
}

###############################################################################################
###   actions.bloodtalons
###############################################################################################

AddFunction FeralBloodtalonsActionsConditions
{
    Talent(bloodtalons_talent)
        and BuffPresent(predatory_swiftness_buff)
        and BuffExpires(bloodtalons_buff)
}

AddFunction FeralBloodtalonsMainActions
{
    #regrowth,if=combo_points=4&dot.rake.remains<4
    if ComboPoints(equal 4)
        and target.DebuffRemaining(rake_debuff less 4)
        Spell(regrowth)

    #regrowth,if=combo_points=5
    if ComboPoints(equal 5)
        Spell(regrowth)

    #regrowth,if=buff.apex_predator.up
    if BuffPresent(apex_predator_buff)
        Spell(regrowth text=Apex)

    #regrowth,if=buff.predatory_swiftness.remains<1.7
    if BuffRemaining(predatory_swiftness_buff less 1.7)
        Spell(regrowth text=expiring)
}

###############################################################################################
###   actions.finishers
###############################################################################################

AddFunction Spell_savage_roar
{
    if TimeToEnergyFor(savage_roar more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(savage_roar pool_resource=1)
}

AddFunction Spell_rip
{
    if TimeToEnergyFor(rip more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(rip)
}

AddFunction Spell_ferocious_bite
{
    if TimeToEnergyFor(ferocious_bite more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(ferocious_bite)
}

AddFunction Spell_ferocious_bite_max
{
    if TimeToEnergyFor(ferocious_bite more 0) 
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(ferocious_bite max=1)
}

AddFunction FeralFinishersMainActions
{
    #pool_resource,for_next=1
    #savage_roar,if=buff.savage_roar.down
    if BuffExpires(savage_roar_buff)
        Spell_savage_roar()

    # MODIFICATION: TFMultPred when CheckBoxOn(opt_tigers_fury_multiplier_predict)
    # REASON:       When Tiger's Fury is suggested, treat Rip as if it is already up even if it hasn't been cast yet.
    #pool_resource,for_next=1
    #rip,target_if=(!ticking|(remains<=duration*0.3&target.health.pct>variable.execute_percent)|(remains<=duration*0.85&(persistent_multiplier>dot.rip.pmultiplier|(buff.tigers_fury.up&buff.tigers_fury.remains<1.5&target.health.pct>variable.execute_percent&equipped.behemoth_headdress))))&(target.time_to_die>4*tick_time*spell_targets.thrash_cat+remains|target.time_to_die>duration+remains)
    if { target.DebuffExpires(rip_debuff)
        or target.DebuffRemaining(rip_debuff) <= BaseDuration(rip_debuff) * 0.3
            and target.HealthPercent() > execute_percent()
        or target.DebuffRemaining(rip_debuff) <= BaseDuration(rip_debuff) * 0.85
            and TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) }
        and { target.TimeToDie() > 4 * target.TickTime(rip_debuff) * Enemies() + target.DebuffRemaining(rip_debuff)
            or target.TimeToDie() > BaseDuration(rip_debuff) + target.DebuffRemaining(rip_debuff) }
        Spell_rip()

    #pool_resource,for_next=1
    #savage_roar,if=buff.savage_roar.remains<10.8
    if BuffRemaining(savage_roar_buff less 10.8)
        Spell_savage_roar()

    #ferocious_bite,if=spell_targets.thrash_cat>2
    if Enemies(more 2)
        Spell_ferocious_bite()

    #ferocious_bite,max_energy=1
    #if Energy() >= EnergyCost(ferocious_bite max=1)
        Spell_ferocious_bite_max()
}

###############################################################################################
###   actions.generators
###############################################################################################

AddFunction Spell_brutal_slash
{
    if BuffPresent(clearcasting_buff) Spell(brutal_slash text=CC)
    if TimeToEnergyFor(brutal_slash more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(brutal_slash pool_resource=1)
}

AddFunction Spell_thrash_cat
{
    if BuffPresent(clearcasting_buff) Spell(thrash_cat text=CC)
    if TimeToEnergyFor(thrash_cat more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(thrash_cat pool_resource=1)
}

AddFunction Spell_swipe_cat
{
    if BuffPresent(clearcasting_buff) Spell(swipe_cat text=CC)
    if TimeToEnergyFor(swipe_cat more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(swipe_cat pool_resource=1)
}

AddFunction Spell_rake
{
    if TimeToEnergyFor(rake more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(rake pool_resource=1)
}

AddFunction Spell_moonfire_cat
{
    if TimeToEnergyFor(moonfire_cat more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(moonfire_cat pool_resource=1)
}

AddFunction Spell_shred
{
    if BuffPresent(clearcasting_buff) Spell(shred text=CC)
    if TimeToEnergyFor(shred more 0.75)
        and FeralSelfHealConservativeConditions() 
        Spell(regrowth text=Heal)
    Spell(shred pool_resource=1)
}


AddListItem(opt_brutal_slash_behavior brs_01_prevent_capping "BrS: Prevent capping charges" default specialization=feral)
AddListItem(opt_brutal_slash_behavior brs_02_only_tigers_fury "BrS: Use only when Tiger's Fury is up" specialization=feral)
AddListItem(opt_brutal_slash_behavior brs_03_both "BrS: Prevent capping AND only with TF" specialization=feral)
AddListItem(opt_brutal_slash_behavior brs_04_neither "BrS: Do not use on single target" specialization=feral)

AddListItem(opt_desired_targets desired_targets_01 "Brutal Slash at 1 target" specialization=feral)
AddListItem(opt_desired_targets desired_targets_02 "Brutal Slash at 2 targets" specialization=feral)
AddListItem(opt_desired_targets desired_targets_03 "Brutal Slash at 3 targets" specialization=feral default)
AddListItem(opt_desired_targets desired_targets_04 "Brutal Slash at 4 targets" specialization=feral)
AddListItem(opt_desired_targets desired_targets_05 "Brutal Slash at 5 targets" specialization=feral)
AddListItem(opt_desired_targets desired_targets_06 "Brutal Slash at 6 targets" specialization=feral)

AddFunction BrutalSlashDesiredTargets asvalue=1
{
    if List(opt_desired_targets desired_targets_01) 1
    if List(opt_desired_targets desired_targets_02) 2
    if List(opt_desired_targets desired_targets_03) 3
    if List(opt_desired_targets desired_targets_04) 4
    if List(opt_desired_targets desired_targets_05) 5
    6
}

AddFunction FeralRakeTTD
{
    target.TimeToDie() > target.TickTime(rake_debuff) * Enemies() + target.DebuffRemaining(rake_debuff)
        or target.TimeToDie() > BaseDuration(rake_debuff) + target.DebuffRemaining(rake_debuff)
}

AddCheckBox(opt_use_thrash "Always use Thrash" specialization=feral)

AddFunction FeralGeneratorsMainActions
{
    # MODIFICATION:    and { BuffPresent(tigers_fury) and { List(opt_brutal_slash_behavior brs_02_only_tigers_fury) or List(opt_brutal_slash_behavior brs_03_both) }
    # REASON: Only use Brutal Slash if Tiger's Fury is up
    #brutal_slash,if=spell_targets.brutal_slash>desired_targets
    if Enemies() >= BrutalSlashDesiredTargets() 
        and { BuffPresent(tigers_fury) 
            or List(opt_brutal_slash_behavior brs_01_prevent_capping) 
            or List(opt_brutal_slash_behavior brs_04_neither) }
        Spell_brutal_slash()
        
    #pool_resource,for_next=1
    #thrash_cat,if=spell_targets.thrash_cat>2&(refreshable|(spell_targets.thrash_cat>6+buff.incarnation.up&talent.brutal_slash.enabled))
    if Enemies(more 4)
        and { target.Refreshable(thrash_cat_debuff)
            or Enemies() > 6 + BuffPresent(incarnation_king_of_the_jungle_buff)
                and Talent(brutal_slash_talent) }
        Spell_thrash_cat()

    #pool_resource,for_next=1
    #rake,target_if=(!ticking|(!talent.bloodtalons.enabled&remains<duration*0.3)|(talent.bloodtalons.enabled&buff.bloodtalons.up&remains<=7&persistent_multiplier>dot.rake.pmultiplier*0.85))&(target.time_to_die>tick_time*spell_targets.thrash_cat+remains|target.time_to_die>duration+remains)
    if { target.DebuffExpires(rake_debuff) 
            or Talent(bloodtalons_talent no) 
                and target.DebuffRefreshable(rake_debuff)
            or Talent(bloodtalons_talent)
                and BuffPresent(bloodtalons_buff)
                and target.DebuffRemaining(rake_debuff less 7)
                and PersistentMultiplier(rake_debuff) > target.DebuffPersistentMultiplier(rake_debuff) * 0.85
        }
        and FeralRakeTTD()
        Spell_rake()

    # MODIFICATION: List(opt_brutal_slash_behavior brs_01_prevent_capping) or List(opt_brutal_slash_behavior brs_03_both)
    # REASON:       Prevents capping of charges
    #brutal_slash,if=buff.tigers_fury.up&(raid_event.adds.in>(1+max_charges-charges_fractional)*recharge_time)
    if Charges(brutal_slash count=0 more 2.66)
        and { List(opt_brutal_slash_behavior brs_01_prevent_capping)
            or List(opt_brutal_slash_behavior brs_03_both) }
        Spell_brutal_slash()

    #moonfire_cat,target_if=refreshable&target.time_to_die>14+remains
    if Talent(lunar_inspiration_talent) 
        and target.Refreshable(moonfire_cat_debuff)
        and target.TimeToDie() > TickTime(moonfire_cat_debuff) * 2 + target.DebuffRemaining(moonfire_cat_debuff)
        Spell_moonfire_cat()
        
    #pool_resource,for_next=1
    #thrash_cat,if=spell_targets.thrash_cat>!equipped.luffa_wrappings&(refreshable|(spell_targets.thrash_cat>1+buff.incarnation.up+!equipped.luffa_wrappings&talent.brutal_slash.enabled))
    if Enemies() > HasEquippedItem(luffa_wrappings no) - CheckBoxOn(opt_use_thrash)
        and { target.Refreshable(thrash_cat_debuff)
            or Enemies() > 1 + BuffPresent(incarnation_king_of_the_jungle_buff) + HasEquippedItem(luffa_wrappings no)
                and Talent(brutal_slash_talent)
            }
        Spell_thrash_cat()

    #pool_resource,for_next=1
    #swipe_cat,if=spell_targets.swipe_cat>1+buff.incarnation.up
    if Enemies() > 1 + BuffPresent(incarnation_king_of_the_jungle_buff)
        Spell_swipe_cat()

    # MODIFICATION: or not FeralRakeTTD()
    # REASON:       So Shred shows on dying targets that do not have Rake on them
    #shred,if=dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen|buff.clearcasting.react
    if target.DebuffRemaining(rake_debuff) > { PowerCost(shred) + PowerCost(rake) - Energy() } / EnergyRegenRate()
            or BuffPresent(clearcasting_buff)
            or not FeralRakeTTD()
        Spell_shred()
}

###############################################################################################
###   actions.precombat
###############################################################################################

# MODIFICATION: and BuffRemaining(bloodtalons_buff less 20) and BuffExpires(prowl_buff)
# REASON: Only suggest Regrowth out of stealth and if there's less than 20 seconds remaining
AddFunction FeralPrecombatRegrowthConditions
{
    Talent(bloodtalons_talent)
        and BuffRemaining(bloodtalons_buff less 20)
        and BuffExpires(prowl_buff)
}

AddFunction FeralPrecombatMainActions
{
    #flask
    #food
    #augmentation
    # MODIFICATION: FeralPrecombatRegrowthConditions()
    # REASON: Only suggest Regrowth out of stealth and if there's less than 20 seconds remaining
    #regrowth,if=talent.bloodtalons.enabled
    if FeralPrecombatRegrowthConditions()
        Spell(regrowth)
    #regrowth,if=health.pct<90
    if HealthPercent(less 90) Spell(regrowth text=Heal)
    #cat_form
    Spell(cat_form)
    # MODIFICATION: Precombat Savage Roar
    # REASON:       To refresh SR between pulls
    #savage_roar
    if BuffRefreshable(savage_roar_buff) Spell(savage_roar)
}

AddFunction FeralPrecombatShortCdActions
{
    # MODIFICATION: FeralPrecombatRegrowthConditions()
    # REASON: Only suggest Regrowth out of stealth and if there's less than 20 seconds remaining
    unless FeralPrecombatRegrowthConditions() and Spell(regrowth)
    {
        #prowl
        Spell(prowl)
    }
}

AddFunction FeralPrecombatCdActions
{
    # MODIFICATION: FeralPrecombatRegrowthConditions()
    # REASON: Only suggest Regrowth out of stealth and if there's less than 20 seconds remaining
    unless FeralPrecombatRegrowthConditions() and Spell(regrowth)
    {
        #snapshot_stats
        #potion
        if CheckBoxOn(opt_use_consumables) and target.Classification(worldboss) Item(prolonged_power_potion usable=1 text=Prepot)
    }
}

###############################################################################################
###   Feral icons.
###############################################################################################

AddCheckBox(opt_druid_feral_aoe L(AOE) default specialization=feral)

AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=shortcd specialization=feral
{
    unless InCombat()
        FeralPrecombatShortCdActions()

    FeralDefaultShortCdActions()
}

AddIcon checkbox=opt_druid_feral_aoe help=shortcd specialization=feral
{
    unless InCombat()
        FeralPrecombatShortCdActions()

    FeralDefaultShortCdActions()
}

AddIcon enemies=1 help=main specialization=feral
{
    unless InCombat()
        FeralPrecombatMainActions()

    FeralDefaultMainActions()
}

AddIcon checkbox=opt_druid_feral_aoe help=aoe specialization=feral
{
    unless InCombat()
        FeralPrecombatMainActions()

    FeralDefaultMainActions()
}

AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=cd specialization=feral
{
    unless InCombat()
        FeralPrecombatCdActions()

    FeralDefaultCdActions()
}

AddIcon checkbox=opt_druid_feral_aoe help=cd specialization=feral
{
    unless InCombat()
        FeralPrecombatCdActions()

    FeralDefaultCdActions()
}

### Required symbols
# dash
# cat_form_buff
# cat_form
# rake
# prowl_buff
# shadowmeld_buff
# incarnation_king_of_the_jungle_buff
# bloodtalons_talent
# ferocious_bite
# rip_debuff
# predatory_swiftness_buff
# bloodtalons_buff
# apex_predator_buff
# regrowth
# rake_debuff
# prowl
# jungle_stalker_buff
# incarnation_king_of_the_jungle
# berserk
# tigers_fury
# berserking
# prolonged_power_potion
# berserk_buff
# feral_frenzy
# shadowmeld
# tigers_fury_buff
# incarnation_talent
# savage_roar
# savage_roar_buff
# rip
# brutal_slash
# thrash_cat
# thrash_cat_debuff
# brutal_slash_talent
# moonfire_cat
# moonfire_cat_debuff
# luffa_wrappings
# swipe_cat
# shred
# clearcasting_buff
# lunar_inspiration_talent
# sabertooth_talent
# wild_charge
# wild_charge_bear
# wild_charge_cat
# skull_bash
# mighty_bash
# maim
# war_stomp
# typhoon
 
Will hopefully have more time to work on it in the coming days
Last edited by ShmooDude on Thu Sep 06, 2018 1:35 pm, edited 1 time in total.

Wellwow
Honored
Posts: 84
Joined: Tue May 28, 2013 9:13 am

Re: 703 Ovale thread

Post by Wellwow » Thu Sep 06, 2018 1:18 pm

I've tried in 3 different browsers, I can't get the spoiler text to show. Click "SHOW" and nothing happens. Can someone put it in pastebin?

As always, thanks Shmoo.

ShmooDude
Exalted
Posts: 1055
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Thu Sep 06, 2018 1:37 pm

Yeah... not sure what's up with the spoiler: https://pastebin.com/S9HTx4S5

Oronare
Honored
Posts: 118
Joined: Thu Mar 10, 2011 7:24 am

Re: 703 Ovale thread

Post by Oronare » Thu Sep 06, 2018 3:02 pm

The previous script from a few weeks ago worked okay, on normal I got some 99% logs, a 98%. Overall 96%. Still fairly low dps though which goes to show how bad Feral dps is right now. Will test this one tonight.

It seems like the difference in damage between sotf and JW is minimal, so I might test sotf a bit.
Last edited by Oronare on Tue Sep 11, 2018 8:05 am, edited 1 time in total.

Tristam
Posts: 4
Joined: Tue Aug 30, 2016 9:25 pm

Re: 703 Ovale thread

Post by Tristam » Thu Sep 06, 2018 10:11 pm

ShmooDude wrote:
Thu Sep 06, 2018 1:37 pm
Yeah... not sure what's up with the spoiler: https://pastebin.com/S9HTx4S5
Getting an OvaleCompile warning with this one: lunar_empowerment_buff is not a parameter keyword in 'lunar_strike' spell_aura_list

Warelder
Posts: 32
Joined: Sat Feb 18, 2017 2:48 am

Re: 703 Ovale thread

Post by Warelder » Thu Sep 06, 2018 10:50 pm

Why is my Ovale "incompatible"?

Cerberon
Posts: 6
Joined: Fri Jul 20, 2018 2:04 pm

Re: 703 Ovale thread

Post by Cerberon » Fri Sep 07, 2018 9:56 pm

Tristam wrote:
Thu Sep 06, 2018 10:11 pm
ShmooDude wrote:
Thu Sep 06, 2018 1:37 pm
Yeah... not sure what's up with the spoiler: https://pastebin.com/S9HTx4S5
Getting an OvaleCompile warning with this one: lunar_empowerment_buff is not a parameter keyword in 'lunar_strike' spell_aura_list
Script doesn't have any boomkin stuff in it.

Wellwow
Honored
Posts: 84
Joined: Tue May 28, 2013 9:13 am

Re: 703 Ovale thread

Post by Wellwow » Sat Sep 08, 2018 11:00 am

Cerberon wrote:
Fri Sep 07, 2018 9:56 pm
Script doesn't have any boomkin stuff in it.
The script doesn't reference lunar_strike but I started getting the warning, repeatedly, when I pasted in the new script too.

ShmooDude
Exalted
Posts: 1055
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Sat Sep 08, 2018 2:42 pm

Comment out or delete

Code: Select all

SpellAddBuff(lunar_strike lunar_empowerment_buff=0)
from ovale_druid_spells.lua to fix the error

User avatar
Arthaei
Honored
Posts: 64
Joined: Tue Mar 15, 2011 12:37 pm
Location: Wales, UK

Re: 703 Ovale thread

Post by Arthaei » Sun Sep 09, 2018 9:01 am

Shmoo, is there a way for the script to stop suggesting hard-casting regrowth when there's no PS proc?

Secondly, can you tell if there's a dps gain to spam moonfire at the start of each fight to reach 5 cp's to get Rip up quicker? the default ovale script is now suggesting this, once the 5 cp's are reached it does default back to using Shred, so just wanted to get your opinion on it.

Thanks!
"Many druids died to bring us this information"

ShmooDude
Exalted
Posts: 1055
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Sun Sep 09, 2018 4:09 pm

I'm sure it is, I just haven't had the time to update it yet.

Tristam
Posts: 4
Joined: Tue Aug 30, 2016 9:25 pm

Re: 703 Ovale thread

Post by Tristam » Sun Sep 09, 2018 4:11 pm

Arthaei wrote:
Sun Sep 09, 2018 9:01 am
Shmoo, is there a way for the script to stop suggesting hard-casting regrowth when there's no PS proc?

Secondly, can you tell if there's a dps gain to spam moonfire at the start of each fight to reach 5 cp's to get Rip up quicker? the default ovale script is now suggesting this, once the 5 cp's are reached it does default back to using Shred, so just wanted to get your opinion on it.

Thanks!
Was just coming here to ask about the first point as well. I've found myself popping out of form to cast regrowth all too often. Finally figure out that it was the script. The very first regrowth after the fight starts, in particular, always seems to be a hard cast suggestion.

Devín
Posts: 8
Joined: Sun Feb 23, 2014 7:08 pm

Re: 703 Ovale thread

Post by Devín » Sun Sep 09, 2018 4:39 pm

A little known macro will prevent you from shifting if you try to cast regrowth without PS up:

#showtooltip Regrowth
/run SetCVar("autoUnshift",0)
/cast Regrowth
/run SetCVar("autoUnshift",1)

User avatar
Arthaei
Honored
Posts: 64
Joined: Tue Mar 15, 2011 12:37 pm
Location: Wales, UK

Re: 703 Ovale thread

Post by Arthaei » Mon Sep 10, 2018 3:39 am

Thanks Shmoo, I look forward to an update!

@Devin thanks, I used this ages ago but it also stops you from hard casting if you actually want to being it's only problem, still it's a good fix for the time being.

The default script isn't any better and suggests the same hard casts.
"Many druids died to bring us this information"

ShmooDude
Exalted
Posts: 1055
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Tue Sep 11, 2018 4:34 am

That's because it's worth it to hardcast on Sabertooth. That said, it should probably be highly restricted, like on things that are gonna take more than a minute or so to die

Bashui
Posts: 5
Joined: Tue Feb 21, 2017 3:04 pm

Re: 703 Ovale thread

Post by Bashui » Thu Sep 13, 2018 12:50 pm

I had to take out the code that checks for the rip damage multiplier as it suggests Rip too often when I should Bite with SbT. I don't know if ovale has the option but yeah, it would be good to take out the hard cast regrowth if your target is not a boss or something.

Wellwow
Honored
Posts: 84
Joined: Tue May 28, 2013 9:13 am

Re: 703 Ovale thread

Post by Wellwow » Thu Sep 13, 2018 1:02 pm

I was hating using sabertooth last night because of that hardcast RG so I went looking around today and found on the feral discord this guide to openers. For Sabertooth, it recommends opening with a BT buffed rake, then moonfire to 5 CPs since it doesn't use up the second BT buff, then rip. I hope it is a dps gain because I love not leaving form. Check it out for what to do if not using LI & Sabertooth.

Precombat
- Regrowth
- Potion
- Berserk
Combat start
- TF
- Rake (BT buffed)
- MF to 5 CP (saving BT buff)
- Rip

But yeah, the ovale script is recommending overwriting rip's that are stronger, at least as the snapshot WA reports.

Post Reply