Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### ShmooDude Feral and Guardian script
- ###
- ### Options:
- # Interrupt - Suggests use of interuptting abilities, including stuns/knockbacks on non-boss targets.
- #
- # Not in Melee Range - Suggests movement abilities if available or a forward arrow if you're out of range.
- #
- # Ashamane's Frenzy as main action - Puts the Ashamane's Frenzy suggestion in the main action box.
- # Requires TimeToDie of 20 seconds or more
- # If this is off, Ovale will not suggest Healing Touch at 2 Combo Points.
- # Shadowmeld as main action - Puts the Shadowmeld suggestion in the main action box.
- # Requires TimeToDie of 15 seconds or more
- # Suggested off except on (raid) bosses.
- # 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.
- # Only suggest Brutal Slash when Tiger's Fury is up
- # Good for Mythic+ to get the most damage out of your charges.
- # The setting below will ignore SR/TF constraints and suggest BS at 3 charges regardless.
- # Always use BS at 3 charges - Will suggest Brutal Slash if you are about to reach max charges.
- # Advantage: Helps not waste charges.
- # Disadvantage: Will probably not have 3 charges when AoE for the encounter shows up.
- # Min targets to suggest Brutal Slash - Minimum number of targets to suggest using Brutal Slash.
- # This will use all available Brutal Slash charges.
- # Following setting will affect when these are used.
- # Rip/Savage Roar at x seconds - Refresh dots/buffs within a given window
- # Refreshing earlier allows for more flexability and probably uptimes, Refreshing closer to pandemic could increase dps slightly
- # Try to sync Ashamane's with TF - Allow Ashamane's only if TF is active, or on cooldown for more than 5 seconds
- # Maybe not a dps increase
- # Suggest Trinket use on Cooldown - instead of syncing with damage buffs
- # Good for trinkets that don't get buffed (Kil'jaeden's for instance)
- # Suggest Maul instead of Ironfur
- # Bad for mitigation, good for dps
- # Conditions for Single Target Thrash - Conditions for suggesting Thrash during the single target rotation
- # Experiment to find the best dps for your gear
- # Suggest Shred at 5 cp with Incarn and 4pc - When Incarnation is active, spam Shred even at 5cp's instead of biting.
- # Dps increase
- # Suggest Maim with Fiery Red Maimers - Suggest Maim when using Fiery Red Maimers
- # Might not be worth the complication....
- Include(ovale_common)
- Include(ovale_trinkets_mop)
- Include(ovale_trinkets_wod)
- Include(ovale_druid_spells)
- # Temporary Defines till next Ovale version
- Define(ashamanes_energy_buff 210583)
- SpellInfo(ashamanes_energy_buff duration=3)
- SpellAddBuff(tigers_fury ashamanes_energy_buff=1)
- Define(scent_of_blood_buff 210664)
- SpellInfo(scent_of_blood_buff duration=4)
- SpellAddBuff(thrash_cat scent_of_blood_buff=1)
- Define(luffa_wrappings 137056)
- Define(fiery_red_maimers_buff 236757)
- Define(fiery_red_maimers 144354)
- AddCheckBox(opt_sync_af_tf "Try to sync Ashamane's with TF" specialization=feral)
- AddCheckBox(opt_maimers "Suggest Maim with Fiery Red Maimers" specialization=feral)
- AddCheckBox(opt_shred_spam "Suggest Shred at 5 cp with Incarn and 4pc" specialization=feral default)
- AddCheckBox(opt_trinket_on_cd "Suggest trinket use on cooldown" specialization=feral)
- AddCheckBox(opt_pool_at_three "Pool at 3 CPs with The Wildshaper's Clutch" specialization=feral)
- AddCheckBox(opt_interrupt L(interrupt) default specialization=feral)
- AddCheckBox(opt_melee_range L(not_in_melee_range) specialization=feral)
- AddCheckBox(opt_druid_feral_aoe L(AOE) default specialization=feral)
- AddCheckBox(opt_ashamanes_frenzy_main_action "Ashamane's Frenzy as a main action" default specialization=feral)
- AddCheckBox(opt_shadowmeld_main_action "Shadowmeld as a main action" specialization=feral)
- AddCheckBox(opt_tigers_fury_multiplier_predict "Tiger's Fury multiplier prediction" default specialization=feral)
- AddCheckBox(opt_brutal_slash_use_at_three_always "Always use BrS at 3 charges" specialization=feral)
- AddCheckBox(opt_burtal_slash_use_with_tigers_fury "Only suggest BrS when TF is up" specialization=feral)
- AddListItem(opt_desired_targets dt_1 "BrS at 1 targets (bad)" specialization=feral)
- AddListItem(opt_desired_targets dt_2 "BrS at 2 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_3 "BrS at 3 targets" specialization=feral default)
- AddListItem(opt_desired_targets dt_4 "BrS at 4 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_5 "BrS at 5 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_6 "BrS at 6 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_7 "BrS at 7 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_8 "BrS at 8 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_9 "BrS at 9 targets" specialization=feral)
- AddListItem(opt_rip_timer ript_1 "Rip at pandemic" specialization=feral)
- AddListItem(opt_rip_timer ript_5 "Rip at 5 seconds" specialization=feral)
- AddListItem(opt_rip_timer ript_6 "Rip at 6 seconds" specialization=feral)
- AddListItem(opt_rip_timer ript_7 "Rip at 7 seconds" specialization=feral)
- AddListItem(opt_rip_timer ript_8 "Rip at 8 seconds" specialization=feral)
- AddListItem(opt_rip_timer ript_9 "Rip at 9 seconds (default)" specialization=feral default)
- AddListItem(opt_savage_roar_timer srt_1 "Savage Roar at pandemic" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_8 "Savage Roar at 8 seconds" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_9 "Savage Roar at 9 seconds" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_10 "Savage Roar at 10 seconds" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_11 "Savage Roar at 11 seconds" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_12 "Savage Roar at 12 seconds" specialization=feral)
- AddListItem(opt_savage_roar_timer srt_13 "Savage Roar at 13 seconds (default)" specialization=feral default)
- AddListItem(opt_st_thrash stt_1 "No st Thrash" specialization=feral)
- AddListItem(opt_st_thrash stt_2 "st Thrash with Luffas/Ooc" specialization=feral default)
- AddListItem(opt_st_thrash stt_3 "st Thrash with T19 4pc/Ooc" specialization=feral)
- AddListItem(opt_st_thrash stt_4 "st Thrash only with both" specialization=feral)
- AddListItem(opt_st_thrash stt_5 "st Thrash Ooc only (bad)" specialization=feral)
- AddFunction RipTimer asvalue=1
- {
- if List(opt_rip_timer ript_1) BaseDuration(rip_debuff) * 0.3
- if List(opt_rip_timer ript_5) 5
- if List(opt_rip_timer ript_6) 6
- if List(opt_rip_timer ript_7) 7
- if List(opt_rip_timer ript_8) 8
- if List(opt_rip_timer ript_9) 9
- }
- AddFunction SavageRoarTimer asvalue=1
- {
- if List(opt_savage_roar_timer srt_1) 7.2
- if List(opt_savage_roar_timer srt_8) 8
- if List(opt_savage_roar_timer srt_9) 9
- if List(opt_savage_roar_timer srt_10) 10
- if List(opt_savage_roar_timer srt_11) 11
- if List(opt_savage_roar_timer srt_12) 12
- if List(opt_savage_roar_timer srt_13) 13
- }
- AddFunction FeralUseItemActions
- {
- Item(Trinket0Slot usable=1)
- Item(Trinket1Slot usable=1)
- }
- AddFunction FeralInterruptActions
- {
- 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)
- }
- }
- }
- AddFunction FeralGetInMeleeRange
- {
- if CheckBoxOn(opt_melee_range) and target.InRange(shred no)
- {
- #wild_charge
- if target.InRange(wild_charge) Spell(wild_charge)
- #displacer_beast,if=movement.distance>25
- if target.distance() > 25 Spell(displacer_beast)
- #dash,if=movement.distance>25&buff.displacer_beast.down&buff.wild_charge_movement.down
- if target.distance() > 25 and BuffExpires(displacer_beast_buff) Spell(dash)
- Texture(misc_arrowlup help=L(not_in_melee_range))
- }
- }
- AddFunction BrutalSlashDesiredTargets asvalue=1
- {
- if List(opt_desired_targets dt_1) 1
- if List(opt_desired_targets dt_2) 2
- if List(opt_desired_targets dt_3) 3
- if List(opt_desired_targets dt_4) 4
- if List(opt_desired_targets dt_5) 5
- if List(opt_desired_targets dt_6) 6
- if List(opt_desired_targets dt_7) 7
- if List(opt_desired_targets dt_8) 8
- if List(opt_desired_targets dt_9) 9
- }
- AddFunction TFMultPred asvalue=1
- {
- if CheckBoxOn(opt_tigers_fury_multiplier_predict)
- and SpellCooldown(tigers_fury) <= 0
- and BuffExpires(clearcasting_buff)
- and EnergyDeficit() >= 60
- or EnergyDeficit() >= 80
- or Talent(sabertooth_talent)
- and target.DebuffExpires(rip_debuff)
- and ComboPoints() == 5
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) } 1.15
- 1
- }
- #variable,name=energy_pooling,value=(energy.time_to_max<1|buff.clearcasting.react|buff.berserk.up|buff.incarnation.up|buff.ashamanes_energy.up|cooldown.tigers_fury.remains<3|talent.soul_of_the_forest.enabled)
- AddFunction energy_pooling
- {
- TimeToMaxEnergy() < 1
- or BuffPresent(clearcasting_buff)
- or BuffPresent(berserk_cat_buff)
- or BuffPresent(incarnation_king_of_the_jungle_buff)
- or BuffPresent(ashamanes_energy_buff)
- or SpellCooldown(tigers_fury) < 3
- or Talent(soul_of_the_forest_talent)
- }
- #variable,name=finisher_conditions,value=combo_points=5&(energy.time_to_max<1|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3|talent.soul_of_the_forest.enabled|!dot.rip.ticking|(dot.rake.remains<1.5&spell_targets.swipe_cat<6))
- AddFunction finisher_conditions
- {
- ComboPoints() == 5
- and { TimeToMaxEnergy() < 1
- or BuffPresent(berserk_cat_buff)
- or BuffPresent(incarnation_king_of_the_jungle_buff)
- or BuffPresent(elunes_guidance_buff)
- or SpellCooldown(tigers_fury) < 3
- or Talent(soul_of_the_forest_talent)
- or target.DebuffExpires(rip_debuff)
- or target.DebuffRemaining(rake_debuff) < 1.5 and Enemies() < 6 }
- }
- #rake,if=buff.prowl.up|buff.shadowmeld.up
- AddFunction Rake_Prowl
- {
- BuffPresent(prowl_buff)
- or BuffPresent(shadowmeld_buff)
- }
- #berserk,if=buff.ashamanes_energy.up
- #incarnation,if=buff.ashamanes_energy.up
- AddFunction Berserk
- {
- BuffPresent(ashamanes_energy_buff) or TigersFury() and SpellCooldown(tigers_fury) <= 0
- }
- #tigers_fury,if=(!buff.clearcasting.react&energy.deficit>=60)|energy.deficit>=80|(talent.sabertooth.enabled&!dot.rip.ticking&combo_points=5&(buff.bloodtalons.up|!talent.bloodtalons.enabled))
- AddFunction TigersFury
- { BuffExpires(clearcasting_buff) and EnergyDeficit() >= 60
- or EnergyDeficit() >= 80
- or Talent(sabertooth_talent)
- and target.DebuffExpires(rip_debuff)
- and ComboPoints() == 5
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- }
- #ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>3&(target.health.pct<25|talent.sabertooth.enabled)
- AddFunction FerociousBite_3SecondRefresh
- {
- target.DebuffPresent(rip_debuff)
- and target.DebuffRemaining(rip_debuff) < 3
- and target.TimeToDie() > 3
- and { target.HealthPercent() < 25 or Talent(sabertooth_talent) }
- }
- AddFunction Maim
- {
- Energy() >= EnergyCost(maim)
- and { BuffPresent(fiery_red_maimers_buff) and CheckBoxOn(opt_maimers) }
- and finisher_conditions()
- }
- #regrowth,if=talent.bloodtalons.enabled&(buff.predatory_swiftness.up|(talent.sabertooth.enabled&combo_points=5&!buff.bloodtalons.up&!dot.rip.ticking))&((buff.bloodtalons.stack<2&!equipped.ailuro_pouncers)|buff.bloodtalons.down)&(combo_points>=5|buff.predatory_swiftness.remains<1.5|buff.predatory_swiftness.stack>1|(combo_points=2&buff.bloodtalons.down&cooldown.ashamanes_frenzy.remains<gcd&(buff.savage_roar.remains>gcd|!talent.savage_roar.enabled))|(talent.elunes_guidance.enabled&((cooldown.elunes_guidance.remains<gcd&combo_points=0)|(buff.elunes_guidance.up&combo_points>=4))))
- AddFunction Regrowth_AshamanesFrenzy
- {
- Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and { BuffStacks(bloodtalons_buff) < 2 and not HasEquippedItem(ailuro_pouncers)
- or BuffExpires(bloodtalons_buff) }
- and ComboPoints() == 2
- and BuffExpires(bloodtalons_buff)
- and SpellCooldown(ashamanes_frenzy) < GCD()
- and { BuffRemaining(savage_roar_buff) > GCD() or not Talent(savage_roar_talent) }
- }
- AddFunction Regrowth
- {
- Talent(bloodtalons_talent)
- and { BuffPresent(predatory_swiftness_buff)
- or Talent(sabertooth_talent) and ComboPoints() == 5 and BuffExpires(bloodtalons_buff) and target.DebuffExpires(rip_debuff) }
- and { BuffStacks(bloodtalons_buff) < 2 and not HasEquippedItem(ailuro_pouncers) or BuffExpires(bloodtalons_buff) }
- and { ComboPoints() >= 5
- or BuffRemaining(predatory_swiftness_buff) < 1.5
- or BuffStacks(predatory_swiftness_buff) > 1
- or ComboPoints() == 2
- and BuffExpires(bloodtalons_buff)
- and SpellCooldown(ashamanes_frenzy) < GCD()
- and { BuffRemaining(savage_roar_buff) > GCD() or not Talent(savage_roar_talent) }
- and CheckBoxOn(opt_ashamanes_frenzy_main_action)
- or Talent(elunes_guidance_talent)
- and { SpellCooldown(elunes_guidance) < GCD() and ComboPoints() == 0
- or BuffPresent(elunes_guidance_buff) and ComboPoints() >= 4 } }
- }
- #ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(buff.savage_roar.up|!talent.savage_roar.enabled)
- AddFunction AshamanesFrenzy
- {
- ComboPoints() <= 3
- and BuffExpires(elunes_guidance_buff)
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { BuffPresent(savage_roar_buff) or not Talent(savage_roar_talent) }
- and target.TimeToDie() > 20
- and { CheckBoxOn(opt_sync_af_tf) and { BuffPresent(tigers_fury_buff) or SpellCooldown(tigers_fury) > 5 } or CheckBoxOff(opt_sync_af_tf) }
- }
- #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.savage_roar.up|!talent.savage_roar.enabled)&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
- AddFunction Shadowmeld
- {
- ComboPoints() < 5
- and Energy() >= PowerCost(rake)
- and target.DebuffPersistentMultiplier(rake_debuff) < 2.1
- and BuffPresent(tigers_fury_buff)
- and { BuffPresent(savage_roar_buff) or not Talent(savage_roar_talent) }
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { not Talent(incarnation_talent) or SpellCooldown(incarnation_king_of_the_jungle) > 18 }
- and BuffExpires(incarnation_king_of_the_jungle_buff)
- and target.TimeToDie() > BaseDuration(rake_debuff) + 5
- and target.InRange(rake)
- }
- #pool_resource,if=talent.elunes_guidance.enabled&combo_points=0&energy<action.ferocious_bite.cost+25-energy.regen*cooldown.elunes_guidance.remains
- AddFunction ElunesGuidance_Pooling
- {
- Talent(elunes_guidance_talent)
- and ComboPoints() == 0
- and Energy() < PowerCost(ferocious_bite) + 25 - EnergyRegenRate() * SpellCooldown(elunes_guidance)
- }
- #elunes_guidance,if=talent.elunes_guidance.enabled&combo_points=0&energy>=action.ferocious_bite.cost+25
- AddFunction ElunesGuidance
- {
- Talent(elunes_guidance_talent)
- and ComboPoints() == 0
- and Energy() >= PowerCost(ferocious_bite) + 25
- }
- #pool_resource,for_next=1
- #savage_roar,if=!buff.savage_roar.up&(variable.finisher_conditions|time<8|(talent.brutal_slash.enabled&spell_targets.brutal_slash>desired_targets&action.brutal_slash.charges>0))
- AddFunction SavageRoar_Expired
- {
- BuffExpires(savage_roar_buff)
- and { finisher_conditions()
- or TimeInCombat() < 8
- or Talent(brutal_slash_talent)
- and Enemies() >= BrutalSlashDesiredTargets()
- and Charges(brutal_slash) > 0
- and { BuffPresent(tigers_fury_buff) or CheckBoxOff(opt_burtal_slash_use_with_tigers_fury) }
- }
- }
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.thrash_cat>=5&(!ticking|variable.energy_pooling)
- AddFunction ThrashCat_5Targets
- {
- target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3
- and Enemies() >= 5
- and { target.DebuffExpires(thrash_cat_debuff) or energy_pooling() }
- }
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=8&(buff.scent_of_blood.up|variable.energy_pooling)
- AddFunction SwipeCat_8Targets
- {
- Enemies() >= 8
- and { BuffPresent(scent_of_blood_buff) or energy_pooling() }
- }
- #rip,cycle_targets=1,if=(!ticking|(remains<9&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4&variable.finisher_conditions
- AddFunction Rip
- {
- { target.DebuffExpires(rip_debuff)
- or target.DebuffRemaining(rip_debuff) < RipTimer() and target.HealthPercent() > 25 and not Talent(sabertooth_talent)
- or TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) }
- and target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) * 4
- and finisher_conditions()
- }
- #pool_resource,for_next=1
- #ferocious_bite,max_energy=1,cycle_targets=1,if=dot.rip.remains<9&target.health.pct<25&variable.finisher_conditions
- AddFunction FerociousBite_5ComboRipRefresh
- { Energy() >= EnergyCost(ferocious_bite max=1)
- and target.DebuffRemaining(rip_debuff) < 9
- and target.HealthPercent() < 25
- and finisher_conditions()
- }
- #pool_resource,for_next=1
- #savage_roar,if=(buff.savage_roar.remains<=7.2|(buff.savage_roar.remains<13&talent.jagged_wounds.enabled&target.health.pct>=25))&variable.finisher_conditions
- AddFunction SavageRoar_Refresh
- { { BuffRemaining(savage_roar_buff) <= 7.2
- or BuffRemaining(savage_roar_buff) < SavageRoarTimer() and Talent(jagged_wounds_talent) and target.HealthPercent() >= 25 }
- and finisher_conditions()
- }
- #pool_resource,for_next=1
- #swipe_cat,if=combo_points=5&(spell_targets.swipe_cat>=6|(spell_targets.swipe_cat>=3&!talent.bloodtalons.enabled))&(buff.scent_of_blood.up|variable.energy_pooling)
- AddFunction SwipeCat_6Targets
- {
- ComboPoints() == 5
- and { Enemies() >= 6 or Enemies() >= 3 and not Talent(bloodtalons_talent) }
- and { BuffPresent(scent_of_blood_buff) or energy_pooling() }
- }
- #pool_resource,for_next=1
- #ferocious_bite,max_energy=1,cycle_targets=1,if=variable.finisher_conditions
- AddFunction FerociousBite
- {
- finisher_conditions()
- }
- #brutal_slash,if=spell_targets.brutal_slash>desired_targets&combo_points<5
- AddFunction BrutalSlash_DesiredTargets
- {
- Enemies() >= BrutalSlashDesiredTargets() and not Talent(bloodtalons_talent)
- and ComboPoints() < 5
- and { BuffPresent(tigers_fury_buff) or CheckBoxOff(opt_burtal_slash_use_with_tigers_fury) }
- }
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=5&(buff.scent_of_blood.up|variable.energy_pooling)
- AddFunction SwipeCat_5Targets
- {
- Enemies() >= 5
- and { BuffPresent(scent_of_blood_buff) or energy_pooling() }
- }
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=combo_points<5&remains<=duration*0.3&spell_targets.thrash_cat>=3&(!ticking|variable.energy_pooling)
- AddFunction ThrashCat_3Targets
- {
- ComboPoints() < 5
- and target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3
- and Enemies() >= 3
- and { target.DebuffExpires(thrash_cat_debuff) or energy_pooling() }
- }
- #pool_resource,for_next=1
- #rake,cycle_targets=1,if=combo_points<5&(!ticking|(!talent.bloodtalons.enabled&remains<duration*0.3)|(talent.bloodtalons.enabled&buff.bloodtalons.up&(remains<=5|(!talent.soul_of_the_forest.enabled&!equipped.ailuro_pouncers&remains<=7))&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
- AddFunction Rake
- {
- ComboPoints() < 5
- and { target.DebuffExpires(rake_debuff)
- or not Talent(bloodtalons_talent) and target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3
- or Talent(bloodtalons_talent)
- and BuffPresent(bloodtalons_buff)
- and { target.DebuffRemaining(rake_debuff) <= 5
- or not Talent(soul_of_the_forest_talent) and not HasEquippedItem(ailuro_pouncers) and target.DebuffRemaining(rake_debuff) <= 7 }
- and PersistentMultiplier(rake_debuff) > target.DebuffPersistentMultiplier(rake_debuff) * 0.8 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff)
- }
- #moonfire_cat,cycle_targets=1,if=combo_points<5&remains<=4.2&target.time_to_die-remains>tick_time*2
- AddFunction MoonfireCat
- {
- ComboPoints() < 5
- and target.DebuffRemaining(moonfire_cat_debuff) <= 4.2
- and target.TimeToDie() - target.DebuffRemaining(moonfire_cat_debuff) > target.TickTime(moonfire_cat_debuff) * 2
- }
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=combo_points<5&remains<=duration*0.3&(spell_targets.thrash_cat>=2|(buff.clearcasting.up&equipped.luffa_wrappings))&(!ticking|variable.energy_pooling)
- AddFunction ThrashCat_2Targets
- {
- ComboPoints() < 5
- and target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3
- and { Enemies() >= 2
- or { { BuffPresent(clearcasting_buff)
- or TimeToMaxEnergy() < 1
- or Energy() > 100
- or BuffPresent(berserk_cat_buff)
- or BuffPresent(incarnation_king_of_the_jungle_buff)
- or SpellCooldown(tigers_fury) < 3 }
- and { not List(opt_st_thrash stt_1)
- or List(opt_st_thrash stt_5)
- or HasEquippedItem(luffa_wrappings) and List(opt_st_thrash stt_2)
- or ArmorSetBonus(T19 4) and List(opt_st_thrash stt_3)
- or ArmorSetBonus(T19 4) and HasEquippedItem(luffa_wrappings) and List(opt_st_thrash stt_4) } } }
- and { target.DebuffExpires(thrash_cat_debuff) or energy_pooling() }
- }
- #brutal_slash,if=combo_points<5&((raid_event.adds.exists&raid_event.adds.in>(1+max_charges-charges_fractional)*15)|(!raid_event.adds.exists&buff.tigers_fury.up))
- AddFunction BrutalSlash_MaxCharges
- {
- ComboPoints() < 5 and not Talent(bloodtalons_talent)
- and Charges(brutal_slash) == 3
- and CheckBoxOn(opt_brutal_slash_use_at_three_always)
- }
- #swipe_cat,if=combo_points<5&spell_targets.swipe_cat>=3&(buff.scent_of_blood.up|variable.energy_pooling)
- AddFunction SwipeCat_3Targets
- {
- ComboPoints() < 5
- and Enemies() >= 3
- and { BuffPresent(scent_of_blood_buff) or energy_pooling() }
- }
- #shred,if=combo_points<5&(spell_targets.swipe_cat<3|talent.brutal_slash.enabled)&((dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen)|variable.energy_pooling)
- AddFunction Shred
- {
- { ComboPoints() < 5 and { CheckBoxOff(opt_pool_at_three) or { CheckBoxOn(opt_pool_at_three) and not HasEquippedItem(the_wildshapers_clutch) } } } or { CheckBoxOn(opt_pool_at_three) and HasEquippedItem(the_wildshapers_clutch) and { ComboPoints() < 3 or { ComboPoints() < 5 and energy_pooling() } } }
- and { Enemies() < 3 or Talent(brutal_slash_talent) }
- and { target.DebuffRemaining(rake_debuff) > { PowerCost(shred) + PowerCost(rake) - Energy() } / EnergyRegenRate() or energy_pooling() }
- }
- AddFunction FeralBerserkActions
- {
- if BuffPresent(incarnation_king_of_the_jungle_buff) and CheckBoxOn(opt_shred_spam) and ArmorSetBonus(T19 4)
- {
- if { { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and target.TimeToDie() > 20 } Spell(ashamanes_frenzy)
- if Talent(bloodtalons_talent)
- and BuffExpires(predatory_swiftness_buff)
- and BuffExpires(bloodtalons_buff)
- and ComboPoints() >= 5
- and { { target.DebuffExpires(rake_debuff)
- or not Talent(bloodtalons_talent) and target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3 + GCD() * 2
- or { Talent(bloodtalons_talent)
- and target.DebuffRemaining(rake_debuff) <= 3 + GCD() * 2 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff) }
- or { { target.DebuffExpires(rip_debuff)
- or target.DebuffRemaining(rip_debuff) < RipTimer() + GCD() * 2 and target.HealthPercent() > 25 and not Talent(sabertooth_talent)
- or TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) }
- and target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) * 4
- and ComboPoints() >= 5 } } Spell(ferocious_bite)
- if Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and BuffExpires(bloodtalons_buff)
- and { { target.DebuffExpires(rake_debuff)
- or not Talent(bloodtalons_talent) and target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3 + GCD()
- or { Talent(bloodtalons_talent)
- and target.DebuffRemaining(rake_debuff) <= 3 + GCD() }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff) }
- or { { target.DebuffExpires(rip_debuff)
- or target.DebuffRemaining(rip_debuff) < RipTimer() + GCD() and target.HealthPercent() > 25 and not Talent(sabertooth_talent)
- or TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) }
- and target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) * 4
- and ComboPoints() >= 5 } } Spell(regrowth)
- if ThrashCat_5Targets() Spell(thrash_cat)
- if SwipeCat_8Targets() Spell(swipe_cat)
- if Rip() Spell(rip)
- if Enemies() >= BrutalSlashDesiredTargets() Spell(brutal_slash)
- if SwipeCat_5Targets() Spell(swipe_cat)
- if { target.DebuffExpires(rake_debuff)
- or not Talent(bloodtalons_talent) and target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3
- or { Talent(bloodtalons_talent)
- and BuffPresent(bloodtalons_buff)
- and { target.DebuffRemaining(rake_debuff) <= 5
- or not Talent(soul_of_the_forest_talent) and not HasEquippedItem(ailuro_pouncers) and target.DebuffRemaining(rake_debuff) <= 7 }
- and PersistentMultiplier(rake_debuff) > target.DebuffPersistentMultiplier(rake_debuff) * 0.8 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff) } Spell(rake)
- if { { target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 or target.DebuffExpires(thrash_cat_debuff) }
- and { not Talent(bloodtalons_talent) or BuffExpires(bloodtalons_buff) }
- and { Enemies() >= 2
- or { { BuffPresent(clearcasting_buff)
- or TimeToMaxEnergy() < 1
- or Energy() > 100
- or BuffPresent(berserk_cat_buff)
- or BuffPresent(incarnation_king_of_the_jungle_buff)
- or SpellCooldown(tigers_fury) < 3 }
- and { not List(opt_st_thrash stt_1)
- or List(opt_st_thrash stt_5)
- or HasEquippedItem(luffa_wrappings) and List(opt_st_thrash stt_2)
- or ArmorSetBonus(T19 4) and List(opt_st_thrash stt_3)
- or ArmorSetBonus(T19 4) and HasEquippedItem(luffa_wrappings) and List(opt_st_thrash stt_4) } } } } Spell(thrash_cat)
- if Charges(brutal_slash) == 3 and CheckBoxOn(opt_brutal_slash_use_at_three_always) Spell(brutal_slash)
- if Enemies() >= 3 Spell(swipe_cat)
- Spell(shred)
- }
- }
- ### actions.default
- AddFunction FeralDefaultMainActions
- {
- #variable,name=finisher_conditions,value=combo_points=5&(energy.time_to_max<1|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3|talent.soul_of_the_forest.enabled|!dot.rip.ticking|(dot.rake.remains<1.5&spell_targets.swipe_cat<6))
- #variable,name=energy_pooling,value=(energy.time_to_max<1|buff.clearcasting.react|buff.berserk.up|buff.incarnation.up|buff.ashamanes_energy.up|cooldown.tigers_fury.remains<3|talent.soul_of_the_forest.enabled)
- #cat_form
- Spell(cat_form)
- #rake,if=buff.prowl.up|buff.shadowmeld.up
- if Rake_Prowl() Spell(rake)
- FeralBerserkActions()
- #ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>3&(target.health.pct<25|talent.sabertooth.enabled)
- if FerociousBite_3SecondRefresh() Spell(ferocious_bite)
- #regrowth,if=talent.bloodtalons.enabled&(buff.predatory_swiftness.up|(talent.sabertooth.enabled&combo_points=5&!buff.bloodtalons.up&!dot.rip.ticking))&((buff.bloodtalons.stack<2&!equipped.ailuro_pouncers)|buff.bloodtalons.down)&(combo_points>=5|buff.predatory_swiftness.remains<1.5|buff.predatory_swiftness.stack>1|(combo_points=2&buff.bloodtalons.down&cooldown.ashamanes_frenzy.remains<gcd&(buff.savage_roar.remains>gcd|!talent.savage_roar.enabled))|(talent.elunes_guidance.enabled&((cooldown.elunes_guidance.remains<gcd&combo_points=0)|(buff.elunes_guidance.up&combo_points>=4))))
- if Regrowth() Spell(regrowth)
- #ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(buff.savage_roar.up|!talent.savage_roar.enabled)
- if AshamanesFrenzy() and CheckBoxOn(opt_ashamanes_frenzy_main_action) Spell(ashamanes_frenzy)
- #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.savage_roar.up|!talent.savage_roar.enabled)&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
- if Shadowmeld() and CheckBoxOn(opt_shadowmeld_main_action) Spell(shadowmeld)
- #pool_resource,if=talent.elunes_guidance.enabled&combo_points=0&energy<action.ferocious_bite.cost+25-energy.regen*cooldown.elunes_guidance.remains
- unless ElunesGuidance_Pooling() {
- #pool_resource,for_next=1
- #savage_roar,if=!buff.savage_roar.up&(variable.finisher_conditions|time<8|(talent.brutal_slash.enabled&spell_targets.brutal_slash>desired_targets&action.brutal_slash.charges>0))
- if SavageRoar_Expired() Spell(savage_roar)
- unless SavageRoar_Expired() and SpellUsable(savage_roar) and SpellCooldown(savage_roar) < TimeToEnergyFor(savage_roar) {
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.thrash_cat>=5&(!ticking|variable.energy_pooling)
- if ThrashCat_5Targets() Spell(thrash_cat)
- unless ThrashCat_5Targets() and SpellUsable(thrash_cat) and SpellCooldown(thrash_cat) < TimeToEnergyFor(thrash_cat) {
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=8&(buff.scent_of_blood.up|variable.energy_pooling)
- if SwipeCat_8Targets() Spell(swipe_cat)
- unless SwipeCat_8Targets() and SpellUsable(swipe_cat) and SpellCooldown(swipe_cat) < TimeToEnergyFor(swipe_cat) {
- #rip,cycle_targets=1,if=(!ticking|(remains<9&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4&variable.finisher_conditions
- if Rip() Spell(rip)
- if Maim() Spell(maim)
- #pool_resource,for_next=1
- #ferocious_bite,max_energy=1,cycle_targets=1,if=dot.rip.remains<9&target.health.pct<25&variable.finisher_conditions
- if FerociousBite_5ComboRipRefresh() Spell(ferocious_bite extra_amount=25)
- unless FerociousBite_5ComboRipRefresh() and SpellUsable(ferocious_bite) and SpellCooldown(ferocious_bite) < TimeToEnergy(50) {
- #pool_resource,for_next=1
- #savage_roar,if=(buff.savage_roar.remains<=7.2|(buff.savage_roar.remains<13&talent.jagged_wounds.enabled&target.health.pct>=25))&variable.finisher_conditions
- if SavageRoar_Refresh() Spell(savage_roar)
- unless SavageRoar_Refresh() and SpellUsable(savage_roar) and SpellCooldown(savage_roar) < TimeToEnergyFor(savage_roar) {
- #pool_resource,for_next=1
- #swipe_cat,if=combo_points=5&(spell_targets.swipe_cat>=6|(spell_targets.swipe_cat>=3&!talent.bloodtalons.enabled))&(buff.scent_of_blood.up|variable.energy_pooling)
- if SwipeCat_6Targets() Spell(swipe_cat)
- unless SwipeCat_6Targets() and SpellUsable(swipe_cat) and SpellCooldown(swipe_cat) < TimeToEnergyFor(swipe_cat) {
- #pool_resource,for_next=1
- #ferocious_bite,max_energy=1,cycle_targets=1,if=variable.finisher_conditions
- if FerociousBite() Spell(ferocious_bite extra_amount=25)
- unless FerociousBite() and SpellUsable(ferocious_bite) and SpellCooldown(ferocious_bite extra_amount=25) < TimeToEnergy(50) {
- #brutal_slash,if=spell_targets.brutal_slash>desired_targets&combo_points<5
- if BrutalSlash_DesiredTargets() Spell(brutal_slash)
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=5&(buff.scent_of_blood.up|variable.energy_pooling)
- if SwipeCat_5Targets() Spell(swipe_cat)
- unless SwipeCat_5Targets() and SpellUsable(swipe_cat) and SpellCooldown(swipe_cat) < TimeToEnergyFor(swipe_cat) {
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=combo_points<5&remains<=duration*0.3&spell_targets.thrash_cat>=3&(!ticking|variable.energy_pooling)
- if ThrashCat_3Targets() Spell(thrash_cat)
- unless ThrashCat_3Targets() and SpellUsable(thrash_cat) and SpellCooldown(thrash_cat) < TimeToEnergyFor(thrash_cat) {
- #pool_resource,for_next=1
- #rake,cycle_targets=1,if=combo_points<5&(!ticking|(!talent.bloodtalons.enabled&remains<duration*0.3)|(talent.bloodtalons.enabled&buff.bloodtalons.up&(remains<=5|(!talent.soul_of_the_forest.enabled&!equipped.ailuro_pouncers&remains<=7))&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
- if Rake() Spell(rake)
- unless Rake() and SpellUsable(rake) and SpellCooldown(rake) < TimeToEnergyFor(rake) {
- #moonfire_cat,cycle_targets=1,if=combo_points<5&remains<=4.2&target.time_to_die-remains>tick_time*2
- if MoonfireCat() Spell(moonfire_cat)
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=combo_points<5&remains<=duration*0.3&(spell_targets.thrash_cat>=2|(buff.clearcasting.up&equipped.luffa_wrappings))&(!ticking|variable.energy_pooling)
- if ThrashCat_2Targets() Spell(thrash_cat)
- unless ThrashCat_2Targets() and SpellUsable(thrash_cat) and SpellCooldown(thrash_cat) < TimeToEnergyFor(thrash_cat) {
- #brutal_slash,if=combo_points<5&((raid_event.adds.exists&raid_event.adds.in>(1+max_charges-charges_fractional)*15)|(!raid_event.adds.exists&buff.tigers_fury.up))
- if BrutalSlash_MaxCharges() Spell(brutal_slash)
- #swipe_cat,if=combo_points<5&spell_targets.swipe_cat>=3&(buff.scent_of_blood.up|variable.energy_pooling)
- if SwipeCat_3Targets() Spell(swipe_cat)
- #shred,if=combo_points<5&(spell_targets.swipe_cat<3|talent.brutal_slash.enabled)&((dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen)|variable.energy_pooling)
- if Shred() Spell(shred)
- }}}}}}}}}}}}
- }
- AddFunction FeralDefaultMainPostConditions
- {
- }
- AddFunction FeralDefaultShortCdActions
- {
- unless Spell(cat_form) {
- #dash,if=!buff.cat_form.up
- if BuffExpires(cat_form_buff) Spell(dash)
- #wild_charge
- #displacer_beast,if=movement.distance>10
- FeralGetInMeleeRange()
- unless Rake_Prowl() and Spell(rake) {
- #potion,name=old_war,if=((buff.berserk.remains>10|buff.incarnation.remains>20)&(target.time_to_die<180|(trinket.proc.all.react&target.health.pct<25)))|target.time_to_die<=40
- #tigers_fury,if=(!buff.clearcasting.react&energy.deficit>=60)|energy.deficit>=80|(talent.sabertooth.enabled&!dot.rip.ticking&combo_points=5&(buff.bloodtalons.up|!talent.bloodtalons.enabled))
- if TigersFury() Spell(tigers_fury)
- unless FerociousBite_3SecondRefresh() and Spell(ferocious_bite) or Regrowth() and Spell(regrowth) {
- #ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(buff.savage_roar.up|!talent.savage_roar.enabled)
- if CheckBoxOff(opt_ashamanes_frenzy_main_action)
- {
- if Regrowth_AshamanesFrenzy() Spell(regrowth)
- if AshamanesFrenzy() Spell(ashamanes_frenzy)
- }
- #pool_resource,if=talent.elunes_guidance.enabled&combo_points=0&energy<action.ferocious_bite.cost+25-energy.regen*cooldown.elunes_guidance.remains
- unless ElunesGuidance_Pooling() {
- #elunes_guidance,if=talent.elunes_guidance.enabled&combo_points=0&energy>=action.ferocious_bite.cost+25
- if ElunesGuidance() Spell(elunes_guidance)
- }}}}
- }
- AddFunction FeralDefaultCdActions
- {
- unless Spell(cat_form) and Rake_Prowl() and Spell(rake) {
- #auto_attack
- #skull_bash
- FeralInterruptActions()
- #berserk,if=buff.tigers_fury.up
- #incarnation,if=buff.tigers_fury.up
- if Berserk() Spell(berserk_cat)
- #use_item,slot=trinket2,if=(buff.tigers_fury.up&(target.time_to_die>trinket.stat.any.cooldown|target.time_to_die<45))|buff.incarnation.remains>20
- if BuffPresent(tigers_fury_buff)
- and { target.TimeToDie() > BuffCooldownDuration(trinket_stat_any_buff) or target.TimeToDie() < 45 }
- or BuffRemaining(incarnation_king_of_the_jungle_buff) > 20
- or CheckBoxOn(opt_trinket_on_cd) FeralUseItemActions()
- unless FerociousBite_3SecondRefresh() and Spell(ferocious_bite) or Regrowth() and Spell(regrowth) or AshamanesFrenzy() and Spell(ashamanes_frenzy) {
- #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.savage_roar.up|!talent.savage_roar.enabled)&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
- if Shadowmeld() and CheckBoxOff(opt_shadowmeld_main_action) Spell(shadowmeld)
- }}
- }
- ### actions.precombat
- AddFunction FeralPrecombatMainActions
- {
- #flask,type=flask_of_the_seventh_demon
- #food,type=the_hungry_magister
- #regrowth,if=talent.bloodtalons.enabled
- if Talent(bloodtalons_talent) and BuffRemaining(bloodtalons_buff) < 15 and BuffExpires(prowl_buff) Spell(regrowth)
- #prowl
- Spell(prowl)
- #cat_form
- Spell(cat_form)
- #savage_roar
- if BuffRemaining(savage_roar_buff) < 4 + 2 * ComboPoints() Spell(savage_roar)
- if Talent(savage_roar_talent) and Talent(elunes_guidance_talent) and BuffPresent(prowl_buff) and BuffExpires(savage_roar) and SpellUsable(elunes_guidance) Texture(ability_druid_skinteeth)
- }
- AddFunction FeralPrecombatMainPostConditions
- {
- }
- AddFunction FeralPrecombatShortCdActions
- {
- unless Spell(cat_form) or Spell(prowl)
- {
- #elunes_guidance,if=talent.savage_roar.enabled
- if Talent(savage_roar_talent) Spell(elunes_guidance)
- }
- }
- AddFunction FeralPrecombatShortCdPostConditions
- {
- Talent(bloodtalons_talent) and Spell(regrowth) or Spell(cat_form) or Spell(prowl) or Spell(savage_roar)
- }
- AddFunction FeralPrecombatCdActions
- {
- }
- AddFunction FeralPrecombatCdPostConditions
- {
- Talent(bloodtalons_talent) and Spell(regrowth) or Spell(cat_form)
- }
- ### Feral icons.
- AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=shortcd specialization=feral
- {
- if not InCombat() FeralPrecombatShortCdActions()
- unless not InCombat() and FeralPrecombatShortCdPostConditions()
- {
- FeralDefaultShortCdActions()
- }
- }
- AddIcon checkbox=opt_druid_feral_aoe help=shortcd specialization=feral
- {
- if not InCombat() FeralPrecombatShortCdActions()
- unless not InCombat() and FeralPrecombatShortCdPostConditions()
- {
- FeralDefaultShortCdActions()
- }
- }
- AddIcon enemies=1 help=main specialization=feral
- {
- if not InCombat() FeralPrecombatMainActions()
- unless not InCombat() and FeralPrecombatMainPostConditions()
- {
- FeralDefaultMainActions()
- }
- }
- AddIcon checkbox=opt_druid_feral_aoe help=aoe specialization=feral
- {
- if not InCombat() FeralPrecombatMainActions()
- unless not InCombat() and FeralPrecombatMainPostConditions()
- {
- FeralDefaultMainActions()
- }
- }
- AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=cd specialization=feral
- {
- if not InCombat() FeralPrecombatCdActions()
- unless not InCombat() and FeralPrecombatCdPostConditions()
- {
- FeralDefaultCdActions()
- }
- }
- AddIcon checkbox=opt_druid_feral_aoe help=cd specialization=feral
- {
- if not InCombat() FeralPrecombatCdActions()
- unless not InCombat() and FeralPrecombatCdPostConditions()
- {
- FeralDefaultCdActions()
- }
- }
- ### Required symbols
- # ailuro_pouncers
- # ashamanes_energy_buff
- # ashamanes_frenzy
- # augmentation
- # berserk_cat
- # berserk_cat_buff
- # bloodtalons_buff
- # bloodtalons_talent
- # brutal_slash
- # brutal_slash_talent
- # cat_form
- # cat_form_buff
- # clearcasting_buff
- # dash
- # displacer_beast
- # displacer_beast_buff
- # elunes_guidance
- # elunes_guidance_buff
- # elunes_guidance_talent
- # ferocious_bite
- # fiery_red_maimers_buff
- # incarnation_king_of_the_jungle
- # incarnation_king_of_the_jungle_buff
- # incarnation_talent
- # jagged_wounds_talent
- # luffa_wrappings
- # maim
- # mighty_bash
- # moonfire_cat
- # moonfire_cat_debuff
- # predatory_swiftness_buff
- # prowl
- # prowl_buff
- # rake
- # rake_debuff
- # regrowth
- # rip
- # rip_debuff
- # sabertooth_talent
- # savage_roar
- # savage_roar_buff
- # savage_roar_talent
- # scent_of_blood_buff
- # shadowmeld
- # shadowmeld_buff
- # shred
- # skull_bash
- # soul_of_the_forest_talent
- # swipe_cat
- # the_wildshapers_clutch
- # thrash_cat
- # thrash_cat_debuff
- # tigers_fury
- # tigers_fury_buff
- # typhoon
- # war_stomp
- # Based on SimulationCraft profile "Druid_Guardian_T19P".
- # class=druid
- # spec=guardian
- # talents=3133323
- AddCheckBox(opt_interrupt L(interrupt) default specialization=guardian)
- AddCheckBox(opt_melee_range L(not_in_melee_range) specialization=guardian)
- AddCheckBox(opt_suggest_maul "Suggest Maul instead of IronFur" specialization=guardian)
- AddCheckBox(opt_catweave "Suggest CatWeaving rotation" 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) 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
- {
- if Stance(druid_bear_form)
- {
- #pulverize,cycle_targets=1,if=buff.pulverize.down
- if BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
- #thrash_bear,if=dot.thrash_bear.remains<4.5
- if target.DebuffRemaining(thrash_bear_debuff) < 4.5 Spell(thrash_bear)
- #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
- 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)
- #moonfire,if=!ticking|buff.galactic_guardian.up
- if target.DebuffExpires(moonfire_debuff) or BuffPresent(galactic_guardian_buff) Spell(moonfire)
- }
- if CheckBoxOn(opt_catweave) and not target.IsAggroed() and Talent(feral_affinity_talent) GuardianCatWeaveActions()
- if Stance(druid_bear_form)
- {
- #swipe_bear
- Spell(swipe_bear)
- }
- }
- AddFunction GuardianCatWeaveActions
- {
- Spell(cat_form)
- if Energy() > 20
- {
- if ComboPoints() == 5
- {
- if target.DebuffExpires(rip_debuff) or target.DebuffRemaining(rip_debuff) < BaseDuration(rip_debuff) * 0.3 + 5 Spell(rip)
- if Energy() > 50 and target.DebuffRemaining(rip_debuff) > 15 Spell(ferocious_bite)
- }
- if target.DebuffExpires(rake_debuff) or target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3 + 3 Spell(rake)
- Spell(shred)
- }
- Spell(bear_form)
- }
- AddFunction GuardianDefaultShortCdActions
- {
- #auto_attack
- GuardianGetInMeleeRange()
- if target.IsAggroed() and IncomingDamage(10 physical=1) < IncomingDamage(10 magic=1) and BuffRefreshable(mark_of_ursol_buff) and CheckBoxOff(opt_suggest_maul) Spell(mark_of_ursol)
- #ironfur,if=buff.ironfur.down|rage.deficit<25
- if target.IsAggroed() and IncomingDamage(3 physical=1) and { BuffExpires(ironfur_buff) or RageDeficit() < 25 } and CheckBoxOff(opt_suggest_maul) Spell(ironfur)
- #maul
- if not target.IsAggroed() and RageDeficit() < 25 or CheckBoxOn(opt_suggest_maul) Spell(maul)
- #frenzied_regeneration,if=!ticking&incoming_damage_6s%health.max>0.25+(2-charges_fractional)*0.15
- if BuffExpires(frenzied_regeneration_buff) and IncomingDamage(5) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 Spell(frenzied_regeneration)
- #bristling_fur,if=buff.ironfur.remains<2&rage<40
- if BuffRemaining(ironfur_buff) < 2 and Rage() < 40 Spell(bristling_fur)
- }
- 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 BuffExpires(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 target.DebuffRemaining(thrash_bear_debuff) < 4.5 and Spell(thrash_bear) or Spell(mangle) or BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) and Spell(pulverize)
- {
- #incarnation
- Spell(incarnation_guardian_of_ursoc)
- }
- }
- ### actions.precombat
- AddFunction GuardianPrecombatMainActions
- {
- #flask,type=flask_of_the_seventh_demon
- #food,type=azshari_salad
- #bear_form
- Spell(bear_form)
- }
- AddFunction GuardianPrecombatShortCdPostConditions
- {
- Spell(bear_form)
- }
- 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
- {
- unless not InCombat() and GuardianPrecombatShortCdPostConditions()
- {
- GuardianDefaultShortCdActions()
- }
- }
- AddIcon checkbox=opt_druid_guardian_aoe help=shortcd specialization=guardian
- {
- unless not InCombat() and GuardianPrecombatShortCdPostConditions()
- {
- GuardianDefaultShortCdActions()
- }
- }
- AddIcon enemies=1 help=main specialization=guardian
- {
- if not InCombat() GuardianPrecombatMainActions()
- GuardianDefaultMainActions()
- }
- AddIcon checkbox=opt_druid_guardian_aoe help=aoe specialization=guardian
- {
- if not InCombat() GuardianPrecombatMainActions()
- GuardianDefaultMainActions()
- }
- AddIcon checkbox=!opt_druid_guardian_aoe enemies=1 help=cd specialization=guardian
- {
- unless not InCombat() and GuardianPrecombatCdPostConditions()
- {
- GuardianDefaultCdActions()
- }
- }
- AddIcon checkbox=opt_druid_guardian_aoe help=cd specialization=guardian
- {
- unless not InCombat() and GuardianPrecombatCdPostConditions()
- {
- GuardianDefaultCdActions()
- }
- }
- ### Required symbols
- # arcane_torrent_energy
- # bear_form
- # berserking
- # blood_fury_apsp
- # bristling_fur
- # frenzied_regeneration
- # frenzied_regeneration_buff
- # galactic_guardian_buff
- # incarnation_guardian_of_ursoc
- # ironfur
- # ironfur_buff
- # thrash_bear_debuff
- # maim
- # mangle
- # mighty_bash
- # moonfire
- # moonfire_debuff
- # pulverize
- # pulverize_buff
- # shred
- # skull_bash
- # swipe_bear
- # thrash_bear
- # thrash_bear_debuff
- # typhoon
- # war_stomp
- # wild_charge
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement