------------------------------------------------------------------------
r123 | kapulani | 2014-12-02 04:53:01 +0000 (Tue, 02 Dec 2014) | 1 line
Changed paths:
   M /trunk/Classes/Shaman.lua

Another fix for @Elemental, Cooldowns -- allow Ascendance w/in the first minute.
------------------------------------------------------------------------
r122 | kapulani | 2014-12-02 04:39:41 +0000 (Tue, 02 Dec 2014) | 1 line
Changed paths:
   M /trunk/Options.lua

When importing default displays/action lists, make sure they end up named properly even if I did something really stupid like pasted the import string for the AOE list into the Cooldowns default.
------------------------------------------------------------------------
r121 | kapulani | 2014-12-02 04:35:11 +0000 (Tue, 02 Dec 2014) | 1 line
Changed paths:
   M /trunk/Classes/Shaman.lua

Fix for improper default @Elemental, Cooldowns action list (was actually @Elemental, AOE).
------------------------------------------------------------------------
r120 | kapulani | 2014-12-01 09:16:58 +0000 (Mon, 01 Dec 2014) | 4 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua

Paladin.lua: AddAura() for seraphim buff.

Shaman.lua: Handler for lava_burst will predict gain of 1 stack of lightning_shield.
   Updates to some Elemental action lists.
------------------------------------------------------------------------
r119 | kapulani | 2014-11-30 06:48:23 +0000 (Sun, 30 Nov 2014) | 2 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes/Warrior.lua
   M /trunk/Constants.lua

Paladin.lua: Workaround for holy_prism and lights_hammer, as IsSpellKnown() returns false when checking their spell IDs.

------------------------------------------------------------------------
r118 | kapulani | 2014-11-29 20:13:56 +0000 (Sat, 29 Nov 2014) | 5 lines
Changed paths:
   M /trunk/Constants.lua
   M /trunk/Events.lua

BUGFIX: Use non-localized strings for specialization keys ( spec.elemental vs. spec[ x ]

Constants.lua: Added table of fixed strings for all specializations.

Events.lua: Use new table of specialization keys when talents are changed.
------------------------------------------------------------------------
r117 | kapulani | 2014-11-26 19:18:37 +0000 (Wed, 26 Nov 2014) | 2 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/State.lua

Shaman.lua: Update @Elemental, AOE.
State.lua: Tweak logic for "ticking" abilities that are not actually dots.
------------------------------------------------------------------------
r116 | kapulani | 2014-11-26 10:47:30 +0000 (Wed, 26 Nov 2014) | 13 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/State.lua

Alpha!  Alpha!  Will need to test tomorrow before flagging as release.

Classes.lua: Reset "cast_start" to 0 when an predicted ability is handled in RunHandler().

Shaman.lua: Create 'enhanced_chain_lightning' alias for 'improved_chain_lightning' buff since SimC seems to have it both ways.
   Lava Burst's cooldown is 0 if Lava Surge procced after the player *really* started casting Lava Burst.
   Lava Burst's handler will only remove Lava Surge if the Lava Surge buff was up before Lava Burst was cast.

Core.lua: Added cast_start handling to ResetState().

State.lua: ticking will return false for any ability that doesn't have a dot by the same name.
   I'm not sure why @Elemental, AOE checks "!ticking" for Earthquake.
   Track the applied time for buffs/debuffs.
------------------------------------------------------------------------
r115 | kapulani | 2014-11-26 08:50:54 +0000 (Wed, 26 Nov 2014) | 1 line
Changed paths:
   M /trunk/Options.lua

Options.lua: Make sure criteria gets re-cached when actions/hooks are moved around.
------------------------------------------------------------------------
r114 | kapulani | 2014-11-26 03:13:37 +0000 (Wed, 26 Nov 2014) | 12 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/State.lua

Classes.lua: When projecting the start of combat, only start the timer if a hostile action is used.
   This will help keeping abilities with a check vs. time (i.e., Heroism/Bloodlust) from bouncing around in the queue.

Paladin.lua: Flagged damaging abilities as 'hostile' to fake a combat start.

Shaman.lua: Flagged damaging abilities as 'hostile' to fake a combat start.

Core.lua: Set false_start to 0 when resetting the predicted game state.

State.lua: Don't store the start of a cooldown in SetCooldown(), we don't need it for anything (yet?).
   mt_state.time will return 0 if we're not in combat and no predicted action has caused a false start.
   Otherwise, it will return time in combat if we have a real number, or a faked combat time if a hostile action was recommended.
------------------------------------------------------------------------
r113 | kapulani | 2014-11-26 01:16:58 +0000 (Wed, 26 Nov 2014) | 6 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua

Classes.lua: More support for ID swaps when necessary.

Shaman.lua: Holy oversight, Batman!
   I'd missed haste modifiers when changing scripting system for Shaman abilities.
   Haste now (again) affects cast times for CL, EB, Healing Rain, Healing Surge, and LB for Enhancement.
   Haste now (again) affects cast times for CL, EB, EQ, Healing Rain, Healing Surge, LvB, and LB for Elemental.
------------------------------------------------------------------------
r112 | kapulani | 2014-11-25 23:23:28 +0000 (Tue, 25 Nov 2014) | 5 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes.lua

Classes.lua: AddAbility() now takes variable arguments to accept multiple keys.
   This enabled the addon to deal (partially) with abilities whose ID can change based on glyphs, etc.
   Abilities still need a ModifyAbility( '<name>', 'id', function ( x ) ... end ) to return the right ID under the right circumstances.

Paladin.lua: Exorcism now defaults to ID 879, but converts to 122032 when Glyph of Mass Exorcism is enabled.
------------------------------------------------------------------------
r111 | kapulani | 2014-11-25 21:41:51 +0000 (Tue, 25 Nov 2014) | 9 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Core.lua

Paladin.lua: Divine Storm costs 0 HP w/ Divine Purpose up.
   Divine Storm removes Divine Purpose when cast.
   Final Verdict costs 0 HP w/ Divine Purpose up.
   Final Verdict removes Divine Purpose when cast.
   Templar's Verdict costs 0 HP w/ Divine Purpose up.
   Templar's Verdict removes Divine Purpose when cast.

Core.lua: HasRequiredResources() will pass the state table to action.spend() to check buffs, etc.
   UpdateResources() will pass the state table to action.spend() to check buffs, etc.
------------------------------------------------------------------------
r110 | kapulani | 2014-11-25 01:09:41 +0000 (Tue, 25 Nov 2014) | 2 lines
Changed paths:
   M /trunk/Options.lua

Options.lua: Update version stamper to 2.11.
This is really just a big nudge for the Curse packager.
------------------------------------------------------------------------
r109 | kapulani | 2014-11-25 00:49:06 +0000 (Tue, 25 Nov 2014) | 14 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Core.lua
   M /trunk/State.lua

Paladin.lua
   Added tier17 set.
   Added t17 2pc functionality to Exorcism and Hammer of Wrath.

Shaman.lua
   Fixes for Earthquake, Frost Shock, and Lava Burst using outdated modifier system.
   This should resolve an issue where the addon simply won't work for you.
   Fixes for spell costs, hidden passive Primal Wisdom was not accounted for.

Core.lua
   Implemented and fixed metatables for health and resources, they weren't working.

State.lua
   Implemented target.health such that we could, if we so desired, predict health loss/gain.
------------------------------------------------------------------------
r108 | kapulani | 2014-11-23 20:57:09 +0000 (Sun, 23 Nov 2014) | 35 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/Targets.lua

Classes.lua:
   Added support for checking the raid buff tray (i.e., buff.str_agi_int.up is now functional).

Classes/Paladin.lua:
   Added Execution Sentence aura, Empowered Seal buffs.
   Blessing of Kings/Might now also show that they are buffing Stats/Mastery.
   Judgment will now apply the appropriate buff based on your seal.
   Updated default @Retribution, Buffs action list to recommend Seal of Truth pre-combat.
   Rebuke is off GCD.

Classes/Shaman.lua:
   Updated default @Enhancement, AOE action list to recommend LB if glyph of CL is active and there are < 3 targets.

Core.lua
   Strip names from our raid buff wrappers in ResetState, remove caster info.
   Update IsUsable() to accept ability.usable as number (spellID) or function.

Events.lua
   Fixed TTD calculations, they were bad.
   Will now track TTD for any of your tracked enemies, though we only get UNIT_HEALTH updates about named (i.e., 'target') units.
   Some preliminary work was done to work around this TTD limitation, but the effort/CPU time is not worth the limited benefit.

Options.lua
   Next release will be labeled 2.10.
   Refresh cached criteria if a display is enabled/disabled.

State.lua
   Added support for seals (seal.truth is boolean) which are stances.
   Buffs now have a 'caster' value and buff.XX.mine will return true if caster is 'player'.
   time_to_die uses new TTD tables.
   buff.XX.name is pulled from the Auras table for normal buffs, GetRaidBuffTrayAuraInfo() for raid buffs.
   
Targets.lua
   Eliminate() will now remove a TTD table as well.
   Audit() will remove a TTD table for a target who no longer exists.
------------------------------------------------------------------------
r107 | kapulani | 2014-11-21 07:33:26 +0000 (Fri, 21 Nov 2014) | 30 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes/Warrior.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Hekili.toc
   M /trunk/State.lua

This is a very alpha update that adds Retribution Paladin support.  Lots of testing is needed!  May cause issues with Shaman module as well.

Classes.lua:
   Removed a lot of unnecessary loadstring() calls when dynamic functions were not needed.
   Made AddAbility() a bit more readable by taking table input instead of dynamic entries.

Classes/Paladin.lua:
   Updated Paladin module to work with current Hekili engine.

Classes/Shaman.lua:
   Clean up formatting.

Classes/Warrior.lua:
   Some basic changes to support Warrior at a later date... Won't work yet.

Core.lua:
   Reset the 'seal' table as needed by the Paladin module.
   Bugfix for resources that don't regenerate.
   HasRequiredResources() updated to use new 'spend' model (rather than weird cost tables).
   UpdateResources() now uses spend, gain (although I'm actually putting resource gains in the handlers).

Events.lua:
   Made spec.X less labor-intensive per cycle.
   UpdateGear() will cycle itself every 3 seconds until an initial gear profile can be made.

State.lua:
   Added Stance() for changing seals, stances.
   Added Gain() for abilities that generate resources.
   Added Spend() for abilities that can use add'l resources.
   Added metatable for State.spec checks.
------------------------------------------------------------------------
r106 | kapulani | 2014-11-18 00:57:56 +0000 (Tue, 18 Nov 2014) | 5 lines
Changed paths:
   M /trunk/Core.lua
   M /trunk/Options.lua

Core.lua:
 - Improve cooldown info on icon #1, hopefully to prevent issue reported by Jonexe.

Options.lua:
 - Rebuild UI in the event of a /hekili recover.
------------------------------------------------------------------------
r105 | kapulani | 2014-11-12 05:31:02 +0000 (Wed, 12 Nov 2014) | 2 lines
Changed paths:
   M /trunk/Core.lua
   M /trunk/Options.lua

 - Update Release tagger.
 - Fix cooldown display for offGCD abilities in first queue slot.
------------------------------------------------------------------------
r104 | kapulani | 2014-11-11 23:06:46 +0000 (Tue, 11 Nov 2014) | 4 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/Options.lua

 - Fixed a broken default import string.
 - Improved error handling for bad import strings.
 - Added a sanity check at login to detect previously imported bad import strings and eliminate them.
 - Added '/hekili recover' command in case the addon doesn't recover from error state due to bad import strings.
------------------------------------------------------------------------
r103 | kapulani | 2014-11-11 08:00:53 +0000 (Tue, 11 Nov 2014) | 2 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Core.lua
   M /trunk/Options.lua
   M /trunk/State.lua

 - Updated Enhancement action lists to use Magma Totem w/ multi-targets if primary target is within range.
 - Improved error handling, visibility for some conditionals.
------------------------------------------------------------------------
r102 | kapulani | 2014-11-11 02:10:51 +0000 (Tue, 11 Nov 2014) | 8 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Core.lua
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/UI.lua

 - Added version numbers to default strings to help identify when you're running with outdated default displays/action lists.
 - Updated all default Shaman displays, action lists.
 - Debug mode cleaned up a little bit, shouldn't confuse the garbage collector any longer.
 - Cleaned up ProcessHooks() so we only enter data into the queue when an action is chosen.
 - Added Reload Missing, Reload All buttons to the options interface for both action lists and displays.
 - Reload button will tell you if the default displays/action lists are newer than your existing lists.
 - Fixed to show the proper number of buttons when changing the Icons Shown setting.
 - Added 'cooldown_up' criterion that effectively checks 'cooldown.action.remains == 0' (same as 'cooldown_react').
------------------------------------------------------------------------
r101 | kapulani | 2014-11-06 07:49:05 +0000 (Thu, 06 Nov 2014) | 1 line
Changed paths:
   M /trunk/Core.lua
   M /trunk/State.lua

 - Improve consistency for feigning a single stack of buffs where UnitBuff/Debuff returns a count of 0 (i.e., so Ascendance works).
------------------------------------------------------------------------
r100 | kapulani | 2014-11-06 06:54:42 +0000 (Thu, 06 Nov 2014) | 1 line
Changed paths:
   M /trunk/State.lua

 - Fixed typo in debuffs metatable that caused the addon to forget which dot/debuff it is dealing with.
------------------------------------------------------------------------
r99 | kapulani | 2014-11-05 17:32:01 +0000 (Wed, 05 Nov 2014) | 2 lines
Changed paths:
   M /trunk/embeds.xml

embeds.xml
 - Include the right LibRangeCheck-2.0.lua in the right folder.
------------------------------------------------------------------------
r98 | kapulani | 2014-11-05 08:23:25 +0000 (Wed, 05 Nov 2014) | 44 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Hekili.lua
   M /trunk/MultilineEditor.lua
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/Targets.lua
   M /trunk/UI.lua
   M /trunk/Utils.lua
   M /trunk/embeds.xml

*** This is another alpha bugfix commit -- I highly suggest you do *not* download this unless you're specifically interested in alpha testing. ***

State.lua, Core.lua:
 - We will recycle our tables instead of suddenly eating ~300KB per second for no good reason.  Debug mode is still leaky because I want to go to bed.

.pkgmeta, embeds.xml:
 - Dump LibCompress since we don't actually use it.

Core.lua:
 - Hide displays if you login to a class that doesn't have a supported module.
 - Strip filename/line numbers from conditional script errors.
 - Correct "Hookrities" -> "Hooks" and never trust Replace in Files again.
 - Ensure that broken scripts are interpreted as false rather than true.
 - Make the ProcessHooks, UpdateDisplays, and Audit functions (Targets.lua) resilient so they can be called with C_Timer and function w/o arguments.  For ProcessHooks, we will save our wrapping function rather than making a fresh one every cycle.
 - ResetState() will now wipe expired data from the existing tables, rather than grabbing fresh tables faster than the garbage collector can figure out what to do.
 - ProcessHooks() will recycle its tables as well.

Events.lua:
 - Cache the localized specialization name and its equivalent key to reduce overhead for spec checks later on.

Hekili.lua:
 - Include LibRangeCheck-2.0 here.
 - Use local string.format rather than local strformat = string.format for readability.

MultilineEditor.lua:
 - Add syntax error text to the tooltip for testing purposes.

Options.lua:
 - When creating a new display, create its C_Timer caller if it doesn't already exist.
 - Preliminary support for version-stamping of displays, action lists, etc.

State.lua:
 - Modify all storage metatables to get fresh game data if ResetState() wiped out its stored data.
 - Use cached SpecializationKey for spec comparisons.

Targets.lua:
 - Unnecessary futzing with the Audit() function.

UI.lua:
 - Make ProcessDisplayX callers if they don't exist.
 - Clean up some function names.

Utils.lua:
 - Reorganize a bit.
------------------------------------------------------------------------
r97 | kapulani | 2014-10-31 19:37:18 +0000 (Fri, 31 Oct 2014) | 18 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Classes/Warrior.lua
   M /trunk/Constants.lua
   M /trunk/Core.lua
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/embeds.xml

Still part of a wave of alpha commits.  I wouldn't download this yet, if I were you.
 - Fix for renaming actions and hooks through the UI; entries in the left-hand list were not updating properly.
 - The SimulationCraft importer will now convert "resource" to "resource.current" automatically (and tell you that it did it).
 - The SimulationCraft importer will now convert "buff.X.react" to "buff.X.up" when no stack comparison is being made (and tell you that it did it).  buff.X.react will return the same value as buff.X.stack.
 - Fixed buff.X.stack_pct to return an actual percentage instead of 100 or 0.
 - Added syntax for checking whether a target is within a certain range (i.e., for telling if you can Heroic Leap to them, or throw a Keg at them, etc.):
    o target.withinX (ex: target.within10) will try to tell you if the target is within 10 yards of you.
    o target.outsideY (ex: target.outside8) will try to tell you if the target is 8 or more yards from you.
    o target.rangeAtoB (ex: target.range8to25) will try to tell you if the target is between 8 and 25 yards from you.
 - Added target.health, supported values are target.health.current, target.health.max, target.health.pct (for now). 

Future Warrior stuff:
 - Add LibRangeCheck-2.0 to the packager, will help with stuff like Heroic Leap for Warriors.
 - Fix abilities that generate rage in Classes/Warrior.lua.
 - Create support for SetDistance(), so that when charging or leaping, we can tell the engine that (we think) you're close to the enemy now.
 - Insert entry for combo_points in resource_t (there's no "SPELL_POWER_COMBO_POINTS" global var, apparently).
 - Reset target minimum and maximum range in ResetState().
 - Rage gains in Advance() will now check to see if you actually have a weapon equipped.
------------------------------------------------------------------------
