Hekili [The War Within]

Sim-based priority/rotation helper for DPS and tanking specializations.

File Details

7.0.3.12a

  • R
  • Oct 17, 2016
  • 633.51 KB
  • 1.0K
  • 7.0.3
  • Retail

File Name

Hekili-r247.zip

Supported Versions

  • 7.0.3

------------------------------------------------------------------------
r247 | kapulani | 2016-10-17 12:09:08 +0000 (Mon, 17 Oct 2016) | 1 line
Changed paths:
   M /trunk/State.lua

Wake up, Curse Packager.
------------------------------------------------------------------------
r246 | kapulani | 2016-10-17 11:58:29 +0000 (Mon, 17 Oct 2016) | 1 line
Changed paths:
   M /trunk/State.lua

State.lua - divine_storm_targets equals 2 with Divine Tempest or two ranks of Righteous Blade (reverted change).
------------------------------------------------------------------------
r245 | kapulani | 2016-10-17 03:31:22 +0000 (Mon, 17 Oct 2016) | 13 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Events.lua
   M /trunk/Hekili.lua
   A /trunk/Libs/LibArtifactData-1.0h
   A /trunk/Libs/LibArtifactData-1.0h/LibArtifactData-1.0h.lua
   A /trunk/Libs/LibArtifactData-1.0h/LibArtifactData-1.0h.toc
   A /trunk/Libs/LibArtifactData-1.0h/README.md
   M /trunk/State.lua
   M /trunk/embeds.xml

Classes.lua - Don't emulate an OH swing if you don't actually have an off-hand.
 - Disable retired defaults (say goodbye to old 'Single-Target' displays, they were replaced by 'Primary' displays).

Paladin.lua - divine_storm_targets is now 2 if you have Divine Tempest and Righteous Blade (rank 2), 3 otherwise.  (If you're not a Retribution Paladin, it's 0.)

Shaman.lua - Add a Class Setting to prioritize keeping Frostbrand (with Hailstorm) and Flametongue up, even when Stormbringer is chaining procs.  Default is true.  This sims higher than the default APL in SimulationCraft.
 - Default APL updated.
 - Added Wordup's APL that is based off of his Wowhead guide.  May make it easier to swap it in.  You can modify the hook for the 'default' APL to use this APL if desired.  (Have not recently tested it in SimulationCraft.)

Events.lua - Do not updateArtifact() at PLAYER_ENTERING_WORLD.  Run updateGear() and when your gear is found, then we'll run updateArtifact().
 - Do not updateArtifact() in PLAYER_EQUIPMENT_CHANGED.  updateGear() will call it.

embeds.xml and libs/LibArtifactData-1.0h - trying a modified version of LibArtifactData that won't try to get artifact information until my addon has already seen that your character's gear is equipped.  Will this fix the 'you haven't unlocked the full potential of this artifact' window bug?  Maybe.
------------------------------------------------------------------------
r244 | kapulani | 2016-10-10 15:07:17 +0000 (Mon, 10 Oct 2016) | 2 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Classes.lua

1.  Told the packager to get LibArtifactData-1.0 again.
2.  If an ability or aura has a modifier and that modifier fails to return a value, the default value will be returned.
------------------------------------------------------------------------
r243 | kapulani | 2016-10-10 05:17:42 +0000 (Mon, 10 Oct 2016) | 2 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua

Shaman.lua
 - Fixed a typo in the handler for Lightning Shield that would prevent the addon from functioning.
------------------------------------------------------------------------
r242 | kapulani | 2016-10-10 04:51:33 +0000 (Mon, 10 Oct 2016) | 32 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Constants.lua
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Hekili.lua
   M /trunk/Hekili.toc
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/Targets.lua
   M /trunk/UI.lua
   M /trunk/Utils.lua

Classes.lua
 - Added setRange() function to allow class modules to set the default range for nameplate target detection.
 - Updated runHandler() to update the last ability used (and categorize prev/prev_gcd/prev_off_gcd).
 - Added hooks to allow class modules to access the addon's namespace.

Paladin.lua
 - Added toggle for Weak of Ashes to Class Settings.  You have the option to override this toggle when Cooldowns are enabled.
 - Updated default entries for Paladin displays and action lists.  They have changed a fair amount.  Note that the 'single-target' display is now properly labeled as a Primary display.
 - Added the stun debuff for Hammer of Justice.
 - Update HoJ behavior when Justice Gaze is equipped.
 - Expanded on the 'Strict Finishers' setting.

Shaman.lua
 - Added feral_spirit.active and feral_spirit.remains syntax similar to SimulationCraft.
 - Added a toggle for Doom Winds to Class Settings.  You have the option to override this toggle when Cooldowns are enabled.
 - Updated default entries.  What was the single-target display is now the Primary display as it adjusts based on target counts automatically.

Constants.lua
 - Fixed a typo in Resources that caused the addon engine to think you had 22,000 Maelstrom while in Ghost Wolf form.
 - Added a trigger for external class modules to re-initialize the addon when needed.
 - Removed redundant "isKnown" check for action list entries.

Optiona.lua
 - Added setting for notification font size.
 - The SimulationCraft importer will now convert equipped.###### to equipped.item_name
 - Checking artifact.X.rank will be changed to artifact.X.rank>0.
 - Toggles will now notify WeakAuras that a toggle occurred.  This will be used for a new feature later.
 - Class Toggles will use their friendly name in the Notification panel rather than their formatted_key_like_this.

State.lua
 - Now pays attention to last ability, last GCD ability, last off GCD ability.
 - The addon now assumes that your class' primary resource regenerates.
------------------------------------------------------------------------
r241 | kapulani | 2016-10-06 04:22:04 +0000 (Thu, 06 Oct 2016) | 3 lines
Changed paths:
   M /trunk/Events.lua
   M /trunk/embeds.xml

embeds.xml - Revert LibArtifactData-1.0 more.

Events.lua - Don't ForceUpdate, just keep checking artifact data until we get some.
------------------------------------------------------------------------
r240 | kapulani | 2016-10-06 02:50:41 +0000 (Thu, 06 Oct 2016) | 7 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Core.lua
   M /trunk/Events.lua

Shaman.lua - Uhm, so maybe it helps to put in the correct spell ID for Boulderfist.  The developer responsible for the error has been thoroughly admonished.  This may resolve at least part of the 'stuck display' problem for Enhancement Shamans.

Core.lua - Removed some code that supported filtering hardcasts, which is a removed feature because it's pointless (no more hardcast Lightning Bolt weaving).
 - Reduced workload per cycle by as much as 50% by not updating the fake game state with changes based on the last recommended action (because the last recommended action was already chosen).
 - Use 'global_cooldown' ability for global cooldown tracking.  This removes support for using other abilities to check GCD, but I don't know why we'd want that anyway.

Events.lua - Trigger updates on schedule in OnUpdate.
------------------------------------------------------------------------
r239 | kapulani | 2016-10-05 13:27:04 +0000 (Wed, 05 Oct 2016) | 2 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/State.lua

Shaman.lua
 - Fix for endless loop for feigned Alpha Wolf buff.
------------------------------------------------------------------------
r238 | kapulani | 2016-10-05 12:58:11 +0000 (Wed, 05 Oct 2016) | 1 line
Changed paths:
   M /trunk/State.lua

State.lua - prevent endless loop when gathering (potentially fake) buff/debuff information.
------------------------------------------------------------------------
r237 | kapulani | 2016-10-05 12:12:40 +0000 (Wed, 05 Oct 2016) | 1 line
Changed paths:
   M /trunk/Hekili.lua
   D /trunk/Libs/LegionArtifacts-1.1
   M /trunk/embeds.xml

 - Revert Artifact library changes.
------------------------------------------------------------------------
r236 | kapulani | 2016-10-05 02:48:09 +0000 (Wed, 05 Oct 2016) | 19 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Events.lua
   M /trunk/State.lua
   M /trunk/UI.lua

Paladin.lua
 - Blade of Wrath will apply its debuff/dot.
 - The artificial Judgment debuff will be applied if the last GCD was Judgment and the debuff wasn't applied yet.  NOTE:  Need to account for misses.
 - Holy Power finishers will consume Divine Purpose first, then The Fires of Justice, and not both.

Events.lua
 - Back to LibArtifactData-1.0 for artifact trait detection.  It is now called within a pcall(), so unless the library itself blows something up, we should be fine.
 - The hidden 'nudge' to refresh recommendations after a successful spell cast will cause the update to occur slightly later (this gives a slight window for the game to actually update its data).
 - The hidden 'nudge' to refresh recommendations will also fire after one of your resources updates.

State.lua
 - Many, many edits to ensure that conditions are tested when the ability tested is ready, rather than at the next GCD.  That means, if you just pressed Stormstrike and the addon is testing Crash Lightning, and Crash Lightning is on cooldown for 2.5 seconds, the addon will test Crash Lightning's conditions 2.5 seconds from now, rather than 1.5 ( * haste ) seconds from now when the GCD is up.  Should reduce some flickering.
- Exposing UnitDebuff() to the addon environment so that feigned debuffs can actually work.
 - Added `query_time' which should be the moment when the currently tested ability is ready.
 - Minimum GCD is now 0.75 rather than 1.0.
 - Incremental work on Maelstrom generation prediction.

UI.lua
 - Fix for click-and-drag movement for users who play in windowed mode.
------------------------------------------------------------------------
r235 | kapulani | 2016-10-04 13:20:21 +0000 (Tue, 04 Oct 2016) | 1 line
Changed paths:
   M /trunk/State.lua

State.lua Fix typo so 'charges' conditional will properly return cooldown.current_ability.charges
------------------------------------------------------------------------
r234 | kapulani | 2016-10-04 03:22:52 +0000 (Tue, 04 Oct 2016) | 3 lines
Changed paths:
   M /trunk/Hekili.toc

Wake up, Curse Packager.

Also, removed Curse gobbledy-gook from the TOC file.
------------------------------------------------------------------------
r233 | kapulani | 2016-10-04 03:14:48 +0000 (Tue, 04 Oct 2016) | 3 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   A /trunk/Libs/LegionArtifacts-1.1
   A /trunk/Libs/LegionArtifacts-1.1/Change Log.txt
   A /trunk/Libs/LegionArtifacts-1.1/LegionArtifacts-1.1.lua

Paladin.lua - Fix a typo.

LegionArtifacts - Actually added the library.
------------------------------------------------------------------------
r232 | kapulani | 2016-10-04 03:13:51 +0000 (Tue, 04 Oct 2016) | 27 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/Hekili.lua
   M /trunk/Hekili.toc
   M /trunk/Options.lua
   M /trunk/State.lua
   M /trunk/embeds.xml

Classes.lua
 - Lay foundational support for showing off-GCD interrupts at the start of the action list when the GCD is active.  (NYI)

Paladin.lua
 - If the last spell cast was Judgment, and the ability is still in the air, the addon will now pretend Judgment was already applied to the target.  This eliminates a flicker effect when you use Judgment on a target, and the next recommended ability would've been a Holy Power spender.
 - Crusader Strike's cooldown/recharge is now properly reduced by The Fires of Justice talent.
 - Templar's Verdict, Divine Storm, Execution Sentence, and Justicar's Vengeance will now have their cost reduced by 1 when The Fires of Justice is up.

Core.lua
 - The addon no longer uses C_Timers for handling display updates.  It now uses custom timers that can be dynamically reduced to force quicker updates (i.e., if a spell was just cast, we want to update ASAP).
 - Displays will be auto-hidden while riding a taxi (in addition to barber shop, etc.).
 - We are trying a new Artifact trait library (LegionArtifacts-1.1) that may handle artifact detection errors more gracefully.  Hopefully.  Maybe.

Events.lua
 - Edits to implement the custom timer for display updates.
 - Implement the new Artifact library as noted previously.

Options.lua
 - Increased default Updates Per Second to 20 (this is more consistent with the holdover WeakAuras I had previously shared).
 - Increased range of Updates Per Second from 5 - 40.  40 is A LOT.  If you're not getting 40+ FPS, it won't even actually happen.

State.lua
 - Abilities that are bound to a toggle are now treated as on cooldown for 1 hour if the toggle is disabled.  This will be monitored closely for adverse impacts to APLs.
 - Abilities that are bound to a toggle are now treated as if they have 1 charge (and will not recharge) if the toggle is disabled.  This is consistent with SimulationCraft's behavior.  Sort of.
 - Abilities that you don't have, that have charges, are now treated as if they have 1 charge for APL evaluation purposes.  This is also consistent with SimulationCraft.  (This may resolve an issue with Wake of Ashes for Retribution Paladins.)
 - The default "no_trait" artifact trait will be set to rank 0.  Let's hope Blizzard doesn't name any traits "no trait."

------------------------------------------------------------------------
r231 | kapulani | 2016-10-03 16:45:50 +0000 (Mon, 03 Oct 2016) | 1 line
Changed paths:
   M /trunk/Hekili.toc

Okay, actually correcting the TOC so that addon isn't treated as out of date.
------------------------------------------------------------------------
r230 | kapulani | 2016-10-03 16:27:56 +0000 (Mon, 03 Oct 2016) | 11 lines
Changed paths:
   M /trunk/Classes/Shaman.lua
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Hekili.toc
   M /trunk/State.lua

TOC updated to prevent "Out of Date" warning.

Elaborated on tooltips in Shaman Class Settings.

Wind Shear now knows its place as an interrupt and will not be recommended with interrupts disabled.

Artifact traits will now rescan every 3 seconds if needed (similar to how I have to recheck gear multiple times before its available at login).

Error handling for artifact traits has been improved slightly.

------------------------------------------------------------------------
r229 | kapulani | 2016-10-03 14:37:51 +0000 (Mon, 03 Oct 2016) | 3 lines
Changed paths:
   M /trunk/Core.lua
   M /trunk/Options.lua
   M /trunk/UI.lua

The addon will now automatically reset the profile for loyal addon users who had old settings carrying over from pre-Legion.  This should only occur once.  You will have to reconfigure your displays if you've customized at all.

Fixed an issue with using click-and-drag to move displays.
------------------------------------------------------------------------
r228 | kapulani | 2016-10-03 12:41:50 +0000 (Mon, 03 Oct 2016) | 5 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes.lua
   M /trunk/Events.lua

All equipped gear is now checkable via `equipped.name_of_item'.  If you're wearing Whisper of the Nathrezim, the check for `equipped.whisper_of_the_nathrezim' will return true.

The Retribution Paladin APL will no longer recommend Wake of Ashes on the pull if you have the Ashes to Ashes artifact trait and more than 0 Holy Power (to avoid Holy Power waste).

As long as your default action lists are still checked as default (name is in blue), your APLs should automatically update.
------------------------------------------------------------------------
r227 | kapulani | 2016-10-03 05:35:10 +0000 (Mon, 03 Oct 2016) | 5 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Classes/Paladin.lua
   M /trunk/Hekili.toc
   M /trunk/Libs/LibItemBuffs-1.0/LibItemBuffs-1.0.toc
   M /trunk/State.lua
   M /trunk/Targets.lua

1.  Removed error message that would occur for some nameplate targets.

2.  Added 'judgment_override' variable which cleans up the APL a bit for Retribution Paladin.  Should also fix Crusade preventing Templar's Verdict from being used.

3.  Actually added LibCompress to the addon's libraries.
------------------------------------------------------------------------
r226 | kapulani | 2016-10-03 04:12:19 +0000 (Mon, 03 Oct 2016) | 5 lines
Changed paths:
   M /trunk/.pkgmeta
   M /trunk/Bindings.xml
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Constants.lua
   M /trunk/Core.lua
   M /trunk/Events.lua
   M /trunk/Formatting.lua
   M /trunk/Hekili.lua
   M /trunk/Hekili.toc
   M /trunk/Libs/LibItemBuffs-1.0/LibItemBuffs-1.0.toc
   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

Hekili v7 for Legion

Initial commit with support for Enhancement Shamans and Retribution Paladins.

Additional class/specialization support pending.
------------------------------------------------------------------------
r225 | kapulani | 2016-03-03 12:50:38 +0000 (Thu, 03 Mar 2016) | 9 lines
Changed paths:
   M /trunk/Classes/Paladin.lua
   M /trunk/Classes/Shaman.lua
   M /trunk/Classes.lua
   M /trunk/Hekili.toc
   M /trunk/State.lua

Classes.lua - minor step toward future support for distinguishing onCast vs. onHit ability handlers.

Paladin.lua - added check to see if you have empty_drinking_horn equipped.

Shaman.lua - added spell travel times as a step toward future support for distinguishing onCast vs. onHit ability handlers.

Hekili.toc - version bump.

State.lua - added 'equipped' checks.  equipped.empty_drinking_horn will return true if you're wearing that item.  It only works for gear that is tracked via addGearSet(), as it is just a boolean wrapper for set_bonus.  More elegant solution another time.
------------------------------------------------------------------------