Decursive 2.0 BETA 5 by Archarodim

Changes from Decursive 2.0 BETA 4 to 2.0 BETA 5

- Fix a bug that caused the loss of per-character bindings.
- Added a new debuff type: 'Charm' that applies to charmed units so mages can see all charmed units ; previously they could only see charmed units with a magical debuff (as priests). (This need testing, the situation is difficult to reproduce)
- Added an option to change the transparency (Alpha) of the MUFs when a unit is not afflicted, it can be set to 0 to be completely transparent.
- The micro unit frames (MUFs) are set to a lower strata.
- "Arcane Blast" will no longer be shown as a Debuff.
- Added full French localization by Sylvin
- Added full Korean localization by Fenlis
- Fixed typos in localization.lua and added a missing option description.


Changes from Decursive 2.0 BETA 3 to 2.0 BETA 4

- Changed the minimum number of MUF per row to 1
- The 'Show Help' option also disable the handle tool-tip
- The focused unit won't be scanned if it's unfriendly (you won't see it in the MUFs nor in the live-list).
- The macro binding function has been enhanced, it correctly unbinds previously mapped key and restores previously mapped action and
  displays messages when a mapping succeed/fails or replace a currently mapped action.
- Added an option to not show out of range units in the live-list (enabled by default).
- On non-English client, the key is set to "NONE" in the localization files so Decursive will display a warning to the user.
- Babble-Spell library has been updated, Spanish spells should be supported.
- Decursive is now available on wowace.com SVN


Changes from Decursive 2.0 BETA 2 to 2.0 BETA 3

- Fix the huge memory consumption of the scanning functions.
- Fix a problem with the macro that was not updated if the macro frame was opened.
- Fix some options in the menus that were not propagated correctly.
- Code optimization.
- Added a note in the readme.txt file about how to change the default key bound to the macro.

Changes from Decursive 2.0 BETA 1 to 2.0 BETA 2

- Fix Micro-Unit-Frames (MUFs) display: the first time you log on, the MUFs are displayed to a reachable place instead of the top left corner of your screen.
- Fix the LUA error message that occurred when you had all your macro spot used.
- The handle to move the MUFs (above the first MUF) now highlights when mouse-overred, a tooltip has been added.
- Fix a huge bug in the priority and skip list management causing a variable number of unit to not be displayed in the MUFs if your lists were not empty.
- MUFs scaling functions have been improved.
- The readme.txt file has been updated.


Changes from Decursive 1.9.8.4 to 2.0 BETA 1

User significant changes:

- Debuff removal capability restored in several ways:
	- By clicking on-micro unit frames created by Decursive for a user-defined number of players.
        - By mouse-overring units or unit frames and pushing a user-defined keyboard key.
	- Read the readme file to know more about these changes
- Priority list management:
 	- Now fully operational, you can very easily change player positions in the list
	- List display has been very improved (scrollbars, colors...)
	- Priority list order defines the order of the micro-unit frames displayed
- The option window has been removed:
	- All options are accessed through a drop down menu appearing when right-clicking on "Decursive" bar. (DewDrop Ace2Lib)
	- Every menu entries has a small explanation tooltip.
	- All options can be accessed through command line (AceConsole Ace2Lib)
- Debuff skipping management
	- Users can easily add/delete debuffs to ignore on specific classes while in combat
- Mage can sheep mind-controlled units (if other classes are interested, their spell can be added on request)
- The readme.txt file has been rewritten and should be read of course.

Internal changes:

- Decursive was almost entirely rewritten and reorganized (the live list system has not been redisigned yet)
- New code architecture, more ressource efficient and more scalable.
- Decursive is now an ACE2 add-on using ACE2 embeded libraries.


Changes from Decursive 1.9.8.3 to 1.9.8.4

- Fix syntax for compatibility with BC and LUA 5.1.1
- Huge memory usage improvement, Decursive re-uses tables and uses the Compost ACE2 library so Decursive uses 0.0 Kib/s when idle or in action.
- Improved CPU usage, it should be minimum.


After BC Decursive may no longer be used while in combat, it will just tell you who you SHOULD de-curse but won't be able to target or cast for you...
It may still work out of combat but it's not certain at this stage.
Blizzard has made big changes in the game play so de-cursing without Decursive may not be as boring as it used to be...



Changes from Decursive 1.9.8.2 to 1.9.8.3

- The "nothing Cleaned" bug some people were experiencing should be fixed.
- There is no more "dead zone" beneath the "Decursive" bar when the live-list is displayed (thanks to Chewster for accurately reporting this bug)
- The Shaman 'Purge' spell should work again.
- New option: when Decursive is asked to clean, it cancels any spell in progress.
  (except for warlocks and channeled spells).
- A new PDF doc is available in the Archive (thanks to Whitney for writing it).

Changes from Decursive 1.9.8.1 to 1.9.8.2

- Now Decursive disables and re-enables the "self auto cast" option automatically, it's no longer a problem.
- Last version I hope!!!

Changes from Decursive 1.9.8 RC2 to 1.9.8.1

- Fix the LUA error happening on BG when a player from another server has a debuff to ignore (such as Mind Vision), other related issues should be fixed.
- The WoW UI option "Auto Self Cast" is causing problems: Decursive is enable to cast on anyone but yourself while this option is active.
  Now Decursive will pop-up a warning if this option is enabled and will propose to disable it.
- Chinese localization has been updated (thanks to Peter Sun).
- French localization revised by The Grinch.

Changes from Decursive 1.9.8 RC1 to 1.9.8

- Fixed the LUA error happening for people who had the 'Print messages in default chat' option checked before upgrading to 1.9.8.
- Fixed the custom message frame display, now it has a font to print something...

Changes from Decursive 1.9.7 to 1.9.8 RC1

************************
====> IMPORTANT CHANGES:
************************

- TREMENDOUS PERFORMANCE IMPROVEMENTS (no more lag) (thanks to Lex for his cache idea)
- You can choose in the options the type of debuff you want to cure (Magic, Poison, Curse, Disease)
- Added cure priority based on debuff type (select the types in the order you want to de-curse).
    NOTE: For now this only works on a per unit basis, Decursive will de-curse a unit in the order you set debuff types.
    For example if you set (Poison, Curse), Decursive will first remove Poison on a unit then or if no poison, it will remove curses on that same unit...
- TOC updated for 1.12

**************************
====> INTERESTING CHANGES:
**************************

- When you have a target selected, whether it's in your raid or not it will appear in Decursive live-list if you can cure it.
- Now you can see how many times a debuff is applied on a player in the live list.
- Affliction type is displayed in the live list.

    ******************
    ====> NEW OPTIONS:
    ******************

- New Option: Now you can decide how the text is displayed in the custom frame (From top or from bottom)
- New Option: "Reverse live-list display"
- New Option: "Show Tooltips in afflicted list"
- New Option: "Hide the live-list"
- New Option: "Tie live-list visibility to DCR window" (if the main DCR window is closed then the live-list is hidden...)
- New command line and key binding: /dcrhide will hide Decursive window leaving the live-list visible
  /dcrshow shows Decursive window
- New command line and key binding: /dcroption will open and close the option window
- Added the global variable Dcr_Saved.Dcr_OutputWindow to change the default output window (use /script Dcr_Saved.Dcr_OutputWindow = ChatFrame2 for example).
- Added /dcrdebug command to enable/disable debug info. (thanks to @derey)

********************
====> MINOR CHANGES:
********************

- Enhanced message display with colors (you can also click character names in default chat window).
- Raid curing order is now truly per group: your group, the groups after yours and the groups before yours.
  Before 1.9.8 BETA 2 it was: your group, the players from groups after yours and the players from groups before yours.
- Fix the delay problem with text message (it was related to a change in 1.11)
- If Decursive fails because the target is invalid, the target is blacklisted.
- Internal code reorganization and sorting.
- Updated .toc for 1.12
- Other minor fixes.




Changes from Decursive 1.9.6 FINAL to 1.9.7

*******************
====> New features:
*******************

- Now when a cast fails, only "out of sight" persons are blacklisted.

- You can hide the buttons by right clicking on "Decursive",
  when the buttons are hidden, the Decursive frame is locked so you can't move it by accident.

- Added the Option "Don't blacklist priority list names" (defaults to off)

- Added Chinese localization (zhTW)

*******************
====> Enhancements:
*******************

- Performance improve.

- Debuffs to not cure (Dreamless Sleep and Mind Vision), will not be displayed nor cured unless the unit is debuffed by other debuffs of the same kind.
  In previous versions, those debuffs were skipped only if the player was in combat.

- Decursive's frame is smaller: the version is displayed in a tooltip.

- No more risk to lose the current target when the "Check for range" option is used.

- Decursive no longer checks for mana or for the state of your curing spell, it is no longer necessary (and may avoid some freezes).

- The display of Decursive message is now more logical, the text begins to be displayed just at the bottom of the "Text Anchor" frame
  (you can move it by clicking on the 'A' in the top-right corner of the option window)

- It is now more clear to see on who Decursive is casting the curring spell.

*****************
====> Bugs fixed:
*****************

- The forgotten debug message Shamans were seeing has been removed.

- The problem priests in shadow form were experiencing has been fixed.

- No more freeze issue when a lot of players are out of range, thanks to
  Alason who gave me a new way to test for range.

- When you left-click on someone in the Decursive live-list Decursive won't try to cure your current target.

- No more 'awaiting for target state' when the cast fails.

********************
====> Small Changes:
********************

- Scanning code has been slightly optimized.

- Out of range players are no longer added to the blacklist (this was useless since Decursive is able to bypass them).

- Removed the option "check for range", Decursive will always check for range.

- The sliders in the option window have been moved to the top to avoid clicking on the last one by accident when closing the window.

- Localization files have been updated.

- French and Chinese localization files are encoded in UTF-8.


Changes from Decursive 1.9.6.5 to Decursive 1.9.7
- Decursive no longer check for mana or for the status of a spell, those were here to avoid to blacklist people for false reason. (LoS is detected since 1.9.6.5)

Changes from Decursive 1.9.6.4 to Decursive 1.9.6.5

- Added the Option "Don't blacklist priority list names" (defaults to off)
- Removed the option "check for range", Decursive will always check for range.
- Now when a cast fails, only "out of sight" persons are blacklisted.
- Out of range players are no longer added to the blacklist (this was useless).
- Probably fix the freeze issue some people were experiencing.
- Updated Chinese localization.

Changes from Decursive 1.9.6.3 to Decursive 1.9.6.4

- Debuffs to not cure (Dreamless Sleep and Mind Vision), will not be displayed nor cured unless the unit is debuffed by other debuffs of the same kind.
  In previous versions, those debuffs were skipped only if the player was in combat.
- Added Chinese localization (zhTW)
- Scanning code has been slightly optimized.
- Now, French and Chinese localization files are in UTF-8

Changes from Decursive 1.9.6.2 to Decursive 1.9.6.3

- When you hide the buttons, the "Decursive" frame is locked so you can't move it by accident.
- When Decursive dispels someone, the text displayed is shorter.
- Small changes in the German localization.


Changes from Decursive 1.9.6.1 to Decursive 1.9.6.2

- Really fixed the bug with priests in shadow form.
- When you left-click on someone in the Decursive live-list Decursive won't try to decurse your current target.
- The display of Decursive message is now more logical, the text begins to be displayed just at the bottom of the "Text Anchor" frame
  (you can move it by clicking on the 'A' in the top-right corner of the option window)
- The sliders in the option window have been moved to the top to avoid clicking on the last one by accident when closing the window.
- It is now more clear to see on who Decursive is casting the curring spell.


Changes from Decursive 1.9.6 FINAL to Decursive 1.9.6.1

This is mainly a bug-fix release:
- The forgotten debug message Shamans were seeing has been removed.
- The problem priests in shadow form were experiencing has been fixed.
- No more freeze issue when a lot of players are out of range, thanks to
  Alason who gave me a new way to test for range.
- No more risk to lose the current target when the "Check for range" option is used.
- No more 'awaiting for target state' when the cast fails.
- Decursive's frame is smaller: the version is displayed in a tooltip.
- You can hide the buttons by right clicking on "Decursive".
- Small changes in the German localization.


Changes from Decursive 1.9.4 to Decursive 1.9.6 Final

Important changes:

- Massive global performance improvement (important code optimization everywhere).
- Re-Added support for warlock pets (Felhunter and Doomguard spells)
- Added an option (on by default) to play a sound when you have someone to cure (Breenild idea).
- Now when you click on a cursed person in Decursive's frame you will keep
  your current target unless you use the right-button of your mouse.
- Now Decursive is able to check if you have enough mana before casting.
- Complete French and German localization (Thanks to Archiv and WalleniuM for the German translations)
  So Decursive is able to ignore and skip correctly certain classes and debuffs in those localizations.
  This also corrects multiple dispels problem for those localizations.
- Changed the licence to GNU GPL (Decursive 1.9.4 is in public domain)

Minor changes:

- Added a reminder at startup about the available options.
- If you don't have one of your curring spell in your action bar, Decursive will display an error message when initializing.
- Out of ranges units are added to the blacklist.
- Options and lists are saved for each characters.
- Options are reset to defaults with this version.
- Improved re-targeting.


Bugs fixed:

- Fixed initialization, 1.9.4 was sometime unable to find a spell to use.
- Mind Control dispel was impossible.
- The "check for range" option couldn't be set/unset and was causing Decursive to get stuck on out of range persons.
- Improved Event handling (faster when zoning)
- When you are in the priority list, your name is no longer displayed twice.
- the "Ignore Stealthed Units" should work as intended (it never worked before)
- Tooltip are displayed correctly.
- Other minor bug fixes.



See below for a detailed change log between my versions of Decursive.

Changes on 1.9.6 FINAL (Release)

- the "Ignore Stealthed Units" should work as intended (it never worked before)
- Performance improve when the option "Check for Abolish before curing" is used
- Decursive can't put the current player to the blacklist anymore.

Changes in 1.9.6 RC4 (Release Candidate)

- Added a mana check, Decursive won't try to cast if there is not enough mana. (not available for warlocks)
- Performance improve when the live list is displayed and contains afflicted people.
- Performance improve when checking for range.
- Added unlocalized strings to loc. (French and German loc. updated, thanks to Archiv for the German translations).
- Options and lists are now saved per character (options reset to default with this version).


Changes in 1.9.6 RC3 (Release Candidate)

- The correction about the MC bug in RC2 introduced a problem with units controlled by priests, changed the fix to a better one :)
- Fixed tooltip display (tooltips were not displayed)


Changes in 1.9.6 RC2 (Release Candidate)

- Probably fixed the MC issue.
- Fixed: When left-clicking on Decursive's frame, the cured unit may not be the one you cliked on.
- Fixed a bug (nil method) if the option "Check for range" was used.
- Fixed the "Check for range" option, depending on the cases checking or unchecking it had no effect on the actual result.
- When the option "Check for range" is enabled, and a unit is out of range, it's added to the blacklist.
- Updated French localisation so Decursive can correctly ignored stealthed unit (if the option is set).
- Updated German localization (problem with accents and a forgotten string, thanks to Archiv).

Changes in 1.9.6 RC1 (Release Candidate):

- Added new translations to French loc to prevent Decursive from dispelling: "Sommeil sans rêve" and "Vision télépathique"
- Updated German localization (thanks to WalleniuM)
- Overall performance improve (no more multiple calls to SetOwner())
  This change may also fix the "Nothing cleaned" bug some people were still experiencing.
- When you are in the priority list, your name is no longer displayed twice.
- Warlocks can correctly switch to the target if they right click on it in Decursive's frame.

Changes in 1.9.6c (Was released in Dev Zone):

- Changed the alert sound to a better one.
- Added a reminder at startup about the available options.
- Fixed a possible issue with cool downs detection.
- Added a possible fix for the reported warlock problem (it's still working with my Warlock and another warlock level 60).
- When you right click on a cursed person in Dcr's window, it's selected even if nothing is done (spell not ready).

Changes in 1.9.6b (Was released in Dev Zone):

- Changed the licence to GNU GPL
- Now when you click on a cursed person in Decursive's frame you will keep
  your current target unless you use the right-button of your mouse.
- Small fixes in French localization.
- Will never check for range if this is a warlock pet spell.
- Added some debug information for people who have problems with the Fellhunter's spell.

Changes in 1.9.5c (Release):

- Added an option (on by default) to play a sound when you have someone to cure (Breenild idea).
- Fixed a bug that could cause the cast of a wrong spell if you learn a new spell.


Changes in 1.9.5b (changes from last Quu's version 1.9.4):

- Added support for warlock pet Felhunter spell 'Devour Magic' (tested on a French version but should work for English and German as well unless the localisation is not correct in Decursive 1.9.4)
- Fixed French localization for Priests and Druids.
- Improved Event handling (faster when zoning)
- Fixed initialization, 1.9.4 was sometime unable to find a spell to use

