Get an Epic Experience with Premium

Ovale Spell Priority

Buffs & Debuffs Login to Add Favorites
  • 27 Likes
  • World of Warcraft
  • 5,004 Monthly Downloads
  • Supports: 5.4.1
  • 1,525,579 Total Downloads
  • Updated 04/12/2014
  • Created 08/17/2008
  • 662 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 10 of 62 Next Last
  • #806

    Logged in today and it is all fixed.  Strange.

  • #803

    I've decided to move the "unknown spells" warning so that it only appears if you ask for it explicitly by setting debug options for Ovale.  If you're a script author and want to verify your script, please enter the following into your chat window:

    /ovale toggledebug unknown_spells
  • #801

    50x Ovale-5.1.1\OvaleState.lua:83: attempt to index global "OvaleComboPoints" (a nil value) Ovale-5.1.1\OvaleState.lua:83: in function "Reset" Ovale-5.1.1\OvaleBestAction.lua:74: in function "StartNewAction" Ovale-5.1.1\OvaleFrame.lua:173: in function "OnUpdate" Ovale-5.1.1\OvaleFrame.lua:70: in function <Ovale\OvaleFrame.lua:69>

    Locals: self = <table> {  GetActionInfo = <func> @Ovale\OvaleBestAction.lua:78  Compute = <func> @Ovale\OvaleBestAction.lua:204  ComputeBool = <func> @Ovale\OvaleBestAction.lua:194  StartNewAction = <func> @Ovale\OvaleBestAction.lua:73 }

  • #802

    You should reinstall your Ovale addon... it looks like it's some mixture of 5.1.1 and 5.1.2 files.

  • #799

    Fix for Shaman 'unknown spell with ID strike':

    Replace line:

      SpellInfo(stormblast duration=15 sharedcd=strike cd=8 )

    With:

      SpellInfo(stormblast duration=15 sharedcd=stormstrike cd=8 )

    And:

      if SpellCooldown(strike) >=3 Spell(ascendance)

    With:

      if SpellCooldown(stormstrike) >=3 Spell(ascendance)

     

    Last edited by SvenLowry on 11/28/2012 4:33:32 AM
  • #797

    I am also getting spammed with unknown ID errors. 

  • #796

    I get spammed with the following in my chat whenever I change zones, specs, or enter/exit a vehicle:


    Ovale: Unknown spell with ID soul_reaper
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate
    Ovale: Unknown spell with ID soul_reaper
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate
    Ovale: Unknown spell with ID strangulate
    Ovale: Unknown spell with ID asphyxiate

    I am also running Nerien's Ovale Scripts, so I'm not sure if it's a problem with Ovale or Nerien's.

    I'm a DK, this happens in any spec for me.

    Last edited by sparrowlab on 11/25/2012 11:13:06 AM
  • #800

    Thanks! I'll ask around there and see if there's a fix.

  • #798

    This is a bug in Opisthobranch's DK script that's included in Nerien's Ovale Scripts.  You can try posting on the Ovale DK forum thread for his script to see if there are any fixes he could suggest.

  • #795

    Trueshot aura ? What's that ? (Ye I know but I can't find spell anymore and think it was removed also as glyph). Also hunter rotations have changed much lately imo. Mayhaps I will disable ovale until someone takes a look at it Undecided

    Last edited by Livanamako on 11/13/2012 9:12:53 PM
  • #793

    I seem to be having a problem with ovale, on my brewmaster monk, everytime I enter a dungeon ovale goes blank showing no rotation. But as soon as I leave the dungeon it starts working again. It just recently started doing this, I,ve tried reinstalling but still the same. And it seems to be only on my monk when it happens. Now if I go windwalker it works fine in dungeons, just on brewmaster spec in dungeons it don't work but outside of instances it works well

     

     

     

     

    Last edited by bamabandit on 11/1/2012 1:53:06 PM
  • #794

    It's stated in the description that none of the tank specs are working atm.

  • #792

    Enhance shaman, ovale keeps saying unknown spell with ID strike, and it keeps removing stormstrike from the icons.  every time i zone take a flight path etc. if i do a /reload sometimes it fixes itself and it shows up, otherwise it shows main attack as searing totem or windfury weapon.  I'm using the latest version of Ovale.

  • #789

    Got som weird stuff going on now with this addon it only shows that i shall spam moonfire and sunfire not showing the correct rotation anymore any ideas wy ?

  • #790

    If you install a beta version of Ovale, things may not work properly.  They're tagged as beta so I can get testing from certain beta testers and get feedback for fixes.  Make sure you're using a release version of 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