Ovale Spell Priority

Change log

------------------------------------------------------------------------
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.
------------------------------------------------------------------------

Facts

Uploaded on
Nov 07, 2013
Game version
  • 5.4.1
Filename
Ovale-5.4.8.zip
Size
296.4 KiB
MD5
eaf8d71c50305f6cded6f944b93a38ef
Type
Release
Status
Normal
Downloads
38,336

Authors