Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • 27 Likes
  • World of Warcraft
  • 5,487 Monthly Downloads
  • Supports: 5.4.1
  • 1,526,614 Total Downloads
  • Updated 04/21/2014
  • Created 08/17/2008
  • 664 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 2 (GPLv2)
  • Newest File: 5.4.8
or

About Ovale Spell Priority

Ovale Spell Priority shows you what spell or ability you should use in order to maximize your damage.

It displays one or more icons that show the cooldown of an action. The action is conditionally defined through a user-defined script, e.g. you may display either Corruption if the DoT is not on your target or Shadow Bolt if the Corruption DoT is already on your target.

Default scripts are available for all dps classes and specs, based on SimulationCraft. You may also customize the default script to suit your needs (see Documentation) or use scripts made by other users.

See the video of a survival hunter using Ovale during Wrath of the Lich King.

Please use the forums to submit scripts or discuss them. If you want to report bugs, use the ticket manager.

Features

  • Default scripts for every DPS class and talent specialization.
  • Tracks DoTs, buffs, debuffs, cooldowns, combo points, runes, mana, everything that a player would need to choose what to do.
  • Adapts to your talent points and glyphs.
  • Change quickly the configuration at any time with configurable checkboxes and drop-down lists that can be shown/hidden by clicking on the icons, e.g. switching between single and multi-target damage, setting the curse to cast.
  • Multi-target DoT tracking: remember which target had a DoT and when the DoT will expire, allowing the script author to support multi-target dotting.
  • Compatible with the action icon skinning library Masque.
  • 100% configurable: everything is in an easy-to-understand script that you can modify and test in real-time without reloading your UI.
  • Can be used to track crowd-control spells on your focus.
  • Scoring system: evaluate how well you followed the script. Add a new Ovale panel in Recount and Skada, with a score between 0 (very bad) and 1000 (perfect).
  • Up to two-spells-ahead accuracy with some classes.

FAQ

Why does it not work for me?

Try to reset your Profile in the Ovale settings. Most problems come from faulty scripts.

Why is the key binding displayed for an action wrong?

The action may be in several action bars, e.g., the bars that you can cycle through or the bars that appear in special cases like Shadowform or Cat Form.

Why is the key binding not displayed at all?

The action must be in your standard Blizzard action bar in order for Ovale to know which key binding is used.

Why is the icon sometimes red?

The cooldown that is displayed in an icon is not always the true action cooldown. If this cooldown is longer than the action cooldown, then the icon is red. In most cases, it means that if you use this action too soon, then you will overwrite or clip a DoT, which may not be what you want.

Why can't I click on the icon to cast the spell?

Blizzard does not allow this. Only a predefined sequence of spells can be bound to an action icon and this sequence can not change in combat.

On my low-level character, there is nothing at all.

You need to reach level 10 and choose a specialization.

There is no bane or curse (or whatever) in the rotation.

Click the icon and select the bane or curse that you want to use from the dropdown menu list.

Custom scripts

------------------------------------------------------------------------
r1134 | jlam | 2013-11-07 21:00:50 +0000 (Thu, 07 Nov 2013) | 1 line
Changed paths:
   A /tags/5.4.8 (from /trunk:1133)

Tagging as 5.4.8 release.
------------------------------------------------------------------------
r1133 | jlam | 2013-11-07 20:59:45 +0000 (Thu, 07 Nov 2013) | 16 lines
Changed paths:
   M /trunk/scripts/OvalePriest.lua

Fix error with using Mind Blast in default priest script.

- Remove spurious "test" parameter to SpellInfo that shouldn't be there.

- If a condition that returns a number is used as a boolean, then boolean
  evaluation rules dictate that non-zero is true and zero is false.  Fix:

    if SpellCooldown(mind_blast) Spell(mind_blast)

  was probably intended to be:

    if SpellCooldown(mind_blast) == 0 Spell(mind_blast)

  which is simply just:

    Spell(mind_blast)
------------------------------------------------------------------------
r1131 | jlam | 2013-11-07 00:06:59 +0000 (Thu, 07 Nov 2013) | 3 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix bug where a table wasn't cleared before re-using.

This fixes problems with using comparison operators noted by @Wiljo.
------------------------------------------------------------------------
r1129 | jlam | 2013-11-06 18:52:27 +0000 (Wed, 06 Nov 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix "==" operator broken in r1045.

This fixes scripts that compare a condition's return value using equality,
e.g., pet.Health() == 0.
------------------------------------------------------------------------
r1125 | jlam | 2013-11-06 17:23:18 +0000 (Wed, 06 Nov 2013) | 5 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix ticket 312 - TimeToDie not working.

Timespan computations were not working when the start a time interval was
infinity (math.huge the time to die to be a very large number
instead of infinity so that (start, math.huge is still a valid timespan.
------------------------------------------------------------------------
r1123 | jlam | 2013-11-04 18:59:57 +0000 (Mon, 04 Nov 2013) | 3 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix TotemExpires and TotemPresent when passed "totem=..."

This was broken in r1074 during a code cleanup.
------------------------------------------------------------------------
r1120 | jlam | 2013-10-31 19:06:34 +0000 (Thu, 31 Oct 2013) | 1 line
Changed paths:
   M /trunk/scripts/OvaleDeathKnight.lua
   M /trunk/scripts/OvaleDruid.lua
   M /trunk/scripts/OvaleHunter.lua
   M /trunk/scripts/OvaleMage.lua
   M /trunk/scripts/OvaleMonk.lua
   M /trunk/scripts/OvalePaladin.lua
   M /trunk/scripts/OvalePriest.lua
   M /trunk/scripts/OvaleRogue.lua
   M /trunk/scripts/OvaleShaman.lua
   M /trunk/scripts/OvaleWarlock.lua
   M /trunk/scripts/OvaleWarrior.lua

Allow the Lua garbage collector to G/C unused scripts.
------------------------------------------------------------------------
r1119 | jlam | 2013-10-31 19:06:27 +0000 (Thu, 31 Oct 2013) | 4 lines
Changed paths:
   M /trunk/Ovale.toc
   D /trunk/defaut/Chaman.lua
   D /trunk/defaut/Chasseur.lua
   D /trunk/defaut/Chevalier.lua
   D /trunk/defaut/Demoniste.lua
   D /trunk/defaut/Druide.lua
   D /trunk/defaut/Guerrier.lua
   D /trunk/defaut/Mage.lua
   D /trunk/defaut/Moine.lua
   D /trunk/defaut/Paladin.lua
   D /trunk/defaut/Pretre.lua
   D /trunk/defaut/Voleur.lua
   D /trunk/defaut/scripts.xml
   A /trunk/scripts/OvaleDeathKnight.lua (from /trunk/defaut/Chevalier.lua:1118
   A /trunk/scripts/OvaleDruid.lua (from /trunk/defaut/Druide.lua:1118
   A /trunk/scripts/OvaleHunter.lua (from /trunk/defaut/Chasseur.lua:1118
   A /trunk/scripts/OvaleMage.lua (from /trunk/defaut/Mage.lua:1118
   A /trunk/scripts/OvaleMonk.lua (from /trunk/defaut/Moine.lua:1118
   A /trunk/scripts/OvalePaladin.lua (from /trunk/defaut/Paladin.lua:1118
   A /trunk/scripts/OvalePriest.lua (from /trunk/defaut/Pretre.lua:1118
   A /trunk/scripts/OvaleRogue.lua (from /trunk/defaut/Voleur.lua:1118
   A /trunk/scripts/OvaleShaman.lua (from /trunk/defaut/Chaman.lua:1118
   A /trunk/scripts/OvaleWarlock.lua (from /trunk/defaut/Demoniste.lua:1118
   A /trunk/scripts/OvaleWarrior.lua (from /trunk/defaut/Guerrier.lua:1118
   M /trunk/scripts/scripts.xml

Move default scripts to new location under "scripts".

The "scripts" directory is the new repository for all scripts or
script-includes distributed with Ovale.
------------------------------------------------------------------------
r1118 | jlam | 2013-10-31 19:06:21 +0000 (Thu, 31 Oct 2013) | 15 lines
Changed paths:
   M /trunk/Ovale.toc
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleScripts.lua
   A /trunk/scripts
   A /trunk/scripts/scripts.xml

Rudimentary support for Include(name) directives in scripts.

- Include(name) will cause the the contents of <name> from the script
  library to be inserted at that point prior to compiling the script.

- Include() may be nested, i.e., a script may include a script that
  includes another script, etc.

- A script that is intended to be included in other scripts and not to be
  listed as a selectable script for evaluation at runtime should be
  registered with OvaleScripts using:

    :RegisterScript(class, name, description, code, scriptType)

  where scriptType is anything other than "script", e.g., "include"
------------------------------------------------------------------------
r1117 | jlam | 2013-10-31 19:06:14 +0000 (Thu, 31 Oct 2013) | 15 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleTimeSpan.lua
   M /trunk/compiler.pl

True time-span implementation.

A time-span is a union of continuous interval subsets of the real number
line (0, infinity).  Internally represented by an array of numbers
representing alternately the left and right endpoints of an interval.
Point sets and empty sets are both considered empty.

Pre-allocate tables when creating parse tree nodes in OvaleCompile to be
reused for time-span evaluation within OvaleBestAction.

Convert OvaleBestAction to use time-spans for correctness when dealing
with arbitrary unions and intersections of time intervals when evaluating
nodes.

This fixes ticket 306 - "and" "or" bugged by @Wiljo.
------------------------------------------------------------------------
r1116 | jlam | 2013-10-31 19:06:08 +0000 (Thu, 31 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix ticket 307 - TimeToDie(comparison number) improperly returns true

Add some arguments for TestOvaleValue missing in r1114.  This fixes
TimeToDie and TimeToHealthPercent.
------------------------------------------------------------------------
r1114 | jlam | 2013-10-26 22:24:13 +0000 (Sat, 26 Oct 2013) | 3 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Narrow the domains for which changing values are valid.

This is a temporary fix for ticket 306 - "and" "or" bugged.
------------------------------------------------------------------------
r1113 | jlam | 2013-10-26 22:23:55 +0000 (Sat, 26 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleTimeSpan.lua

Simplify some logic for doing time span operations.
------------------------------------------------------------------------
r1111 | jlam | 2013-10-24 05:40:57 +0000 (Thu, 24 Oct 2013) | 9 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Ovale.toc

Create a proper "no-lib" version of Ovale.

- Strip out all libraries if a "no-lib" version is requested.

- Remove LibDualSpec-1.0 from the list of required library dependencies
  since its use in OvaleOptions only requires that it be an optional
  dependency.

- Sort the OptionalDeps metadata in the TOC file.
------------------------------------------------------------------------
r1110 | jlam | 2013-10-24 05:40:51 +0000 (Thu, 24 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleOptions.lua
   M /trunk/OvaleScripts.lua

Don't load/reference script code for other classes that won't be used.

Only register scripts that are for the current class and allow the garbage
collector to sweep away unused code strings.
------------------------------------------------------------------------
r1109 | jlam | 2013-10-24 05:40:45 +0000 (Thu, 24 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleScripts.lua

Reference OvalePaperDoll in a simpler way.
------------------------------------------------------------------------
r1108 | jlam | 2013-10-24 05:40:38 +0000 (Thu, 24 Oct 2013) | 12 lines
Changed paths:
   M /trunk/OvaleAura.lua

Fix ticket 304 - Buff tracking bugged.

OvaleAura was missed in the code sweep to use time spans in r1045.

OvaleAura was using nil to represent infinity in auras for both duration
and expiration time.  This caused OvaleCondition to consider these auras
as invalid because OvaleCondition is much more strict now when checking
the start and ending times for auras.  Use math.huge (the correct value to
represent infinity for time spans) instead.

This bug only appeared when the aura has "infinite" duration, or no
expiration time.
------------------------------------------------------------------------
r1106 | jlam | 2013-10-23 07:20:26 +0000 (Wed, 23 Oct 2013) | 5 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Rename the parameter to add a spell to a list from "list" to "addlist".

This fixes a collision between this new meaning and the original meaning,
which was to check whether "list=X item=Y" matches a list named "X" having
value "Y".
------------------------------------------------------------------------
r1105 | jlam | 2013-10-23 07:20:19 +0000 (Wed, 23 Oct 2013) | 7 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Support test conditions for SpellAdd{,Target}{Buff,Debuff}().

This change also allows for multiple SpellAddBuff() lines (and similarly
for the other conditions) for the same spell to have a cumulative effect.

This makes it possible to declare separate information depending on spec
or talents or glyphs.
------------------------------------------------------------------------
r1104 | jlam | 2013-10-23 07:20:13 +0000 (Wed, 23 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleAura.lua

Fix return value of OvaleAura:GetAura().

This was a code commit missed in r942 from when the function signature
changed.
------------------------------------------------------------------------
r1103 | jlam | 2013-10-23 07:20:07 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Triggering Lunar Eclipse resets the cooldown of Starfall.
------------------------------------------------------------------------
r1102 | jlam | 2013-10-23 07:20:00 +0000 (Wed, 23 Oct 2013) | 3 lines
Changed paths:
   M /trunk/OvaleState.lua

Spell cooldowns are triggered when a spell has finished casting.

This change has no run-time effect, but is a documentation issue.
------------------------------------------------------------------------
r1101 | jlam | 2013-10-23 07:19:54 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePaperDoll.lua

Raise an Ovale event for a spec change to help synchronize modules.
------------------------------------------------------------------------
r1100 | jlam | 2013-10-23 07:19:48 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua

Rename Ovale_AuraRefreshed to Ovale_AuraChanged.
------------------------------------------------------------------------
r1099 | jlam | 2013-10-23 07:19:42 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Sort conditions alphabetically for ease of maintenance.
------------------------------------------------------------------------
r1098 | jlam | 2013-10-23 07:19:35 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Move private method to the proper section.
------------------------------------------------------------------------
r1097 | jlam | 2013-10-23 07:19:29 +0000 (Wed, 23 Oct 2013) | 5 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua

Back out r935 and remove the damage=Func parameter feature.

This feature added dependency loops and is removed in favor of directly
adding functions to scripts via AddFunction() with asValue=1 to force
constant evaluation.
------------------------------------------------------------------------
r1096 | jlam | 2013-10-23 07:19:23 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc

Change load order of files to match dependencies.
------------------------------------------------------------------------
r1095 | jlam | 2013-10-23 07:19:17 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc
   A /trunk/locales.xml

Move loading of locales into an XML file.
------------------------------------------------------------------------
r1094 | jlam | 2013-10-23 07:19:10 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc
   A /trunk/defaut/scripts.xml

Move loading of scripts into an XML file for encapsulation.
------------------------------------------------------------------------
r1093 | jlam | 2013-10-23 07:19:04 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePaperDoll.lua

Only show the snapshot count when the Paper doll debug option is checked.
------------------------------------------------------------------------
r1092 | jlam | 2013-10-23 07:18:58 +0000 (Wed, 23 Oct 2013) | 6 lines
Changed paths:
   M /trunk/OvalePool.lua
   M /trunk/OvalePoolGC.lua

Clean up table pool modules.

Modify constructors so that prototype inheritance works properly.

Remove the Reset() method and just call Drain() from the constructor to
empty out the pool to start.
------------------------------------------------------------------------
r1091 | jlam | 2013-10-23 07:18:52 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/compiler.pl

Properly handle public properties inherited from parent class.
------------------------------------------------------------------------
r1090 | jlam | 2013-10-23 07:18:45 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePoolGC.lua

Remove unnecessary properties from OvalePoolGC.
------------------------------------------------------------------------
r1089 | jlam | 2013-10-23 07:18:39 +0000 (Wed, 23 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePool.lua
   M /trunk/OvalePoolGC.lua

Fix leaks to global namespace in OvalePool and OvalePoolGC.
------------------------------------------------------------------------
r1087 | jlam | 2013-10-20 03:48:04 +0000 (Sun, 20 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Add conditions for agility, intellect, spirit, stamina and strength.
------------------------------------------------------------------------
r1085 | jlam | 2013-10-19 17:27:18 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleSpellBook.lua

Fix infinite loop introduced in r1083 when scanning pet spellbooks.
------------------------------------------------------------------------
r1084 | jlam | 2013-10-19 17:24:31 +0000 (Sat, 19 Oct 2013) | 7 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix ticket 302 noting inconsistent return value for SpellCooldown().

Modify SpellCooldown to have constant value of 0 if the spell is off of
cooldown.  This matches natural expectations for how to use this script
condition.

Make similar changes to other cooldown conditions.
------------------------------------------------------------------------
r1083 | jlam | 2013-10-19 17:24:25 +0000 (Sat, 19 Oct 2013) | 15 lines
Changed paths:
   M /trunk/OvaleSpellBook.lua

Get correct spell ID for spells in the spellbook.

When looping through the spellbook, GetSpellBookItemName() doesn't always
return the name of the spell that's currently showing in the spellbook;
instead it might show the underlying spell that may have been replaced by
a new spell by either talents, glyphs, Symbiosis, etc.

Use GetSpellLink() instead to get the hyperlink of the actual spell that's
showing in the spellbook and parse it to determine the correct spell ID
and spell name.  Associate both the original (replaced) spell ID and the
the true spell ID with the correct spell name as some scripts, e.g.
Leafkiller's feral script, reference the spell using the replaced spell
ID.

Fix by @ShmooDude and closes his tickets 282 and 283.
------------------------------------------------------------------------
r1081 | jlam | 2013-10-19 07:54:23 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Placate compiler.pl
------------------------------------------------------------------------
r1080 | jlam | 2013-10-19 07:54:17 +0000 (Sat, 19 Oct 2013) | 20 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Support "casting" the return value of custom functions into constants.

A custom function is one that is defined by AddFunction.  If the function
is defined as:

    AddFunction FuncName asValue=1 { ... }

then the function is evaluated normally, then typecast to a constant as
follows:

(1) If the return value is a time span (a "boolean" value), then if the
    current time of the simulation is within the time span, then return 1,
    or 0 otherwise.

(2) If the return value is a linear function, then if the current time of
    the simulation is within the function's domain, then the function is
    simply evaluated at the current time, or 0 otherwise.

(3) If the return value is an action, then return 1 if the action is off
    of cooldown, or 0 if it is on cooldown.
------------------------------------------------------------------------
r1079 | jlam | 2013-10-19 07:54:11 +0000 (Sat, 19 Oct 2013) | 9 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Allow for custom functions in scripts to support the usual parameters.

The new syntax is:

    AddFunction FuncName param1=value1 param2=value2 { ... }

Where the parameter=value pairs can be used to determine if that function
meets the current conditions, e.g., mastery=1 to only have that function
be valid in the first specialization.
------------------------------------------------------------------------
r1078 | jlam | 2013-10-19 07:54:05 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePaperDoll.lua

Add temporary debugging code that tracks snapshots while in combat.
------------------------------------------------------------------------
r1077 | jlam | 2013-10-19 07:53:59 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix the return value of TimeInCombat() script condition.
------------------------------------------------------------------------
r1076 | jlam | 2013-10-19 07:53:53 +0000 (Sat, 19 Oct 2013) | 5 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/Ovale.toc
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleRecount.lua
   A /trunk/OvaleScore.lua
   M /trunk/OvaleSkada.lua

Refactor spell-scoring to new module OvaleScore.

Fix scores not being sent to damage meters in change introduced in r855,
where the wrong module names were being used, so none were ever found
despite proper registration of the damage meter functions.
------------------------------------------------------------------------
r1075 | jlam | 2013-10-19 07:53:47 +0000 (Sat, 19 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleState.lua

Account for damage-multiplier auras that stack.

An aura whose effect stacks can set "stacking=1" in a SpellInfo
declaration.
------------------------------------------------------------------------
r1074 | jlam | 2013-10-19 07:53:40 +0000 (Sat, 19 Oct 2013) | 5 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Sanity check arguments to script conditions.

Set local variables for all of the expected condition parameters at the
start of the condition implementation, and set the target as well if used.
Also properly set default values for script conditions.
------------------------------------------------------------------------
r1073 | jlam | 2013-10-19 07:53:35 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Remove broken and unused EffectiveMana() script condition.
------------------------------------------------------------------------
r1072 | jlam | 2013-10-19 07:53:29 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Rename some variables for code consistency.
------------------------------------------------------------------------
r1071 | jlam | 2013-10-19 07:53:22 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvalePower.lua
   M /trunk/OvaleState.lua

Track player's power using events in OvalePower.
------------------------------------------------------------------------
r1070 | jlam | 2013-10-19 07:53:16 +0000 (Sat, 19 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleFrame.lua

Back out r1042 which added a time component to OvaleBestAction:Compute().

OvaleBestAction should always refer to the state maintained by OvaleState,
otherwise, there could be errors in computing an action.
------------------------------------------------------------------------
r1069 | jlam | 2013-10-19 07:53:10 +0000 (Sat, 19 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Rename "atTime" back to "origin" in OvaleConditions.

The use of atTime here doesn't match the semantics of atTime in
OvaleBestAction and it's clearer to use a different name.
------------------------------------------------------------------------
r1068 | jlam | 2013-10-19 07:53:04 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleTimeSpan.lua

Clarify how the complement of a time span is calculated.
------------------------------------------------------------------------
r1067 | jlam | 2013-10-19 07:52:58 +0000 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Remove comment for removed TickValue() primary condition.
------------------------------------------------------------------------
r1066 | jlam | 2013-10-19 07:52:52 +0000 (Sat, 19 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Clear functions defined by AddFunction before compiling the script.

Old function names were lingering between script compilations.
Noted by @ShmooDude.
------------------------------------------------------------------------
r1065 | jlam | 2013-10-19 07:52:46 +0000 (Sat, 19 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Fix ticket 301 - Allow Define() to take decimal values.

Extend Define() to allow for non-alphanumeric values.  Also allow for "_",
".", and "=" in the value.  Spaces are still prohibited.
------------------------------------------------------------------------
r1063 | jlam | 2013-10-15 03:07:01 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix the return values of BuffExpires and BuffPresent in corner cases.
------------------------------------------------------------------------
r1062 | jlam | 2013-10-15 03:06:54 +0000 (Tue, 15 Oct 2013) | 6 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvalePower.lua
   M /trunk/OvaleState.lua

Rename some power-related variables for clarity.

    OvalePower.POWER -> POWER_INFO
    OvalePower.power -> powerType

Rename some local variables that use the values above in the same way.
------------------------------------------------------------------------
r1061 | jlam | 2013-10-15 01:26:32 +0000 (Tue, 15 Oct 2013) | 8 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua

Fix ticket 299 - BuffAmount()

Add a new condition BuffAmount that returns one of the three values
associated with a unit aura (see UnitAura documentation for more details).
Make existing TickValue into an alias for BuffAmount as they are basically
identical.

Implementation from @ShmooDude.
------------------------------------------------------------------------
r1060 | jlam | 2013-10-15 01:26:26 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleEquipement.lua

Add new script condition HasEquippedItem(itemId).

This is a generic condition that can test whether a particular itemId is
currently equipped.
------------------------------------------------------------------------
r1059 | jlam | 2013-10-15 01:26:19 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleEquipement.lua

Store the item levels of equipped items in OvaleEquipement.
------------------------------------------------------------------------
r1058 | jlam | 2013-10-15 01:26:10 +0000 (Tue, 15 Oct 2013) | 10 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Allow for multiplication and division of conditions that return numbers.

All "numbers" are actually linear functions of the form:

    f(t) = a + (t - b)*c.

Multiplication and division of linear functions does not yield a linear
function in the general case, but the resulting function can be
approximated with a first order Taylor series expansion around the current
time point.
------------------------------------------------------------------------
r1057 | jlam | 2013-10-15 01:26:04 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Clean up OvaleBestAction:GetActionInfo() and add additional comments.
------------------------------------------------------------------------
r1056 | jlam | 2013-10-15 01:25:58 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix the calculation of number of ticks of a channelled spell.

This properly accounts for which type of haste affects the channelled
spell.
------------------------------------------------------------------------
r1055 | jlam | 2013-10-15 01:25:51 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua

Split "actions" from "functions", where actions are Spell/Item/Macro, etc.

Actions are final actions to be suggested, while functions return booleans
or values.
------------------------------------------------------------------------
r1054 | jlam | 2013-10-15 01:25:45 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Sanity check some values before doing arithmetic with them.
------------------------------------------------------------------------
r1053 | jlam | 2013-10-15 01:25:38 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleIcone.lua

Clamp infinite time values to one hour when displayed on an icon.
------------------------------------------------------------------------
r1052 | jlam | 2013-10-15 01:25:31 +0000 (Tue, 15 Oct 2013) | 7 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Update most conditions to support comparisons, e.g., ComboPoints(more 0).

The CPU usage of an AttackPower() > 1000 call is about twice that of an
AttackPower(more 1000) call, so update most of the script conditions to
take comparators.

From @ShmooDude in pullup request #7 with changes by @jlam.
------------------------------------------------------------------------
r1051 | jlam | 2013-10-15 01:25:24 +0000 (Tue, 15 Oct 2013) | 7 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Add new comparators "atMost" and "atLeast" for condition parameters.

This allows for expressing "<= limit" or ">= limit", e.g., the following
two conditions are the same:

    Chi(atMost 3)
    Chi() <= 3
------------------------------------------------------------------------
r1050 | jlam | 2013-10-15 01:25:17 +0000 (Tue, 15 Oct 2013) | 6 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Add new private method TestOvaleValue().

TestOvaleValue() returns either an "Ovale value", which is a linear
function, or an "Ovale boolean", which is a time span.

Reimplement TestValue() and Compare() using TestOvaleValue().
------------------------------------------------------------------------
r1049 | jlam | 2013-10-15 01:25:10 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Clarify comment on the return value of a node evaluated as a boolean.
------------------------------------------------------------------------
r1048 | jlam | 2013-10-15 01:25:04 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix the return value of the PTR() condition for MoP 5.4.
------------------------------------------------------------------------
r1047 | jlam | 2013-10-15 01:24:58 +0000 (Tue, 15 Oct 2013) | 5 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix return value of Chi().

Chi is a resource like holy power or combo points that doesn't have a rate
of regeneration; instead, it is gained on lost strictly through abilities
(while in combat).
------------------------------------------------------------------------
r1046 | jlam | 2013-10-15 01:24:51 +0000 (Tue, 15 Oct 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix return value of MaxFocus().
------------------------------------------------------------------------
r1045 | jlam | 2013-10-15 01:24:45 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/Ovale.toc
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   A /trunk/OvaleTimeSpan.lua
   M /trunk/compiler.pl

Implement time spans, which are continuous open intervals of time.

Convert OvaleBestAction and OvaleCondition to use actual time spans
instead of start/ending/nil to represent times.
------------------------------------------------------------------------
r1044 | jlam | 2013-10-15 01:24:39 +0000 (Tue, 15 Oct 2013) | 8 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua

Split the generic "operator" node into "arithmetic" and "compare" nodes.

"Arithmetic" and "compare" nodes return different things when computed, so
split the computation into separate functions.

Modify the arithmetic computations so that the resulting values have an
origin of atTime, since all computations will ultimately be carried out at
t = atTime.
------------------------------------------------------------------------
r1043 | jlam | 2013-10-15 01:24:32 +0000 (Tue, 15 Oct 2013) | 8 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua

Remove support for the older "natural English" script syntax.

The older syntax for scripts tried to express time spans using natural
English phrases, but were more difficult to write and were nonsensical
when put together with other valid expressions that use the modern syntax.

Remove support for the old syntax to simplify the compiler and the script
engine.
------------------------------------------------------------------------
r1042 | jlam | 2013-10-15 01:24:25 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleFrame.lua

Add a time component to the :Compute method of OvaleBestAction.

The time represents the time at which to evaluate the time spans
associated with the script nodes.
------------------------------------------------------------------------
r1041 | jlam | 2013-10-15 01:24:19 +0000 (Tue, 15 Oct 2013) | 4 lines
Changed paths:
   M /trunk/README.md

Remove reference to the wowdps.com SimC profile importer.

Currently, the importer doesn't generate working scripts and causes
needless tickets to be filed to the project.
------------------------------------------------------------------------
r1040 | jlam | 2013-10-15 01:24:12 +0000 (Tue, 15 Oct 2013) | 7 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleDamageTaken.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvalePool.lua
   M /trunk/OvalePoolGC.lua
   M /trunk/OvaleQueue.lua
   M /trunk/OvaleState.lua
   M /trunk/compiler.pl

Code cleanup.

- Simplify constructors for OOP classes.
- Fix leak to global namespace.
- Be cleaner about using "function static" variables.
- List private functions/methods used, including base Lua API functions.
- Quiet harmless warnings in compiler.pl slightly.
------------------------------------------------------------------------

Comments

First Previous Page 9 of 62 Next Last
  • #822

    I am having the same problems as Venestine, although in my 10m raid I am the only lock so I don't believe that is the problem with the dots nots being tracked.

  • #821

    Affli lock is quite broken, only tells me to use haunt, malefic grasp and drain soul :D Haven't looked into the scripts yet since most addons are more or less broken atm. Someone has made a ticket about locks already so not going to make another one (can't even remember my password really).  Just thought I'd comment here incase someone else comes here looking for info about warlock issues :)

     

    EDIT: After testing on a dummy the addon works fine, but if another lock applies agony, corruption or unstable affliction the addon thinks those are my dots and removes them from the rotation.

    Last edited by venestine on 3/8/2013 2:42:03 PM
  • #820

    Ovale is losing icon graphics it seems... It will hold the graphics shortly after an action bar reload, but afterwords shows only the bindings...

    EDIT: NVM, it was the ELVUI skin package causing issues... if you disable the skin it works fine...

    Last edited by pottsy710 on 3/5/2013 6:33:02 PM
  • #817

    Is there a way to make only the main attack button show?

  • #818

    No, the default scripts are designed to show at least two buttons, one for main attacks and another for cooldowns.  There are also often off-gcd icons and such, but they cannot be disabled.

  • #815

    ok, I'm not sure if this should be posted here or under the script addon one. 

    I'm having a minor bug on my brewmaster monk. 2 abilities (blackout kick and tiger palm) are showing up with the incorrect hotkey button on them.

    Here is were it gets complicated.  I leveled up as wildwalker and those buttons were on 2 and 3 on my hotbar. I made my brewmaster spec and on the new ox stance they are now on 3 and 4 instead. the problem is the labels in ovale still show them as 2 and 3. Which just adds time when they come up making sure to remember the numbers are wrong

    I have completely removed them from the fierce tiger stance bar and the numbers still show 2 and 3.If i put the abilities back on the fierce tiger stance bar i can then manualy move them to 3 and 4 and it does updae on ovale. the problem is the next time i log off and back on it revets back to 2 and 3.

     

    I have tried reseting my profile, and i've tried deleting the profile. nothing seems to fix it.

  • #816

    This sounds like an Ovale bug.  Can you file a ticket with this information?

  • #814

    I've released a 5.1.7 beta version of Ovale that has a few fixes and some updated default scripts from the latest SimC profiles.  Note that these default scripts are mechanically generated by a program and may have bugs.  If you find any, please report via the ticket system.

  • #813

    Your simcraft importing link seems to be broken. Any alternatives or eta on fix?

  • #819

    I don't have direct access to the server running the SimC importer, so I can't test fixes to it.  It will have to wait until I can set up something locally.

  • #811

    Would you be able to help me, I keep getting this error when using Ovale:

    Date: 2013-01-02 16:50:05
    ID: 2
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\Ovale\OvaleBestAction.lua line 118:
    attempt to compare number with nil
    Debug:
    Ovale\OvaleBestAction.lua:118: GetActionInfo()
    Ovale\OvaleBestAction.lua:218: Compute()
    Ovale\OvaleBestAction.lua:414: Compute()
    Ovale\OvaleBestAction.lua:683: Compute()
    Ovale\OvaleFrame.lua:174: OnUpdate()
    Ovale\OvaleFrame.lua:70:
    Ovale\OvaleFrame.lua:69
    Locals:
    self = <table> {
    GetActionInfo = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:78
    Compute = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:204
    ComputeBool = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:194
    StartNewAction = <function> defined @Interface\AddOns\Ovale\OvaleBestAction.lua:73
    }
    element = <table> {
    type = "function"
    castTime = 0
    nodeId = 18
    func = "spell"
    params = <table> {
    }
    }
    spellId = 49998
    action = nil
    actionTexture = nil
    actionInRange = nil
    actionCooldownStart = 3712.019
    actionCooldownDuration = 1.5
    actionUsable = nil
    actionShortcut = nil
    actionIsCurrent = nil
    actionEnable = 1
    target = "target"
    si = <table> {
    1 = 49998
    xxx = 0
    frost = 1
    aura = <table> {
    }
    runicpower = -200
    damageAura = <table> {
    }
    unholy = 1
    }
    runecd = nil
    (*temporary) = 3713.519
    (*temporary) = nil
    (*temporary) = 1
    (*temporary) = 1
    (*temporary) = nil
    (*temporary) = false
    (*temporary) = 0
    (*temporary) = 0
    (*temporary) = 0
    (*temporary) = 3
    (*temporary) = "attempt to compare number with nil"
    pairs = <function> defined =[C]:-1
    GetSpellInfo = <function> defined =[C]:-1
    GetSpellTexture = <function> defined =[C]:-1
    IsSpellInRange = <function> defined =[C]:-1
    IsUsableSpell = <function> defined =[C]:-1
    GetActionTexture = <function> defined =[C]:-1
    IsActionInRange = <function> defined =[C]:-1
    GetActionCooldown = <function> defined =[C]:-1
    IsUsableAction = <function> defined =[C]:-1
    IsCurrentAction = <function> defined =[C]:-1
    strfind = <function> defined =[C]:-1
    GetInventorySlotInfo = <function> defined =[C]:-1
    tonumber = <function> defined =[C]:-1
    tostring = <function> defined =[C]:-1
    GetItemSpell = <function> defined =[C]:-1
    GetItemIcon = <function> defined =[C]:-1
    IsItemInRange = <function> defined =[C]:-1
    GetItemCooldown = <function> defined =[C]:-1

    AddOns:
    Swatter, v5.15.5383 (LikeableLyrebird)
    NPCScan, v5.0.0.5
    NPCScanOverlay, v5.0.0.3
    ACP, v3.4.1
    AtlasLootLoader, vv7.04.01
    AucAdvanced, v5.15.5383 (LikeableLyrebird)
    AucFilterBasic, v5.15.5383 (LikeableLyrebird)
    AucFilterOutlier, v5.15.5383.5381(5.15/embedded)
    AucMatchUndercut, v5.15.5383.5381(5.15/embedded)
    AucScanData, v5.15.5383 (LikeableLyrebird)
    AucStatHistogram, v5.15.5383 (LikeableLyrebird)
    AucStatiLevel, v5.15.5383 (LikeableLyrebird)
    AucStatPurchased, v5.15.5383 (LikeableLyrebird)
    AucStatSales, v5.15.5383.5381(5.15/embedded)
    AucStatSimple, v5.15.5383 (LikeableLyrebird)
    AucStatStdDev, v5.15.5383 (LikeableLyrebird)
    AucStatWOWEcon, v5.15.5383.5323(5.15/embedded)
    AucUtilAHWindowControl, v5.15.5383.5381(5.15/embedded)
    AucUtilAppraiser, v5.15.5383.5381(5.15/embedded)
    AucUtilAskPrice, v5.15.5383.5381(5.15/embedded)
    AucUtilAutoMagic, v5.15.5383.5381(5.15/embedded)
    AucUtilCompactUI, v5.15.5383.5381(5.15/embedded)
    AucUtilEasyBuyout, v5.15.5383.5381(5.15/embedded)
    AucUtilFixAH, v5.15.5383 (LikeableLyrebird)
    AucUtilItemSuggest, v5.15.5383.5381(5.15/embedded)
    AucUtilPriceLevel, v5.15.5383.5381(5.15/embedded)
    AucUtilScanButton, v5.15.5383.5320(5.15/embedded)
    AucUtilScanFinish, v5.15.5383.5381(5.15/embedded)
    AucUtilScanProgress, v5.15.5383.4979(5.15/embedded)
    AucUtilScanStart, v5.15.5383.5381(5.15/embedded)
    AucUtilSearchUI, v5.15.5383.5381(5.15/embedded)
    AucUtilSimpleAuction, v5.15.5383.5381(5.15/embedded)
    AucUtilVendMarkup, v5.15.5383.4828(5.15/embedded)
    Babylonian, v5.1.DEV.332(/embedded)
    BeanCounter, v5.15.5383 (LikeableLyrebird)
    Configator, v5.1.DEV.344(/embedded)
    DBMCore, v
    DebugLib, v5.1.DEV.337(/embedded)
    ElvUI, v5.16
    Enchantrix, v5.15.5383 (LikeableLyrebird)
    EnchantrixBarker, v5.15.5383 (LikeableLyrebird)
    GatherMate2, v1.23.1
    GTFO, v4.18.1
    Informant, v5.15.5383 (LikeableLyrebird)
    LibAboutPanel, v1.6.0
    LibExtraTip, v5.12.DEV.342(/embedded)
    MikScrollingBattleText, v5.7.125
    MogIt, v3.0.6
    NerienOvaleScripts, v2.1.11
    OmniCC, v5.1.3
    Ovale, v5.1.6
    Overachiever, v0.70
    Postal, v3.5.1
    RaidAchieveFilter, v1.6
    RaidAchievement, v1.110
    RaidAchievementAchieveReminder, v
    Recount, v
    Routes, vv1.4.2-4-gafa7d39
    SharedMediaAdditionalFonts, v1.0.13
    SlideBar, v5.15.5383 (LikeableLyrebird)
    Stubby, v5.15.5383 (LikeableLyrebird)
    TidyPlates, v6.8.2 (R559)
    TidyPlatesGraphite, v
    TidyPlatesGrey, v
    TidyPlatesNeon, v
    TidyPlatesQuatre, v
    TidyPlatesThreatPlates, v6.008
    TidyPlatesHub, v
    TidyPlatesWidgets, v
    TipHelper, v5.12.DEV.343(/embedded)
    ZygorGuidesViewer, v4.0
    BlizRuntimeLib_enUS v5.1.0.50100 <us>
    (ck=a63)

     

     

  • #810

    Where is the ability to choose another script to use?

    when I type "/ovale config", I get the options window, but there is absolutely NO button or anythign that I can identify to choose another script.  I've read that its' at the bottom of the config window, but it's NOT there.

    Please help, thanks. :)

  • #812

    type: /ovale code

  • #809

    Very usefull to learn a rotation for a new class :) or after 2 years without playing :)

    Thanks

  • #808

    When I log onto my Monk Ovale just doesn't seem to show up, no matter what command I type in or w/e options I mess with. Is the Monk simply not available yet for Ovale?

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Leaguepedia PAX Skin Giveaway