Register

Leafkiller's MoP Feral/Guardian Ovale Script

Face-rippin fun.
Exalted
User avatar
Posts: 1145
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Leafkiller » Wed Dec 26, 2012 6:20 pm

I am sure we can sim this. The issue you are describing is one of deciding to clip SRs at certain points in order to minimize the frequency it is cast. We really have not tried to sim a 2 target cleave rotation, and I am sure in so doing we would learn a few things and probably refine what advanced players such as yourself are doing.

Posts: 5
Joined: Thu Dec 27, 2012 7:33 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Fattycopjr » Thu Dec 27, 2012 7:43 pm

First time post on the site and I have to say I really enjoy and value the information that I read on this website. With this being said I also enjoy the script, it is teaching me to be a lot more agressive with using NS to get stronger rips. One thing I noticed however, is that from time to time the addon flickers when suggesting and it seems the suggested ability is "redded out?". Is this working as intended or is there an issue I'm missing?

Honored
Posts: 104
Joined: Thu Jun 30, 2011 4:05 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby RareBeast » Wed Jan 02, 2013 7:38 am

A small thing - would it be possible to rearrange the order the check boxes appear in the options list for the script? The main one I change regularly is the "frontal attack" option which is right down the bottom of the list off the bottom of my screen. I could obviously edit the script myself, but then that kind of defeats the purpose of using Neriens scripts.

Exalted
User avatar
Posts: 1564
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Tinderhoof » Wed Jan 02, 2013 2:40 pm

Fattycopjr wrote:First time post on the site and I have to say I really enjoy and value the information that I read on this website. With this being said I also enjoy the script, it is teaching me to be a lot more agressive with using NS to get stronger rips. One thing I noticed however, is that from time to time the addon flickers when suggesting and it seems the suggested ability is "redded out?". Is this working as intended or is there an issue I'm missing?

The script is trying to figure out which ability it is going to recomend next. The red is because you will be waiting. The flickering has actually improved a lot recently, but it will likely not go away completly. Just give it a little time to pool energy and see what it recomends next. As you get in the habit of things you should be able to look at your buff/debuff timers, and combo points and guess what the script will be suggesting next. Just takes some practice.

Exalted
User avatar
Posts: 1564
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Tinderhoof » Wed Jan 02, 2013 2:43 pm

RareBeast wrote:A small thing - would it be possible to rearrange the order the check boxes appear in the options list for the script? The main one I change regularly is the "frontal attack" option which is right down the bottom of the list off the bottom of my screen. I could obviously edit the script myself, but then that kind of defeats the purpose of using Neriens scripts.

You should be able to do this yourself. If you look in the script in ovale near the top the check boxes are defined. The order they are defined is the order they are distplayed. Just cut and paste the "Attack from the front" to the top and you should be golden. I would put an example in but I am at work, and can't get to a copy of the script. I will update this later when I get home.

Exalted
User avatar
Posts: 1145
Joined: Fri Jun 04, 2010 4:28 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Leafkiller » Wed Jan 02, 2013 3:24 pm

Actually, I am not sure how much control we have on the checkboxes - but go ahead and play with them.

Exalted
User avatar
Posts: 1201
Joined: Fri Nov 25, 2011 7:49 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby aggixx » Thu Jan 17, 2013 9:42 pm

@Tinder/Leaf: Working on modifying the Ovale script for the most recent SimC action list. I skipped the pooling but otherwise the DoC rotation is implemented, I didn't touch the HotW/NV rotation yet.

It doesn't seem to be working exactly as it should, there's a lot of seemingly unnecessary downtime that as far as I can tell the Sim does not have. Here's the current script:
Spoiler: show
# Leafkiller's Feral/Guardian druid script.
# Cat Rotation based on Simulationcraft single target default script. Contributions to that have come from many ferals.
# Guardian script from Tinderhoof.
# Lots of input and constructs from jlam aka Nerien
# Revision History
# 5.1.5 01/17/2013 Update to SimC action list, WIP
# 5.1.4 12/07/2012 Tooth and Claw
# 5.1.3 12/07/2012 Tweak for Bear display with alternate setup selected
# 5.1.2 12/07/2012 Misc changes including SR, Ravage!, alternate layout for Aggixx and some script reconciliation
# 5.1.1 11/30/2012 Ravage fix for PVP 4 set and support for faster combo points on crits
# 5.05.14 11/09/2012 New spell ID for clearcasting
# 5.05.14 11/09/2012 Only suggest Feral_spirit if the symbiosis buff is present - otherwise it suggests symbiosis even when the buff is not up
# 5.05.13 10/23/2012 Don't pool during NV
# 5.05.12 10/22/2012 Fix bad spell name in Rake conditional (tigers_fury should be TIGERSFURY)
# 5.05.11 10/22/2012 Fix for energy pooling for non-DoC specs. Small updates based on most recent sim script for TTD. FFF() added. TTD updated.
# 5.05.10 10/21/2012 4 Piece PvP gear support and Nature's Vigil HT code
# 5.05.9 10/16/2012 Feral Spirit support
# 5.05.8 10/14/2012 Fix 3 second SR to interfere less with Rip for HotW (and NV). 60 seconds for Rake.
# 5.05.7 10/14/2012 Update to latest version of sim script - small changes and Rake improvements
# 5.05.6 10/11/2012 Heart of the Wild support, add out of combat support
# 5.05.6 10/10/2012 Update to limit SR using comb points when DoC is up
# 5.05.5a 10/08/2012 Update to include optimizations in simc script
# 5.05.5 09/24/2012 Multiply damage ratios by 100 to avoid rounding issues, put in variable Rip overwriting during BitW, tweak numbers slightly (TF is 14% not 15% for example).
# 5.05.4 09/23/2012 Level 90 script - First complete version
# 5.05.2 09/20/2012 Level 90 script - WiP
# 5.05.1 09/08/2012 First version in Nerien's addon

# Shared defines
Define(barkskin 22812)
SpellInfo(barkskin cd=60)
Define(cat_form 768)
SpellAddBuff(cat_form cat_form=1)
Define(cenarion_ward 102351)
SpellInfo(cenarion_ward cd=30)
Define(dream_of_cenarius_damage 108381)
SpellInfo(dream_of_cenarius_damage duration=30 )
SpellAddBuff(dream_of_cenarius_damage dream_of_cenarius_damage=1)
Define(feral_spirit 110807)
Define(force_of_nature 106737)
SpellInfo(force_of_nature cd=60)
Define(healing_touch 5185)
Define(heart_of_the_wild_spell 108292)
SpellInfo(heart_of_the_wild_spell cd=360)
SpellAddBuff(heart_of_the_wild_spell heart_of_the_wild_spell=1)
Define(mark_of_the_wild 1126)
SpellInfo(mark_of_the_wild duration=3600)
SpellAddBuff(mark_of_the_wild mark_of_the_wild=1)
Define(natures_swiftness 132158)
SpellInfo(natures_swiftness cd=60)
SpellAddBuff(natures_swiftness natures_swiftness=1)
Define(natures_vigil_buff 124974)
SpellInfo(natures_vigil_buff cd=180)
SpellAddBuff(natures_vigil_buff natures_vigil_buff=1)
Define(predatory_swiftness 69369)
SpellAddBuff(predatory_swiftness predatory_swiftness=1)
Define(primal_fury 16961)
Define(renewal 108238)
SpellInfo(renewal cd=120 )
Define(symbiosis 110309)
SpellAddBuff(symbiosis symbiosis=1)
Define(treants 106737)
SpellInfo(treants duration=15 cd=60)
Define(tricks 57933)
SpellAddBuff(tricks tricks=1)
Define(wrath 5176)
Define(weakened_armor 113746)
SpellInfo(weakened_armor duration=30)
Define(weakened_blows 115798)
SpellInfo(weakened_blows duration=30)

# Talents
Define(natures_swiftness_talent 4)
Define(renewal_talent 5)
Define(cenarion_ward_talent 6)
Define(faerie_swarm 7)
Define(soul_of_the_forest 10)
Define(incarnation_talent 11)
Define(force_of_nature_talent 12)
Define(heart_of_the_wild_talent 16)
Define(dream_of_cenarius_talent 17)
Define(natures_vigil_talent 18)

#Buff
Define(CLEARCASTING 135700)

#Glyphs
Define(GLYPHOFSHRED 114234)
Define(GLYPHOFSAVAGERY 127540)

# cat abilities. Using the convention that constants are CAPs
Define(BERSERK 106951) #cat cd buff
SpellInfo(BERSERK duration=15 cd=180 )
SpellAddBuff(BERSERK BERSERK=1 )
Define(FAERIEFERAL 770) #bear+cat
SpellInfo(FAERIEFERAL duration=300 cd=6)
SpellAddTargetDebuff(FAERIEFERAL FAERIEFERAL=1 weakened_armor=1)
Define(FAERIESWARM 102355) #bear+cat
SpellInfo(FAERIESWARM duration=300 cd=6)
SpellAddTargetDebuff(FAERIESWARM FAERIESWARM=1 weakened_armor=1)
Define(FEROCIOUSBITE 22568) #cat finish 25-50 energy
SpellInfo(FEROCIOUSBITE energy=25 combo=0)
Define(INCARNATIONCAT 102543)
SpellInfo(INCARNATIONCAT duration=30 cd=180 )
Define(MAIM 22570) #cat interrupt
SpellInfo(MAIM cd=10 energy=35 combo=0)
Define(MANGLECAT 33876) #cat bleed+debuff
SpellInfo(MANGLECAT inccounter=ripshreds energy=35 combo=1)
SpellInfo(MANGLECAT critcombo=1 if_spell=primal_fury)
Define(RAKE 1822) #cat bleed
SpellInfo(RAKE combo=1 duration=15 energy=35 tick=3)
SpellInfo(RAKE base=98.13 bonusap=0.31453)
SpellInfo(RAKE critcombo=1 if_spell=primal_fury)
SpellAddTargetDebuff(RAKE RAKE=1)
SpellDamageBuff(RAKE dream_of_cenarius_damage=1.25)
Define(RAVAGE 6785)
SpellInfo(RAVAGE inccounter=ripshreds energy=45 combo=1)
SpellInfo(RAVAGE critcombo=1 if_spell=primal_fury)
Define(RAVAGEBANG 102545)
SpellInfo(RAVAGEBANG inccounter=ripshreds energy=0 combo=1)
SpellInfo(RAVAGEBANG critcombo=1 if_spell=primal_fury)
Define(RIP 1079) #cat bleed
SpellInfo(RIP resetcounter=ripshreds duration=16 energy=30 tick=2 combo=0)
SpellInfo(RIP base=112.76 bonuscp=320 bonusapcp=0.0484) # damage coefficients
SpellAddTargetDebuff(RIP RIP=1)
SpellDamageBuff(RIP dream_of_cenarius_damage=1.25)
Define(SAVAGEROAROLD 52610)
SpellInfo(SAVAGEROAROLD duration=18 combo=0 energy=25)
SpellAddBuff(SAVAGEROAROLD SAVAGEROAROLD=1)
Define(SAVAGEROARGLYPHED 127538)
SpellInfo(SAVAGEROARGLYPHED duration=12 combo=-5 energy=25)
SpellAddBuff(SAVAGEROARGLYPHED SAVAGEROARGLYPHED=1)
SpellList(savage_roar_buff 52610 127538)
Define(SHRED 5221) #cat behind
SpellInfo(SHRED inccounter=ripshreds energy=40 combo=1)
SpellInfo(SHRED critcombo=1 if_spell=primal_fury)
Define(SHREDBANG 114236)
SpellInfo(SHREDBANG inccounter=ripshreds energy=40 combo=1)
SpellInfo(SHREDBANG critcombo=1 if_spell=primal_fury)
Define(STAMPEDEBUFF 81022)
SpellAddBuff(STAMPEDEBUFF STAMPEDEBUFF=1)
Define(SKULLBASHCAT 80965) #cat interrupt
SpellInfo(SKULLBASHCAT cd=15 energy=15)
Define(THRASHCAT 106830)
SpellInfo(THRASHCAT duration=15 energy=50 tick=3)
SpellAddTargetDebuff(THRASHCAT THRASHCAT=1 weakened_blows=1)
SpellDamageBuff(THRASHCAT dream_of_cenarius_damage=1.25)
Define(TIGERSFURY 5217) #cat buff
SpellInfo(TIGERSFURY duration=6 energy=-60 cd=30)
SpellAddBuff(TIGERSFURY TIGERSFURY=1)
Define(WILDCHARGE 49376)
SpellInfo(WILDCHARGE cd=15)

# Bear abilities. Using the convention that constants are all CAPs

Define(BERSERKBEAR 106952) #cat+bear cd buff
SpellInfo(BERSERKBEAR duration=10 cd=180 )
SpellAddBuff(BERSERKBEAR BERSERKBEAR=1)
Define(ENRAGE 5229)
Define(FRENZIEDREGEN 22842)
Define(INCARNATIONBEAR 102558)
SpellInfo(INCARNATIONBEAR duration=30 cd=180 )
Define(LACERATE 33745)
Define(MANGLEBEAR 33878)
Define(MAUL 6807)
Define(MIGHTOFURSOC 106922)
Define(RENEWAL 108238)
Define(SAVAGEDEFENSE 62606)
Define(SURVIVALINSTINCTS 61336)
Define(SWIPEBEAR 779)
Define(THRASHBEAR 77758)
Define(TOOTHANDCLAW 135286)
SpellAddBuff(TOOTHANDCLAW TOOTHANDCLAW=1)
Define(WILDCHARGEBEAR 102401)
SpellInfo(WILDCHARGEBEAR cd=15)

AddCheckBox(cooldownsL "Show Left Rotation Boxes" default)
AddCheckBox(cooldownsR "Show Right Cooldown Boxes" default)
AddCheckBox(altpredictive "Alternate predictive box")

AddCheckBox(bearaoe "Bear AOE Rotation")

AddCheckBox(cooldownsRatio "Show Rake and Rip Ratio Boxes" mastery=2)
AddCheckBox(lucioles SpellName(FAERIEFERAL) default mastery=2)
AddCheckBox(berserk "Cat Berserk" default mastery=2)
AddCheckBox(infront "Frontal attack" mastery=2)
AddCheckBox(predictive "Hide predictive box" mastery=2)
AddCheckBox(nvbounce "Use healing CDs for damage" mastery=2)
#
# Mastery=2 Feral cooldown boxes and rotation
#
AddFunction FFF
{
if TalentPoints(faerie_swarm) Spell(FAERIESWARM)
if not TalentPoints(faerie_swarm) Spell(FAERIEFERAL)
}
AddFunction SavageRoar
{
if Glyph(GLYPHOFSAVAGERY) Spell(SAVAGEROARGLYPHED)
if Glyph(GLYPHOFSAVAGERY no) and ComboPoints(more 0) Spell(SAVAGEROAROLD)
}

AddFunction TimeUntilTargetIsDead
{
target.TimeToDie()
}


AddFunction MinRatioForRipOverwrite
{
if {TimeUntilTargetIsDead() >120} 112
if {TimeUntilTargetIsDead() <=120} {{0.002*{180.00-TimeUntilTargetIsDead()}} + 1.00} * 100
}

#
# Rake functions
AddFunction RakeTickDamage
{
# rake_tick_damage = (tick_damage + coeff * AP) * damage_multiplier * bleed_multiplier
Damage(RAKE) * {1 + Mastery()/100}
}

AddFunction LastRakeTickDamage
{
# rake_tick_damage = (tick_damage + coeff * AP) * damage_multiplier * bleed_multiplier
LastSpellEstimatedDamage(RAKE) * {1 + LastSpellMastery(RAKE)/100}
}

AddFunction RakeTickDamageRatio
{
if TargetDebuffPresent(RAKE) {100 * RakeTickDamage()/LastRakeTickDamage()}
unless TargetDebuffPresent(RAKE) 100.0
}

#
# Rip functions
AddFunction RipTickDamage
{
# Damage(rip) == { 113 + (320 * CP) + (0.3872 * AP * CP) } * DamageMultiplier(rip)
Damage(RIP) * {1 + Mastery()/100}
}

AddFunction LastRipTickDamage
{
# Damage(rip) == { 113 + (320 * CP) + (0.3872 * AP * CP) } * DamageMultiplier(rip)
LastSpellEstimatedDamage(RIP) * {1 + LastSpellMastery(RIP)/100}
}

AddFunction RipTickDamageRatio
{
if TargetDebuffPresent(RIP) {100 * RipTickDamage()/LastRipTickDamage()}
unless TargetDebuffPresent(RIP) 100.0
}


AddIcon help=Rake size=small mastery=2 checkboxon=cooldownsRatio
{
RakeTickDamageRatio()
}

AddIcon help=Rip size=small mastery=2 checkboxon=cooldownsRatio
{
RipTickDamageRatio()
}

AddFunction AddCombo
{
if target.DebuffRemains(THRASHCAT) < 3 and TimeUntilTargetIsDead() >=6 and ComboPoints() >= 5 Spell(THRASHCAT)
if BuffPresent(INCARNATIONCAT) or BuffPresent(STAMPEDEBUFF) {
Spell(RAVAGE)
}
unless BuffPresent(INCARNATIONCAT) or BuffPresent(STAMPEDEBUFF) {
# Mangle for combo points for Rip or SR
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3) Spell(MANGLECAT)
if ComboPoints(less 1) and BuffExpires(savage_roar_buff 2) Spell(MANGLECAT)

if CheckBoxOn(infront) {
if Glyph(GLYPHOFSHRED) and {BuffPresent(TIGERSFURY) or BuffPresent(BERSERK)} Spell(SHRED)
Spell(MANGLECAT)
}
Spell(SHRED)
}
}

AddFunction BITWRange
{
{ArmorSetParts(T13 more 1) and TargetLifePercent(less 60)} or TargetLifePercent(less 25)
}

AddFunction ExtendedRipDuration
{
if {target.DebuffPresent(RIP) and Counter(ripshreds) < 3} {{{3-Counter(ripshreds)}*2} + target.DebuffRemains(RIP)}
if {target.DebuffPresent(RIP) and Counter(ripshreds) >= 3} {target.DebuffRemains(RIP)}
}

AddFunction EnergyForPredatorySwiftness
{
Energy()+{10*{BuffRemains(predatory_swiftness) -1}}
}

AddFunction EnergyForSoul
{
Energy()+{10*{4 - ComboPoints()}}
}

AddIcon help=cd size=small mastery=2 checkboxon=cooldownsL {
if TargetIsInterruptible(yes) {
Spell(SKULLBASHCAT)
if ComboPoints(more 1)
Spell(MAIM)
}
Spell(WILDCHARGE)
}

AddIcon help=cd size=small mastery=2 checkboxon=cooldownsL { # Berserk Icon
if BuffPresent(TIGERSFURY) Spell(BERSERK)
if 0s before Spell(BERSERK) Texture(Ability_mount_polarbear_white)
}

AddFunction NotInCombat
{
if not InCombat() {
if not BuffPresent(str_agi_int any=1) Spell(mark_of_the_wild)
if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
unless Stance(3) Spell(cat_form)
if BuffExpires(savage_roar_buff) SavageRoar()
if TalentPoints(force_of_nature_talent) Spell(treants)
}
}
AddFunction StartRotation
{
if TalentPoints(dream_of_cenarius_talent) and BuffPresent(predatory_swiftness) and BuffRemains(predatory_swiftness) <=1.5 and BuffExpires(dream_of_cenarius_damage)
Spell(healing_touch)
if BuffExpires(savage_roar_buff) SavageRoar()
if TalentPoints(dream_of_cenarius_talent) and BuffPresent(predatory_swiftness) and ComboPoints() >= 4 and BuffStacks(dream_of_cenarius_damage) <2
Spell(healing_touch)
if TalentPoints(dream_of_cenarius_talent) and PreviousSpell(natures_swiftness) Spell(healing_touch)
}

AddFunction TFBerserk
{
# TF + Berserk logic - only show Berserk if both are off of cooldown - everyone should macro TF to their Berserk key
if not {BuffPresent(BERSERK) or BuffPresent(CLEARCASTING)} {
if Energy(less 36) and {0s before Spell(TIGERSFURY)} {
if CheckBoxOn(berserk) Spell(BERSERK)
Spell(TIGERSFURY)
}
}

#In case Berserk was not cast with TF
if {BuffPresent(TIGERSFURY) or {TimeUntilTargetIsDead() <15 and SpellCooldown(TIGERSFURY) >6 }} and CheckBoxOn(berserk) Spell(BERSERK)
}

AddFunction MainRotationDoC
{
# Healing Touches, SR Down, FFF
#actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius_damage.down
#actions.doc+=/savage_roar,if=buff.savage_roar.down
#actions.doc+=/faerie_fire,if=debuff.weakened_armor.stack<3
#actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&(combo_points>=4|(set_bonus.tier15_2pc_melee&combo_points>=3))&buff.dream_of_cenarius_damage.stack<2
if BuffPresent(predatory_swiftness) and BuffRemains(predatory_swiftness) <=1.5 and BuffExpires(dream_of_cenarius_damage)
Spell(healing_touch)
if BuffExpires(savage_roar_buff) SavageRoar()
if CheckBoxOn(lucioles) and target.DebuffStacks(weakened_armor any=1) <3 FFF()
if BuffPresent(predatory_swiftness) and {ComboPoints() >= 4 or {ComboPoints() >= 3 and ArmorSetParts(T15 more 1)}} and BuffStacks(dream_of_cenarius_damage) < 2
Spell(healing_touch)
if BuffPresent(natures_swiftness) Spell(healing_touch)

#Cooldowns
#actions.doc+=/incarnation,if=enabled&energy<=35&!buff.omen_of_clarity.react&cooldown.tigers_fury.remains=0&cooldown.berserk.remains=0
#actions.doc+=/tigers_fury,if=(energy<=35&!buff.omen_of_clarity.react)|buff.king_of_the_jungle.up
#actions.doc+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<15&cooldown.tigers_fury.remains>6)
# TF + Berserk logic - only show Berserk if both are off of cooldown - everyone should macro TF to their Berserk key
if not {BuffPresent(BERSERK) or BuffPresent(CLEARCASTING)} {
if Energy(less 36) and {0s before Spell(TIGERSFURY)} {
if CheckBoxOn(berserk) Spell(BERSERK)
Spell(TIGERSFURY)
}
}
#In case Berserk was not cast with TF
if {BuffPresent(TIGERSFURY) or {TimeUntilTargetIsDead() <15 and SpellCooldown(TIGERSFURY) >6 }} and CheckBoxOn(berserk) Spell(BERSERK)
#Cooldowns that should be popped with Berserk
if BuffPresent(BERSERK) {
if TalentPoints(incarnation_talent) Spell(incarnation)
}

# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
#actions.doc+=/ferocious_bite,if=combo_points>=1&dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
if BITWRange() and ComboPoints(more 0) and TargetDebuffPresent(RIP) and TargetDebuffExpires(RIP 2.9) Spell(FEROCIOUSBITE)

#actions.doc+=/thrash_cat,if=target.time_to_die>=6&buff.omen_of_clarity.react&dot.thrash_cat.remains<3
if TimeUntilTargetIsDead() >=6 and BuffPresent(CLEARCASTING) and TargetDebuffExpires(THRASHCAT 3) Spell(THRASHCAT)

#actions.doc+=/ferocious_bite,if=(target.time_to_die<=4&combo_points>=5)|(target.time_to_die<=1&combo_points>=3)
if {TimeUntilTargetIsDead() <=4 and ComboPoints() >=5} or {TimeUntilTargetIsDead() <=1 and ComboPoints() >=3}
Spell(FEROCIOUSBITE)

# Blood in the water code - mostly for DoC - combined the BITW check to make Ovale more efficient
#actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
#actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius_damage.down&buff.predatory_swiftness.down&combo_points>=5&target.health.pct<=25
#actions.doc+=/rip,if=combo_points>=5&tick_multiplier%dot.rip.multiplier>1.14&target.health.pct<=25&target.time_to_die>30
#actions.doc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25
if BITWRange() {
if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffExpires(dream_of_cenarius_damage) SavageRoar()
if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5
Spell(natures_swiftness)
if ComboPoints() >=5 and TimeUntilTargetIsDead() >30 and RipTickDamageRatio() >=114 Spell(RIP)
# Pool here
if TargetDebuffPresent(RIP) and ComboPoints() >=5 Spell(FEROCIOUSBITE)
}

#actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2.0&buff.dream_of_cenarius_damage.up
#actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<6.0&buff.dream_of_cenarius_damage.up&dot.rip.multiplier<=tick_multiplier
if BuffPresent(dream_of_cenarius_damage) and ComboPoints() >=5 and TimeUntilTargetIsDead() >6 and
{TargetDebuffExpires(RIP 2) or
{TargetDebuffExpires(RIP 6) and RipTickDamageRatio() >=100 and not BITWRange()}} Spell(RIP)

#actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius_damage.down&buff.predatory_swiftness.down&combo_points>=5&dot.rip.remains<3&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)&target.health.pct>25
if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5
and TargetDebuffExpires(RIP) <3 and {BuffPresent(BERSERK) or target.DebuffRemains(RIP)+1.9 <=SpellCooldown(TIGERSFURY)} and not BITWRange()
Spell(natures_swiftness)

# Time to recast Rip - clip if possible - try to hold off for TF
#actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2.0&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)
if ComboPoints() >=5 and TimeUntilTargetIsDead() >=6 and TargetDebuffExpires(RIP) <2 and {BuffPresent(BERSERK) or target.DebuffRemains(RIP)+1.9 <=SpellCooldown(TIGERSFURY)}
Spell(RIP)

#actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>dot.rip.remains
#actions.doc+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=$(rip_remains)
if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffRemains(savage_roar_buff)+2 > target.DebuffRemains(RIP) SavageRoar()
if BuffRemains(savage_roar_buff) <=6 and ComboPoints(more 4) and BuffRemains(savage_roar_buff)+2 <= ExtendedRipDuration() SavageRoar()

# Doc FB and pooling code here
#actions.doc+=/ferocious_bite,if=combo_points>=5&buff.savage_roar.remains-6>=$(rip_remains)&$(rip_remains)>=4
#actions.doc+=/ferocious_bite,if=combo_points>=5&buff.savage_roar.remains+6>=$(rip_remains)&$(rip_remains)>=6
#actions.doc+=/ferocious_bite,if=combo_points>=5&$(rip_remains)>=10
if ComboPoints() >= 5 and BuffRemains(savage_roar_buff)-6 >= ExtendedRipDuration() and ExtendedRipDuration() >= 4 Spell(FEROCIOUSBITE)
if ComboPoints() >= 5 and BuffRemains(savage_roar_buff)+6 >= ExtendedRipDuration() and ExtendedRipDuration() >= 6 Spell(FEROCIOUSBITE)
if ComboPoints() >= 5 and ExtendedRipDuration() > 10 Spell(FEROCIOUSBITE)

# Rake
#actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<6.0&buff.dream_of_cenarius_damage.up&dot.rake.multiplier<=tick_multiplier
#actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&tick_multiplier%dot.rake.multiplier>1.12
#actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<3.0&(buff.berserk.up|(cooldown.tigers_fury.remains+0.8)>=dot.rake.remains|energy>60)
if TimeUntilTargetIsDead() - target.debuffRemains(RAKE) > 3 and BuffPresent(dream_of_cenarius_damage) and target.DebuffRemains(RAKE) < 6 and RakeTickDamageRatio() >=100 Spell(RAKE)
if TimeUntilTargetIsDead() - target.debuffRemains(RAKE) > 3 and RakeTickDamageRatio() >= 112 Spell(RAKE)
if TimeUntilTargetIsDead() - target.debuffRemains(RAKE) > 3 and TargetDebuffExpires(RAKE 2.9) and {BuffPresent(BERSERK) or Energy(more 60) or {SpellCooldown(TIGERSFURY) +0.8 } >=target.DebuffRemains(RAKE)} Spell(RAKE)

#actions.doc+=/thrash_cat,if=dot.thrash_cat.remains<3&target.time_to_die>=6&($(rip_remains)>=4|buff.berserk.up)
if target.debuffRemains(THRASHCAT) < 3 and TimeUntilTargetIsDead() >= 6 and {ExtendedRipDuration() >= 4 or BuffPresent(BERSERK)} Spell(THRASHCAT)
}

AddFunction MainRotationOld
{

# Two conditions for FB during Blood of the Water phase
# Add in FB code for end of fight - only do this is Rip buff is present
if BITWRange() and ComboPoints(more 0) and TargetDebuffPresent(RIP) and TargetDebuffExpires(RIP 2.9) Spell(FEROCIOUSBITE)
if CheckBoxOn(lucioles) and target.DebuffStacks(weakened_armor any=1) <3 FFF()

if TimeUntilTargetIsDead() >=6 and BuffPresent(CLEARCASTING) and TargetDebuffExpires(THRASHCAT 3) and BuffExpires(dream_of_cenarius_damage) Spell(THRASHCAT)

if {TimeUntilTargetIsDead() <=4 and ComboPoints() >=5} or {TimeUntilTargetIsDead() <=1 and ComboPoints() >=3}
Spell(FEROCIOUSBITE)

# Blood in the water code - mostly for DoC - combined the BITW check to make Ovale more efficient
if BITWRange() {
if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffExpires(dream_of_cenarius_damage) SavageRoar()
if TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5
Spell(natures_swiftness)
if ComboPoints() >=5 and TimeUntilTargetIsDead() >30 and RipTickDamageRatio() >=114 Spell(RIP)
# Pool here
if TargetDebuffPresent(RIP) and ComboPoints() >=5 Spell(FEROCIOUSBITE)
}

if BuffPresent(dream_of_cenarius_damage) and ComboPoints() >=5 and TimeUntilTargetIsDead() >6 and {TargetDebuffExpires(RIP 2) or
{TargetDebuffExpires(RIP 6) and RipTickDamageRatio() >=100 and not BITWRange()}} Spell(RIP)

if TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5
and TargetDebuffExpires(RIP) <3 and {BuffPresent(BERSERK) or target.DebuffRemains(RIP)+1.9 <=SpellCooldown(TIGERSFURY)} and not BITWRange()
Spell(natures_swiftness)

# Time to recast Rip - clip if possible - try to hold off for TF
if ComboPoints() >=5 and TimeUntilTargetIsDead() >=6 and TargetDebuffExpires(RIP) <2 and {BuffPresent(BERSERK) or target.DebuffRemains(RIP)+1.9 <=SpellCooldown(TIGERSFURY)}
Spell(RIP)

if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and BuffExpires(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) SavageRoar()
if BuffRemains(savage_roar_buff) <=3 and ComboPoints(more 0) and not TalentPoints(dream_of_cenarius_talent) {
if not {TargetDebuffExpires(RIP) <2 and {BuffPresent(BERSERK) or target.DebuffRemains(RIP)+1.9 <=SpellCooldown(TIGERSFURY)}} SavageRoar()
}

if TimeUntilTargetIsDead() >=6 and BuffPresent(CLEARCASTING) and TargetDebuffExpires(THRASHCAT 3) Spell(THRASHCAT)

#Extends Rip with shred/mangle/ravage
if TargetDebuffPresent(RIP) and TargetDebuffExpires(RIP 4) and Counter(ripshreds less 3) AddCombo()

if ComboPoints() >=5 and BuffRemains(savage_roar_buff) <=6 and target.DebuffPresent(RIP) and {BuffRemains(savage_roar_buff)+2 <= ExtendedRipDuration()} SavageRoar()

# Doc FB and pooling code here

if ComboPoints() >=5 and target.DebuffPresent(RIP) and {{BuffPresent(BERSERK) and ExtendedRipDuration() > 6}
or ExtendedRipDuration() >10} Spell(FEROCIOUSBITE)

# Rake code
if TimeUntilTargetIsDead() >3 and BuffPresent(dream_of_cenarius_damage) and target.DebuffRemains(RAKE) <6 and RakeTickDamageRatio() >=100 Spell(RAKE)
if TimeUntilTargetIsDead() >3 and RakeTickDamageRatio() >=112 Spell(RAKE)
if TimeUntilTargetIsDead() >3 and TargetDebuffExpires(RAKE 2.9) and {BuffPresent(BERSERK) or Energy(more 60)
or {SpellCooldown(TIGERSFURY) +0.8 } >=target.DebuffRemains(RAKE)}
Spell(RAKE)
}

AddFunction MainRotation
{
StartRotation()
TFBerserk()
MainRotationOld()
}

AddFunction Fillers
{
# take care of OOC when it was not used for Thrash
if BuffPresent(CLEARCASTING) AddCombo()

# Shred for combo points for Rip or SR
if ComboPoints(less 5) and TargetDebuffExpires(RIP 3) AddCombo()
if ComboPoints(less 1) and BuffExpires(savage_roar_buff 2) AddCombo()

# aggressive shred for Predatory Swiftness and/or Soul of the Forest
if TalentPoints(dream_of_cenarius_talent) and BuffRemains(predatory_swiftness) > 1 AddCombo()
if not TalentPoints(dream_of_cenarius_talent) and TalentPoints(soul_of_the_forest) and ComboPoints() < 5 AddCombo()

if TimeUntilTargetIsDead() <= 8.5 AddCombo()

# Shred aggressively for Berserk and TF
if BuffPresent(BERSERK) or BuffPresent(TIGERSFURY) or BuffPresent(natures_vigil_buff) AddCombo()

# Shred to burn off energy so we can TF without capping
if { 4s before Spell(TIGERSFURY) } AddCombo()

# Fallback Shred to prevent energy capping
if 1.4s before Energy(more 99) AddCombo()
}

AddFunction Fillers2
{
# Force of Nature
if TalentPoints(force_of_nature_talent) Spell(force_of_nature)

# Nature's Vigil HTs for extra damage
if BuffPresent(natures_vigil_buff) {
if BuffPresent(predatory_swiftness) Spell(healing_touch)
if CheckBoxOn(nvbounce) {
if BuffPresent(natures_swiftness) Spell(healing_touch)
if BuffExpires(predatory_swiftness) Spell(natures_swiftness)
Spell(renewal)
Spell(cenarion_ward)
}
}

# Feral Spirit
if BuffPresent(symbiosis) Spell(feral_spirit)

# opportunistic FF
if CheckBoxOn(lucioles) and target.DebuffExpires(weakened_armor) <15 and Energy(less 75) FFF()
}

AddFunction Prediction
{

if Stance(3) {
StartRotation()
MainRotation()
}
if Stance(1) {
if BuffPresent(heart_of_the_wild_spell) Spell(FRENZIEDREGEN)
if not BuffPresent(heart_of_the_wild_spell) Spell(cat_form)
}
if Stance(0) {
if BuffPresent(heart_of_the_wild_spell) {
if BuffExpires(heart_of_the_wild_spell) Texture(spell_holy_blessingofagility)
}
if not BuffPresent(heart_of_the_wild_spell) Spell(cat_form)
}
if Stance(4) or Stance(2) Spell(cat_form)
}


# Predictive rotation
AddIcon help=predictive size=small mastery=2 checkboxon=altpredictive {
Prediction()
}

AddIcon help=predictive size=small mastery=2 checkboxon=altpredictive {
if TalentPoints(heart_of_the_wild_talent) Spell(heart_of_the_wild_spell)
if TalentPoints(dream_of_cenarius_talent) Spell(natures_swiftness)
if TalentPoints(natures_vigil_talent) Spell(natures_vigil_buff)
}

# Main rotation
AddIcon help=main mastery=2 {
NotInCombat()
if Stance(3) {
if not TargetInRange(SHRED) Texture(ability_druid_catformattack)
if TalentPoints(dream_of_cenarius_talent) MainRotationDoC()
if not TalentPoints(dream_of_cenarius_talent) MainRotation()
Fillers()
Fillers2()
}
if Stance(1) {
if BuffPresent(heart_of_the_wild_spell) {
if CheckBoxOff(bearaoe) BearMain()
if CheckBoxOn(bearaoe) BearMainAOE()
}
if not BuffPresent(heart_of_the_wild_spell) Spell(cat_form)
}
if Stance(0) {
if BuffPresent(heart_of_the_wild_spell) {
if CastTime(wrath) <BuffRemains(heart_of_the_wild_spell) Spell(wrath)
Spell(cat_form)
}
if not BuffPresent(heart_of_the_wild_spell) Spell(cat_form)
}
if Stance(4) or Stance(2) Spell(cat_form)
}

# Predictive rotation
AddIcon help=predictive mastery=2 checkboxoff=predictive {
Prediction()
}

AddIcon help=cd size=small mastery=2 checkboxon=cooldownsR { # Rake
if BuffExpires(savage_roar_buff) Texture(ability_druid_skinteeth)
}
AddIcon help=cd size=small mastery=2 checkboxon=cooldownsR { # Rip
if TargetDebuffExpires(RIP) Texture(ability_ghoulfrenzy)
}
AddIcon help=cd size=small mastery=2 checkboxon=cooldownsR { # Rake
if TargetDebuffExpires(RAKE) Texture(ability_druid_disembowel)
}
AddIcon help=cd size=small mastery=2 checkboxon=cooldownsR {
Spell(TIGERSFURY)
}

#
# Mastery=3 Guardian cooldown boxes and rotation
#
AddIcon help=cd size=small mastery=3 checkboxon=cooldownsL {
Spell(barkskin)
}

AddIcon help=cd size=small mastery=3 checkboxon=cooldownsL {
if TalentPoints(natures_swiftness_talent) Spell(natures_swiftness)
if TalentPoints(renewal_talent) Spell(RENEWAL)
if TalentPoints(cenarion_ward_talent) Spell(cenarion_ward)
}

AddFunction BearMain
{
if 1s before Spell(MANGLEBEAR) Spell(MANGLEBEAR)

if not TargetDebuffPresent(weakened_blows any=1) Spell(THRASHBEAR)
if target.DebuffStacks(weakened_armor any=1) <1 FFF()
if TargetDebuffPresent(THRASHBEAR) <4 Spell(THRASHBEAR)

Spell(LACERATE)
FFF()
}

AddFunction BearMainAOE
{
if 1s before Spell(MANGLEBEAR) Spell(MANGLEBEAR)
Spell(THRASHBEAR)
Spell(SWIPEBEAR)
}

AddIcon mastery=3 size=small checkboxon=altpredictive checkboxoff=cooldownsL {
if Rage(less 11) Spell(ENRAGE useable=1)
Spell(SAVAGEDEFENSE usable=1)
Spell(FRENZIEDREGEN)
}

AddIcon mastery=3 size=small checkboxon=altpredictive checkboxoff=cooldownsL {
if BuffPresent(TOOTHANDCLAW) Spell(TOOTHANDCLAW)
unless BuffPresent(TOOTHANDCLAW) Spell(MAUL)
}

# Main rotation
AddIcon help=main mastery=3 {
if CheckBoxOff(bearaoe) BearMain()
if CheckBoxOn(bearaoe) BearMainAOE()
}

AddIcon help=defense mastery=3 checkboxoff=altpredictive {
if Rage(less 11) Spell(ENRAGE useable=1)
Spell(SAVAGEDEFENSE usable=1)
Spell(FRENZIEDREGEN)
}

AddIcon help=cd size=small mastery=3 checkboxon=cooldownsR {
Spell(SURVIVALINSTINCTS)
}

AddIcon help=cd size=small mastery=3 checkboxon=cooldownsR {
Spell(MIGHTOFURSOC)
}

AddIcon help=cd size=small mastery=3 checkboxon=cooldownsR {
if TalentPoints(incarnation_talent) Spell(INCARNATIONBEAR)
if TalentPoints(force_of_nature_talent) Spell(force_of_nature)
}

AddIcon help=cd size=small mastery=3 checkboxon=cooldownsR {
Spell(BERSERKBEAR)
}
Image

Honored
Posts: 67
Joined: Mon Sep 10, 2012 3:12 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Etapicx » Mon Jan 21, 2013 3:05 pm

Okay since i've admittedly started to lay back during a few of the raids i've picked up my ovale again.

There is a strange usage of Nature's Swiftness+TF+HT. It goes like Tiger's Fury-> NS->HT i would like to have it NS->HT->TF because you waste seconds using NS->HT that would maybe've been enough time to hit another spell with TF since you would be energy caped as well since you poped TF first.
Also sometimes on OoC procs we'r poping Thrash when DoC is up when Rake would've been boosted with DoC and a trinket from being just SR buffed and it would've done way higher damage then the first Rake application.
Image

Posts: 20
Joined: Mon Jan 21, 2013 7:27 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby CrazyCatLady » Mon Jan 21, 2013 8:04 pm

First time poster, long time lurker and fan of Ovale. I want to say thank you to each and every one of you working on this. I've use other similar add-ons but none can compare to Ovale + Nerien's.

I've just got one question: is the feral part of the balance/feral script in Nerien's the same as in the feral/guardian script? I have the pleasure of being a dedicated kitty in my raid group but I switch to moonkin just for a change of pace for dailies, dungeons, lfr, etc. I've been switching between the balance/feral and feral/guardian scripts. Some times, after playing moonkin, I forget to switch and only realize it after combat has started and notice the suggestions don't seem to be the same.

Exalted
User avatar
Posts: 1201
Joined: Fri Nov 25, 2011 7:49 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby aggixx » Tue Jan 22, 2013 6:28 am

No, it is not. The default feral script maintained (presumably) by Nerien is completely seperate from Leafkiller's script.
Image

Posts: 25
Joined: Sun Jan 13, 2013 12:11 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Spanja » Tue Jan 22, 2013 8:32 am

Etapicx wrote:There is a strange usage of Nature's Swiftness+TF+HT. It goes like Tiger's Fury-> NS->HT i would like to have it NS->HT->TF because you waste seconds using NS->HT that would maybe've been enough time to hit another spell with TF since you would be energy caped as well since you poped TF first.


Yes it's the same with Berserk, for exemple at the pull when you don't get Predatory Swiftness, the script suggests to use Berserk (+ TF) and then NS -> HT, which wastes one GCD from Berserk buff.

Exalted
User avatar
Posts: 1564
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Tinderhoof » Tue Jan 22, 2013 2:04 pm

It's a GCD and a half. HT in Cat form triggers a 1.5 second GCD instead of a 1 second like all the rest of our abilities. I have been pressing for a fix since beta, but have not gotten anything back regarding it. I will do some work this weekend to see if I can make the HT happen before TF as often as possible. However in some cases TF is required to get enough combo points to use the PS proc in time. That is something I will not likely be able to adjust.

Honored
Posts: 104
Joined: Thu Jun 30, 2011 4:05 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby RareBeast » Wed Jan 23, 2013 3:21 am

This is likely to be an Ovale issue rather than a script issue, but if I change from casting symbiosis on a shaman to another class the script still recommends casting the spirit wolves even though I no longer can. Pretty sure a /reload fixes it but usually I realise once in combat an it is too late.


On an unrelated note, a question on the tick box for Faeryfire in the script. If it is off, does the script never recommend FF? Or only if it is missing? I find with it ticked it casts it any time there is nothing else to press and it is off CD. This is good in theory as it ensures it doesn't fall off if things get hectic rotation-wise but I find it a little bit overkill. I'd much rather more time spent showing me the next ability to be used to maintain the 'rotation' (and giving my old reflexes more time to prepare) than having it often showing FF and making me try and react faster afterward casting FF.


I really need to have a look at learning how to modify the script more myself I suppose :)

Exalted
User avatar
Posts: 1564
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Tinderhoof » Wed Jan 23, 2013 1:43 pm

Leaf tried a few times to find a way for FF to be suggested smartly (IE when we didn't have something to do, or if it fell off), but it never did seem to work out the way we hoped. I will see what I can do with it, but because it's easy to track outside of Ovale and lots of other classes can apply it, it is a lower priority on the "to be looked at list".

Revered
User avatar
Posts: 323
Joined: Tue Oct 23, 2012 4:19 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Alpheus » Thu Jan 24, 2013 4:23 am

Tinderhoof wrote:Leaf tried a few times to find a way for FF to be suggested smartly (IE when we didn't have something to do, or if it fell off), but it never did seem to work out the way we hoped. I will see what I can do with it, but because it's easy to track outside of Ovale and lots of other classes can apply it, it is a lower priority on the "to be looked at list".


Being a bit more aggressive on this might mess with pooling and OoC reaction though, I'm not really sure it's worth it.
Image

Posts: 25
Joined: Wed Oct 27, 2010 12:44 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Beatrix » Sat Jan 26, 2013 6:38 pm

I was wondering whether or not the addon with the scripts from Nieren contains the latest version of Leafkiller"s script for ferals.

Also does the latest version of the script work well with a DoC rotation?

Exalted
User avatar
Posts: 1564
Joined: Mon May 24, 2010 10:21 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Tinderhoof » Sun Jan 27, 2013 5:15 am

Yes and Yes. It was designed around the DoC rotation. NV and HotW are supported as well (even Incarnation ick).

Honored
Posts: 188
Joined: Tue Dec 14, 2010 5:34 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Jeshu » Mon Jan 28, 2013 12:03 pm

Beatrix wrote:I was wondering whether or not the addon with the scripts from Nieren contains the latest version of Leafkiller"s script for ferals.


Nerien's Ovale Scripts will always have the latest released version of Leafkiller's Ovale script because Leafkiller (and Tinderhoof now) directly maintain it in the addon and make new releases when they update it. You can verify for yourself when you select the Leafkiller script in the addon because the script has a changelog at the top of the script that tells you what version of the script and when it was last updated.

Honored
Posts: 188
Joined: Tue Dec 14, 2010 5:34 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Jeshu » Sat Feb 02, 2013 4:29 pm

@Leafkiller, @Tinderhoof: I released version 2.1.14 of Nerien's Ovale Scripts. One of the new scripts is a feral one based on the latest SimC code. There are examples in there for how to translate the "pool_resource" statements into Ovale's language. Please let me know if you see any errors or if you have any questions.

Exalted
User avatar
Posts: 1201
Joined: Fri Nov 25, 2011 7:49 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby aggixx » Sat Feb 02, 2013 5:58 pm

Something is definitely not working for me with savage roar, it looks like it's recommending I use savage roar anytime I have combo points.

Edit: Found it, there's a few places where you're checking for the presence of "savage_roar" instead of "savage_roar_buff". You can find them quickly by searching for "savage_roar)", lines 535, 646, 648, 727, 729, 910, 970. A Find & Replace of "savage_roar)" to "savage_roar_buff)" seems to do the trick (just have to make sure it doesn't modify the SavageRoar() functions of course).

Also, this line:
Code: Select all
    #healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius_damage.down
    if BuffPresent(predatory_swiftness) and BuffExpires(predatory_swiftness) <=1.5 and BuffExpires(dream_of_cenarius_damage) Spell(healing_touch)

does not work at all. As far as I can tell "BuffExpires(predatory_swiftness)" should be "BuffRemains(predatory_swiftness)" and that fixes it.

Otherwise, it feels very smooth, great job!
Image

Honored
Posts: 188
Joined: Tue Dec 14, 2010 5:34 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Jeshu » Sat Feb 02, 2013 7:21 pm

Thanks for those fixes. I've released 2.1.15 with those changes.

Exalted
User avatar
Posts: 1201
Joined: Fri Nov 25, 2011 7:49 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby aggixx » Sat Feb 02, 2013 8:08 pm

Question for you Jeshu. I know that Leaf implemented something with Spirit Wolves in the script but in my limited experience it's quite buggy. Is there a better or way to do symbiosis usage or is it just not supported well enough at the moment? For example, if I wanted to change the Bear AoE list you have:
Code: Select all
AddFunction BearMainAOE {
        Spell(MANGLE_BEAR)
        Spell(THRASH_BEAR)
        Spell(SWIPE_BEAR)
    }

to add Symbiosis Consecration
Code: Select all
AddFunction BearMainAOE {
        Spell(MANGLE_BEAR)
        if target.DebuffExpires(THRASH_BEAR) Spell(THRASH_BEAR)
        Spell(CONSECRATION)
        Spell(THRASH_BEAR)
        Spell(SWIPE_BEAR)
    }

How could I condition the consecration line so that it would only evaluate to true when I had Symbiosis active on a paladin?
Image

Honored
Posts: 188
Joined: Tue Dec 14, 2010 5:34 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Jeshu » Sun Feb 03, 2013 3:01 pm

Right now, Ovale just asks the game itself whether a spell is usable. If you've ever cast Symbiosis on anyone else, the spell that you gained will always be "usable" if you query the game, even if you've cast it on another class in-between. This holds true also for vehicle/possess action bars as well, where you gain abilities that you need to use when in a vehicle fight, e.g., Amber-Shaper in HoF -- if I make an Ovale script that tries to tell someone to cast Struggle for Control, that shows as usable if you're not currently Reshaped. I need to see if there's a way to identify a spell you've used before as not being usable anymore, but not sure how to do that yet.

Revered
User avatar
Posts: 323
Joined: Tue Oct 23, 2012 4:19 am

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Alpheus » Mon Feb 04, 2013 10:50 am

Jeshu wrote:Right now, Ovale just asks the game itself whether a spell is usable. If you've ever cast Symbiosis on anyone else, the spell that you gained will always be "usable" if you query the game, even if you've cast it on another class in-between. This holds true also for vehicle/possess action bars as well, where you gain abilities that you need to use when in a vehicle fight, e.g., Amber-Shaper in HoF -- if I make an Ovale script that tries to tell someone to cast Struggle for Control, that shows as usable if you're not currently Reshaped. I need to see if there's a way to identify a spell you've used before as not being usable anymore, but not sure how to do that yet.


Isn't it possible to check the SpellID of the buff on the druid? I was under the impression that every symbiosis class-combination applied a different one.
Image

Honored
Posts: 188
Joined: Tue Dec 14, 2010 5:34 pm

Re: Leafkiller's MoP Feral/Guardian Ovale Script

Postby Jeshu » Mon Feb 04, 2013 10:55 am

Alpheus wrote:Isn't it possible to check the SpellID of the buff on the druid? I was under the impression that every symbiosis class-combination applied a different one.

Please let me know if this is true. You can test by casting Symbiosis on someone and then typing "/ovale buff" to list the names and IDs of the active player buffs. If this is true, then it's easy to script it now without modifying Ovale.

PreviousNext

Return to Kitty DPS

Who is online

Users browsing this forum: Google Adsense [Bot] and 3 guests