Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.00 KB | None | 0 0
  1. ### ShmooDude Feral and Guardian script
  2. ###
  3. ### Options:
  4. # Interrupt - Suggests use of interuptting abilities, including stuns/knockbacks on non-boss targets.
  5. #
  6. # Not in Melee Range - Suggests movement abilities if available or a forward arrow if you're out of range.
  7. #
  8. # Ashamane's Frenzy as main action - Puts the Ashamane's Frenzy suggestion in the main action box.
  9. # If this is off, Ovale will not suggest Healing Touch at 2 Combo Points.
  10. # Elune's Guidance finisher prediction - Places the correct finisher in the main action box when EG is usable.
  11. # This will block the rest of the action list till you use EG so don't use if you're going to save EG.
  12. # Tiger's Fury multiplier prediction - Applies the Tiger's Fury multiplier if Tiger's Fury is ready.
  13. #
  14. # Min targets to suggest Brutal Slash - Minimum number of targets to suggest using Brutal Slash.
  15. # This will use all available Brutal Slash charges.
  16. # Prevent capping of Brutal Slash charges - Will suggest Brutal Slash if you are about to reach max charges.
  17. # Advantage: Never wastes charges.
  18. # Disadvantage: Will probably not have 3 charges when AoE for the encounter shows up.
  19.  
  20. Include(ovale_common)
  21. Include(ovale_trinkets_mop)
  22. Include(ovale_trinkets_wod)
  23. Include(ovale_druid_spells)
  24.  
  25. AddCheckBox(opt_interrupt L(interrupt) default specialization=feral)
  26. AddCheckBox(opt_melee_range L(not_in_melee_range) default specialization=feral)
  27. # AddCheckBox(opt_potion_agility ItemName(draenic_agility_potion) default specialization=feral)
  28. AddCheckBox(opt_ashamanes_frenzy_main_action "Ashamane's Frenzy as a main action" default specialization=feral)
  29. AddCheckBox(opt_elunes_guidance_predict "Elune's Guidance finisher prediction" default specialization=feral)
  30. AddCheckBox(opt_tigers_fury_multiplier_predict "Tiger's Fury multiplier prediction" default specialization=feral)
  31. AddListItem(opt_desired_targets dt_2 "Min targets to suggest Brutal Slash = 2" specialization=feral)
  32. AddListItem(opt_desired_targets dt_3 "Min targets to suggest Brutal Slash = 3" specialization=feral default)
  33. AddListItem(opt_desired_targets dt_4 "Min targets to suggest Brutal Slash = 4" specialization=feral)
  34. AddListItem(opt_desired_targets dt_5 "Min targets to suggest Brutal Slash = 5" specialization=feral)
  35. AddListItem(opt_desired_targets dt_6 "Min targets to suggest Brutal Slash = 6" specialization=feral)
  36. AddListItem(opt_desired_targets dt_7 "Min targets to suggest Brutal Slash = 7" specialization=feral)
  37. AddListItem(opt_desired_targets dt_8 "Min targets to suggest Brutal Slash = 8" specialization=feral)
  38. AddListItem(opt_desired_targets dt_9 "Min targets to suggest Brutal Slash = 9" specialization=feral)
  39.  
  40. AddFunction BrutalSlashDesiredTargets asvalue=1
  41. {
  42. if List(opt_desired_targets dt_2) 2
  43. if List(opt_desired_targets dt_3) 3
  44. if List(opt_desired_targets dt_4) 4
  45. if List(opt_desired_targets dt_5) 5
  46. if List(opt_desired_targets dt_6) 6
  47. if List(opt_desired_targets dt_7) 7
  48. if List(opt_desired_targets dt_8) 8
  49. if List(opt_desired_targets dt_9) 9
  50. }
  51.  
  52. AddFunction TFMultPred asvalue=1
  53. {
  54. if CheckBoxOn(opt_tigers_fury_multiplier_predict)
  55. and SpellCooldown(tigers_fury) < GCDRemaining()
  56. and BuffExpires(tigers_fury_buff)
  57. and { BuffExpires(clearcasting_buff) and EnergyDeficit(atLeast 60)
  58. or EnergyDeficit(atLeast 80)
  59. or HasTrinket(t18_class_trinket) and BuffPresent(berserk_cat_buff) } 1.15
  60. 1
  61. }
  62.  
  63. AddFunction FeralUseItemActions
  64. {
  65. Item(Trinket0Slot usable=1)
  66. Item(Trinket1Slot usable=1)
  67. }
  68.  
  69. AddFunction FeralUsePotionAgility
  70. {
  71. if CheckBoxOn(opt_potion_agility) and target.Classification(worldboss) Item(draenic_agility_potion usable=1)
  72. }
  73.  
  74. AddFunction FeralInterruptActions
  75. {
  76. if CheckBoxOn(opt_interrupt) and not target.IsFriend() and target.IsInterruptible()
  77. {
  78. if target.InRange(skull_bash) Spell(skull_bash)
  79. if not target.Classification(worldboss)
  80. {
  81. if target.InRange(mighty_bash) Spell(mighty_bash)
  82. Spell(typhoon)
  83. if target.InRange(maim) Spell(maim)
  84. Spell(war_stomp)
  85. }
  86. }
  87. }
  88.  
  89. AddFunction FeralGetInMeleeRange
  90. {
  91. if CheckBoxOn(opt_melee_range) and target.InRange(shred no)
  92. {
  93. #wild_charge
  94. if target.InRange(wild_charge) Spell(wild_charge)
  95. #displacer_beast,if=movement.distance>25
  96. if target.distance(more 25) Spell(displacer_beast)
  97. #dash,if=movement.distance>25&buff.displacer_beast.down&buff.wild_charge_movement.down
  98. if target.distance(more 25) and BuffExpires(displacer_beast_buff) and True(wild_charge_movement_down) Spell(dash)
  99. Texture(misc_arrowlup help=L(not_in_melee_range))
  100. }
  101. }
  102.  
  103. AddFunction FeralFinisherConditions
  104. {
  105. #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))
  106. ComboPoints(atLeast 5)
  107. and { TimeToMaxEnergy(less 1)
  108. or BuffPresent(berserk_cat_buff)
  109. or BuffPresent(incarnation_king_of_the_jungle_buff)
  110. or BuffPresent(elunes_guidance_buff)
  111. or SpellCooldown(tigers_fury less 3)
  112. or ArmorSetBonus(T18 4)
  113. or BuffPresent(clearcasting_buff)
  114. or Talent(soul_of_the_forest_talent)
  115. or target.DebuffExpires(rip_debuff)
  116. or target.DebuffRemaining(rake_debuff less 1.7) and Enemies(less 6) }
  117. }
  118.  
  119. AddFunction FeralFerociousBiteConditions
  120. {
  121. #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|(talent.moment_of_clarity.enabled&buff.clearcasting.react))
  122. ComboPoints(atLeast 5)
  123. and { TimeToMaxEnergy(less 1)
  124. or BuffPresent(berserk_cat_buff)
  125. or BuffPresent(incarnation_king_of_the_jungle_buff)
  126. or BuffPresent(elunes_guidance_buff)
  127. or SpellCooldown(tigers_fury less 3)
  128. or ArmorSetBonus(T18 4)
  129. or Talent(moment_of_clarity_talent) and BuffPresent(clearcasting_buff) }
  130. }
  131.  
  132. AddFunction ElunesGuidancePrediction
  133. {
  134. if Talent(elunes_guidance_talent) and SpellCooldown(elunes_guidance less 1) and ComboPoints(equal 0) and Energy() >= EnergyCost(ferocious_bite) + 25
  135. {
  136. #healing_touch
  137. if Talent(bloodtalons_talent) and BuffPresent(predatory_swiftness_buff) and BuffExpires(bloodtalons_buff) Spell(healing_touch)
  138. #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)
  139. 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(less 25) or Talent(sabertooth_talent) } Texture(ability_druid_ferociousbite)
  140. #savage_roar,if=buff.savage_roar.remains<gcd
  141. if BuffRemaining(savage_roar_buff less 1) Texture(ability_druid_skinteeth)
  142. #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
  143. 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)
  144. #savage_roar,if=buff.savage_roar.remains<=7.2
  145. if BuffRemaining(savage_roar_buff atMost 7.2) Texture(ability_druid_skinteeth)
  146. #ferocious_bite,max_energy=1,cycle_targets=1
  147. if Energy() >= EnergyCost(ferocious_bite) + 25 Texture(ability_druid_ferociousbite)
  148. }
  149. }
  150.  
  151. AddFunction FeralSbtOpenerMainActions
  152. {
  153. #healing_touch,if=talent.bloodtalons.enabled&combo_points=5&!buff.bloodtalons.up&!dot.rip.ticking
  154. if Talent(bloodtalons_talent) and ComboPoints(atLeast 5) and BuffPresent(bloodtalons_buff no) and target.DebuffExpires(rip_debuff) Spell(healing_touch)
  155. }
  156.  
  157. AddFunction FeralSbtOpenerShortCdActions
  158. {
  159. #tigers_fury,if=!dot.rip.ticking&combo_points=5
  160. if target.DebuffExpires(rip_debuff) and ComboPoints(atLeast 5) Spell(tigers_fury)
  161. }
  162.  
  163. AddFunction FeralDefaultMainActions
  164. {
  165. #dash,if=!buff.cat_form.up
  166. if Stance(druid_cat_form no) Spell(dash)
  167. #rake,if=buff.prowl.up|buff.shadowmeld.up
  168. if BuffPresent(prowl_buff) or BuffPresent(shadowmeld_buff) Spell(rake)
  169. #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)
  170. if target.DebuffPresent(rip_debuff) and target.DebuffRemaining(rip_debuff less 3) and target.TimeToDie(more 3) and { target.HealthPercent(less 25) or Talent(sabertooth_talent) } Spell(ferocious_bite)
  171. #healing_touch,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)|(talent.elunes_guidance.enabled&((cooldown.elunes_guidance.remains<gcd&combo_points=0)|(buff.elunes_guidance.up&combo_points>=4))))
  172. if Talent(bloodtalons_talent) and BuffPresent(predatory_swiftness_buff) and BuffExpires(bloodtalons_buff)
  173. and { ComboPoints(atLeast 5)
  174. or BuffRemaining(predatory_swiftness_buff less 1.7)
  175. or Talent(bloodtalons_talent) and ComboPoints(equal 2) and BuffExpires(bloodtalons_buff) and SpellCooldown(ashamanes_frenzy less 1) and target.TimeToDie(more 21) and { BuffRemaining(savage_roar more 1.5) or Talent(savage_roar_talent no) } and CheckBoxOn(opt_ashamanes_frenzy_main_action)
  176. or Talent(elunes_guidance_talent) and { SpellCooldown(elunes_guidance less 1) and ComboPoints(equal 0) or BuffPresent(elunes_guidance_buff) and ComboPoints(atLeast 4) } and CheckBoxOn(opt_elunes_guidance_predict) } Spell(healing_touch)
  177. #call_action_list,name=sbt_opener,if=talent.sabertooth.enabled&time<20
  178. if Talent(sabertooth_talent) and TimeInCombat(less 20) and target.Classification(worldboss) FeralSbtOpenerMainActions()
  179. #healing_touch,if=equipped.ailuro_pouncers&talent.bloodtalons.enabled&buff.predatory_swiftness.stack>1&buff.bloodtalons.down
  180. if HasEquippedItem(ailuro_pouncers) and Talent(bloodtalons_talent) and BuffStacks(predatory_swiftness_buff) > 1 and BuffExpires(bloodtalons_buff) Spell(healing_touch)
  181. #pool_resource,for_next=1
  182. #savage_roar,if=!buff.savage_roar.up&(combo_points=5|(talent.brutal_slash.enabled&spell_targets.brutal_slash>desired_targets&action.brutal_slash.charges>0))
  183. if BuffExpires(savage_roar_buff)
  184. and { ComboPoints(equal 5)
  185. or Talent(brutal_slash_talent) and Enemies() > BrutalSlashDesiredTargets() and Charges(brutal_slash more 0)
  186. or TimeInCombat(less 8)} Spell(savage_roar pool_resource=1)
  187. #pool_resource,for_next=1
  188. #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.thrash_cat>=5
  189. if target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 and Enemies(atLeast 5) Spell(thrash_cat pool_resource=1)
  190. #pool_resource,for_next=1
  191. #swipe_cat,if=spell_targets.swipe_cat>=8
  192. if Enemies(atLeast 8) Spell(swipe_cat pool_resource=1)
  193. ### FeralFinisherConditions
  194. if FeralFinisherConditions()
  195. {
  196. #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&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))
  197. if target.TimeToDie() - target.DebuffRemaining(rip_debuff) > target.TickTime(rip_debuff) * 4
  198. and { target.DebuffExpires(rip_debuff)
  199. or target.DebuffRemaining(rip_debuff less 8) and target.HealthPercent(more 25) and Talent(sabertooth_talent no)
  200. or TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff) } Spell(rip)
  201. #savage_roar,if=(buff.savage_roar.remains<10.5|(buff.savage_roar.remains<=7.2&!talent.jagged_wounds.enabled))&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))
  202. if BuffRemaining(savage_roar_buff atMost 10.5)
  203. or BuffRemaining(savage_roar_buff atMost 7.2) and Talent(jagged_wounds_talent no)
  204. or BuffExpires(savage_roar_buff) Spell(savage_roar)
  205. }
  206. if FeralFerociousBiteConditions()
  207. {
  208. #swipe_cat,if=combo_points=5&(spell_targets.swipe_cat>=6|(spell_targets.swipe_cat>=3&!talent.bloodtalons.enabled))&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|(talent.moment_of_clarity.enabled&buff.clearcasting.react))
  209. if Enemies(atLeast 6) or Enemies(atLeast 3) and Talent(bloodtalons_talent no) Spell(swipe_cat)
  210. #ferocious_bite,max_energy=1,cycle_targets=1,if=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|(talent.moment_of_clarity.enabled&buff.clearcasting.react))
  211. Spell(ferocious_bite extra_amount=25)
  212. }
  213. #brutal_slash,if=spell_targets.brutal_slash>desired_targets&combo_points<5
  214. if Enemies() > BrutalSlashDesiredTargets() and ComboPoints(less 5) Spell(brutal_slash)
  215. #ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)
  216. if CheckBoxOn(opt_ashamanes_frenzy_main_action)
  217. and ComboPoints(atMost 2)
  218. and BuffExpires(elunes_guidance_buff)
  219. and { BuffPresent(bloodtalons_buff) or Talent(bloodtalons_talent no) }
  220. and { BuffPresent(savage_roar_buff) or Talent(savage_roar_talent no) }
  221. and target.TimeToDie(more 20) Spell(ashamanes_frenzy)
  222. #pool_resource,if=talent.elunes_guidance.enabled&combo_points=0&energy<action.ferocious_bite.cost+25-energy.regen*cooldown.elunes_guidance.remains
  223. unless Talent(elunes_guidance_talent) and ComboPoints(equal 0) and Energy() < EnergyCost(ferocious_bite) + 25 - EnergyRegenRate() * SpellCooldown(elunes_guidance)
  224. {
  225. #pool_resource,for_next=1
  226. #thrash_cat,if=talent.brutal_slash.enabled&spell_targets.thrash_cat>=9
  227. if Talent(brutal_slash_talent) and Enemies(atLeast 9) Spell(thrash_cat pool_resource=1)
  228. #pool_resource,for_next=1
  229. #swipe_cat,if=spell_targets.swipe_cat>=6
  230. if Enemies(atLeast 6) Spell(swipe_cat pool_resource=1)
  231. #pool_resource,for_next=1
  232. #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<=7|remains<=5)&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
  233. if ComboPoints(less 5)
  234. and { target.DebuffExpires(rake_debuff)
  235. or Talent(bloodtalons_talent no) and target.DebuffRemaining(rake_debuff) < BaseDuration(rake_debuff) * 0.3
  236. or Talent(bloodtalons_talent) and BuffPresent(bloodtalons_buff) and { Talent(soul_of_the_forest_talent no) and target.DebuffRemaining(rake_debuff) <= 7 or target.DebuffRemaining(rake_debuff) <= 5 }
  237. 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)
  238. #moonfire_cat,cycle_targets=1,if=combo_points<5&remains<=4.2&target.time_to_die-remains>tick_time*2
  239. if ComboPoints(less 5) and target.DebuffRemaining(moonfire_cat_debuff atMost 4.2) and target.TimeToDie() - target.DebuffRemaining(moonfire_cat_debuff) > target.TickTime(moonfire_cat_debuff) * 2 Spell(moonfire_cat)
  240. #pool_resource,for_next=1
  241. #thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.swipe_cat>=2
  242. if target.DebuffRemaining(thrash_cat_debuff) <= BaseDuration(thrash_cat_debuff) * 0.3 and Enemies(atLeast 2) Spell(thrash_cat pool_resource=1)
  243. #brutal_slash,if=combo_points<5&((raid_event.adds.exists&raid_event.adds.in>(1+max_charges-charges_fractional)*15)|(!raid_event.adds.exists&(charges_fractional>2.66&time>10)))
  244. # if ComboPoints(less 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 Charges(brutal_slash count=0) > 2.66 and TimeInCombat() > 10 } Spell(brutal_slash)
  245. #swipe_cat,if=combo_points<5&spell_targets.swipe_cat>=3
  246. if ComboPoints(less 5) and Enemies(atLeast 3) Spell(swipe_cat)
  247. #shred,if=combo_points<5&(spell_targets.swipe_cat<3|talent.brutal_slash.enabled)
  248. if ComboPoints(less 5) and { Enemies(less 3) or Talent(brutal_slash_talent) } Spell(shred)
  249. }
  250. }
  251.  
  252. AddFunction TigersFuryConditions
  253. {
  254. { BuffExpires(clearcasting_buff) and EnergyDeficit(atLeast 60) or EnergyDeficit(atLeast 80) or HasTrinket(t18_class_trinket) and BuffPresent(berserk_cat_buff) and BuffExpires(tigers_fury_buff) } and Spell(tigers_fury)
  255. }
  256.  
  257. AddFunction FeralDefaultShortCdActions
  258. {
  259. FeralGetInMeleeRange()
  260. #tigers_fury,if=(!buff.clearcasting.react&energy.deficit>=60)|energy.deficit>=80|(t18_class_trinket&buff.berserk.up&buff.tigers_fury.down)
  261. if TigersFuryConditions() Spell(tigers_fury)
  262. #tigers_fury,if=talent.sabertooth.enabled&time<20&!dot.rip.ticking&combo_points=5
  263. if Talent(sabertooth_talent) and TimeInCombat(less 20) and target.Classification(worldboss) and target.DebuffExpires(rip_debuff) and ComboPoints(equal 5) and BuffPresent(bloodtalons_buff) Spell(tigers_fury)
  264. #ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)
  265. if CheckBoxOff(opt_ashamanes_frenzy_main_action) and ComboPoints(atMost 2) and BuffExpires(elunes_guidance_buff) and { BuffPresent(bloodtalons_buff) or Talent(bloodtalons_talent no) } and { BuffPresent(savage_roar_buff) or Talent(savage_roar_talent no) } Spell(ashamanes_frenzy)
  266. #elunes_guidance,if=talent.elunes_guidance.enabled&combo_points=0&energy>=action.ferocious_bite.cost+25
  267. if Talent(elunes_guidance_talent) and ComboPoints(equal 0) and Energy() >= EnergyCost(ferocious_bite) + 25 Spell(elunes_guidance)
  268. }
  269.  
  270. AddFunction FeralDefaultCdActions
  271. {
  272. #skull_bash
  273. FeralInterruptActions()
  274. #berserk,if=buff.tigers_fury.up
  275. if TigersFuryConditions() or BuffPresent(tigers_fury_buff) Spell(berserk_cat)
  276. #incarnation,if=cooldown.tigers_fury.remains<gcd
  277. if SpellCooldown(tigers_fury less 1) Spell(incarnation_king_of_the_jungle)
  278. #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
  279. if BuffPresent(tigers_fury_buff) and { target.TimeToDie() > BuffCooldownDuration(trinket_stat_any_buff) or target.TimeToDie(less 45) } or BuffRemaining(incarnation_king_of_the_jungle_buff more 20) FeralUseItemActions()
  280. #potion,name=draenic_agility,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
  281. # if { BuffRemaining(berserk_cat_buff more 10) or BuffRemaining(incarnation_king_of_the_jungle_buff more 20) } and { target.TimeToDie(less 180) or BuffPresent(trinket_proc_any_buff) and target.HealthPercent(less 25) } or target.TimeToDie(less 40) FeralUsePotionAgility()
  282. if TigersFuryConditions() or BuffPresent(tigers_fury_buff)
  283. {
  284. #blood_fury,if=buff.tigers_fury.up
  285. Spell(blood_fury_apsp)
  286. #berserking,if=buff.tigers_fury.up
  287. Spell(berserking)
  288. #arcane_torrent,if=buff.tigers_fury.up
  289. Spell(arcane_torrent_energy)
  290. }
  291. #incarnation,if=energy.time_to_max>1&energy>=35
  292. if TimeToMaxEnergy(more 1) and Energy(atLeast 35) Spell(incarnation_king_of_the_jungle)
  293. #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
  294. if ComboPoints(less 5)
  295. and Energy() >= EnergyCost(rake)
  296. and target.DebuffPersistentMultiplier(rake_debuff less 2.1)
  297. and BuffPresent(tigers_fury_buff)
  298. and { BuffPresent(bloodtalons_buff) or Talent(bloodtalons_talent no) }
  299. and { Talent(incarnation_talent no) or SpellCooldown(incarnation_king_of_the_jungle more 18) }
  300. and BuffExpires(incarnation_king_of_the_jungle_buff) Spell(shadowmeld)
  301.  
  302. }
  303.  
  304. AddFunction FeralPrecombatMainActions
  305. {
  306. #flask,type=flask_of_the_seventh_demon
  307. #food,type=the_hungry_magister
  308. #healing_touch,if=talent.bloodtalons.enabled
  309. if Talent(bloodtalons_talent) and BuffRemaining(bloodtalons_buff) < 15 and BuffExpires(prowl_buff) Spell(healing_touch)
  310. #prowl
  311. Spell(prowl)
  312. #cat_form
  313. Spell(cat_form)
  314. #savage_roar
  315. if BuffRemaining(savage_roar_buff) < 4 + 2 * ComboPoints() Spell(savage_roar)
  316. 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)
  317. }
  318.  
  319. AddFunction FeralPrecombatShortCdActions
  320. {
  321. unless Spell(cat_form) or Spell(prowl)
  322. {
  323. #elunes_guidance,if=talent.savage_roar.enabled
  324. if Talent(savage_roar_talent) Spell(elunes_guidance)
  325. }
  326. }
  327.  
  328. AddFunction FeralPrecombatShortCdPostConditions
  329. {
  330. Talent(bloodtalons_talent) and Spell(healing_touch) or Spell(cat_form) or Spell(prowl) or Spell(savage_roar)
  331. }
  332.  
  333. AddFunction FeralPrecombatCdActions
  334. {
  335. unless Talent(bloodtalons_talent) and Spell(healing_touch) or Spell(cat_form) or Spell(prowl)
  336. {
  337.  
  338. }
  339. }
  340.  
  341. AddFunction FeralPrecombatCdPostConditions
  342. {
  343. Talent(bloodtalons_talent) and Spell(healing_touch) or Spell(cat_form) or Spell(prowl) or Talent(savage_roar_talent) and Spell(elunes_guidance) or Spell(savage_roar)
  344. }
  345.  
  346. ### Feral icons.
  347.  
  348. AddCheckBox(opt_druid_feral_aoe L(AOE) default specialization=feral)
  349.  
  350. AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=shortcd specialization=feral
  351. {
  352. if not InCombat() FeralPrecombatShortCdActions()
  353. unless not InCombat() and FeralPrecombatShortCdPostConditions()
  354. {
  355. FeralDefaultShortCdActions()
  356. }
  357. }
  358.  
  359. AddIcon checkbox=opt_druid_feral_aoe help=shortcd specialization=feral
  360. {
  361. if not InCombat() FeralPrecombatShortCdActions()
  362. unless not InCombat() and FeralPrecombatShortCdPostConditions()
  363. {
  364. FeralDefaultShortCdActions()
  365. }
  366. }
  367.  
  368. AddIcon enemies=1 help=main specialization=feral
  369. {
  370. if not InCombat() FeralPrecombatMainActions()
  371. FeralDefaultMainActions()
  372. }
  373.  
  374. AddIcon checkbox=opt_druid_feral_aoe help=aoe specialization=feral
  375. {
  376. if not InCombat() FeralPrecombatMainActions()
  377. FeralDefaultMainActions()
  378. }
  379.  
  380. AddIcon checkbox=!opt_druid_feral_aoe enemies=1 help=cd specialization=feral
  381. {
  382. if not InCombat() FeralPrecombatCdActions()
  383. unless not InCombat() and FeralPrecombatCdPostConditions()
  384. {
  385. FeralDefaultCdActions()
  386. }
  387. }
  388.  
  389. AddIcon checkbox=opt_druid_feral_aoe help=cd specialization=feral
  390. {
  391. if not InCombat() FeralPrecombatCdActions()
  392. unless not InCombat() and FeralPrecombatCdPostConditions()
  393. {
  394. FeralDefaultCdActions()
  395. }
  396. }
  397.  
  398. ### Required symbols
  399. # arcane_torrent_energy
  400. # ashamanes_frenzy
  401. # berserk_cat
  402. # berserk_cat_buff
  403. # berserking
  404. # blood_fury_apsp
  405. # bloodtalons_buff
  406. # bloodtalons_talent
  407. # brutal_slash
  408. # brutal_slash_talent
  409. # cat_form
  410. # cat_form_buff
  411. # clearcasting_buff
  412. # dash
  413. # displacer_beast
  414. # displacer_beast_buff
  415. # draenic_agility_potion
  416. # elunes_guidance
  417. # elunes_guidance_buff
  418. # elunes_guidance_talent
  419. # ferocious_bite
  420. # healing_touch
  421. # incarnation_king_of_the_jungle
  422. # incarnation_king_of_the_jungle_buff
  423. # incarnation_talent
  424. # jagged_wounds_talent
  425. # maim
  426. # mangle
  427. # mighty_bash
  428. # moment_of_clarity_talent
  429. # moonfire_cat
  430. # moonfire_cat_debuff
  431. # predatory_swiftness_buff
  432. # prowl
  433. # prowl_buff
  434. # rake
  435. # rake_debuff
  436. # rip
  437. # rip_debuff
  438. # sabertooth_talent
  439. # savage_roar
  440. # savage_roar_buff
  441. # savage_roar_talent
  442. # shadowmeld
  443. # shadowmeld_buff
  444. # shred
  445. # skull_bash
  446. # soul_of_the_forest_talent
  447. # swipe_cat
  448. # t18_class_trinket
  449. # thrash_cat
  450. # thrash_cat_debuff
  451. # tigers_fury
  452. # tigers_fury_buff
  453. # typhoon
  454. # war_stomp
  455. # wild_charge
  456. # wild_charge_bear
  457. # wild_charge_cat
  458.  
  459. # Based on SimulationCraft profile "Druid_Guardian_T19P".
  460. # class=druid
  461. # spec=guardian
  462. # talents=3133323
  463.  
  464. AddCheckBox(opt_interrupt L(interrupt) default specialization=guardian)
  465. AddCheckBox(opt_melee_range L(not_in_melee_range) specialization=guardian)
  466.  
  467. AddFunction GuardianUseItemActions
  468. {
  469. Item(Trinket0Slot usable=1)
  470. Item(Trinket1Slot usable=1)
  471. }
  472.  
  473. AddFunction GuardianGetInMeleeRange
  474. {
  475. 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)
  476. {
  477. if target.InRange(wild_charge) Spell(wild_charge)
  478. Texture(misc_arrowlup help=L(not_in_melee_range))
  479. }
  480. }
  481.  
  482. AddFunction GuardianInterruptActions
  483. {
  484. if CheckBoxOn(opt_interrupt) and not target.IsFriend() and target.IsInterruptible()
  485. {
  486. if target.InRange(skull_bash) Spell(skull_bash)
  487. if not target.Classification(worldboss)
  488. {
  489. if target.InRange(mighty_bash) Spell(mighty_bash)
  490. Spell(typhoon)
  491. if target.InRange(maim) Spell(maim)
  492. Spell(war_stomp)
  493. }
  494. }
  495. }
  496.  
  497. ### actions.default
  498.  
  499. AddFunction GuardianDefaultMainActions
  500. {
  501. #pulverize,cycle_targets=1,if=buff.pulverize.down
  502. if BuffExpires(pulverize_buff) and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
  503. #thrash_bear,if=dot.thrash_bear.remains<4.5
  504. if target.DebuffRemaining(thrash_bear_debuff) < 4.5 Spell(thrash_bear)
  505. #mangle
  506. Spell(mangle)
  507. #pulverize,cycle_targets=1,if=buff.pulverize.remains<gcd
  508. if BuffRemaining(pulverize_buff) < GCD() and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
  509. #thrash_bear
  510. Spell(thrash_bear)
  511. #pulverize,cycle_targets=1,if=buff.pulverize.remains<3.6
  512. if BuffRemaining(pulverize_buff) < 3.6 and target.DebuffGain(thrash_bear_debuff) <= BaseDuration(thrash_bear_debuff) Spell(pulverize)
  513. #moonfire,if=!ticking|buff.galactic_guardian.up
  514. if not target.DebuffPresent(moonfire_debuff) or BuffPresent(galactic_guardian_buff) Spell(moonfire)
  515. #swipe_bear
  516. Spell(swipe_bear)
  517. }
  518.  
  519. AddFunction GuardianDefaultShortCdActions
  520. {
  521. #frenzied_regeneration,if=!ticking&incoming_damage_6s%health.max>0.25+(2-charges_fractional)*0.15
  522. if not BuffPresent(frenzied_regeneration_buff) and IncomingDamage(5) / MaxHealth() > 0.25 + { 2 - Charges(frenzied_regeneration count=0) } * 0.15 Spell(frenzied_regeneration)
  523. #auto_attack
  524. GuardianGetInMeleeRange()
  525. #ironfur,if=buff.ironfur.down|rage.deficit<25
  526. if target.IsAggroed() and { BuffExpires(ironfur_buff) or RageDeficit() < 25 } Spell(ironfur)
  527. #maul
  528. if not target.IsAggroed() and RageDeficit() < 25 Spell(maul)
  529. #bristling_fur,if=buff.ironfur.remains<2&rage<40
  530. if BuffRemaining(ironfur_buff) < 2 and Rage() < 40 Spell(bristling_fur)
  531. }
  532.  
  533. AddFunction GuardianDefaultCdActions
  534. {
  535. #skull_bash
  536. GuardianInterruptActions()
  537. #blood_fury
  538. Spell(blood_fury_apsp)
  539. #berserking
  540. Spell(berserking)
  541. #arcane_torrent
  542. Spell(arcane_torrent_energy)
  543. #use_item,slot=trinket2
  544. GuardianUseItemActions()
  545.  
  546. 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)
  547. {
  548. #incarnation
  549. Spell(incarnation_son_of_ursoc)
  550. }
  551. }
  552.  
  553. ### actions.precombat
  554.  
  555. AddFunction GuardianPrecombatMainActions
  556. {
  557. #flask,type=flask_of_the_seventh_demon
  558. #food,type=azshari_salad
  559. #bear_form
  560. Spell(bear_form)
  561. }
  562.  
  563. AddFunction GuardianPrecombatShortCdPostConditions
  564. {
  565. Spell(bear_form)
  566. }
  567.  
  568. AddFunction GuardianPrecombatCdPostConditions
  569. {
  570. Spell(bear_form)
  571. }
  572.  
  573. ### Guardian icons.
  574.  
  575. AddCheckBox(opt_druid_guardian_aoe L(AOE) default specialization=guardian)
  576.  
  577. AddIcon checkbox=!opt_druid_guardian_aoe enemies=1 help=shortcd specialization=guardian
  578. {
  579. unless not InCombat() and GuardianPrecombatShortCdPostConditions()
  580. {
  581. GuardianDefaultShortCdActions()
  582. }
  583. }
  584.  
  585. AddIcon checkbox=opt_druid_guardian_aoe help=shortcd specialization=guardian
  586. {
  587. unless not InCombat() and GuardianPrecombatShortCdPostConditions()
  588. {
  589. GuardianDefaultShortCdActions()
  590. }
  591. }
  592.  
  593. AddIcon enemies=1 help=main specialization=guardian
  594. {
  595. if not InCombat() GuardianPrecombatMainActions()
  596. GuardianDefaultMainActions()
  597. }
  598.  
  599. AddIcon checkbox=opt_druid_guardian_aoe help=aoe specialization=guardian
  600. {
  601. if not InCombat() GuardianPrecombatMainActions()
  602. GuardianDefaultMainActions()
  603. }
  604.  
  605. AddIcon checkbox=!opt_druid_guardian_aoe enemies=1 help=cd specialization=guardian
  606. {
  607. unless not InCombat() and GuardianPrecombatCdPostConditions()
  608. {
  609. GuardianDefaultCdActions()
  610. }
  611. }
  612.  
  613. AddIcon checkbox=opt_druid_guardian_aoe help=cd specialization=guardian
  614. {
  615. unless not InCombat() and GuardianPrecombatCdPostConditions()
  616. {
  617. GuardianDefaultCdActions()
  618. }
  619. }
  620.  
  621. ### Required symbols
  622. # arcane_torrent_energy
  623. # bear_form
  624. # berserking
  625. # blood_fury_apsp
  626. # bristling_fur
  627. # frenzied_regeneration
  628. # frenzied_regeneration_buff
  629. # galactic_guardian_buff
  630. # incarnation_son_of_ursoc
  631. # ironfur
  632. # ironfur_buff
  633. # thrash_bear_debuff
  634. # maim
  635. # mangle
  636. # mighty_bash
  637. # moonfire
  638. # moonfire_debuff
  639. # pulverize
  640. # pulverize_buff
  641. # shred
  642. # skull_bash
  643. # swipe_bear
  644. # thrash_bear
  645. # thrash_bear_debuff
  646. # typhoon
  647. # war_stomp
  648. # wild_charge
  649. # wild_charge_bear
  650. # wild_charge_cat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement