1.1-release

Details

  • Filename
    LibHealComm-4.0-1.1-release.zip
  • Uploaded by
  • Uploaded
    Sep 27, 2009
  • Size
    38.43 KB
  • Downloads
    264
  • MD5
    d3ce17066240767f794b133e4ae6f00b

Supported WoW Retail Versions

  • 3.2.0

Changelog

tag 1.1-release
2a7dfc0bb85554cd0514ab2e3d60c0e72f4cd6b7
Shadowed <shadowed.wow@gmail.com>
2009-09-27 10:18:26 -0700

Tagging as release 1.1

--------------------

Shadowed:
    - Changed library initializing to be delayed until PLAYER_LOGIN (if not IsLoggedIn()) for all classes to ensure that the playerGUID gets set and no errors are triggered when leaving a group while zoning
    - Bumping version, very good idea!
    - Changed bucketing of tick events to execute immediately after a timer hits 0 instead of waiting two OnUpdates
    - Added an extra check to prevent a possible error with heal bucketing
    - Fixed an obscure bug that could happen if the caster heals the group while a bucket is pending
    - Fixed HealComm_GUIDDisappeared not being called for units that go outside visible range
    - Fixed removeAllRecords not wiping the pending heals table if there are no other pending heals inside the table
    - Fixed an error for pre-3.2 clients about hooking CastSpellByID
    - Fixed heals breaking until the next session if the player leveled up (Also possibly fixes a stack overflow error)
    - Fixed average heals table not being completely wiped when initializing in case a heal was removed between revisions
    - Changed spell name request for average calculates to a rawget so it will give a nil index error rather than a stack overflow
    - Fixed bug in the activeHot tracker (thanks Adirelle)
    - Fixed removeAllRecord calls triggering errors
    - Fixed a stack overflow if "spell" is nil in the averages metatable
    - Added new event HealComm_GUIDDisappeared(event, guid) fires when a GUID goes "missing" either because they have an active hot and are outside visible range, they are a pet that was dismissed with hots on them or they left a group with heals on them
    - Went back and clarified/cleaned up some comments that were old or out of date
    - Fixed an error when PARTY_MEMBERS_CHANGED fired for players who were not a healer class
    - Fixed guidToUnit/guidToGroup being removed before parseHealEnd when sanity checking
    - Fixed index nil table error when a group is disbanded while zoning
    - Fixed GetCasterHealAmount() now returns nil if no healing is incoming
    - Fixed getRcord typo on line #1904
    - Fixed HealComm_HealStopped callbacks when anyone leaves a group with a heal active or when the player leaves a group
    - Pets are now considered to be in their owners groups, heals that are group based (Prayer of Healing/Tranquility) will show up as healing them
    - Reverted not loading LibStub, I blame Ace3 people
    - General code clean up, updated some out of date comments made some code a little less evil and such
    - UNIT_AURA now checks guidToUnit instead of UnitPlayerOrPetInParty/Raid, prevents HealComm_ModifierChanged from firing without a valid unit in the map
    - Fixed players equipped relic not being reset when unequipped
    - Fixed parseDirectHeal and parseChannelHeal using the casters name rather than the GUID + unit in the mapping table
    - Fixed spell rank being set to nil if it equals "", UnitAura returns "" rather than nil for spells with no rank
    - Fixed a few data tables being loaded on new instance rather then persisting
    - Fixed no HealComm_HealStopped event firing if someone leaves a group while they have active heals (Need to test)
    - Fixed averageHeal having multiple metatables being set on it if you had a LoD instance load (Can you do this?)
    - Removed unnecessary function declarations
    - Removed LibStub reference due to CallbackHandler-1.0 loading it already
    - CallbackHandler-1.0 seems to embed LibStub and load it through the XML file, so removing the LibStub embed
    - Quick change to make sure GetRaidDifficulty exists as the Chinese version of WoW is still on 3.1.x it looks like
    - Fixed pending heal ID maps not being updated when a record is removed
    - Fixed issue where an invalid unit would cause a UnitGUID error
    - Fixed stack not being counted once (Only counted on filterData now)
    - Fixed order of row removal, might fix a bug might not
    - Pulled in Adirelle's hot tracking code and redid the tracking in general to provide more accurate HoT tick data even with time drifting
    - PRIEST: Fixed Heal(Rank 1) having a range of 295 - 314 rather than 295 - 341
    - Fixed multiple protected maps being created rather than one per major
    - Fixed TargetLast using too low of a priority causing an invalid GUID to be found
    - Fixed TOC referencing CallbackHandler-1.0.lua instead of xml
    - Fixed pet -> guid map not working
    - Changed to using Adirelle's code for calculating hot/channel ticks
    - Fixed BOMB_HEALS being 0x16 supposed to be 0x10
    - Or not, changed it to remove anything after the 2nd decimal place when calculating seconds left rather than rounding it
    - Fixed tick calculations causing ghost ticks as well as the final tick to be missed for channels and heal over time
    - Fixed an error at line #299 when interrupting a cast as a Shaman
    - Fixed upgrade path issues with both normal upgrade and LoD upgrading
    - Fixed stackable hots causing errors if they are removed early, also fixed so they are handled properly in general
    - Changed to only load relevant class data
    - Changed to only load compression code once
    - Fixed leaked global
    - Many changes
    - No longer using tooltip scanning to get spell data, it's all a static list with metatables to cache the values until the player levels up. This fixes a lot of inaccuracies in heals in general
    - Fixed GUID errors when decompressing if they used the char 61 or 58
    - Fixed issues related to heals ending (Regrowth direct heal ends before Regrowth hot etc)
    - Fixed bucket so it works better and will work for both heal ticks and new hots casted
    - Fixed OVERTIME_HEALS using CASTED_HEALS instead of CHANNEL_HEALS in it's bit.bor
    - Fixed parseHotHeal not identifying hots with multiple healing values
    - Fixed self modifiers (Avenging Wrath, Divine Plea, etc) not working
    - Redid all formulas for all classes due to the moving away from tooltip scanning giving better data
    - DRUID: Added Regrowth HoT and Lifebloom bloom, fixed Glyph of Healing Touch supposed to be additive
    - SHAMAN: Added Earthliving Weapon, Fixed Glyph of Healing Wave,
    - Generally removing debug code to make sure the debug code works is a good thing
    - Changed the GUID debug code to keep a map of the original GUID so if it errors it can print out the GUID it compressed originally
    - Stole LHC30 pattern match for heal numbers to see if it fixes a localization issue
    - Added HealComm:GetCasterHealAmount(guid, bitFlag, time) returns all healing done by the GUID within the passed restrictions
    - Added a pcall to decompressing the GUID that will catch if it fails to decompress it and print out the GUID info
    - On a major zone change (none -> pvp, pvp -> raid, raid -> none, etc) or when leaving a group all pending heals will be wiped and HealComm_HealStopped events fired where needed
    - Added debug code to GUID decompression to track down why it's bugging out sometimes
    - - Fixed a leaked global
    - Fixed another bug in the format sent for comms
    - Added support for bomb heals into the comm (Lifebloom)
    - Fixed bug in the comm code causing hot and hot update comms to not actually work (oops)
    - Changed CHAT_MSG_ADDON to only be registered when grouped regardless of the player being a healer class or not
    - SHAMAN: Fixed Riptide coefficient
    - GetHealAmount and GetOtherHealAmount will now floor any results returned
    - Changed to using SPELL_AURA_* instead of SPELL_CAST_SUCCESS for hot detection, fixes hots not working for people who aren't the player
    - Fixed a bug in the band code for channels and hots if you requested a time that has no heals after it
    - Fixed a bug where HealComm_HealStopped could fire after all the data was reset
    - Fixed hots being listed as casted on the caster not the target
    - - Moved channels back to being stored by spell name as Tranquility uses different spellIDs for the actual name/rank spellID and the heal spellID
    - Moved pending data to be wiped then HealStopped to be called to be safe
    - Fixed bucketing of multi-target heal checks so it actually works
    - Fixed typo in the multi target detection for channels
    - Fixed guid -> time map not being removed when removing all players in the list
    - Fixed hots that a had stack removed not compressing the GUID before sending
    - DRUID: Fixed Tranquility, will correctly be forced onto the players group, and actually obey groups when finding who it's casted on
    - PRIEST: Fixed Prayer of Healing, will correctly obey the group restrictions on who it will land on
    - SHAMAN: Added Riptide (Need to wait until tomorrow to test it)
    - SHAMAN: Moved Earth Shield check to keep a list of Earth Shields instead of only one as the Glyph is bugged for the time being
    - One day, I will remember that I need to bump minor before pushing
Zachary Anker:
    - PRIEST: Added Renew
    - Fixed an error when casting a channel while requesting how much it healed
    - Redid time banding code, if you request the next 3 seconds and a hot ticks at 0.50, 1.50, 2.50, 3.50 it will return 3 ticks instead of 4 or 2
    - Added code to support a hot stack being removed before it ends (Lifebloom being purged)
    - Added check so if a bad GUID is passed that cannot be decompressed it will ignore it
    - DRUID: Added Rejuvenation and Lifebloom in
    - DRUID: Fixed typo in Idol of Health not being listed as a base healing increasing relic - Changed bit fields around a little in case I add absorbs later on (No API change necessary)
    - SHAMAN: Changed Glyph of Lesser Healing Wave to increase Lesser Healing Wave by 20% regardless of Earth Shield caster (From jlam's 3.0 change)
    - Updated GetHealModifier to use the time banding code for hots
Shadowed:
    - Fixed a table index nil error when RAID_ROSTER_UPDATE or PARTY_MEMBERS_CHANGED fired before PLAYER_LOGIN
    - Added more of the base formula code in for hots, although they seem to be a bit of a pain and not want to work easily
    - Math is hard, fixed 10-man Necrotic Poison being listed as 5% healing reduction
    - Pulled code in for triggering comms with casting/hots fading
    - No longer recalculating set bonuses while in combat as you can't change them while in combat
    - Added a check to automatically figure out if a channel or hot is multi target (Added room in the spec to force this either way if necessary)
    - Changed to no longer allow duplicate entries of the same player with the same heal on them from the same caster, as no HoT can be casted on the same person twice (Except Earthliving being dual wielded, but nobody cares about those people)
    - Fixed heal ended removal logic for specific removals
Gnarfoz:
    - typo fix (healComm -> HealComm)
Shadowed:
    - PALADIN: Added Touched by the Light (10/20/30% more healing on crit)
    - Added an interrupted flag to HealStopped that will indicate a heal was interrupted either by a player or a spell that forced the cast to stop (Documentation updated)
    - Moved to watching cast delayed events instead of comm messages as it's faster
    - Should also make sure to define variables, that is generally considered a good idea
    - Fixed CASTED_HEALS constant
    - Fixed typo, GetOtherHealAmount should have been GetOthersHealAmount
    - Added a name or "" when building the modifier database so it won't error if Blizzard removes one
    - Changed to only register CHAT_MSG_ADDON and UNIT_AURA if the player is grouped and they are not a healer
    - Changed event registration for healers to be done when the library finishes initializing
    - Added GetOtherHealAmount(guid, bitFlag[, time]) returns heals using the provided filters for everyone except the player
    - Fixed an error in UNIT_AURA when the player is not a Druid, Shaman, Paladin or Priest
    - Or not, changed to disallow no library packaging
    - Added the no-lib-strip tag so it won't reference the toc files when disembedded
    - Minor version bumped as I tagged this as beta
    - SHAMAN: Fixed Glyph of Healing Wave returning the targets GUID for both the normal heal and the 20% heal
    - Changed GetCasterTable -> GUIDHasHealed(guid)
    - Made GetHealAmount actually work
    - Added a full table wipe for a pending heal table when it has no data left
    - Fixed delayed heals not firing the right GUIDs when it has a delayed heal
    - Fixed channeled heals not working locally
    - Fixed concat spellname error at line #1547-ish
    - Fixed self error around line #1672 when leaving a group
    - Removed the old pending heal files
    - Renamed to LibHealComm-4.0 as per xbeep's announcement: http://forums.wowace.com/showpost.php?p=286152&postcount=394
    - Implemented all of the API calls
    - Removed all debug code for warning if it finds a bad GUID
    - Moved all heal types to use the bitflags
    - Added the basic for hot support so it will support any future hots added
    - Added an expiration check on major zone changes (Need to add a callback for this)
    - Added function calls so the players local data is updated for their own heals
    - Added all of the comm data in, keeping the sending of it commented out for the time being so more testing on GUID detection can be done
    - Changed so that when the player leaves a group the major group-specific data tables are release for GC
    - Fixed compression and pending heals table not being removed when a GUID disappears
    - Fixed Tranquility and Prayer of Healing having the same GUID twice
    - Changed RAID_ROSTER_UPDATE and PARTY_MEMBERS
    - Updated all GetHealTargets calls to compress the GUID first
    - Updated distribution method to be changed based on group and zone type
    - DRUID: Added Tranquility and double checked other formulas accuracy
    - PALADIN: Fixed and double checked other formulas accuracy
    - PRIEST: Fixed Penance formula and double checked other formulas accuracy
    - SHAMAN: Fixed Riptide modifier and double checked other formulas accuracy
    - Added a wipe of the debug map on zone change
    - Added support for /targetlasttarget and /targetlastfriend when casting via cursor
    - Merged a bunch of functions since they're all the same
    - Redid detection code again to account for latency better and be able to be more sturdy and less error prone.
    Added debug and self reporting in, if it finds a GUID mismatch it will report it (throttled at one per 5 minutes). It doesn't do anything yet, this just lets me have people test it and make sure it works well.
    Added support for heals casted through /assist
    - SHAMAN: Added all of the Shaman data
    - PALADIN: Added Divine Favor support
    - PRIEST: Fixed a few more formulas to be more accurate
    - Fixed average heal scanning picking up damage number for multi purpose spells such as Penance or Holy Shock
    - Fixed down ranking formulas so they work
    - Fixed calculations of heals that modify the base healing value
    - Fixed average heal cache not being reset on talent changes
    - Changed GetHealTargets to support heals with differing heal values
    - PRIEST: Added Lesser Heal and Heal calculations
    - Moved general healing calculations to a simple function so I can stop duplicating the same code 20 times
    - Removed the level table as it's unnecessary and annoying
    - PRIEST: Added all Priest spells, everything seems to be accurate but Penance is ~100 healing off
    Added Fetid Healing (-25%) and Guardian Spirit (+40%) as healing modifiers
    Added channeled spell detection
    Added fake grouping when inside a party so Prayer of Healing and such spells pick up the player healing their "group"
    Fixed an error when logging in with a Glyph socket unfilled
    Fixed GUID detection failing when auto self cast is on but a spell forces a targeting icon (Binding Heal)
    Fixed GUID detection when chain casting a spell causing it to be "queued"
    - Fixed calculations on spells with no spell power and downrank
    Fixed heal calculations being ran on spells
    Added guid mapping for group spells like Beacon of Light or Prayer of Healing
    PALADIN: Added Paladin data, Holy Light, Flash of Light and Beacon of Light
    DRUID: Added check to return a spell check if the player has 100% or more Nature spell crit
    - Moved aura changes to using UNIT_AURA while I work out a hybrid system, made it switch Necrotic Poison based on zone type though
    Added the last bit of modifier changing to Druid healing
    Fixed spellID for Avenging Wrath
    Fixed player modifier detection
    Fixed ZONE_CHANGED_NEW_AREA not being called when the library is initialized
    - Rewrote the GUID -> cast detection to actually work consistently
    - Pulled in and tested all Druid data
    Renamed everything inside to PendHeals
    More code changes to adjust to what it needs to do
    - Renamed to LibPendingHeals-1.0
    - - Added more of the Druid stuff, just committing these before I rename
    - Added Divine Plea to self modifiers
    - Fixed Wound Poison so it lists all of it's rank (because it uses a unique buff spellID/spellName for each rank)
    - Cleaned up the stack modifiers so it actually works sanely
    - Updated to package as LibPendingHeals-1.0
    - Fixed GUID detection, need to make sure we can assist an unit cause if we can't we can't heal it.
    Started to pull in spell and talent data, have Druids so far
    Now has an actual upgrade path!
    Moved a few spells to using names as some like Mortal Strike or Wound Poison are the same amount all the time (and this way I don't have to add 50 spellIDs!)
    Added Necrotic Aura, Embrace of the Vampyr, Shadow Spike, Dark Volley, Wounding Strike, Ray of Pain, Shroud of Darkness, Chop, Necrotic Strike to healing modifiers
    Modifier detection works now
    Glyph caching also works now
    Added talent caching
    - Updated .pkgmeta
    - - Still playing around with this, but the basic aura modifier, glyph and spell caching should be working fine. Pretty sure I have the code for identifying units a spell was cast on by GUID is working too