commit b092925522e93f7dc841c85d1d410671679ba3f4 Author: Hekili Date: Tue Mar 28 18:41:56 2017 -0400 7.2: Update some PTR data to live. commit 49d6017332d1d05f0ff9d0908205b2ef4a9daf0c Author: Hekili Date: Tue Mar 28 18:40:03 2017 -0400 7.2: Update Paladin Defaults commit 3bf3cce2818118cc4a356d93bb3cb9c1461c352f Author: Hekili Date: Tue Mar 28 18:29:44 2017 -0400 7.2: So much stuff. This update note is objectively bad. commit de640f1f8ced7fc6463ab6a9335c96d6ba723c7a Author: Hekili Date: Sat Mar 18 23:30:31 2017 -0400 ALPHA: Try event-driven (with 0.05 ICD) updates instead of interval updates. + Add resource.time_to_XX calculation. commit 5cbec630ff5d800987bd91140db622507f6d752e Author: Hekili Date: Sat Mar 18 10:52:15 2017 -0400 Fixes for run_action_list, call_action_list, ... o When an action list's criteria is checked, it will not use padded criteria (i.e., recheck in 0.1s, half-GCD, etc.) because this has caused the addon to test inferior action lists before their criteria are met (blocking higher priority lists). o Added 0.05s of padding to regenerated resource prediction time. Wew lads! commit 218a68f4bdca3a9c745e9c1e012e41eb4d74d3c0 Author: Hekili Date: Tue Mar 14 00:22:14 2017 -0400 Improved Debugging, Incremental Fixes + The debug system will now allow you to generate a text-log of its decision-making process for clearer debugging. There will be some iterating on this. + The 'Pause' key will generate a snapshot that can be viewed through /hekili. The 'Pause' key can be set to *just* take a snapshot instead of freezing the display. + Energy/Focus abilities default to a CPU-intensive decision-making process to help offset issues with resource regeneration. This can be disabled by checking "Low Impact Mode" under general settings. + Added 'Fatigued' to the list of Bloodlust-blocking auras. commit 33b10ee32a612e0aa8b745f507d36dec4c02207a Author: Hekili Date: Mon Feb 27 00:24:55 2017 -0500 FIXES o Reset the delay after advance to the cast time of a selected action (failing to do so could cause distortions in the predicted game state, i.e. if the addon had a delay of 0.5s to refresh a buff that was falling off in 0.75s, when the addon advanced 0.5s then tried to update, it would result in checking buff duration at 0.5s + 0.5s and the buff would already be down). Discussing time offsets is a pain in the ass and I understand why Murozond would want to destroy the timeline. o Time Script and Conditions debugging will have more accurate and useful information. o Added 'time_to_max_charges' attribute to cooldowns. o Removed an error() call that just annoyed me; it should've known better than to mess with me. o Removed more tick-based regen stuff, just using time seems to work better. commit 08b86c4d6376002b929da7e210b2cc3cf11b7d90 Author: Hekili Date: Sat Feb 25 18:20:32 2017 -0500 Debug Info, Resource Ticks o Fix for debug tooltip; show the amount of resources when an entry is recommended. o Turn off tick-based resource regeneration prediction for a bit. commit 369dcbaf04526c4afe68f1a4674cbf235092eecc Author: Hekili Date: Sat Feb 25 01:31:14 2017 -0500 Pet stuff, channel stuff. commit 8800504c77628b000c1da9fc225ab6f0f9d0fd26 Author: Hekili Date: Fri Feb 24 22:42:10 2017 -0500 Display Updates, Forced Updates, Remove Rounding o Display Updates will happen more frequently (even if the recommendations haven't been refreshed). This helps text timers work properly. o Talent-swapping and cooldown toggling will force immediate recommendation updates. o Remove a lot of rounding that wasn't needed after the refresh bug was found. commit 18efb2692f835c0438045b91098bdebb740d34ad Author: Hekili Date: Mon Feb 20 13:08:53 2017 -0500 Masque Fixes + The addon should properly update Masque textures for modularized specs (Monks, Hunters). + If you disable Masque, the icon texture should return to the right size (P.S. HOW DARE YOU RESIZE MY ICON TEXTURES, MASQUE). commit 7f17cd43524ddf6954995779f31aefd1723aeeec Author: Hekili Date: Mon Feb 20 11:51:50 2017 -0500 Range-check and Judgment + Add 'range' value to abilities; when set, the range-coloring will use the specified spellID instead of the action spellID for range-checking. + Use range on Hand of Reckoning for Judgment since IsSpellInRange() returns bad data for Judgment. commit 81464635ed47db3bc9bfde5269f01e434e8fff18 Author: Hekili Date: Mon Feb 20 11:44:57 2017 -0500 Fix Consecration buff 'uptime' calculation. commit 8942edd1dcda679703965ab1557b8b5911ab139a Author: Hekili Date: Sun Feb 19 23:04:14 2017 -0500 Elemental Fixes SHAMAN o Earthquake consumes Echoes of the Great Sundering. o Update APLs, Frost Shock was inadvertently used in place of Lightning Bolt in the Lightning Rod action list. CORE o Use proper throttling so the addon updates as scheduled (unless an event occurs to trigger a faster update). STATE + Add 'refreshable' attribute to buffs/debuffs/dots (used in Hunter APL). + Cache 'timeToReady' calculations to reduce CPU usage. commit 1f794d6301ca263fe592c1c2814d24fc3114af74 Author: Hekili Date: Fri Feb 17 17:33:01 2017 -0500 Stormbringer can stack to 2. commit f408de897c96d0a92957167bb45958ca2ab6f76b Author: Hekili Date: Fri Feb 17 17:32:10 2017 -0500 Revert "LibArtifactData-1.0" This reverts commit 929f6b1a90ae5feaf742fe216a71de709498dea7. commit 8ac79b849b9ba208c0d2f8c577fcb4009095fa28 Author: Hekili Date: Fri Feb 17 09:13:48 2017 -0500 Resource Regen Fixes You should probably not gain resources at 10x their regeneration rate. commit 944cd2db9548c14f56f996e6b47abdcd82477b12 Author: Hekili Date: Fri Feb 17 08:25:04 2017 -0500 FIX: Energy Time to Max Calculation commit eef19670d3833f5783ae5cf7bf68eabb813743f3 Author: Hekili Date: Thu Feb 16 19:44:40 2017 -0500 Shaman Fixes o More tweaking to Elemental APLs. o Default Elemental AOE display will assume a minimum of 2 targets, rather than 3. o Enhancement APL will use `true_active_enemies` value to determine whether to apply/refresh Crash Lightning buff (so that if you set to single-target mode for a fight like Mythic Botanist, it will still encourage you to activate Crash Lightning for the buff). commit 929f6b1a90ae5feaf742fe216a71de709498dea7 Author: Hekili Date: Thu Feb 16 19:29:40 2017 -0500 LibArtifactData-1.0 o Going to try trusting LibArtifactData to stop leaving an empty artifact frame open... commit 7a7300738496cb22565b55a3913be7f607cb89ba Author: Hekili Date: Thu Feb 16 19:20:42 2017 -0500 FIXES: WW Monk, Focus/Energy o Arcane Torrent flagged as offGCD, will not interfere with WW Hit Combo. o Focus/Energy modeling will be ignored if your class module doesn't have focus/energy models. o Go away, new target system, you're not happening yet. commit 2fe6e7fc50a6808e03cb1bd047a47b1a416ea707 Author: Hekili Date: Sun Feb 12 21:09:10 2017 -0500 UPDATES, FIXES Shaman: Fix `maelstrom` in Elemental APLs to use `maelstrom.current`. o Fix cycle_targets indicators in some Elemental APLs. - Retire broken SimC import APLs. Scripts: o Time Scripts will round delays to the thousandth of a second. State: o Fix for resource meta-functions (they were not being used; I don't know that I use them anyway but now they'll work if I do). o Resource `time_to_max` expr will try to factor resource regeneration better (tick-based). o When advancing the clock, resources will be generated if the clock advances to the regeneration point (would previously only regenerate if the clock passes the regen tick). Targets: Insert initial framework for tracking buffs/health of enemies live, this will be used to allow improved target-cycle recommendations. Utils: + roundUp function now uses math instead of string functions for efficiency's sake. commit e2cdb4995e1a80b675d2c7196bd67939f1102f47 Author: Hekili Date: Thu Feb 9 10:53:52 2017 -0500 Improve imported action list version-tagging. Don't ask. commit ece2be03b2176610328411971b83f9293ec5c6d5 Author: Hekili Date: Tue Feb 7 22:50:07 2017 -0500 Round TimeScripts up to the hundredth of a second. commit ccfe3733e430b568bde8690ee95ca752568f676f Author: Hekili Date: Tue Feb 7 16:10:48 2017 -0500 Assorted Timing Fixes + Registered more interrupts as interrupts; this enables them to ignore the GCD. (Other offGCD abilities will wait for the GCD to prevent queue-jumping.) + More resource regen tuning (uses worst case timing for abilities that are waiting for resources). commit 5d0dc5e7ed9831d53cefc6721dd7dccb39bdac66 Author: Hekili Date: Tue Feb 7 13:25:39 2017 -0500 Disable Recommendation Window - It's too CPU intensive. commit c4713816d4658d6c48a15b6d77214e5bb6964e78 Author: Hekili Date: Tue Feb 7 13:21:07 2017 -0500 Changes - Revert query_time to not factor latency. o more tweaking of resource regeneration + Recommendation Window is getting changed to Clash... commit fe25e54ea55977fd139acc48e74b077ca4711a7c Author: Hekili Date: Tue Feb 7 09:51:01 2017 -0500 More prediction stuff. Classes: Keep a list of artifacts -- these are immune to the BG/arena disabling of set_bonuses. State: Abilities can use a custom spend() function for cases where padding resources is needed. commit 10dc56f5b879cf2a2309b2f06724cfa0969a0fc8 Author: Hekili Date: Mon Feb 6 21:48:36 2017 -0500 Fix energy prediction some more. commit 1b88831a23578c0e3d1da8aa7cbf1bbdef7eeac4 Author: Hekili Date: Mon Feb 6 19:22:21 2017 -0500 More resource prediction updates. + Ticking resources will generate more consistent with their ticks when the clock advances. commit 76379768baf7586ef5665ddd718e627b64ef10a3 Author: Hekili Date: Mon Feb 6 18:54:57 2017 -0500 Power forecasting adjustments. + The addon now keeps track of an average tick rate for energy/focus. When predicting how long it will take for an ability to have enough resources, the addon will project to the next tick. commit 2017c86944c20b0eb6c726ca57b1917877fb2d8d Author: Hekili Date: Mon Feb 6 18:12:25 2017 -0500 Remove extraneous / commit 4d4bc82c1a9daa03b76577ebd704616c2d42ab8b Author: Hekili Date: Mon Feb 6 18:11:55 2017 -0500 More resource prediction tuning... commit b8d13a3488924e8a3d5cde81618cdfc398412bcf Author: Hekili Date: Mon Feb 6 18:03:58 2017 -0500 More Fixes 1. Turn off Flicker Protection, getting reports of freezing. 2. Detect BGs/Arenas and turn off set-bonuses in those settings (equipped.X will fail except for Artifacts). 3. Track UNIT_POWER_FREQUENT ticks and round energy gains to the next tick. commit 97ddad64812f9feab90457cced7fcb2b260d3b13 Author: Hekili Date: Mon Feb 6 11:31:28 2017 -0500 FIXES CORE + spendResources() comes *before* runHandler() so that the handler doesn't change the amount of resources to spend. For instance, runHandler could remove Divine Purpose or The Fires of Justice, which would change the cost of Divine Storm or Templar's Verdict. + Tweak the flicker protection a little bit. STATE + Slight cleanup to timeToReady(). commit c6b3fcf5d5a490d38c86735f6f70da5f580a92da Author: Hekili Date: Mon Feb 6 10:11:43 2017 -0500 FIX: Tiny error in flicker-protection code. commit 2912bff1c292a8e7249be1e1841a64d2ae90a01e Author: Hekili Date: Mon Feb 6 01:01:55 2017 -0500 Assorted Fixes, Improvements for Hunter Support Classes: Block a 'pseudo-start' of combat for actions that are "in-air" and projected to land. + Add Netherwinds to the list of Bloodlust buffs. Core: Initial implementation of "flicker protection." + Basically, if it sees that the addon's last several recommendations have flickered between the newest actions and something else, it just won't bother updating. Will be iterating on this. Events: Spells that have been cast and are projected to land will default to a 0.05 travel time. State: 'query_time' will now incorporate latency into its recommendation. This will result in the addon making recommendations based on a slightly later game-state. + Holy Power is treated like a regenerating resource when Liadrin's Fury Unleashed is equipped and AW/Crusade is up. THIS NEEDS TESTING. + Tried to improve ability "timeToReady" calculations for Survival Hunters when using Spitting Cobra. commit e08f75682d33de3028b13802bc6cb9d9c5a6b9b1 Author: Hekili Date: Wed Feb 1 22:25:59 2017 -0500 Paladin: Import updates for Retribution APLs. commit fa58f4651b5456718e9c386bea65a447dd0e45fc Author: Hekili Date: Wed Feb 1 18:09:26 2017 -0500 Elemental: Recommend Stormkeeper more often in one of the Ele builds. commit 4111653b17642a66a731119e01110b9f722f1948 Author: Hekili Date: Wed Feb 1 17:53:19 2017 -0500 Improve keybinding detection and labeling. commit a4bf55dca02774bac6f4e0903106a7ce4bd636e0 Author: Hekili Date: Sun Jan 29 20:26:30 2017 -0500 Harder, Faster, Better, Stronger Events: The addon will respond more quickly to events that impact ability recommendations. This may require further tuning on a per-spec basis, to make sure all abilities with a travel time are flagged appropriately. + The addon will now gather keybindings using the default API. This *should* work for any bar mod, but I'm not going to test them personally. Paladins: You can now specify the maximum amount of Holy Power that you'll allow Wake of Ashes to waste. The addon will not recommend Wake of Ashes if you have more than the specified amount of Holy Power (and have the Ashes to Ashes trait). Core: The addon will do a better job of purging ancient profiles so it will, you know, work. + Display updates will occur more frequently (so Monk/Hunter timers will be less...lurchy?). + The addon will attempt to detect and display ability keybindings. Options: Default Nameplate Detection Range increased to 8. + Recommendation Window added, allows you to specify that an ability has to be available for at least X seconds (by default, 0.1) in order to be recommend. This *may* reduce some ability flicker. + Each display has its own independent settings for keybinds (show/don't show, upper/lowercase). o Renamed the "Blizzard Overlay" to "Overlay Glow" for slight clarity improvement. State: Keep track of latency, may factor it into buff.X.up, buff.X.remains and similar criteria going forward. - Removed the 0.05s padding from timeToReady() for focus/energy based classes. commit 7197fb8ff0f6cb7c31c4e05047fd33bb3c7ec589 Author: Hekili Date: Sat Jan 28 11:15:47 2017 -0500 Tweaks and Fixes Classes: Store item keys when storing gearsets. - Hunters gain 15 Focus from Arcane Torrent. Core and Scripts: Removed old override and delay arguments from checkScript. + Added 'recheck' as arg4 to checkScript. recheck tells the addon to see if the same script passes after `recheck' seconds, ostensibly to confirm that the action will be recommended for at least that much time. o recheck will need further config option support through the UI, it is not yet used. State: Check GetSpellCharges() using spellID rather than spell name, mainly to fix Storm, Earth, and Fire but will surely impact other things. o Built in padding on energy/focus regen reduced to 0.05s from 0.1s. commit 39a10f34f6839a9d28962246fbf3e6bce8d21b87 Author: Hekili Date: Fri Jan 20 20:55:58 2017 -0500 7.1.5.2 work-in-progress Shaman: Add Lava Surge buff for Elemental. Add Lava Surge/Lava Burst interaction. Core: Allow texture overrides. Allow time offsets to show for Hunters. Scripts: Allow basic duplicate checking to see if action criteria is met over a window period (not presently used). State: Improve basic pet mechanics. + Fix an error with regard to unit IDs in debuffs. + Remove maelstrom hook from the state table. commit e340209b759dfe64e73bc9760279b12902ddbfa3 Author: Hekili Date: Thu Jan 12 22:43:19 2017 -0500 Elemental Improvements + Flagged abilities that don't start combat as passive. + Iterated on Elemental APLs. Combined the SimC and SEL and left the result in SEL lists. Some spells were missing from the SEL lists. Should be an improvement. Core: Prevent an error with setting delay text on Monk abilities that are not yet ready. Events: Force an early refresh on UNIT_SPELLCAST_START to help caster modules (just Ele for now). commit f38c119a4fe8a37a99d255be8ccb82e430daa735 Author: Hekili Date: Wed Jan 11 22:04:01 2017 -0500 Cleanups, fixes... Classes: When initiating fake combat, start it just before a cast finishes because reasons. Shaman: New Class Settings. + Aggressive Stormkeeper: Used in handwritten Elemental playlists to recommend Stormkeeper closer to "on cooldown." + Predict Melee: Used by the addon engine to decide whether to try to predict Maelstrom generated by your weapon swings. + Predict Fury of Air: Used by the addon engine to decide whether to try to predict Maelstrom lost by Fury of Air. o Fix for Lava Burst generating 12 Maelstrom. o Moved MP swing generation and FoA expenditure prediction into Shaman.lua and added options to turn it on/off. + Wrote new APLs based off the guides at Storm, Earth, and Lava for Elemental Shamans. + Added some class settings for Elemental and Enhancement. o Corrected some MP generation stuff for Elementals. + Fix Totem Mastery to apply the invented 'totem_mastery' buff. + New default APLs, Enhancement APLs support more class settings. Core: Set spell textures by spell ID rather than by spell name due to localization. Options: Add a bunch of options regarding target detection, fix some other stuff. Targets: Make target detection work with new addon settings. commit 585101b326c6b0c8aa0c9315a1ac70793fd84679 Author: Hekili Date: Tue Jan 10 22:02:13 2017 -0500 Paladin: Fix spell ID for Crusade. commit 2d87503b1703debf4f38e773f77818211ae07506 Author: Hekili Date: Tue Jan 10 17:08:43 2017 -0500 7.1.5: Fix for false cooldown recovery bonuses applied when advancing the clock. commit c058201b6f7cf464a120904c36b4d357a89dce93 Author: Hekili Date: Tue Jan 10 13:30:43 2017 -0500 Paladin: Fix judgment_override. commit 333e37be7153458c8473b1854b43e066228b67bf Author: Hekili Date: Tue Jan 10 12:14:25 2017 -0500 Second fix for 'casting' debuff on enemies who are casting (and removing it properly when interrupting). commit 170dda70c3bb45a0b0ee19b39c4f315de3204e32 Author: Hekili Date: Tue Jan 10 12:00:32 2017 -0500 Fix for 'casting' debuff on enemies who are casting. commit b28f7455cce7b913904c8e004f79b0815d68f68d Author: Hekili Date: Tue Jan 10 11:30:13 2017 -0500 Make the addon actually, you know, load... commit db22036fa1cf3388c30f52763ca1d220fccc6835 Author: Hekili Date: Tue Jan 10 11:22:11 2017 -0500 7.1.5 - Lock in PTR to live changes, fix broken version detection. commit ce1203457218280b7fcc4dfd7c087eefc5564784 Author: Hekili Date: Tue Jan 10 02:09:03 2017 -0500 7.1.5... OK, lots and lots of stuff. Basically, this is the big update that hopefully makes 7.1.5 work for Enhancement, Elemental (suuuper beta), Windwalker, Brewmaster, Retribution, and Protection. Shaman: + Improved Totem Mastery detection, has its own buff now, can check the remaining time more effectively. + Moved fake buffs to ID -100 and lower. + Aftershock refunds 0.3 MP. - Removed "Prioritize Buffs" setting as its no longer relevant to the Enhancement APL. + Added "Fury of Air: Maelstrom Padding" setting so that you can keep yourself from overspending Maelstrom when you're keeping Fury of Air up. o Left the "Maelstrom: Boulderfist" setting but it's not actually used for the moment. - Removed/hid the "Maelstrom: Crash Lightning" setting since it's not relevant to the current APL. + Fixed Ascendance ID for Elemental. + Made Boulderfist benefit from Gathering of the Maelstrom. + Updated Earth Elemental CD and duration. + Earth Shock, Earthquake, Elemental Blast, Flame Shock, Frost Shock, Icefury, Lava Beam, etc. will spend a stack of Elemental Focus. + Frost Shock will spend a stack of Icefury. + Icefury will generate 24 MP. + Fury of Air will cost 3 MP. + Gave Lightning Bolt a VERY HIGH travel time to see if that stabilizes some MP forecasting. + LB + Power of the Maelstrom generates 14 MP. Hopefully. I'm hoping it's guaranteeing an Overload and not just giving 2x MP if you're lucky enough to Overload. Needs testing. + Overcharge LB cooldown is 12 * haste. + Rockbiter gives 20 MP + Gathering of the Maelstrom bonus. + Rockbiter will actually apply Landslide now. + Storm Elemental CD/duration halved. + Totem Mastery is no longer usable if 15 seconds remain on its buffs (i.e., you're in-range of the totems and duration is still > 15s). + New default APLs. Pray for Omarion. Paladins: o Changed Blade of Wrath's talent ID??? o Judgment's duration is 8 seconds. Feign function disabled in favor of new travel-time prediction. o Liadrin's Fury Unleashed gives 1 HP every 4 sec (was 2.5 sec). + Try to model haste gains from Crusade when spending HP. o NEED TO MODEL HASTE LOSS FROM CRUSADE DROPPING IN STATE.ADVANCE(). o Divine Intervention reduces Divine Shield CD by 20%. o Execution Sentence costs 0 HP with Divine Purpose, otherwise TFoJ reduces by 1. o Execution Sentence removes DP first, then TFoJ. Not both. - Greater Blessing of Might is gone. o Judgment has a travel time of 30 yd/sec. o Word of Glory spending accounts for Divine Purpose, TFoJ. o Modified WoG's heal. o New defaults displays/APLs. Classes: + Support new prev.#.ability syntax for new APLs. + Improve weapon swing projections at start of combat (improves Maelstrom projections). + Add 'casting' as a debuff since some APLs check for target.debuff.casting.up. + Added 'run_action_list' which jumps to another action list and does not return to the caller. + Trimmed potion listing, made potion.usable() check if you have any potions to use. + Started with retireDefaults( .. ) which will eventually wipe old defaults instead of leaving them in your profile. Core: o Indentation cleanup. o TODO: ADD CHAIN LIGHTNING/LAVA BEAM TO ICON CACHE. o Cleanups for time/ready scripts, modifications to make cycle_targets work a bit better (and more automatically). o Delay text added for Monks since they may be waiting to use something that's usable based on energy regeneration. Events: + Track casts on/off/regardless-of GCD status. + Watch Fury of Air ticks for Maelstrom projection purposes. Options: + Made some "modifiers" more user-friendly, but the interface is shit. Will update again soon. + Improved the importer a lot, but still a long ways to go. commit e80e03f4e88c495ecfb9f72cd85b30cc0e0cc43a Author: Hekili Date: Wed Dec 7 22:40:32 2016 -0500 Reversions, Bugfixes CLASSES o Potions belong on the 'potions' toggle rather than 'cooldowns'. STATE o Revert cooldown.X.remains change due to issues. CORE o Advance to the end of GCD after each cycle again, until a better solution is found. commit 2cfd1e270ec6cc931b7d68a6da80add594d821c9 Author: Hekili Date: Tue Dec 6 22:28:08 2016 -0500 BETA: Fixes to latest beta, Paladin, Shaman. PALADIN o Fix toggle for Artifact Ability (under 'toggle' rather than 'settings'). SHAMAN o Fix Aftershock refunds to not cause an error. STATE o Trying modification to target counts; if the addon has detected more enemies than nameplates have shown, trust the addon's detection. We'll see how this goes. (Should fix issues when Blizzard bugs out on hitbox sizes, i.e. EN Dragons). o Instead of advancing to the end of the GCD, trying cooldown.X.remains returning X's remaining CD or the remaining GCD, whichever is greater. Should apply only to offGCD abilities. Makes the addon more friendly to weaving offGCD stuff like interrupts. UI o Fix an outstanding bug with the notification panel creating a dead spot for mouse interaction. commit 501ab17c88b70ebb0f4db7b8ac5220fcff598080 Author: Hekili Date: Tue Dec 6 13:44:26 2016 -0500 Elemental: Fix Earthquake, Stormstrike, Windstrike commit 35b7a8a5eaef5af8862d7b2094654b8738775674 Author: Hekili Date: Tue Dec 6 13:28:05 2016 -0500 Elemental Shaman Support, Legendaries, Bugfixes, Engine Improvements... CLASSES: Add support for Xavaric's Magnum Opus shield buff. SHAMAN: Add initial Elemental Shaman support. May be missing some artifact and legendary mechanics. + Elemental Shaman: *WARNING* SimulationCraft importing does not work for the default APL at this time. This will have to wait for an importer overhaul, since the current importer does not support 'target_if'. + Elemental Shamans: nameplate targets will not be used because you cannot reliably detect the number of targets clustered at range. This means targets won't be counted until you hit them. + Eye of the Twisting Nether: Added to many damaging abilities. Can count your Twisting Nether buffs with twisting_nether.count (i.e., if you want to wait to pop a cooldown until you have all your buffs up). + Legendaries: Implement mechanics from class/spec legendaries. Not sure if Spiritual Journey will work right, yet. CORE: o Abilities that are channeled will run their handlers at the start of their cast rather than the end. + Added a delay counter on the upper left of primary icons. This counts down to let you know that an ability may be ready, but the addon recommends waiting to use it. This is useful for stuff like 'use Tiger Palm at 65 Energy' but you actually have only 40. May need to make this 'optional' or at least prettier. EVENTS: + Add preliminary support for tracking what spells are 'in the air', i.e., were cast but have not yet landed. This will be used to improve recommendations following abilities that have a travel time and effects that fire when the spell hits (rather than when the spell was cast). ARTIFACT DATA: o Attempt to prevent the artifact API bug, yet again. OPTIONS: o Use [[ ]] for storing display/list default names so that `/hekili makedefaults' doesn't freak out with names that have apostrophes. o Add a new importer warning for APLs that can't be properly read. SCRIPTS o storeValues() will always clear the table before exiting if there are no new elements to store. STATE o spendCharges() will set a cooldown to 0 if you're left with at least 1 charge. o The calculated haste / spell_haste / melee_haste values will now use values from the state.stat table, which allows ability handlers that update haste values to impact project cast times/GCD times/etc. + Added 'refreshable' option that returns true if a debuff with the same name as the tested ability has less than 30% of the debuff's duration. This could use more finesse. + reset(): Wipe modified stat values and get fresh values during future queries. - reset(): Use global_cooldown wherever class.gcd was previously used. o reset(): Don't advance to the end of the GCD any longer; may help with recommendations for stuff that was off-GCD. + advance(): Advance times will be rounded to the ceiling of the hundredth second (0.01). 1.505 becomes 1.51 as does 1.501. This helps improve consistency of recommendations (reducing flicker) and also addresses an issue where abilities that would be recommended based on a calculated future time (i.e., reaching a cap or energy level) wouldn't actually pass the threshold by some infinitesimal margin so we were spending a charge before we gained it. + advance(): Add hook to allow class/spec modules to do extra stuff after advance() completes its work. The first usage of this is to try to support Spiritual Journey's Feral Spirit cooldown reduction. + isReady(): Check timeToReady() for all actions that are being tested using Time Scripts. UI + When showing the values used in a diagnostic tooltip (Debug enabled and Paused), show each element in alphabetical order for easier reading ). + Add font strings for delays, keybindings (still not supported yet). Delay and KB is at 67% of prmary font size; should probably make these into options at a later date. UTILS o Moved orderedPairs here so I can use it the editor and tooltips or wherever else I might want. commit b892fb5f9717d00f62ec5d26a00bb6c2cf20ab7e Author: Hekili Date: Wed Nov 30 10:47:09 2016 -0500 Update Paladin default displays. commit f979fccc52cc3ba802cb6826ed205ade13c6572c Author: Hekili Date: Wed Nov 30 10:46:41 2016 -0500 Fix for Default Imports *BUGFIX* The default display export strings were incorrectly storing which action lists were attached to them. This worked okay for most people who don't have custom or old action lists, but not for others. This should fix the bug and default settings should properly be recovered at login/reload. commit d0d803553cc3111597ed4bcb53c5ce802ea7540f Author: Hekili Date: Wed Nov 30 00:26:58 2016 -0500 New Specialization Support (Protection Paladin) and New Script Type! Initial support for Protection Paladins. It's possible and even likely that some buff IDs are incorrect and some mechanics are not yet modeled correctly. We'll see! *Protection Paladins* Protection stuff includes new Class Settings for toggling defensives on/off ('use_defensives' in scripts), set a health threshold for Hand/Light of the Protector self-heals (if met, 'use_self_heals' is true), set a damage threshold for how much incoming damage you must be receiving before Shield of the Righteous is recommended defensively (the default action list still avoids capping SotR charges). *New Script Type: Time* While the default SimC like scripts are sufficient in the vast majority of cases, sometimes it is more important to calculate *when* an action list entry should be ready rather than if it is ready now (or when the ability's cooldown/resources are available). Example: You have 8 seconds remaining before Shield of the Righteous will reach 3 charges. You want Shield of the Righteous to be used when you are capped on charges, so you aren't wasting charge time gained from Judgment. SimC-like Conditions: cooldown.shield_of_the_righteous.charges=cooldown.shield_of_the_righteous.charges_max This will be false UNTIL you've reached 3 charges. Time Script: (cooldown.shield_of_the_righteous.charges_max-cooldown.shield_of_the_righteous.charges_fractional)*action.shield_of_the_righteous.recharge This will find out how much remaining charge is required and multiply by recharge time (which should equal 8 seconds, based on the case we provided). Using the Time Script will tell the addon to anticipate that Shield of the Righteous *will be* ready in 8 seconds, instead of the default behavior of saying "no, it's not ready yet" and then checking again after something else has been recommended. Time Scripts have access to additional values to help with decision-making: 'delay' is the time until the ability is off-cooldown or until you will have resources (based on resource regeneration) -- whichever is greater. 'spend' is the amount of resources required to use the ability. 'spend_type' is the type of resources spent by the ability. Time Scripts are heavily restricted -- you can't write full functions and you cannot access the global environment. You can provide an equation that gives a numeric value, and use simple conditions like: holy_power.current>1 and 2 or 0 ...which would equal 2 if you have more than one Holy Power, or 0 if you have 1 or fewer Holy Power. *Double Checking* If no ability's criteria is successful in your action lists, the addon will now advance by 1s and try again. It will do this twice before giving up on providing you with a recommendation. *BUGFIXES* - Recommending an offGCD ability will no longer trick the addon engine into thinking that the GCD was reset. commit dac5f6c486ca6ff377bb06d647895e75b9093e8e Author: Hekili Date: Tue Nov 29 01:38:52 2016 -0500 Additional support for Paladin abilities. Corrected 'repentence' to 'repentance'. Added many previously unsupported or unlisted abilities available to Retribution Paladins. Added hook in state.spend() to support Crusade gaining stacks from expending holy power. Added 'target.is_undead' and 'target.is_demon' -- used internally to apply Wake of Ashes stun. Added support for healing spells actually healing (so that if you recommend Flash of Light based on current health, your predicted health value changes and something else would get recommended next). Cleaned up some descriptions in the /hekili options UI. Auto/Manual given more descriptive names. Fix stat.spell_power to actually give a useful value. commit c2b3d260b60af8d1c04f707dc18348d2e2350fe2 Author: Hekili Date: Mon Nov 28 19:23:11 2016 -0500 Clear up some import confusion. Told GitHub to ignore some libraries that the Curse packager will manage. commit 3f24786b17d37f025652e7bcfd46b00b039f4c7d Author: Hekili Date: Mon Nov 28 19:12:04 2016 -0500 Initial GitHub upload of Hekili for 7.1.0 (with some PTR support). commit 39ae038d02fae9b088100c5749474c4bd5d33da2 Author: Hekili Date: Mon Nov 28 18:57:36 2016 -0500 :space_invader: Added .gitattributes & .gitignore files commit cf46692a79904a78c9c597dfb65669605959dda6 Author: Hekili Date: Mon Nov 28 18:56:24 2016 -0500 Initial commit