Register

Ovale Balance Script - Revision 2

For the smart druids who don't do this melee...thing.

Moderator: Forum Administrators

Posts: 29
Joined: Wed Feb 02, 2011 6:04 pm

Ovale Balance Script - Revision 2

Postby Spritzup » Mon Feb 07, 2011 3:21 pm

I've taken the various suggestions that I've received off this and other forums and have come up with an update for the script. As always, critiques are welcome.

NOTE - If anybody knows of a good sim tool (or is mathematically inclined) who can give me more accurate numbers for the DoT refreshing and/or the TargetDeadIn variables, it would be appreciated.

Change Log for Revision 2

- Change DeadinTime to 12 across the board. This really needs to be simmed
- Added the "Sunfire Spam" rotation for movement heavy fights
- Modified the logic for entering an eclipse state, as per Elitistjerks, and various feedback
- Removed the logic for leaving an eclipse state
- Moved the logic for refreshing DoTs to under the eclipse state
- Changed the logic for rooting mobs to better follow the 1 million rule
- Added a move predicter.Let me know how it functions, and I can tweak it as need be
- Still need to verify if the logic for Bloodlust/Heroism is a DPS increase
- Added a checkbox to remove the utility button, though it defaults to on
- Moved the FF logic to it's own tiny button. Users can turn it on or off, though it defaults to on


Code: Select all
#Druid Balance Script by Skarnu of Agamaggan
[[
#Balance DPS Spells
Define(INSECTSWARM 5570)    #DoT
Define(MOONFIRE 8921)       #Direct Damage Arcane spell with a powerful DoT component
Define(STARFIRE 2912)       #Arcane DD spell
   SpellInfo(STARFIRE Eclipse=20)
Define(STARSURGE 78674)       #Powerful DD spell with 15 second CD
Define(SUNFIRE 93402)       #Direct Damage Nature spell with a powerful DoT component
Define(WRATH 5176)       #Nature DD spell
   SpellInfo(WRATH Eclipse=-13)

#CD Abilities
Define(FAERIEFIRE 770)      #I know this is also a utility ability, but that section was more crowded
Define(FORCEOFNATURE 33831)    #Balance long cooldown ability
Define(STARFALL 48505)       #Poweful Balance AoE, and Single Target CD

#Utility Abilities
Define(BARKSKIN 22812)
Define(HEALINGTOUCH 5185)
Define(SOOTHE 2908)
Define(ROOTS 339)
Define(NATURESGRASP 16689)
Define(HIBERNATE 2637)
Define(SOLARBEAM 78675)
Define(INNERVATE 29166)

#Self Buffs
Define(CLEARCASTING 16870)
Define(ECLIPSELUNAR 48518)
Define(ECLIPSESOLAR 48517)
Define(SHOOTINGSTARS 93400)

#Healing Buffs
Define(REJUVENATION 774)
Define(RENEW 139)
Define(LIFEBLOOM 33763)

#Raid Buffs
Define(BLOODLUST 2825)
Define(TIMEWARP 80353)
Define(HEROISM 32182)
Define(ANCIENTHYSTERIA 90355)

#Relevant Mob Debuffs
Define(SUNDERARMOR 58567)
Define(FF 91565)
Define(EXPOSEARMOR 8647)

AddCheckBox(predictor "Move Predictor Button")
AddCheckBox(utility "Utility Button" default)
AddCheckBox(armor "Armor Debuff Button" default)

AddIcon help=Predictor size=small mastery=1
{
   if CheckBoxOn(predictor)
      {
#This checks to see if the player is moving and suggests on instant cast abilities.
         if Speed(target=player more 0)
         {
            if BuffPresent(SHOOTINGSTARS) unless BuffPresent(ECLIPSESOLAR) and Eclipse(less 16)
               Spell(STARSURGE)
            if TargetDebuffExpires(INSECTSWARM 4 mine=1) and TargetDeadIn(more 12)
               Spell(INSECTSWARM)
            if BuffPresent(ECLIPSESOLAR)
               Spell(SUNFIRE)
            Spell(MOONFIRE)
         }


#Check to see if Bloodlust (or similar) is present.  If yes, we refresh or DoTs to get the benefit of the haste
         if BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffGained(less 5) or BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffExpires(less 5)
         {
            if TargetDebuffExpires(INSECTSWARM 12 mine=1)
               Spell(INSECTSWARM)
         if TargetDebuffExpires(MOONFIRE 12 mine=1) and TargetDebuffExpires(SUNFIRE 12 mine=1)
            {
               if BuffPresent(ECLIPSESOLAR)
                  Spell(SUNFIRE)
            }
         }


#Keep our DoTs up
         if TargetDebuffExpires(INSECTSWARM 4 mine=1) and TargetDeadIn(more 12)
            Spell(INSECTSWARM)
         if TargetDebuffExpires(MOONFIRE 4 mine=1) and TargetDebuffExpires(SUNFIRE 4 mine=1) and TargetDeadIn(more 12)
            {
               if BuffPresent(ECLIPSESOLAR)
                  Spell(SUNFIRE)
               Spell(MOONFIRE)
            }

         Spell(STARSURGE)

         if Eclipse(more 80) and Eclipse(less 100) unless BuffPresent(ECLIPSESOLAR)
            Spell(WRATH)
         if Eclipse(less -87) and Eclipse(more -100) unless BuffPresent(ECLIPSELUNAR)
            Spell(STARFIRE)   
      }
}

AddIcon help=main mastery=1
{
#This checks to see if the player is moving and suggests on instant cast abilities.
   if Speed(target=player more 0)
   {
      if BuffPresent(SHOOTINGSTARS) unless BuffPresent(ECLIPSESOLAR) and Eclipse(less 16)
         Spell(STARSURGE)
      if TargetDebuffExpires(INSECTSWARM 2 mine=1) and TargetDeadIn(more 12)
         Spell(INSECTSWARM)
      if BuffPresent(ECLIPSESOLAR)
         Spell(SUNFIRE)
      Spell(MOONFIRE)
   }


#Check to see if Bloodlust (or similar) is present.  If yes, we refresh or DoTs to get the benefit of the haste
   if BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffGained(less 5) or BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffExpires(less 5)
   {
      if TargetDebuffExpires(INSECTSWARM 12 mine=1)
         Spell(INSECTSWARM)
      if TargetDebuffExpires(MOONFIRE 12 mine=1) and TargetDebuffExpires(SUNFIRE 12 mine=1)
      {
         if BuffPresent(ECLIPSESOLAR)
            Spell(SUNFIRE)
      }
   }


#Logic for our DoT spells upon entering an Eclipse state, allows the delayed casting of our DoT's to get the full benefit of the eclipse state

   if Eclipse(more 79) and Eclipse(less 100) unless BuffPresent(ECLIPSESOLAR)
      {   
         Spell(STARSURGE)
         Spell(STARFIRE)
      }
#This is to compensate for the fact that Eclipse only procs when the spell hits.  This ensures that our DoTs get the benefit of eclipse
   if Eclipse(equal 100) unless BuffPresent(ECLIPSESOLAR)
      {
         Spell(STARSURGE)
         Spell(WRATH)
      }

   if Eclipse(less -86) and Eclipse(more -99) unless BuffPresent(ECLIPSELUNAR)
      {
         Spell(STARSURGE)
         Spell(WRATH)
      }
#This is to compensate for the fact that Eclipse only procs when the spell hits.  This ensures that our DoTs get the benefit of eclipse
   if Eclipse(equal -100) unless BuffPresent(ECLIPSELUNAR)
      {
         Spell(STARSURGE)
         Spell(STARFIRE)
      }

#Keep our DoTs up
   if TargetDebuffExpires(INSECTSWARM 2 mine=1) and TargetDeadIn(more 12)
      Spell(INSECTSWARM)
   if TargetDebuffExpires(MOONFIRE 2 mine=1) and TargetDebuffExpires(SUNFIRE 2 mine=1) and TargetDeadIn(more 12)
      {
         if BuffPresent(ECLIPSESOLAR)
            Spell(SUNFIRE)
         Spell(MOONFIRE)
      }

   Spell(STARSURGE)   

   if BuffPresent(ECLIPSESOLAR)
      Spell(WRATH)
   
   if BuffPresent(ECLIPSELUNAR)
      Spell(STARFIRE)

   if Eclipse(more 0) or Eclipse(equal 0)
      Spell(STARFIRE)

   if Eclipse(less 0)
      Spell(WRATH)
}

AddIcon help=CD mastery=1
{
   if Eclipse (more -73) and Eclipse(less 100) or BuffPresent(ECLIPSESOLAR) or BuffPresent(ECLIPSELUNAR)
      Spell(STARFALL)
   Spell(FORCEOFNATURE)
   Item(Trinket0Slot usable=1)
   Item(Trinket1Slot usable=1)
}

AddIcon help=Utility mastery=1
{
   if CheckBoxOn(utility)
   {
      if LifePercent(less 50) and LifePercent(more 31) unless BuffPresent(REJUVENATION) or BuffPresent(LIFEBLOOM) or BuffPresent(RENEW)
         Spell(BARKSKIN)
      if LifePercent(less 30) and LifePercent(more 16) unless BuffPresent(REJUVENATION) or BuffPresent(LIFEBLOOM) or BuffPresent(RENEW)
         Spell(REJUVENATION)
      if LifePercent(less 15) unless BuffPresent(REJUVENATION) or BuffPresent(LIFEBLOOM) or BuffPresent(RENEW)
         Spell(HEALINGTOUCH)
      if ManaPercent(less 15) unless BuffPresent(INNERVATE)
         Spell(INNERVATE)
      #if TargetDebuffPresent(SOMEKINDOFRAGE)
      #   Spell(SOOTHE)
#This goes by "the rule of 1 million).  That means that if the target has more than 1 million hit points, you probably can't CC it.   
      unless TargetLife(more 1000000)
         {
            if TargetCreatureType(Beast) or TargetCreatureType(Dragonkin) unless TargetDeadIn(less 12)
               Spell(HIBERNATE)
            if Speed(Target=Player equal 0)   
               Spell(ROOTS)
            unless TargetTargetIsPlayer(No)
               Spell(NATURESGRASP)
         }
      if TargetCasting(yes) unless TargetDeadIn(less 12)
         Spell(SOLARBEAM)
   }
}
AddIcon help=Armor Debuff mastery=1 size=small
{
   if CheckBoxOn(armor)
   {
      if TargetDebuffExpires(FAERIEFIRE 2) unless TargetDebuffPresent(FF stacks=3) or TargetDebuffPresent(SUNDERARMOR stacks=3) or TargetDebuffPresent(EXPOSEARMOR)
         Spell(FAERIEFIRE)
   }
}
]]


EDIT - Made a small logic error, it has been corrected.

Revered
Posts: 457
Joined: Sat Jan 29, 2011 7:17 am

Re: Ovale Balance Script - Revision 2

Postby shinryu » Mon Feb 07, 2011 11:28 pm

Well gave it a whirl, looked good so far.

For the move predictor it seemed to be out of sync at times with the main move predictor, not completely sure if that's by nature (maybe it was waiting for me to enter Eclipse since I was close to at times), but it looked like it worked fine otherwise. Looking back at it, I suppose it's not really super necessary, given how caster dps works; with feral, things change and update by the second, and with feral abilities you can react to it, whereas with casting, you can't just stop and start on whatever pops up next. So yeah, feel free to lop it off if you want, it isn't needed.

The "sunfire spam" worked well, if what I think I was testing was it; that's where you just sorta run around and it keeps recommending sunfire or moonfire with SS procs until you almost leave eclipse right? But yeah, it worked well, switched back to the regular rotation right away when I stopped moving about.

Again, I didn't test the utility box though, it keeps giving me errors in Ovale with the full script, but yet if I cut out that last part, it works fine. Dunno what's up...it's called "Ovale: Function TargetCasting not found", and I haven't the faintest clue how to work the code to fix it, so yeah...

One thing I wouldn't mind seeing added is another Eclipse bar, like maybe on top of the 3 main boxes? I hate having to glance at the top right to see what Eclipse state I'm in and how close I am to one or the other, and a bar at the top would be great so everything you really need to know is there in one convenient place. Dunno if that's possible with Ovale or not though, probably would need a complete addon to do that or something.

As for sims, I think most use like WrathCalcs I think or something. Also if you're into more feedback, might wanna post it over here: http://themoonkinrepository.com/portal.php . Lot more moonkins, quite a few who're better than me who can give you better feedback as well. Probably get quite a bit of help if you toss it up on EJ as well.

Posts: 29
Joined: Wed Feb 02, 2011 6:04 pm

Re: Ovale Balance Script - Revision 2

Postby Spritzup » Tue Feb 08, 2011 10:13 am

Shinryu,

Thanks for testing it again. I've also signed up for the moonkin repository to try and get more feedback. As far as your issue with the Utility box... what version of Ovale are you using?

As far as the eclipse bar, unfortunately that is not possible to do in Ovale.

Revered
Posts: 457
Joined: Sat Jan 29, 2011 7:17 am

Re: Ovale Balance Script - Revision 2

Postby shinryu » Tue Feb 08, 2011 4:48 pm

I honestly have no clue what version of Ovale I'm using...I know I updated it not too long ago (like mid-January) for when I started raiding again, so it's not too out of date is it?

Posts: 29
Joined: Wed Feb 02, 2011 6:04 pm

Re: Ovale Balance Script - Revision 2

Postby Spritzup » Tue Feb 08, 2011 4:55 pm

I don't think so, but I know that I don't get that error.

Basically the error your getting though is that it's checking to see if the mob is casting an ability, and then it will suggest using Solar Beam.

Honored
Posts: 55
Joined: Wed Jan 12, 2011 8:37 pm

Re: Ovale Balance Script - Revision 2

Postby Mandragaran » Sat Mar 05, 2011 11:55 pm

Is there a way to have this and the feral script both in ovale? I rly don't want to copy and paste every time I change specs. Thanks!

Honored
Posts: 55
Joined: Wed Jan 12, 2011 8:37 pm

Re: Ovale Balance Script - Revision 2

Postby Mandragaran » Sun Mar 06, 2011 6:30 am

Mandragaran wrote:Is there a way to have this and the feral script both in ovale? I rly don't want to copy and paste every time I change specs. Thanks!


Sorry - just noticed that this has been addressed. Now I just need to figure out how to write a conditional.

Honored
Posts: 80
Joined: Wed Jun 09, 2010 12:22 pm

Re: Ovale Balance Script - Revision 2

Postby Mihir » Thu Apr 07, 2011 12:44 pm

I'm having some trouble with this part:
Code: Select all
#Check to see if Bloodlust (or similar) is present.  If yes, we refresh or DoTs to get the benefit of the haste
         if BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffGained(less 5) or BuffPresent(BLOODLUST) or BuffPresent(TIMEWARP) or BuffPresent(HEROISM) or BuffPresent(ANCIENTHYSTERIA) and BuffExpires(less 5)
         {
            if TargetDebuffExpires(INSECTSWARM 12 mine=1)
               Spell(INSECTSWARM)
         if TargetDebuffExpires(MOONFIRE 12 mine=1) and TargetDebuffExpires(SUNFIRE 12 mine=1)
            {
               if BuffPresent(ECLIPSESOLAR)
                  Spell(SUNFIRE)
            }
         }


It seems to only suggest insect swarm while bloodlust is up, nothing else. Doesn't BuffGained need a spellid? Something like BuffGain(BLOODLUST 5). The "and"s and "or"s probably require some parentheses as well.

You can probably use the default SpellList "heroism" for this. (see http://wow.curseforge.com/addons/ovale/ ... pell-list/ )

Posts: 1
Joined: Thu Apr 18, 2013 3:04 am

Re: Ovale Balance Script - Revision 2

Postby peter9091 » Thu Apr 18, 2013 3:07 am

Hi I am newbie here and I am very glad to join this forum this forum has lot of information .

Return to Resto/Balance

Who is online

Users browsing this forum: No registered users and 0 guests