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.
- # Elune's Guidance finisher prediction - Places the correct finisher in the main action box when EG is usable.
- # This will block the rest of the action list till you use EG so don't use if you're going to save EG.
- # 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/Rake/Moonfire/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
- # Ashamane's only when TF is up - Only suggest Ashamane's when Tiger's Fury is active
- # 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
- # Suggest Shred at 5 cp with Berserk - While zerk/incarnation is active, spam shred, only stopping to refresh rake or rip (with BT), nothing else
- # Something to try @Nanaki - http://www.fluiddruid.net/forum/viewtopic.php?f=3&t=5709&sid=ba81b3ad75462b66a14c8486c19d7123&start=375#p36492
- Include(ovale_common)
- Include(ovale_trinkets_mop)
- Include(ovale_trinkets_wod)
- Include(ovale_druid_spells)
- SpellAddTargetDebuff(ferocious_bite rip_debuff=refresh_keep_snapshot)
- SpellInfo(incarnation_king_of_the_jungle unusable=1 talent=!incarnation_talent)
- AddCheckBox(opt_thrash_on_st "Suggest Thrash if using 4pc/Luffa/Ooc proc" specialization=feral)
- AddCheckBox(opt_shred_spam "Suggest Shred at 5 cp with Berserk" specialization=feral)
- AddCheckBox(opt_trinket_on_cd "Suggest trinket use on cooldown" specialization=feral)
- AddCheckBox(opt_tf_for_ashamanes "Ashamane's only when TF is up" specialization=feral)
- AddCheckBox(opt_interrupt L(interrupt) default specialization=feral)
- AddCheckBox(opt_melee_range L(not_in_melee_range) 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_elunes_guidance_predict "Elune's Guidance finisher prediction" default 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 BS at 3 charges" specialization=feral)
- AddCheckBox(opt_burtal_slash_use_with_tigers_fury "Only suggest BS when TF is up" specialization=feral)
- AddListItem(opt_desired_targets dt_2 "Brutal Slash at 2 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_3 "Brutal Slash at 3 targets" specialization=feral default)
- AddListItem(opt_desired_targets dt_4 "Brutal Slash at 4 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_5 "Brutal Slash at 5 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_6 "Brutal Slash at 6 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_7 "Brutal Slash at 7 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_8 "Brutal Slash at 8 targets" specialization=feral)
- AddListItem(opt_desired_targets dt_9 "Brutal Slash 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_rake_timer raket_0 "Rake at defaults" specialization=feral default)
- AddListItem(opt_rake_timer raket_1 "Rake at pandemic" specialization=feral)
- AddListItem(opt_rake_timer raket_3 "Rake at 3 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_4 "Rake at 4 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_5 "Rake at 5 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_6 "Rake at 6 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_7 "Rake at 7 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_8 "Rake at 8 seconds" specialization=feral)
- AddListItem(opt_rake_timer raket_9 "Rake at 9 seconds" specialization=feral)
- 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_moonfire_timer mt_1 "Moonfire at pandemic" specialization=feral)
- AddListItem(opt_moonfire_timer mt_5 "Moonfire at 5 seconds" specialization=feral)
- AddListItem(opt_moonfire_timer mt_6 "Moonfire at 6 seconds" specialization=feral)
- AddListItem(opt_moonfire_timer mt_7 "Moonfire at 7 seconds" specialization=feral)
- AddListItem(opt_moonfire_timer mt_8 "Moonfire at 8 seconds" specialization=feral)
- AddListItem(opt_moonfire_timer mt_9 "Moonfire at 9 seconds" specialization=feral default)
- 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 SotfRakeTimer asvalue=1
- {
- if List(opt_rake_timer raket_0) 5
- if List(opt_rake_timer raket_1) BaseDuration(rake_debuff) * 0.3
- if List(opt_rake_timer raket_3) 3
- if List(opt_rake_timer raket_4) 4
- if List(opt_rake_timer raket_5) 5
- if List(opt_rake_timer raket_6) 6
- if List(opt_rake_timer raket_7) 7
- if List(opt_rake_timer raket_8) 8
- if List(opt_rake_timer raket_9) 9
- }
- AddFunction RakeTimer asvalue=1
- {
- if List(opt_rake_timer raket_0) 9
- if List(opt_rake_timer raket_1) BaseDuration(rake_debuff) * 0.3
- if List(opt_rake_timer raket_3) 3
- if List(opt_rake_timer raket_4) 4
- if List(opt_rake_timer raket_5) 5
- if List(opt_rake_timer raket_6) 6
- if List(opt_rake_timer raket_7) 7
- if List(opt_rake_timer raket_8) 8
- if List(opt_rake_timer raket_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 MoonfireTimer asvalue=1
- {
- if List(opt_moonfire_timer mt_1) 4.2
- if List(opt_moonfire_timer mt_5) 5
- if List(opt_moonfire_timer mt_6) 6
- if List(opt_moonfire_timer mt_7) 7
- if List(opt_moonfire_timer mt_8) 8
- if List(opt_moonfire_timer mt_9) 9
- }
- AddFunction BrutalSlashDesiredTargets asvalue=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) < GCDRemaining()
- and BuffExpires(tigers_fury_buff)
- and { BuffExpires(clearcasting_buff) and EnergyDeficit() >= 60
- or EnergyDeficit() >= 80
- or HasTrinket(t18_class_trinket) and BuffPresent(berserk_cat_buff) } 1.15
- 1
- }
- AddFunction FeralUseItemActions
- {
- Item(Trinket0Slot usable=1)
- Item(Trinket1Slot usable=1)
- }
- 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 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)
- }
- }
- }
- # Assumes Open Wounds trait
- AddFunction DamageAfterArmor asvalue=1
- {
- if target.DebuffPresent(rip_debuff) 0.7282
- 0.6802
- }
- # Capped at 5 minutes
- AddFunction CappedTargetTimeToDie asvalue=1
- {
- if target.TimeToDie() > 300 300
- target.TimeToDie()
- }
- # Damage in thousands
- AddFunction CurrentRipDamageTillDeath asvalue=1
- {
- if target.DebuffPresent(rip_debuff) and target.TimeToDie() < 7200 target.DebuffPersistentMultiplier(rip_debuff) * { 1 + MeleeCritChance() } * { 1 + MasteryEffect() * 0.01 } * AttackPower() * 0.0008 * CappedTargetTimeToDie() / TickTime(rip_debuff)
- 0
- }
- # Damage in thousands
- AddFunction NewRipDamageTillDeath asvalue=1
- {
- PersistentMultiplier(rip_debuff) * { 1 + MeleeCritChance() * 0.01 } * { 1 + MasteryEffect() * 0.01} * AttackPower() * 0.0008 * 5.32 / TickTime(rip_debuff)
- }
- # Damage in thousands
- AddFunction FerociousBiteDamage asvalue=1
- {
- PersistentMultiplier(ferocious_bite) * { 1 + MeleeCritChance() * 0.013 } * AttackPower() * 0.00749 * DamageAfterArmor()
- }
- AddFunction TigersFuryConditions
- {
- { BuffExpires(clearcasting_buff) and EnergyDeficit() >= 60 or EnergyDeficit() >= 80 or HasTrinket(t18_class_trinket) and BuffPresent(berserk_cat_buff) and BuffExpires(tigers_fury_buff) } and Spell(tigers_fury)
- }
- AddFunction ElunesGuidancePrediction
- {
- if Talent(elunes_guidance_talent) and SpellCooldown(elunes_guidance less 1) and ComboPoints(equal 0) and Energy() >= EnergyCost(ferocious_bite) + 25
- {
- #regrowth
- if Talent(bloodtalons_talent) and BuffPresent(predatory_swiftness_buff) Spell(regrowth)
- #ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die-dot.rip.remains>action.rip.tick_time&(target.health.pct<25|talent.sabertooth.enabled)
- if target.DebuffPresent(rip_debuff) and target.DebuffRemaining(rip_debuff less 3) and target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) and { target.HealthPercent(atMost 25) or Talent(sabertooth_talent) } Texture(ability_druid_ferociousbite)
- #savage_roar,if=buff.savage_roar.remains<gcd
- if BuffRemaining(savage_roar_buff less 1) Texture(ability_druid_skinteeth)
- #rip,cycle_targets=1,if=(!ticking|(remains<8&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4
- if { target.DebuffExpires(rip_debuff) or target.DebuffRemaining(rip_debuff less 8) and target.HealthPercent(more 25) and Talent(sabertooth_talent no) or TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) } and target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) * 4 Texture(ability_ghoulfrenzy)
- #savage_roar,if=buff.savage_roar.remains<=7.2
- if BuffRemaining(savage_roar_buff atMost 7.2) Texture(ability_druid_skinteeth)
- #ferocious_bite,max_energy=1,cycle_targets=1
- if Energy() >= EnergyCost(ferocious_bite) + 25 Texture(ability_druid_ferociousbite)
- }
- }
- ### 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|set_bonus.tier18_4pc|buff.clearcasting.react|talent.soul_of_the_forest.enabled|!dot.rip.ticking|(dot.rake.remains<1.5&spell_targets.swipe_cat<6))
- #cat_form
- Spell(cat_form)
- #rake,if=buff.prowl.up|buff.shadowmeld.up
- if BuffPresent(prowl_buff)
- or BuffPresent(shadowmeld_buff) Spell(rake)
- #call_action_list,name=zerker
- 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 target.DebuffPresent(rip_debuff)
- and target.DebuffRemaining(rip_debuff) < 3
- and target.TimeToDie() > 3
- and { target.HealthPercent() < 25 or Talent(sabertooth_talent) } Spell(ferocious_bite)
- #regrowth,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&(combo_points>=5|buff.predatory_swiftness.remains<1.5|(talent.bloodtalons.enabled&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 Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and BuffStacks(bloodtalons_buff) < 2
- and { ComboPoints() >= 5 and { BuffExpires(bloodtalons_buff) or not HasEquippedItem(ailuro_pouncers slot=FeetSlot) }
- or BuffRemaining(predatory_swiftness_buff) < 1.5
- or Talent(bloodtalons_talent) and ComboPoints() == 2 and BuffExpires(bloodtalons_buff) and SpellCooldown(ashamanes_frenzy) < GCD() and { BuffRemaining(savage_roar_buff) > GCD() or not Talent(savage_roar_talent) } and target.TimeToDie(more 21) 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 } } Spell(regrowth)
- #regrowth,if=equipped.ailuro_pouncers&talent.bloodtalons.enabled&buff.predatory_swiftness.stack>1&buff.bloodtalons.down
- if HasEquippedItem(ailuro_pouncers slot=FeetSlot)
- and Talent(bloodtalons_talent)
- and BuffStacks(predatory_swiftness_buff) > 1 and BuffExpires(bloodtalons_buff) Spell(regrowth)
- #call_action_list,name=finisher
- FeralFinisherMainActions()
- #call_action_list,name=generator
- FeralGeneratorMainActions()
- }
- 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 ArmorSetBonus(T18 4)
- or BuffPresent(clearcasting_buff)
- or Talent(soul_of_the_forest_talent)
- or not target.DebuffPresent(rip_debuff)
- or target.DebuffRemaining(rake_debuff) < 1.5 and Enemies() < 6 }
- }
- ### actions.zerker
- AddFunction FeralBerserkActions
- {
- # If berserk or incarnation and the checkbox for shred spam is active: refresh rip and rake inside pandemic, spam shred despite combo points, try to get them BT buffed.
- if { BuffPresent(berserk_cat_buff) or BuffPresent(incarnation_king_of_the_jungle_buff) } and CheckBoxOn(opt_shred_spam)
- {
- # Regrowth before Biting
- if target.DebuffPresent(rip_debuff)
- and target.DebuffRemaining(rip_debuff) < 3
- and target.TimeToDie() > 3
- and { target.HealthPercent() < 25 or Talent(sabertooth_talent) }
- and { Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and BuffStacks(bloodtalons_buff) < 1 } Spell(regrowth)
- #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 target.DebuffPresent(rip_debuff)
- and target.DebuffRemaining(rip_debuff) < 3
- and target.TimeToDie() > 3
- and { target.HealthPercent() < 25 or Talent(sabertooth_talent) } Spell(ferocious_bite)
- #savage_roar,if=(buff.savage_roar.remains<=7.2|(buff.savage_roar.remains<SavageRoarTimer&talent.jagged_wounds.enabled&target.health.pct>=25))&variable.finisher_conditions
- if { BuffRemaining(savage_roar_buff) <= 7.2
- or BuffRemaining(savage_roar_buff) < SavageRoarTimer() and Talent(jagged_wounds_talent) and target.HealthPercent() >= 25 }
- and finisher_conditions() Spell(savage_roar)
- # Regrowth one second before ripping
- if { not target.DebuffPresent(rip_debuff)
- or target.DebuffRemaining(rip_debuff) < RipTimer() + 1 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()
- and { Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and BuffStacks(bloodtalons_buff) < 1 } Spell(regrowth)
- #rip,cycle_targets=1,if=(!ticking|(remains<RipTimer()&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4&variable.finisher_conditions
- if { not target.DebuffPresent(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() Spell(rip)
- # Regrowth, one second before raking
- if { not target.DebuffPresent(rake_debuff)
- or target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3 + 1 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff)
- and { Talent(bloodtalons_talent)
- and BuffPresent(predatory_swiftness_buff)
- and BuffStacks(bloodtalons_buff) < 1 } Spell(regrowth)
- #rake,cycle_targets=1,if=combo_points<5&(!ticking|(!talent.bloodtalons.enabled&remains<duration*0.3)|(talent.bloodtalons.enabled&buff.bloodtalons.up&(!talent.soul_of_the_forest.enabled&remains<=RakeTimer()|remains<=SotfRakeTimer())&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
- if { not target.DebuffPresent(rake_debuff)
- or target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3
- and PersistentMultiplier(rake_debuff) > target.DebuffPersistentMultiplier(rake_debuff) * 0.8 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff) Spell(rake pool_resource=1)
- Spell(shred)
- }
- }
- ### actions.finisher
- AddFunction FeralFinisherMainActions
- {
- #pool_resource,for_next=1
- #savage_roar,if=!buff.savage_roar.up&(combo_points=5|time<8|(talent.brutal_slash.enabled&spell_targets.brutal_slash>desired_targets&action.brutal_slash.charges>0))
- if not BuffPresent(savage_roar_buff)
- and { ComboPoints() == 5
- or TimeInCombat() < 8
- or Enemies() >= 8 and BuffRemaining(savage_roar_buff) < 7.2
- 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) } } Spell(savage_roar pool_resource=1)
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.thrash_cat>=5
- if target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 and Enemies() >= 5 Spell(thrash_cat pool_resource=1)
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=8
- if Enemies() >= 8 Spell(swipe_cat pool_resource=1)
- #rip,cycle_targets=1,if=(!ticking|(remains<RipTimer()&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4&variable.finisher_conditions
- if { not target.DebuffPresent(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() Spell(rip)
- #savage_roar,if=(buff.savage_roar.remains<=7.2|(buff.savage_roar.remains<SavageRoarTimer&talent.jagged_wounds.enabled&target.health.pct>=25))&variable.finisher_conditions
- if { BuffRemaining(savage_roar_buff) <= 7.2
- or BuffRemaining(savage_roar_buff) < SavageRoarTimer() and Talent(jagged_wounds_talent) and target.HealthPercent() >= 25 }
- and finisher_conditions() Spell(savage_roar)
- #swipe_cat,if=combo_points=5&(spell_targets.swipe_cat>=6|(spell_targets.swipe_cat>=3&!talent.bloodtalons.enabled))&variable.finisher_conditions
- if ComboPoints() == 5
- and { Enemies() >= 6
- or Enemies() >= 3 and not Talent(bloodtalons_talent) }
- and finisher_conditions() Spell(swipe_cat)
- #ferocious_bite,max_energy=1,cycle_targets=1,if=variable.finisher_conditions
- if finisher_conditions() Spell(ferocious_bite extra_amount=25)
- }
- ### actions.generator
- AddFunction FeralGeneratorMainActions
- {
- #brutal_slash,if=spell_targets.brutal_slash>desired_targets&combo_points<5
- if { Charges(brutal_slash) == 3 and CheckBoxOn(opt_brutal_slash_use_at_three_always) } Spell(brutal_slash)
- if Enemies() >= BrutalSlashDesiredTargets()
- and ComboPoints() < 5
- and { BuffPresent(tigers_fury_buff) or CheckBoxOff(opt_burtal_slash_use_with_tigers_fury) } Spell(brutal_slash)
- #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 CheckBoxOn(opt_ashamanes_frenzy_main_action)
- and ComboPoints() <= 2
- and BuffExpires(elunes_guidance_buff)
- and { BuffPresent(tigers_fury_buff) or CheckBoxOff(opt_tf_for_ashamanes) }
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { BuffPresent(savage_roar_buff) or not Talent(savage_roar_talent) }
- and target.TimeToDie(more 20) 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 Talent(elunes_guidance_talent) and ComboPoints() == 0 and Energy() < PowerCost(ferocious_bite) + 25 - EnergyRegenRate() * SpellCooldown(elunes_guidance)
- {
- #pool_resource,for_next=1
- #thrash_cat,if=talent.brutal_slash.enabled&spell_targets.thrash_cat>=9
- if Talent(brutal_slash_talent) and Enemies() >= 9 Spell(thrash_cat pool_resource=1)
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=6
- if Enemies() >= 6 Spell(swipe_cat pool_resource=1)
- #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
- if CheckBoxOn(opt_shadowmeld_main_action)
- and ComboPoints() < 5
- and Energy() >= PowerCost(rake)
- and target.DebuffPersistentMultiplier(rake_debuff) < 2.1
- and BuffPresent(tigers_fury_buff)
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { not Talent(incarnation_talent) or SpellCooldown(incarnation_king_of_the_jungle) > 18 }
- and not BuffPresent(incarnation_king_of_the_jungle_buff)
- and target.TimeToDie() > BaseDuration(rake_debuff) + 5
- and target.InRange(rake) Spell(shadowmeld)
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&ComboPoints()<5&spell_targets.swipe_cat>=3|(hasT194Pc&Luffas&OocProc)
- if target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 and ComboPoints() < 5
- and Enemies() >= 3 Spell(thrash_cat pool_resource=1)
- #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&(!talent.soul_of_the_forest.enabled&remains<=RakeTimer()|remains<=SotfRakeTimer())&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
- if ComboPoints() < 5
- and { not target.DebuffPresent(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 { not Talent(soul_of_the_forest_talent) and target.DebuffRemaining(rake_debuff) <= RakeTimer()
- or target.DebuffRemaining(rake_debuff) <= SotfRakeTimer() }
- and PersistentMultiplier(rake_debuff) > target.DebuffPersistentMultiplier(rake_debuff) * 0.8 }
- and target.TimeToDie() - target.DebuffRemaining(rake_debuff) > target.TickTime(rake_debuff) Spell(rake pool_resource=1)
- #moonfire_cat,cycle_targets=1,if=combo_points<5&(remains<=4.2|(combo_points>2&remains<=MoonfireTimer))&target.time_to_die-remains>tick_time*2
- if ComboPoints() < 5 and { target.DebuffRemaining(moonfire_cat_debuff) <= 4.2 or ComboPoints() > 2 and target.DebuffRemaining(moonfire_cat_debuff) <= MoonfireTimer() } and target.TimeToDie() - target.DebuffRemaining(moonfire_cat_debuff) > target.TickTime(moonfire_cat_debuff) * 2 Spell(moonfire_cat)
- #pool_resource,for_next=1
- #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.swipe_cat>=2
- if target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 and ComboPoints() < 5
- and { Enemies() >= 2
- or { CheckBoxOn(opt_thrash_on_st) and ArmorSetBonus(T19 4) and HasEquippedItem(luffa_wrappings slot=WristSlot) and BuffPresent(clearcasting_buff) } } Spell(thrash_cat pool_resource=1)
- #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 ComboPoints() < 5 and { False(raid_event_adds_exists) and 600 > { 1 + SpellMaxCharges(brutal_slash) - Charges(brutal_slash count=0) } * 15 or not False(raid_event_adds_exists) and BuffPresent(tigers_fury_buff) } Spell(brutal_slash)
- #swipe_cat,if=combo_points<5&spell_targets.swipe_cat>=3
- if ComboPoints() < 5
- and Enemies() >= 3 Spell(swipe_cat)
- #shred,if=combo_points<5&(spell_targets.swipe_cat<3|talent.brutal_slash.enabled)&(energy.time_to_max<1|(dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen)|buff.clearcasting.react|buff.berserk.up|buff.incarnation.up|cooldown.tigers_fury.remains<3|talent.soul_of_the_forest.enabled)
- if ComboPoints() < 5
- and { Enemies() < 3 or Talent(brutal_slash_talent) }
- and { TimeToMaxEnergy() < 1
- or target.DebuffRemaining(rake_debuff) > { PowerCost(shred) + PowerCost(rake) - Energy() } / EnergyRegenRate() or BuffPresent(clearcasting_buff) or BuffPresent(berserk_cat_buff) or BuffPresent(incarnation_king_of_the_jungle_buff) or SpellCooldown(tigers_fury) < 3 or Talent(soul_of_the_forest_talent) } Spell(shred)
- }
- }
- ### 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 FeralDefaultShortCdActions
- {
- #wild_charge
- #auto_attack
- FeralGetInMeleeRange()
- #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|(t18_class_trinket&buff.berserk.up&buff.tigers_fury.down)
- if TigersFuryConditions() Spell(tigers_fury)
- #tigers_fury,if=talent.sabertooth.enabled&time<20&!dot.rip.ticking&combo_points=5
- if Talent(sabertooth_talent) and TimeInCombat() < 20 and not target.DebuffPresent(rip_debuff) and ComboPoints() == 5 Spell(tigers_fury)
- #call_action_list,name=generator
- #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)
- and ComboPoints() <= 2
- and BuffExpires(elunes_guidance_buff)
- and { BuffPresent(tigers_fury_buff) or CheckBoxOff(opt_tf_for_ashamanes) }
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { BuffPresent(savage_roar_buff) or not Talent(savage_roar_talent) } 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 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
- if Talent(elunes_guidance_talent) and ComboPoints() == 0 and Energy() >= PowerCost(ferocious_bite) + 25 Spell(elunes_guidance)
- }
- }
- 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 FeralDefaultCdActions
- {
- #skull_bash
- FeralInterruptActions()
- #berserk,if=buff.tigers_fury.up
- #incarnation,if=buff.tigers_fury.up
- if TigersFuryConditions()
- or BuffPresent(tigers_fury_buff)
- {
- Spell(berserk_cat)
- Spell(incarnation_king_of_the_jungle)
- }
- #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()
- #call_action_list,name=generator
- unless Enemies() > Enemies(tagged=1) and ComboPoints() < 5 and Spell(brutal_slash) or ComboPoints() <= 2 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 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 Talent(elunes_guidance_talent) and ComboPoints() == 0 and Energy() < PowerCost(ferocious_bite) + 25 - EnergyRegenRate() * SpellCooldown(elunes_guidance)
- {
- unless Talent(elunes_guidance_talent) and ComboPoints() == 0 and Energy() >= PowerCost(ferocious_bite) + 25 and Spell(elunes_guidance)
- {
- #pool_resource,for_next=1
- #thrash_cat,if=talent.brutal_slash.enabled&spell_targets.thrash_cat>=9
- unless Talent(brutal_slash_talent) and Enemies() >= 9 and SpellUsable(thrash_cat) and SpellCooldown(thrash_cat) < TimeToEnergyFor(thrash_cat)
- {
- #pool_resource,for_next=1
- #swipe_cat,if=spell_targets.swipe_cat>=6
- unless Enemies() >= 6 and SpellUsable(swipe_cat) and SpellCooldown(swipe_cat) < TimeToEnergyFor(swipe_cat)
- {
- #shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
- if CheckBoxOff(opt_shadowmeld_main_action)
- and ComboPoints() < 5
- and Energy() >= PowerCost(rake)
- and target.DebuffPersistentMultiplier(rake_debuff) < 2.1
- and BuffPresent(tigers_fury_buff)
- and { BuffPresent(bloodtalons_buff) or not Talent(bloodtalons_talent) }
- and { not Talent(incarnation_talent) or SpellCooldown(incarnation_king_of_the_jungle) > 18 }
- and not BuffPresent(incarnation_king_of_the_jungle_buff)
- and target.InRange(rake) Spell(shadowmeld)
- }
- }
- }
- }
- }
- }
- AddFunction FeralPrecombatCdActions
- {
- }
- AddFunction FeralPrecombatCdPostConditions
- {
- Spell(augmentation) or Talent(bloodtalons_talent) and Spell(regrowth) or Spell(cat_form)
- }
- ### Feral icons.
- AddCheckBox(opt_druid_feral_aoe L(AOE) default specialization=feral)
- 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
- # luffa_wrappings
- # ailuro_pouncers
- # 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
- # regrowth
- # incarnation_king_of_the_jungle
- # incarnation_king_of_the_jungle_buff
- # incarnation_talent
- # jagged_wounds_talent
- # maim
- # mangle
- # 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
- # shadowmeld
- # shadowmeld_buff
- # shred
- # skull_bash
- # soul_of_the_forest_talent
- # swipe_cat
- # t18_class_trinket
- # thrash_cat
- # thrash_cat_debuff
- # tigers_fury
- # tigers_fury_buff
- # typhoon
- # war_stomp
- # wild_charge
- # wild_charge_bear
- # wild_charge_cat
- # 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)
- 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
- {
- #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 not target.DebuffPresent(moonfire_debuff) or BuffPresent(galactic_guardian_buff) Spell(moonfire)
- #swipe_bear
- Spell(swipe_bear)
- }
- AddFunction GuardianDefaultShortCdActions
- {
- #auto_attack
- GuardianGetInMeleeRange()
- #ironfur,if=buff.ironfur.down|rage.deficit<25
- if target.IsAggroed()
- 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 not BuffPresent(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 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 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_son_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_son_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