------------------------------------------------------------------------
r826 | jlam | 2013-03-23 21:40:42 +0000 (Sat, 23 Mar 2013) | 1 line
Changed paths:
   A /tags/5.2.17 (from /trunk:825)

Tagging as 5.2.17 release.
------------------------------------------------------------------------
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.
------------------------------------------------------------------------
r805 | jlam | 2013-03-20 05:00:42 +0000 (Wed, 20 Mar 2013) | 11 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Attempt to fix ticket #191 - "Other" condition not working as expected.

Change GetExpirationTimeOnAnyTarget() methods in OvaleAura and OvaleState
into a new method GetAuraOnAnyTarget().  It returns a time interval
similar to the GetAura() methods and takes similar arguments as well.

Use the new method in OvaleCondition and change semantics of the private
method getOtherAura() to return the same results as GetAuraOnAnyTarget().

Change Other*() conditions to use the return value from getOtherAura()
properly.
------------------------------------------------------------------------
r804 | jlam | 2013-03-20 05:00:34 +0000 (Wed, 20 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleGUID.lua

Guard against nil values.
------------------------------------------------------------------------
r802 | jlam | 2013-03-19 23:31:41 +0000 (Tue, 19 Mar 2013) | 28 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Fix ticket #196 - DebuffPresent(Magic) wrong with Pally buffs

The problem was caused by the Buff*() and Debuff*() conditions being
aliases for each other that actually just checked every aura on a target,
regardless of whether it was a buff or a debuff, e.g., the following two
conditions returned the same result:

    DebuffPresent(Magic)
    BuffPresent(Magic)

This made it impossible to do something like the following if the player
had any dispellable raid buffs:

    if DebuffPresent(Magic) Spell(cleanse)

Fix this by splitting out the buffs and debuffs per unit into separate
lists in OvaleAura and OvaleState, and teaching all of the methods that
manipulate or reference the aura tables to take an additional ``filter''
argument that can be ``HELPFUL'' (buff), ``HARMFUL'' (debuff) or nil
(either).

Introduce a new condition parameter ``filter''.  The ``filter'' parameter
is used to narrow down the auras that Ovale inspects to check a condition.
If specified, its valid values are ``buff'', ``debuff'' or ``any'',
defaulting to ``any''.

The Buff*() and Debuff*() conditions implicitly set the filter to ``buff''
or ``debuff'', respectively.
------------------------------------------------------------------------
r801 | jlam | 2013-03-19 23:31:33 +0000 (Tue, 19 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Clean up implementation of time-to-die estimate.
------------------------------------------------------------------------
r800 | jlam | 2013-03-19 23:31:26 +0000 (Tue, 19 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Rename OvaleState:GetRunes to GetRunesCooldown() and be more DRY.

Make OvaleConditions use OvaleState:GetRunesCooldown() instead of
reimplementing almost the exact same function.
------------------------------------------------------------------------
r799 | jlam | 2013-03-19 23:31:18 +0000 (Tue, 19 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleComboPoints.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleGUID.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua

Enhance OvaleGUID to also track GUIDs when unitIDs change.

Use a table to hold unitID-to-GUID mappings and provide a new method
GetGUID(unitId) to access the table from other modules.

Make some public properties private and create methods to access the data
in those tables.
------------------------------------------------------------------------
r798 | jlam | 2013-03-19 23:31:11 +0000 (Tue, 19 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleFrame.lua

Save memory by not creating many small Lua tables per frame refresh.
------------------------------------------------------------------------
r797 | jlam | 2013-03-19 23:31:01 +0000 (Tue, 19 Mar 2013) | 14 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/OvaleData.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/OvaleOptions.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvalePool.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua

Code consistency.

Make local copies of all Blizzard API functions and prefix them with
"API_". This makes it simpler to automatically audit the use of Blizzard
API functions.

Rename all private static variables by adding a "self_" prefix.  This
reduces namespace conflicts with variable names when writing functions.

Rename all constants and constant tables to be in all-capitals and to
start with an "OVALE_" prefix.  This makes it clear what values are
immutable and which may be changed.

Also remove ``Ovale'' from the global namespace as a final clean-up.
------------------------------------------------------------------------
r796 | jlam | 2013-03-19 23:30:53 +0000 (Tue, 19 Mar 2013) | 5 lines
Changed paths:
   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/OvaleData.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/OvaleOptions.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvalePool.lua
   M /trunk/OvaleRecount.lua
   M /trunk/OvaleScripts.lua
   M /trunk/OvaleSkada.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua

Use addon variables to stash references to each module.

The Ovale modules are all interdependent and unlikely to become
independent addons at any point, so use a simpler way to store references
to each module by just storing it in the addon namespace.
------------------------------------------------------------------------
r795 | jlam | 2013-03-18 05:01:34 +0000 (Mon, 18 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleStance.lua

Protect against nil stanceList.
------------------------------------------------------------------------
r793 | jlam | 2013-03-17 10:58:39 +0000 (Sun, 17 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleState.lua

Fix energy regeneration calculations for rogues.

Rogues don't always show their own self-buff for "melee_haste" and it
always needs to be stripped out.

Restrict the focus calculation to hunters and make the function more
efficient.
------------------------------------------------------------------------
r792 | jlam | 2013-03-17 10:58:32 +0000 (Sun, 17 Mar 2013) | 8 lines
Changed paths:
   M /trunk/OvaleData.lua
   M /trunk/OvaleEquipement.lua

Add additional event handlers so information is accurate on initial login.

PLAYER_ALIVE is triggered when the player's talent & glyph information is
first available and happens after PLAYER_ENTERING_WORLD.

PLAYER_ENTERING_WORLD triggers every time there is a loading screen, so
the information gathered during PLAYER_ALIVE is available at this time
after the first login.
------------------------------------------------------------------------
r790 | jlam | 2013-03-17 08:05:38 +0000 (Sun, 17 Mar 2013) | 7 lines
Changed paths:
   M /trunk/defaut/Mage.lua

Mage: More fixes after SimulationCraft import.

* Arcane Brilliance is one of several spell_power_multiplier and
  critical_strike buffs.

* Check that the required mage armor isn't present before suggesting it be
  applied for each specialization.
------------------------------------------------------------------------
r789 | jlam | 2013-03-17 08:05:30 +0000 (Sun, 17 Mar 2013) | 3 lines
Changed paths:
   M /trunk/OvaleAura.lua

Fix the event handler for Ovale_InactiveUnit in OvaleAura.

Event handlers are passed the event as the first argument.
------------------------------------------------------------------------
r787 | jlam | 2013-03-16 09:07:06 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Ovale.toc
   M /trunk/OvaleOptions.lua

Add optional support for dual-spec profiles using LibDualSpec-1.0.
------------------------------------------------------------------------
r785 | jlam | 2013-03-16 08:04:37 +0000 (Sat, 16 Mar 2013) | 5 lines
Changed paths:
   M /trunk/Ovale.lua

Set the frame anchor during UpdateFrame() instead of OnInitialize().

This moves referencing the anchor stored in the profile to a later point
where if the profile is changed, the anchor in the new profile is used to
update the frame, and is needed for online profile-switching.
------------------------------------------------------------------------
r784 | jlam | 2013-03-16 08:04:31 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleBestAction.lua

Query OvaleEquipement for equipped items in slots for efficiency.
------------------------------------------------------------------------
r783 | jlam | 2013-03-16 08:04:24 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleEquipement.lua

Guard against bad slot names to GetEquippedItem().
------------------------------------------------------------------------
r782 | jlam | 2013-03-16 08:04:17 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleGUID.lua

Prune auras from GUIDs that are no longer in the group.
------------------------------------------------------------------------
r781 | jlam | 2013-03-16 08:04:10 +0000 (Sat, 16 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleAura.lua

Improve encapsulation of OvaleAura and reduce memory usage.

Make the ``auras'' table and the ``serial'' variable private.

Catch ``Ovale_InactiveUnit'' and remove auras for any inactive units as
well as for dead ones.  This reduces the memory used by Ovale to track
auras on units.
------------------------------------------------------------------------
r780 | jlam | 2013-03-16 08:04:03 +0000 (Sat, 16 Mar 2013) | 18 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleEnemies.lua

Fix OvaleEnemies to track the number of enemies correctly.

Before this change, the enemies table was not being updated properly when
UNIT_DIED was received.

Split out the routines to add and remove enemies into public methods to
make the code more DRY.

API change: Remove method GetNumberOfEnemies() and introduce a public
static variable ``activeEnemies'' that holds the number of active enemies.

Schedule a timer to remove enemies that haven't been active for at least 3
seconds.  These are either not in combat with your group, out of range, or
incapacitated and shouldn't count toward your active enemies.

When a unit is no longer an active enemy, throw a new Ovale event
``Ovale_InactiveUnit'' that has the GUID of the dead unit as an event
parameter.
------------------------------------------------------------------------
r779 | jlam | 2013-03-16 08:03:55 +0000 (Sat, 16 Mar 2013) | 7 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/Ovale.toc
   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/OvaleData.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/OvaleOptions.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvaleRecount.lua
   M /trunk/OvaleScripts.lua
   M /trunk/OvaleSkada.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Chasseur.lua
   M /trunk/defaut/Chevalier.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Druide.lua
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Moine.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

Remove all addon variables from the global namespace.

The only addon variable left in the global namespace is ``Ovale'', which
represents the main addon object.

This change also makes explicit the dependencies between modules. Reorder
Lua files in the TOC file to ensure module dependencies are met.
------------------------------------------------------------------------
r778 | jlam | 2013-03-16 08:03:48 +0000 (Sat, 16 Mar 2013) | 6 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleActionBar.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleEnemies.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleGUID.lua

Code cleanup.

* Functions should start with a capital letter.
* Lua coding style nit: use ``tinsert'' instead of ``a[#a+1] = ...''.
* Remove unnecesary bookkeeping in OvaleCompile that was only used in a
  rare debugging event.
------------------------------------------------------------------------
r777 | jlam | 2013-03-16 08:03:41 +0000 (Sat, 16 Mar 2013) | 9 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleState.lua

Use OvalePool to reduce memory usage in OvaleAura.

Create a pool of auras that are used (and reused) when recording the auras
present on a unit.  This bounds the memory used by OvaleAura instead of
letting the garbage collector reclaim unused memory.

Don't pass around tables between modules; this decreases linkage between
modules by not exposing internal data structures and improves overall
encapsulation.
------------------------------------------------------------------------
r776 | jlam | 2013-03-16 08:03:32 +0000 (Sat, 16 Mar 2013) | 6 lines
Changed paths:
   M /trunk/OvaleCompile.lua

Use OvalePool to reduce memory usage in OvaleCompile.

Create a pool of nodes that are used (and reused) by the parser when
creating the abstract syntax tree for the script.  This bounds the memory
used by OvaleCompile instead of letting the garbage collector reclaim
unused memory.
------------------------------------------------------------------------
r775 | jlam | 2013-03-16 08:03:25 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc
   A /trunk/OvalePool.lua

Add simple memory pool implementation in OvalePool.
------------------------------------------------------------------------
r774 | jlam | 2013-03-16 08:03:18 +0000 (Sat, 16 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleActionBar.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleEnemies.lua
   M /trunk/OvaleSkada.lua

Make some more unnecessarily public variables private.
------------------------------------------------------------------------
r773 | jlam | 2013-03-16 08:03:11 +0000 (Sat, 16 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua

Move specialization tracking from OvaleStance to OvalePaperDoll.

The class specialization/mastery isn't really stance-related, whereas it's
available in the in-game paper doll.
------------------------------------------------------------------------
r772 | jlam | 2013-03-16 08:03:04 +0000 (Sat, 16 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleComboPoints.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleSwing.lua

Make code more DRY: get class and player GUID from the proper modules.

Use OvalePaperDoll.class and OvaleGUID.player instead of calling
UnitClass() and UnitGUID() in various modules that need the information.

Make playerGUID private in the modules that use it since it isn't accessed
outside of the individual modules.
------------------------------------------------------------------------
r771 | jlam | 2013-03-16 08:02:55 +0000 (Sat, 16 Mar 2013) | 3 lines
Changed paths:
   M /trunk/defaut/Mage.lua

Mage: Apply more fixes after SimulationCraft import.

The buff from standing in Rune of Power has a different ID than the spell.
------------------------------------------------------------------------
r769 | jlam | 2013-03-14 15:22:30 +0000 (Thu, 14 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleState.lua

Stop after seeing the first melee_haste buff when computing focus regen.

This is a sanity check just in case multiple buffs of the same type appear
in your buff bar, and is also slightly more efficient.
------------------------------------------------------------------------
r768 | jlam | 2013-03-14 15:22:09 +0000 (Thu, 14 Mar 2013) | 10 lines
Changed paths:
   M /trunk/defaut/Mage.lua

Mage: Apply fixes after SimulationCraft import.

Add damage coefficients to Fireball, Inferno Blast and Pyroblast so that
the Damage() and CritDamage() conditions used in deciding when to use
Combution return sensible numbers.

Fix confusion between ``pyroblast'' and ``pyroblast_aura''.  The former is
the ID of the spell as well as the DoT left on the target hit by
Pyroblast.  The latter is the player buff that indicates the next
Pyroblast is instant-cast.
------------------------------------------------------------------------
r767 | jlam | 2013-03-14 15:21:44 +0000 (Thu, 14 Mar 2013) | 11 lines
Changed paths:
   M /trunk/defaut/Guerrier.lua

Warrior: Apply fixes after SimulationCraft import.

The spell ID generated by the SimC converter is incorrect.  46915 is the
spell ID of the passive ability while 46916 is the spell ID of the actual
buff gained by the warrior.

Also add a SpellInfo line that notes the duration of the Bloodsurge buff.

This matches the usage of "bloodsurge" in the Ovale script which checks
for BuffStacks(bloodsurge), and which also has a SpellAddBuff line for
wild_strike that deducts one from Bloodsurge stack.
------------------------------------------------------------------------
r766 | jlam | 2013-03-14 15:21:15 +0000 (Thu, 14 Mar 2013) | 4 lines
Changed paths:
   M /trunk/defaut/Paladin.lua

Paladin: Apply fixes after SimulationCraft import.

When using the Glyph of Mass Exorcism, the spell ID of Exorcism changes
from 879 to 122032.
------------------------------------------------------------------------
r764 | sidoine | 2013-03-13 22:47:14 +0000 (Wed, 13 Mar 2013) | 1 line
Changed paths:
   M /trunk/defaut/Demoniste.lua

warlock: fix for misery which is different with each spec
------------------------------------------------------------------------
r763 | sidoine | 2013-03-13 22:25:57 +0000 (Wed, 13 Mar 2013) | 1 line
Changed paths:
   M /trunk/defaut/Pretre.lua

fix parenthesis in mind flay insanity
------------------------------------------------------------------------
r761 | sidoine | 2013-03-12 22:13:31 +0000 (Tue, 12 Mar 2013) | 1 line
Changed paths:
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Chasseur.lua
   M /trunk/defaut/Chevalier.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Druide.lua
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Moine.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

Imported default from last simulationcraft scripts
------------------------------------------------------------------------
r759 | jlam | 2013-03-12 04:47:49 +0000 (Tue, 12 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc

Reorder Lua files to load in order of dependencies required.
------------------------------------------------------------------------
r758 | jlam | 2013-03-12 04:47:36 +0000 (Tue, 12 Mar 2013) | 6 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleAura.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua

Store the current time, updated per frame refresh, in Ovale.now.

Change the modules that update based on live events to use Ovale.now
instead of OvaleState.maintenant.  Ovale.now tracks the actual current
time.  OvaleState.maintenant tracks the time of the simulation which can
lag behind due to the update interval set in the options.
------------------------------------------------------------------------
r757 | jlam | 2013-03-12 04:47:23 +0000 (Tue, 12 Mar 2013) | 9 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleState.lua

Improve encapsulation of OvaleData.

Split out OvaleData:GetComputedSpellCD() into a new method GetSpellCD()
which queries the Blizzard API, and a second portion moved to
OvaleState:GetComputedSpellCD() that checks the frame state for any spell
CDs found there.  This de-couples OvaleData from OvaleState.

Use OvaleState:GetComputedSpellCD() in place of the removed
OvaleData:GetComputedSpellCD() in the various Ovale modules.
------------------------------------------------------------------------
r756 | jlam | 2013-03-12 04:47:10 +0000 (Tue, 12 Mar 2013) | 10 lines
Changed paths:
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleFuture.lua
   M /trunk/OvaleState.lua

Improve encapsulation of OvaleFuture.

Add new method to OvaleFuture that generates an iterator for other modules
to walk the list of spells that are cast or are in flight to their
targets.  Make the list of active spells private since it doesn't need to
be accessed outside of OvaleFuture.

Use the iterator in OvaleState to apply the spell effects of those
travelling spells, and remove OvaleFuture:Apply() since it is no longer
needed.  This de-couples OvaleFuture from OvaleState.
------------------------------------------------------------------------
r755 | jlam | 2013-03-12 04:46:56 +0000 (Tue, 12 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleOptions.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvaleScripts.lua
   M /trunk/OvaleState.lua

Improve encapsulation of OvalePaperDoll.

Track player class and level in OvalePaperDoll.  They are player stats,
in a way, and are available in the in-game paper doll.

Use player class and level from OvalePaperDoll in the other modules and
remove the same from OvaleData.
------------------------------------------------------------------------
r754 | jlam | 2013-03-12 04:46:43 +0000 (Tue, 12 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleCompile.lua

Move debugging code for OvaleCompile into OvaleCompile module.
------------------------------------------------------------------------
r753 | jlam | 2013-03-12 04:46:30 +0000 (Tue, 12 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Document what are the return values for a script condition.
------------------------------------------------------------------------
r752 | jlam | 2013-03-12 04:46:17 +0000 (Tue, 12 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Guard against nil ending times for auras when computing DoT ticks.
------------------------------------------------------------------------
r751 | jlam | 2013-03-12 04:46:04 +0000 (Tue, 12 Mar 2013) | 23 lines
Changed paths:
   M /trunk/OvaleCondition.lua

Fix error in using "more" or "less" with decreasing values.

When using a script condition that has a decreasing value, e.g.,
BuffRemains(), the value is a function

    f(t) = value + (t - origin) * rate

where rate is negative.  When using the "more"/"less" comparators, e.g.,
BuffRemains(more 3), this effectively solves the following inequality:

    f(t) = value + (t - origin) * rate > 3

When the rate is negative, the inequality is reversed, and you end up
with:

   t < (3 - value)/rate + origin

Prior to this commit, Ovale was using the wrong answer of:

   t > (3 - value)/rate + origin

This had broken scripts that were using the verbose method of comparing
values.
------------------------------------------------------------------------
r749 | jlam | 2013-03-11 07:29:17 +0000 (Mon, 11 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix TicksRemain() condition.
------------------------------------------------------------------------
r747 | jlam | 2013-03-11 03:51:51 +0000 (Mon, 11 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleActionBar.lua

Use 2nd arg of RegisterEvent() instead of creating new event handlers.
------------------------------------------------------------------------
r746 | jlam | 2013-03-11 03:51:38 +0000 (Mon, 11 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix nil string in error reporting.
------------------------------------------------------------------------
r745 | jlam | 2013-03-11 03:51:26 +0000 (Mon, 11 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Fix focus regeneration calculation hunters.
------------------------------------------------------------------------
r744 | jlam | 2013-03-11 03:51:13 +0000 (Mon, 11 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvalePaperDoll.lua

Track ranged haste separately from melee haste in OvalePaperDoll.
------------------------------------------------------------------------
r743 | jlam | 2013-03-11 03:51:00 +0000 (Mon, 11 Mar 2013) | 5 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua

Back out parts of r625 and r627 to remove aura filtering changes.

We now track all auras on all units, just like all raid frame addons do,
instead of filtering away ones that aren't referenced in the current
script.
------------------------------------------------------------------------
r741 | jlam | 2013-03-09 18:45:14 +0000 (Sat, 09 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Fix using ItemList name in HasTrinket() condition.
------------------------------------------------------------------------
r739 | jlam | 2013-03-09 05:13:16 +0000 (Sat, 09 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleFuture.lua

Add debugging to OvaleFuture to allow tracing a particular spell's events.

Set OvaleFuture.traceSpellId to the ID of the spell that should be traced.
Debugging information from the game events that are triggered by that spell
are output to the chat window.

Set OvaleFuture.traceSpellId to ``nil'' to cancel tracing.
------------------------------------------------------------------------
r738 | jlam | 2013-03-09 05:13:08 +0000 (Sat, 09 Mar 2013) | 6 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleEquipement.lua
   M /trunk/OvaleState.lua

Cache all equipped items in OvaleEquipement.

Also add helper methods to OvaleEquipement to aid in common queries from
OvaleConditions, e.g., HasShield(), HasTrinket(id), etc., that find the
answers from the cached equipment.  This increases the efficiency of Ovale
scripts at run-time.
------------------------------------------------------------------------
r736 | jlam | 2013-03-08 01:31:04 +0000 (Fri, 08 Mar 2013) | 13 lines
Changed paths:
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleEquipement.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvaleState.lua

Fix ticket #213 - Issue with Monk Energy Regeneration.

This fix has several parts.

Firstly, there was an error in energy regeneration calculations where the
percent haste effect wasn't properly scaled.

Secondly, the Way of the Monk passive effect will increase melee attack
speed by 40% but we have to remove it from the melee haste effect when
computing energy regeneration as that attack speed bonus has no effect.

OvaleEquipement has been extended to cache the weapon types of the
mainhand and offhand slots so that they may be easily checked.
------------------------------------------------------------------------
r735 | jlam | 2013-03-08 01:30:57 +0000 (Fri, 08 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Only monks in an energy-using stance have a 1s GCD.
------------------------------------------------------------------------
r734 | jlam | 2013-03-08 01:30:50 +0000 (Fri, 08 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Improvements to documentation for script conditions.
------------------------------------------------------------------------
r733 | jlam | 2013-03-08 01:30:43 +0000 (Fri, 08 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleEquipement.lua

Detect Tier 15 armor pieces with relevant bonuses.

Add "_melee", "_tank", "_caster" and "_heal" versions of T11, T12 and T13
armor set names for hybrid classes.
------------------------------------------------------------------------
r731 | jlam | 2013-03-05 19:45:41 +0000 (Tue, 05 Mar 2013) | 8 lines
Changed paths:
   M /trunk/OvaleData.lua
   M /trunk/OvaleState.lua
   M /trunk/defaut/Demoniste.lua

Make BurningEmbers() and SoulShards() match in-game tooltips.

This backs out r729 to make BurningEmbers() return between 0 and 40 and
modifies SoulShards() so that it again returns between 0 and 4.  This
matches the way the resources are tracked in-game via tooltips in terms of
spell cost.

Fix the default warlock script to match above usage.
------------------------------------------------------------------------
r729 | jlam | 2013-03-05 11:29:52 +0000 (Tue, 05 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleState.lua

Scale BurningEmbers() and SoulShards() to represent full resources.

BurningEmbers() and SoulShards() are always between 0 and 4 and partial
progress toward another full resource is represented by a fraction, e.g.
``BurningEmbers() >1.5'' means ``at least one and a half Burning Embers''.

This should break fewer existing warlock scripts.
------------------------------------------------------------------------
r728 | jlam | 2013-03-05 11:29:44 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleState.lua

Improve energy regeneration estimation for combat rogues.
------------------------------------------------------------------------
r726 | jlam | 2013-03-05 07:03:04 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.toc

Bump Interface in TOC for MoP 5.2 so that the addon isn't "out of date".
------------------------------------------------------------------------
r724 | jlam | 2013-03-05 06:18:26 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Chasseur.lua
   M /trunk/defaut/Chevalier.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Moine.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

Mark default Ovale scripts as generated for patch 5.2.
------------------------------------------------------------------------
r723 | jlam | 2013-03-05 06:05:15 +0000 (Tue, 05 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleCondition.lua

Add HasTrinket(id) condition to test whether a trinket is equipped.
------------------------------------------------------------------------
r722 | jlam | 2013-03-05 06:05:08 +0000 (Tue, 05 Mar 2013) | 4 lines
Changed paths:
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleData.lua

Add ItemList(name id ...) that sets ``name'' to a list of item IDs.

This works in the same fashion as SpellList(name id ...) for assigning a
single name to a list of spell IDs.
------------------------------------------------------------------------
r720 | jlam | 2013-03-03 18:54:26 +0000 (Sun, 03 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua

Fix improper use of "self" in a local function.
------------------------------------------------------------------------
r719 | jlam | 2013-03-03 16:12:11 +0000 (Sun, 03 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleSkada.lua

Check whether Skada is present before using it in OvaleSkada.
------------------------------------------------------------------------
r718 | jlam | 2013-03-03 16:12:04 +0000 (Sun, 03 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleOptions.lua

Localize phrases.
------------------------------------------------------------------------
r717 | jlam | 2013-03-02 23:06:23 +0000 (Sat, 02 Mar 2013) | 1 line
Changed paths:
   M /trunk/README.md

Remove reference to "Restore default" button, which was removed.
------------------------------------------------------------------------
r715 | jlam | 2013-03-02 22:15:56 +0000 (Sat, 02 Mar 2013) | 12 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/Ovale.toc
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleOptions.lua
   A /trunk/OvaleScripts.lua
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Chasseur.lua
   M /trunk/defaut/Chevalier.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Druide.lua
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Moine.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

Add new module OvaleScripts to manage scripts from multiple sources.

Move the existing default scripts into OvaleScripts and decorate them with
a description that allows a user to see what class specializations are
supported by the default script.

Teach Ovale to use the script ``source'' to find the code for the current
script.  Custom code can be copied from an existing script to a blank
custom template that may be modified and saved into the SavedVariables
file.  The script ``source'' may be selected from a dropdown menu, with
the default menu containing the Ovale default script and either a blank
custom script or the custom script loaded from the SavedVariables file.
------------------------------------------------------------------------
r714 | jlam | 2013-03-02 22:15:46 +0000 (Sat, 02 Mar 2013) | 20 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleEquipement.lua
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleOptions.lua
   M /trunk/OvaleStance.lua

Better encapsulation of compile-related code into OvaleCompile module.

The script needs to be recompiled if data that the script depends upon
changes.  In the other modules that flagged ``needCompile'', cause the
data changes due to Blizzard events to fire a new Ovale event after the
data is changed.

The new Ovale events are:

    Ovale_CheckBoxValueChanged
    Ovale_EquipmentChanged
    Ovale_GlyphsChanged
    Ovale_ListValueChanged
    Ovale_ScriptChanged
    Ovale_SpellsChanged
    Ovale_StanceChanged
    Ovale_TalentsChanged

Make OvaleCompile into a full-fledged Ace3 addon module that listens for
the new Ovale events that triggers script recompilation.
------------------------------------------------------------------------
r713 | jlam | 2013-03-02 18:08:15 +0000 (Sat, 02 Mar 2013) | 20 lines
Changed paths:
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Voleur.lua

Re-apply script fixes after latest SimulationCraft import.

Rogue:
    CP generators cause an extra CP if Shadow Blades is present.

Paladin:
    When using the Glyph of Mass Exorcism, the spell ID of Exorcism
    changes from 879 to 122032.

Warrior:
    The spell ID generated by the SimC converter is incorrect.  46915 is
    the spell ID of the passive ability while 46916 is the spell ID of the
    actual buff gained by the warrior.

    Also add a SpellInfo line that notes the duration of the Bloodsurge
    buff.

    This matches the usage of "bloodsurge" in the Ovale script which
    checks for BuffStacks(bloodsurge), and which also has a SpellAddBuff
    line for wild_strike that deducts one from Bloodsurge stack.
------------------------------------------------------------------------
r712 | jlam | 2013-03-02 17:58:25 +0000 (Sat, 02 Mar 2013) | 12 lines
Changed paths:
   M /trunk/OvaleState.lua

Add new SpellInfo parameters to handle buffs generating extra resources.

``buff_<resource>'' is an optional parameter that is set to the spell ID
of the buff that causes extra resources to be generated when present.

``buff_<resource>_amount'' is an optional parameter that is set to the
number of extra resources generated when the buff listed in
``buff_<resource>'' is present.  If not set, then it defaults to ``1''.

Drop special handling of Shadow Blades in OvaleState now that it can be
described and handled directly in the rogue script with the above
parameters.
------------------------------------------------------------------------
r711 | jlam | 2013-03-02 17:58:17 +0000 (Sat, 02 Mar 2013) | 7 lines
Changed paths:
   M /trunk/OvaleState.lua

Back out part of r649 for handling combo points.

Combo points should still be updated in OvaleState to reflect attacks that
have been cast but not yet arrived at their target (either damaging or
missing the target).  OvaleComboPoints will update combo points to reflect
"crit combo" events only after the attacks have landed, not after
spellcast.
------------------------------------------------------------------------
r710 | jlam | 2013-03-02 17:58:10 +0000 (Sat, 02 Mar 2013) | 8 lines
Changed paths:
   M /trunk/OvaleData.lua
   M /trunk/OvaleState.lua

Fix ticket #211 - Burning Ember Number

UnitPower() has a hidden 3rd argument to get the true value of a warlock's
secondary power value.  This fixes BurningEmbers() and SoulShards() to
return values from 0 to 40 (for the number of ember or shard segments)
instead of 0 to 4 (full ember or shard).  This also now correctly
correlates with the burningembers=xxx and shards=xxx values in warlock
script SpellInfo() lines.
------------------------------------------------------------------------
r709 | jlam | 2013-03-02 17:58:03 +0000 (Sat, 02 Mar 2013) | 5 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleRecount.lua
   M /trunk/OvaleSkada.lua

Better encapsulation of damage meter modules.

OvaleRecount and OvaleSkada are full-fledged Ovale modules and encapsulate
the code for adding a new reporting mode for their respective damage meter
addon.
------------------------------------------------------------------------
r708 | jlam | 2013-03-02 17:57:56 +0000 (Sat, 02 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleFrame.lua
   M /trunk/OvaleIcone.lua
   M /trunk/OvaleOptions.lua

Drop GetApparence() method from OvaleOptions; just use GetProfile().
------------------------------------------------------------------------
r707 | jlam | 2013-03-02 17:57:49 +0000 (Sat, 02 Mar 2013) | 1 line
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleOptions.lua

Use standard AceAddon methods instead of deferring with FirstInit().
------------------------------------------------------------------------
r706 | jlam | 2013-03-02 17:57:40 +0000 (Sat, 02 Mar 2013) | 1 line
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/OvaleData.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/OvaleOptions.lua
   M /trunk/OvalePaperDoll.lua
   M /trunk/OvaleSpellDamage.lua
   M /trunk/OvaleStance.lua
   M /trunk/OvaleState.lua
   M /trunk/OvaleSwing.lua
   M /trunk/compiler.pl

Convert all Ovale helper classes into Ace3 modules of Ovale addon.
------------------------------------------------------------------------
r705 | jlam | 2013-03-02 17:57:33 +0000 (Sat, 02 Mar 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Remove unused haste buff table - haste is tracked by OvalePlayerDoll.
------------------------------------------------------------------------
r704 | jlam | 2013-03-02 17:57:25 +0000 (Sat, 02 Mar 2013) | 12 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleOptions.lua

Cache active glyphs in OvaleData and update on GLYPH_* events.

This change causes the OvaleData module to update the active glyph cache
on GLYPH_* events.

All modules now reference the OvaleData.glyphs table instead of looping
through all of the glyph sockets and querying their contents each time we
need to find out if a particular glyph is active.

This is an efficiency boost for scripts.

Also fix "/ovale glyph" to output the currently active glyphs.
------------------------------------------------------------------------
r703 | sidoine | 2013-03-02 13:07:15 +0000 (Sat, 02 Mar 2013) | 3 lines
Changed paths:
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/defaut/Chaman.lua
   M /trunk/defaut/Chasseur.lua
   M /trunk/defaut/Demoniste.lua
   M /trunk/defaut/Druide.lua
   M /trunk/defaut/Guerrier.lua
   M /trunk/defaut/Mage.lua
   M /trunk/defaut/Moine.lua
   M /trunk/defaut/Paladin.lua
   M /trunk/defaut/Pretre.lua
   M /trunk/defaut/Voleur.lua

- imported last simulationcraft scripts (overwrote feral druid changes :( )
- added Charges(), CritDamage(), and PTR() functions
- added raid_movement buff
------------------------------------------------------------------------
r701 | jlam | 2013-02-22 09:21:45 +0000 (Fri, 22 Feb 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Monks have a 1s GCD by default.
------------------------------------------------------------------------
r700 | jlam | 2013-02-22 09:21:38 +0000 (Fri, 22 Feb 2013) | 1 line
Changed paths:
   M /trunk/OvaleData.lua

Use OvaleStance instead of directly calling Blizzard API for efficiency.
------------------------------------------------------------------------
r699 | jlam | 2013-02-22 09:21:31 +0000 (Fri, 22 Feb 2013) | 18 lines
Changed paths:
   M /trunk/Ovale.toc
   M /trunk/OvaleAura.lua
   M /trunk/OvaleBestAction.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleData.lua
   M /trunk/OvaleFuture.lua
   A /trunk/OvalePaperDoll.lua
   M /trunk/OvaleState.lua

Implement OvalePaperDoll class that tracks the in-game paper doll stats.

OvalePaperDoll caches the current player stats when it receives events
noting that the stats have changed.  Use OvalePaperDoll properties instead
of Blizzard API when referencing player stats.  This avoids a lot of
unnecessary Blizzard API calls.

The current stats cached by OvalePaperDoll are:

   * Primary stats: Agility, Intellect, Stamina, Strength, Spirit
   * Attack Power, Ranged Attack Power
   * Spellpower: bonus damage, bonus healing
   * Melee haste percent increase
   * Spell haste percent increase
   * Mastery effect percent increase

Remove haste-tracking from OvaleAura as it is now maintained in
OvalePaperDoll.
------------------------------------------------------------------------
r698 | jlam | 2013-02-22 09:21:24 +0000 (Fri, 22 Feb 2013) | 6 lines
Changed paths:
   M /trunk/Ovale.lua
   M /trunk/OvaleCompile.lua
   M /trunk/OvaleCondition.lua
   M /trunk/OvaleEquipement.lua

Better encapsulation of OvaleEquipement module.

Only refresh snapshot of equipped items when PLAYER_EQUIPMENT_CHANGED
fires instead of when UNIT_INVENTORY_CHANGED fires.  The latter event
fires every time an item is added or removed from a player's bags, which
can cause unnecessary script compilations.
------------------------------------------------------------------------
