------------------------------------------------------------------------
r910 | jlam | 2013-04-23 17:22:52 +0000 (Tue, 23 Apr 2013) | 1 line
Changed paths:
   A /tags/5.2.33 (from /trunk:909)

Tagging as 5.2.33 release.
------------------------------------------------------------------------
r909 | jlam | 2013-04-23 17:21:33 +0000 (Tue, 23 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Add support for Ji-Kun Primal Nutrient buff. From @aggixx.
------------------------------------------------------------------------
r908 | jlam | 2013-04-23 17:21:26 +0000 (Tue, 23 Apr 2013) | 5 lines
Changed paths:
   M /trunk/OvaleState.lua

Generalize SpellAddBuff to allow more than "refresh" or a number.

Also fix ticket #240 "Monk keg smash LUA error" by sanity checking that
the aura specified in SpellAddBuff is followed by a number before assuming
it's a new aura applied by the spell.
------------------------------------------------------------------------
r907 | jlam | 2013-04-23 17:21:18 +0000 (Tue, 23 Apr 2013) | 4 lines
Changed paths:
   M /trunk/OvaleStance.lua

Update stance list when a new spell is learned.

Learning a new spell may change the stance bar, e.g., while leveling or
gaining a new talent or a new temporary ability.
------------------------------------------------------------------------
r905 | jlam | 2013-04-18 23:43:56 +0000 (Thu, 18 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Initialize a variable in a more clearly-documented way.
------------------------------------------------------------------------
r904 | jlam | 2013-04-18 23:43:49 +0000 (Thu, 18 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleCompile.lua

Minor optimization: release nodes in O(n) time, not O(n^2) time.
------------------------------------------------------------------------
r903 | jlam | 2013-04-18 23:43:41 +0000 (Thu, 18 Apr 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleOptions.lua

Sanity check that all functions called within the script are defined.

Create a new debugging toggle that reports undefined functions to the chat
window when a script is compiled.
------------------------------------------------------------------------
r902 | jlam | 2013-04-18 23:43:33 +0000 (Thu, 18 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua

Fix ticket #237: Guard against nil aura table.
------------------------------------------------------------------------
r900 | jlam | 2013-04-10 07:20:55 +0000 (Wed, 10 Apr 2013) | 1 line
Changed paths:
   M /trunk/defaut/Pretre.lua

Shadow priest DoTs are affected by spell haste.
------------------------------------------------------------------------
r899 | jlam | 2013-04-10 07:20:46 +0000 (Wed, 10 Apr 2013) | 4 lines
Changed paths:
   M /trunk/defaut/Pretre.lua

Fix ticket #236 - Fixes for Ovale priest default script

Change the spell IDs of Halo and Divine Star to the shadow spec versions.
Thanks to @napgravy for the fix.
------------------------------------------------------------------------
r898 | jlam | 2013-04-10 07:20:39 +0000 (Wed, 10 Apr 2013) | 8 lines
Changed paths:
   M /trunk/defaut/Paladin.lua

Fix ticket #235 - Ret Paladin spell IDs

Execution Sentence has a different spell ID for the ability (114157) and
the debuff (114156).

Guardian of Ancient Kings has spell ID 86698 for retribution paladins.

Thanks to @stonecow for the correct spell IDs.
------------------------------------------------------------------------
r897 | jlam | 2013-04-10 07:20:33 +0000 (Wed, 10 Apr 2013) | 7 lines
Changed paths:
   M /trunk/OvaleAura.lua

Dynamically update tick length of auras applied by the player.

The tick times of a periodic aura applied by the player are taken from
watching for SPELL_PERIODIC CLEU events.  Those tick times are used to
update the estimate for the aura's tick length based on empirical
evidence, and is hopefully more accurate.  It also avoids needing to store
the haste percentage at which a periodic aura was applied.
------------------------------------------------------------------------
r896 | jlam | 2013-04-10 07:20:26 +0000 (Wed, 10 Apr 2013) | 34 lines
Changed paths:
   M /trunk/OvaleAura.lua

Change the way that auras are scanned and kept in the aura database.

Keep a separate aura age for each GUID so we can tell when an aura
previously present is missing in a new aura scan of that GUID without
affecting the determination of other unit's aura ages.  The age is simply
the number of times the unit's auras were scanned.

Be more strict about deciding when an aura found on a unit matches one
that was recently scanned on the same unit.  An aura is the same if the
following details match:

	caster, duration, expiration time, stack count

Being more strict helps to "age" the auras properly, instead of tossing
them out and getting new scans each time UpdateAuras/ScanUnitAuras is run.

These changes will allow us to store more metadata in the aura properties
about the player's state (e.g., tick length, crit chance, etc.) at the
time the aura was gained.

Also, store the caster's GUID in the aura properties instead of the
caster's unit ID.  The former is invariant and better suited to aura
scans triggered by CLEU events.

Rename two methods to be more descriptive about what they do:

	UpdateAuras -> ScanUnitAuras
	AddAura -> UnitGainedAura

Re-use code to remove expired auras and be more DRY.

Be smarter about when to trigger an Ovale refresh event by checking
whether auras have actually changed on a unit since they were last
scanned.
------------------------------------------------------------------------
r895 | jlam | 2013-04-10 07:20:19 +0000 (Wed, 10 Apr 2013) | 6 lines
Changed paths:
   M /trunk/OvaleGUID.lua

Sanity-check "mouseover"-related units in OvaleGUID method results.

Mouseover and mouseover-derived targets cached by OvaleGUID are not
necessarily valid because the cursor may have moved off the previous
mouseover target (there is no event fired for moving off).  Verify that
the mouseover unit is still there before returning these unit IDs.
------------------------------------------------------------------------
r893 | jlam | 2013-04-05 06:21:02 +0000 (Fri, 05 Apr 2013) | 4 lines
Changed paths:
   M /trunk/OvaleState.lua

Handle new SpellInfo parameter "cd_haste".

A spell whose cooldown is affected by haste effects can be tagged with
"cd_haste=melee" or "cd_haste=spell".
------------------------------------------------------------------------
r892 | jlam | 2013-04-05 06:20:55 +0000 (Fri, 05 Apr 2013) | 5 lines
Changed paths:
   M /trunk/OvaleData.lua

Allow for melee haste to affect the GCD between melee specials.

This is primarily for paladins, for whom melee haste does this through
Sanctity of Battle.  Those spells for which Sanctity of Battle apply
should be tagged with "haste=melee" in a SpellInfo line.
------------------------------------------------------------------------
r891 | jlam | 2013-04-05 06:20:49 +0000 (Fri, 05 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Add StaggerRemains() to get the remaining Stagger damage on a target.
------------------------------------------------------------------------
r890 | jlam | 2013-04-05 06:20:42 +0000 (Fri, 05 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Add debugging message for cooldowns of spell launched in the simulator.
------------------------------------------------------------------------
r889 | jlam | 2013-04-05 06:20:35 +0000 (Fri, 05 Apr 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua

Leave "Ovale" in the global namespace to ease debugging.
------------------------------------------------------------------------
r888 | jlam | 2013-04-05 06:20:28 +0000 (Fri, 05 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Include node Id in the trace messages for easier debugging.
------------------------------------------------------------------------
r887 | jlam | 2013-04-05 06:20:21 +0000 (Fri, 05 Apr 2013) | 3 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Remove unnecessary setting of Ovale.refreshNeeded["player"].

It is already toggled in the Compile method.
------------------------------------------------------------------------
r886 | jlam | 2013-04-05 06:20:14 +0000 (Fri, 05 Apr 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleSkada.lua

Don't leak names into the global namespace.
------------------------------------------------------------------------
r885 | jlam | 2013-04-05 06:20:07 +0000 (Fri, 05 Apr 2013) | 5 lines
Changed paths:
   M /trunk/OvaleFuture.lua

Fix bug in OvaleFuture broke accounting for spells in flight.

Catch up with removed method in debugging function.

Be more DRY by using a custom print function for traced spells.
------------------------------------------------------------------------
r883 | jlam | 2013-04-01 01:39:39 +0000 (Mon, 01 Apr 2013) | 5 lines
Changed paths:
   M /trunk/OvaleComboPoints.lua

Update combo points when the target changes or when the player zones in.

This fixes a bug where having 3 CPs up on one target then switching targets
causes Ovale to assume there are still 3 CPs up on the new target.
Reported by @Erizura in an Ovale rogue forum thread.
------------------------------------------------------------------------
r881 | jlam | 2013-03-31 20:31:39 +0000 (Sun, 31 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Catch up to a renamed function.
------------------------------------------------------------------------
r879 | jlam | 2013-03-31 18:55:01 +0000 (Sun, 31 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleState.lua

Fix for ticket 215 - Memory leak?

Invert design by replacing a stateful iterator with a callback.  This
avoids the (temporary) memory used by Lua to create and store closures.
------------------------------------------------------------------------
r878 | jlam | 2013-03-31 18:54:54 +0000 (Sun, 31 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Add new condition SpellKnown() to test for a spell in the spellbook.
------------------------------------------------------------------------
r876 | jlam | 2013-03-31 10:23:04 +0000 (Sun, 31 Mar 2013) | 10 lines
Changed paths:
   M /trunk/OvalePaperDoll.lua

Track critical strike chance and split bonus damage from bonus healing.

This isn't perfect.  This only updates the player's critical strike chance
if it's due to a change in critical strike rating.  If there is a buff
applied that provides a flat increase to a player's critical strike
chance, then it won't trigger the update.

We also use two different events for updating bonus damage and bonus
healing instead of just one, which may not necessarily have fired when
bonus healing changed.
------------------------------------------------------------------------
r875 | jlam | 2013-03-31 10:22:57 +0000 (Sun, 31 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleFuture.lua

Use a lookup table to be more efficient in a CLEU event handler.
------------------------------------------------------------------------
r874 | jlam | 2013-03-31 10:22:50 +0000 (Sun, 31 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Add new condition IsPVP() to check for PvP-flagged units.
------------------------------------------------------------------------
r873 | jlam | 2013-03-31 10:22:40 +0000 (Sun, 31 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleFuture.lua

Remove accidentally duplicated line.
------------------------------------------------------------------------
r871 | jlam | 2013-03-30 02:43:08 +0000 (Sat, 30 Mar 2013) | 6 lines
Changed paths:
   M /trunk/defaut/Chevalier.lua

Fix ticket #225 - Chat window error when click target with DK.

Change Death Knight script syntax to work around a parser bug with braces.
The parser doesn't correctly parse "a + b * {c / d}".
It parses it as "{a + b} * {c / d}".
The modified script does "a + {b * c / d}" to force the proper parse.
------------------------------------------------------------------------
r870 | jlam | 2013-03-30 02:43:00 +0000 (Sat, 30 Mar 2013) | 3 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Back out previous as it's not a complete fix.

Leave it alone so that existing working scripts don't break.
------------------------------------------------------------------------
r869 | jlam | 2013-03-30 01:52:00 +0000 (Sat, 30 Mar 2013) | 14 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Fix operator precedence error that was causing DK script issues.

Ovale was incorrectly parsing:

    a + b * {c / d}
as:
    {a + b} * {c + d}

This change makes it correctly parse as:

    a + {b * {c / d}}

This error was been in Ovale since MoP was released but it takes a rather
complex script to trigger it.
------------------------------------------------------------------------
r868 | jlam | 2013-03-30 01:51:53 +0000 (Sat, 30 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCompile.lua

Fix "compare" node, which affected "Condition(more 5)" constructs.
------------------------------------------------------------------------
r867 | jlam | 2013-03-30 01:51:46 +0000 (Sat, 30 Mar 2013) | 5 lines
Changed paths:
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

Be explicit about tick length for auras that we request tick information.

The default scripts for warlocks, priests and rogues use TickRemains,
TickTime and Ticks conditions for several spells, and those spells now
need an explicit tick=N parameter in their respective SpellInfo lines.
------------------------------------------------------------------------
r866 | jlam | 2013-03-30 01:51:39 +0000 (Sat, 30 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Rename avecHate() to TimeWithHaste() and improve the documentation.
------------------------------------------------------------------------
r865 | jlam | 2013-03-30 01:51:31 +0000 (Sat, 30 Mar 2013) | 14 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Cleanup of OvaleCondition.

* Rename getOtherAura to GetMyAuraOnAnyTarget and make it clear that it's
  a wrapper for OvaleState:GetMyAuraOnAnyTarget, much like how GetAura is
  a wrapper for OvaleState:GetAura.

* Merge fixes to Buff/Debuff conditions into "Other" conditions.

* Make function names start with a capital letter (cosmetic).

* Sort the private methods by category.

* Use OvaleDate:GetSpellName() instead of Blizzard API function
  GetSpellInfo where possible for efficiency.
------------------------------------------------------------------------
r864 | jlam | 2013-03-30 01:51:24 +0000 (Sat, 30 Mar 2013) | 1 line
Changed paths:
   M /trunk/compiler.pl

Make the check script pass the current code.
------------------------------------------------------------------------
r863 | jlam | 2013-03-30 01:51:16 +0000 (Sat, 30 Mar 2013) | 6 lines
Changed paths:
   M /trunk/OvaleSkada.lua

Make OvalaSkada into a direct module of Skada instead of proxying for one.

The previous wrapper object did nothing except use our own OnEnable() and
OnDisable() routines, which was unnecessary.  Simply add the required
registration lines to the Skada modules's OnEnable() and OnDisable()
routines directly.
------------------------------------------------------------------------
r862 | jlam | 2013-03-30 01:51:08 +0000 (Sat, 30 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleGUID.lua

Remove unnecessary comment since OvaleGUID has a debugging toggle.
------------------------------------------------------------------------
r860 | jlam | 2013-03-29 06:50:23 +0000 (Fri, 29 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Code consistency.
------------------------------------------------------------------------
r859 | jlam | 2013-03-29 06:50:14 +0000 (Fri, 29 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix buff/debuff conditions broken in commit r834.

This fixes BuffPresent, BuffExpires, BuffRemains, BuffDuration, NextTick,
Ticks, TicksRemain and TickTime to return the correct results again.
------------------------------------------------------------------------
r858 | jlam | 2013-03-29 06:50:05 +0000 (Fri, 29 Mar 2013) | 4 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleComboPoints.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleEnemies.lua
   M /trunk/OvaleEquipement.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleGUID.lua
   M /trunk/OvaleIcone.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvalePool.lua
   M /trunk/OvaleStance.lua

Use helper function to deal with nil arguments to formatted strings.

This fixes using the trace functionality to explore the decisions that
Ovale is making.
------------------------------------------------------------------------
r856 | jlam | 2013-03-29 01:57:42 +0000 (Fri, 29 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix renamed variable that was breaking support for channelled spells.
------------------------------------------------------------------------
r855 | jlam | 2013-03-29 01:57:34 +0000 (Fri, 29 Mar 2013) | 10 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleRecount.lua
   M /trunk/OvaleSkada.lua

Back out changes in r842 and restore damage meter registration.

OvaleFuture needs to send out messages to all of the registered
damage meters when a scored spell has been cast.

Improve the implementation of the registration so that it only
requires a function or a method name instead of the module itself.
This makes it easier for other damage meters to implement a small
function to receive score information from Ovale instead of
implementing a full-blown Ovale module.
------------------------------------------------------------------------
r854 | jlam | 2013-03-29 01:57:26 +0000 (Fri, 29 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleIcone.lua

Use SetFormattedText instead of SetText method for memory efficiency.
------------------------------------------------------------------------
r853 | jlam | 2013-03-29 01:57:18 +0000 (Fri, 29 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleIcone.lua

Use OvaleData:GetSpellName() for efficiency.
------------------------------------------------------------------------
r852 | jlam | 2013-03-29 01:57:10 +0000 (Fri, 29 Mar 2013) | 6 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Remove two TODO list items that don't apply.

* IsSpellInRange() doesn't take spell IDs.

* Extending the grammar to allow function calls to be used as parameters
  for other functions is a parser issue that is part of ticket #181.
------------------------------------------------------------------------
r850 | jlam | 2013-03-28 21:04:41 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix syntax error.
------------------------------------------------------------------------
r848 | jlam | 2013-03-28 18:46:01 +0000 (Thu, 28 Mar 2013) | 9 lines
Changed paths:
   M /trunk/OvaleBestAction.lua

Fix two bugs in OvaleBestAction.

(1) Missed a variable rename that caused channeled spells to trigger Lua
    error, broken in commit r843.  This fixes ticket #226.

(2) Spell priorities were broken in commit r816.

Also improve some of the comments in this file to better document what's
happening.
------------------------------------------------------------------------
r847 | jlam | 2013-03-28 18:45:41 +0000 (Thu, 28 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua

Also return number of ticks from OvaleData:GetDuration().

It already computed the information, so return it as well so the caller
doesn't have to make that same error-prone floating-point computation.
------------------------------------------------------------------------
r846 | jlam | 2013-03-28 18:45:13 +0000 (Thu, 28 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleState.lua

Fix arguments to GetDuration() (it only takes 3 arguments).

Also guard against zero tick lengths (shouldn't happen but you never know)
and add some comments to clarify what's happening in the code.
------------------------------------------------------------------------
r844 | jlam | 2013-03-28 04:34:56 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleActionBar.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleEnemies.lua
   M /trunk/OvaleGUID.lua

Begin cleanup to allow individual modules to register their own options.
------------------------------------------------------------------------
r843 | jlam | 2013-03-28 04:34:49 +0000 (Thu, 28 Mar 2013) | 7 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleActionBar.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleComboPoints.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleEnemies.lua
   M /trunk/OvaleEquipement.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleGUID.lua
   M /trunk/OvaleIcone.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvalePool.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua

Defer creating strings until the actual Print/Log/Error methods.

Add new methods to Ovale -- Logf, Errorf, DebugPrintf -- that take a
format string and arguments for interpolation, much like the standard
AceConsole-3.0 Printf method.  Use the new methods in place of Log, Error,
DebugPrintf so that the actual creation of strings is deferred until the
arguments are interpolated into the format string within the new methods.
------------------------------------------------------------------------
r842 | jlam | 2013-03-28 04:34:42 +0000 (Thu, 28 Mar 2013) | 6 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleRecount.lua
   M /trunk/OvaleSkada.lua

Disperse damage meter score-handling to the meter modules.

Simplify main Ovale class by moving all of the routines for receiving the
Ovale score broadcasts to the OvaleRecount and OvaleSkada modules
directly.  The main Ovale class now just broadcasts the player's own score
to any interested parties when combat ends.
------------------------------------------------------------------------
r841 | jlam | 2013-03-28 04:34:35 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleFrame.lua

Tag GetSpellTexture() as a Blizzard API function.
------------------------------------------------------------------------
r840 | jlam | 2013-03-28 04:34:28 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCompile.lua

Add ItemName() script function to be used similarly to SpellName().
------------------------------------------------------------------------
r839 | jlam | 2013-03-28 04:34:21 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleActionBar.lua
   M /trunk/OvaleGUID.lua

Fix global variable leak.
------------------------------------------------------------------------
r838 | jlam | 2013-03-28 04:34:14 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Don't use OvaleDate:GetSpellInfo() where we don't want side-effects.
------------------------------------------------------------------------
r837 | jlam | 2013-03-28 04:34:07 +0000 (Thu, 28 Mar 2013) | 5 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua

Code cleanup.

* Protect against some nil values.
* Remove awkward GetSpellInfoOrNil function.
* Remove unused variables in OvaleAura.
------------------------------------------------------------------------
r836 | jlam | 2013-03-28 04:34:00 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua

Make explicit which aura changes are handled by CLEU and by UNIT_AURA.
------------------------------------------------------------------------
r835 | jlam | 2013-03-28 04:33:52 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Druide.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua

Tag periodic auras that are affected by spell haste.
------------------------------------------------------------------------
r834 | jlam | 2013-03-28 04:33:41 +0000 (Thu, 28 Mar 2013) | 16 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleState.lua

Save the tick length as part of the aura properties.

Set the tick information directly in AddAura method instead of the CLEU
event handler in case CLEU and UNIT_AURA events arrive out of order.

Adjust the API by changing methods that returned the spell haste
multiplier to return the tick length instead.  The primary use of the
spell haste multiplier was to compute the tick length later on anyway.

Drop the hasteMultiplier argument to GetDuration and GetTickLength since
those two methods are now never called with that argument set.

Enhance GetTickLength and GetDuration to accept spell list name in place
of spell ID.

Note that the various ``tick'' conditions can take a spell list.
------------------------------------------------------------------------
r833 | jlam | 2013-03-28 04:33:33 +0000 (Thu, 28 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleOptions.lua

Reorganize debug options and add a button to trace the next frame.
------------------------------------------------------------------------
r832 | sidoine | 2013-03-25 19:56:47 +0000 (Mon, 25 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleOptions.lua

LibDualSpec is optional
------------------------------------------------------------------------
r830 | jlam | 2013-03-24 09:17:53 +0000 (Sun, 24 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Fix auras applied by traveling spells.
------------------------------------------------------------------------
r829 | jlam | 2013-03-24 09:17:46 +0000 (Sun, 24 Mar 2013) | 13 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Add OvaleCondition GetAura method that works on conditions parameters.

This extracts the relevant information from condition parameters and
forwards them onward to OvaleState:GetAura() and has the same return
values.

Drop GetTargetAura and getAura local functions that are now unused.

This simplifies the code and better highlights the parallels between
OvaleAura, OvaleState, and OvaleCondition.

Change getTarget local function to take a condition paramter table
like all other similarly named methods.
------------------------------------------------------------------------
r827 | jlam | 2013-03-24 06:40:32 +0000 (Sun, 24 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleFrame.lua

Protect against nil tables.
------------------------------------------------------------------------
r825 | jlam | 2013-03-23 21:39:25 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/embeds.xml

Add missing embedded library AceTimer-3.0 used by OvaleEnemies.
------------------------------------------------------------------------
r824 | jlam | 2013-03-23 21:39:17 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Code consistency: rename a variable to match coding conventions.
------------------------------------------------------------------------
r823 | jlam | 2013-03-23 21:39:10 +0000 (Sat, 23 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua

Add a new method OvaleData.GetSpellName(spellId).

This returns the name associated with the given spell ID and guards
against nil spell IDs.
------------------------------------------------------------------------
r822 | jlam | 2013-03-23 21:39:03 +0000 (Sat, 23 Mar 2013) | 13 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleState.lua

Enhance GetAura methods to accept the name of a spell list.

This allows for doing things like:

    OvaleAura:GetAura("player", "melee_haste", "HELPFUL")
    OvaleState:GetAura("player", "melee_haste", "HELPFUL")

to get the first buff from the melee_haste spell list that is found on the
player.

As a side-effect of this change, the SpellInfo parameters that take a
buff spell ID, e.g., buffnocd, buff_combo, etc., can now take a spell list
name instead.
------------------------------------------------------------------------
r821 | jlam | 2013-03-23 21:38:56 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Remove unused code and miscellaneous cleanup in OvaleCondition.
------------------------------------------------------------------------
r820 | jlam | 2013-03-23 21:38:48 +0000 (Sat, 23 Mar 2013) | 6 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Only check across player-applied auras when checking auras on all targets.

OvaleAura only accurately tracks every aura applied by the player.  For
auras applied by anyone else, OvaleAura only saves the one with the latest
expiration time.  Rename the GetAuraOnAnyTarget methods to
GetMyAuraOnAnyTarget in both OvaleAura and OvaleState.
------------------------------------------------------------------------
r819 | jlam | 2013-03-23 21:38:41 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleState.lua

Rename some methods in OvaleState to be more descriptive of their actions.
------------------------------------------------------------------------
r818 | jlam | 2013-03-23 21:38:34 +0000 (Sat, 23 Mar 2013) | 25 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Add rate-of-change to ``Health'', ``HealthMissing'', and ``HealthPercent''.

The rates are calculated from the current health and maximum health of the
specified unit and the estimated DPS against that unit.  This makes the
``Health'', ``HealthMissing'', and ``HealthPercent'' conditions return a
time interval that can be used by OvaleBestAction to compute sensible time
intervals, e.g., ``target.HealthPercent() <25'' has a time estimate
associated with it.

Change the private TimeToDie() method to return a triplet of:

    time to die, current health, maximum health

to support the new calculations.

Enhance the private TimeToDie() method to be more accurate within the
first few seconds of targeting a new mob.

Change the ``DeadIn'' condition to be an alias of the ``TimeToDie''
condition.

Change Life/LifeMissing/LifePercent to be aliases of
Health/HealthMissing/HealthPercent instead of vice versa, as the latter
are names that correspond to the SimulationCraft Action List grammar and
are more likely to be looked up.
------------------------------------------------------------------------
r817 | jlam | 2013-03-23 21:38:27 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix TimeToMaxEnergy() when max energy exceeds 100.
------------------------------------------------------------------------
r816 | jlam | 2013-03-23 21:38:20 +0000 (Sat, 23 Mar 2013) | 9 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua

Convert OvaleBestAction:Compute() to use a lookup table.

This change converts the Compute() method of OvaleBestAction to use a
lookup table instead of cascading if-else statements for efficiency.  As a
side-effect, it is also easier to understand and maintain the code this
way.

Re-add node IDs to each node of the abstract syntax tree in OvaleCompile.
Node IDs are used in the debugging messages for OvaleBestAction.
------------------------------------------------------------------------
r815 | jlam | 2013-03-23 21:38:13 +0000 (Sat, 23 Mar 2013) | 11 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleFuture.lua

Improve encapsulation of OvaleFuture and improve memory usage.

Make some unnecessarily public tables private and provide descriptive
accessor methods to access those tables.

Be slightly more memory-efficient in OvaleFuture by using a table pool
managed by OvalePool to avoid creating then throwing away small tables
each time the player casts a spell.

Also rename some variables in OvaleFuture to make it more clear what the
contents of those variables contain.
------------------------------------------------------------------------
r814 | jlam | 2013-03-23 21:38:06 +0000 (Sat, 23 Mar 2013) | 10 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Add GetDamageMultiplier(spellId) method to OvaleState.

This method accounts for auras that are removed by spells that are still
in flight to their targets.  Use this method in place of the one from
OvaleAura in OvaleCondition since OvaleCondition should only reference the
current frame state.

Change the implementation in OvaleAura to not maintain the current damage
multiplier while scanning the auras and to try to account for stacking
auras.
------------------------------------------------------------------------
r813 | jlam | 2013-03-23 21:37:59 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua

OvaleAura's UpdateAuras() should never be called outside of the module.
------------------------------------------------------------------------
r812 | jlam | 2013-03-23 21:37:51 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleOptions.lua

Move debug method to dump unit auras to OvaleAura.
------------------------------------------------------------------------
r811 | jlam | 2013-03-23 21:37:44 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/compiler.pl

Teach compiler.pl how to properly inherit methods from parent classes.
------------------------------------------------------------------------
r810 | jlam | 2013-03-23 21:37:37 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua

Minor change to make local addon variable name match the file name.
------------------------------------------------------------------------
r809 | jlam | 2013-03-23 21:37:30 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleSkada.lua

Fix minor copy and paste error.
------------------------------------------------------------------------
r808 | jlam | 2013-03-23 21:37:23 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleOptions.lua

No need to use GetLocale() -- the locale table is stored in Ovale.L
------------------------------------------------------------------------
r807 | jlam | 2013-03-20 19:30:39 +0000 (Wed, 20 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix the documentation for SpellUsable() condition.
------------------------------------------------------------------------
