diff --git a/.pkgmeta b/.pkgmeta index 1908afeb..638ab28a 100644 --- a/.pkgmeta +++ b/.pkgmeta @@ -12,4 +12,5 @@ move-folders: Details/plugins/Details_3DModelsPaths: Details_3DModelsPaths Details/plugins/Details_RaidCheck: Details_RaidCheck Details/plugins/Details_DpsTuning: Details_DpsTuning - Details/plugins/Details_Streamer: Details_Streamer \ No newline at end of file + Details/plugins/Details_Streamer: Details_Streamer + Details/plugins/Details_CalcLeech: Details_CalcLeech \ No newline at end of file diff --git a/boot.lua b/boot.lua index 5103e250..d2f20ea8 100644 --- a/boot.lua +++ b/boot.lua @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> global name declaration - + _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") _detalhes.build_counter = 2500 --it's 2500 for release - _detalhes.userversion = "v4.3.7a" + _detalhes.userversion = "v4.4" _detalhes.realversion = 81 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" Details = _detalhes @@ -21,14 +21,14 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ -|cFFFFFF00v4.3.7a (|cFFFFCC00Mar 14, 2016|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Fixed a rare issue with raid target counters where sometimes got invalid at the logon.\n\n +|cFFFFFF00v4.4 (|cFFFFCC00Mar 28, 2016|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Added Leech Trinket plugin. It creates a custom display called CalcLeech.\n\n --]] -- - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v4.3.7a (|cFFFFCC00Mar 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a rare issue with raid target counters where sometimes got invalid at the logon.\n\n|cFFFFFF00v4.3.7 (|cFFFFCC00Mar 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Streamer (plugin): added Dps and Hps display (disabled by default).\n\n|cFFFFFF00v4.3.7 (|cFFFFCC00Mar 02, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Streamer (plugin): fixed an issue where sometimes the option panel won't open.\n\n|cFFFFFF00v4.3.5 (|cFFFFCC00Feb 29, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added block amount on the Avoidance tab at the Player Detail Window.\n\n|cFFFFFF00v4.3.4 (|cFFFFCC00Feb 28, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Streamer (plugin) now saves the window size inside the profile, this should fix some problems.\n\n|cFFFFFF00-|r Streamer (plugin) added an option for frame strata, default is now Low (from High).\n\n|cFFFFFF00v4.3.3 (|cFFFFCC00Feb 28, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Damage Taken by Spell when not showing total and percentage.\n\n|cFFFFFF00v4.3.2 (|cFFFFCC00Feb 25, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added profile option for Details!: Streamer plugin (close/reopen the game client after updating the addon).\n\n|cFFFFFF00-|r Fixed an issue with Streamer plugin where it auto deactive after a reload or logon.\n\n|cFFFFFF00v4.3.1 (|cFFFFCC00Feb 24, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Auto Switch now checks if there is more than two windows using the same plugin and warn the user about the issue.\n\n|cFFFFFF00v4.3 (|cFFFFCC00Feb 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Details!: Streamer plugin, if you are a streamer or youtuber, enable it at the Plugins Management on Options Panel.\n\n|cFFFFFF00v4.2.10 (|cFFFFCC00Feb 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major fixes on the Weakaura creator tool.\n\n|cFFFFFF00v4.2.9a (|cFFFFCC00Feb 10, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Global profiles got a revamp, now you can select which profile is used on all characters.\n\n|cFFFFFF00-|r You also can overwrite the global profile on any ton by just selecting a profile for that character.\n\n|cFFFFFF00-|r Added two new custom displays: Damage Done on targets marked with skull and Damage Done on targets marked with any other mark.\n\n|cFFFFFF00-|r Bookmark now also supports Plugins.\n\n|cFFFFFF00-|r Warlock's Burning Rush won't be counted when the player is out of combat.\n\n|cFFFFFF00-|r Added a Scale options to Encounter Details plugin window.\n\n|cFFFFFF00-|r Added a report button for targets of targets at the Player Details Window.\n\n|cFFFFFF00-|r Fixed the click to switch segment through segment button: left click changes up, right click changes down, middle mouse switch back to current segment.\n\n|cFFFFFF00-|r Advanced Damage Taken now also makes the damage Taken by tanks always be post-mitigated by shields.\n\n|cFFFFFF00-|r Fixed a gap when setting the bars to 'bottom to top' grow direction.\n\n|cFFFFFF00-|r Fixed an issue with the window size when hiding borders.\n\n|cFFFFFF00v4.1.6 (|cFFFFCC00Jan 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the size of the right margin on tooltips.\n\n|cFFFFFF00v4.1.5 (|cFFFFCC00Jan 10, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the weakauras creator for DBM and BidWigs Timers.\n\n|cFFFFFF00-|r Fix for an issue with dungeon bosses where sometimes Details! throw some error messages.\n\n|cFFFFFF00-|r Fixed the background color of All Displays window (right click the title bar).\n\n|cFFFFFF00-|r Attempt to fix a 'class undefined' bug.\n\n|cFFFFFF00v4.1.4 (|cFFFFCC00Jan 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with the segment plugin for the statusbar.\n\n|cFFFFFF00v4.1.3 (|cFFFFCC00Jan 01, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Small visual improvement on tooltips.\n\n|cFFFFFF00-|r Fixed an issue when closing solo plugins with the red X button.\n\n|cFFFFFF00v4.1.2 (|cFFFFCC00Dec 31, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for item level tracker.\n\n|cFFFFFF00v4.1.1 (|cFFFFCC00Dec 23, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using LibItemUpgradeInfo library to retrive the item level of upgraded items.\n\n|cFFFFFF00v4.1.0 (|cFFFFCC00Dec 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added new skin preset: 'New Gray'.\n\n|cFFFFFF00-|r Added a Dark skin for the Options Panel.\n\n|cFFFFFF00-|r Fixed an issue with the Plugin DPS Tuning when reseting data on Details!.\n\n|cFFFFFF00-|r Removed realm names from player at the Comparison Panel.\n\n|cFFFFFF00v4.0.8 (|cFFFFCC00Dec 13, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Framework and functions update for the next version of the Advanced Death Logs plugin.\n\n|cFFFFFF00v4.0.7 (|cFFFFCC00Dec 07, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some corner border for elvui skins.\n\n|cFFFFFF00-|r /run Details.death_tooltip_width = 500 makes the deathlog tooltip be 500 width.\n\n|cFFFFFF00v4.0.6e (|cFFFFCC00Nov 23, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue where sometimes some actors are duplicated at the end of an encounter.\n\n|cFFFFFF00-|r Fixed bookmark for segments (shift+right click).\n\n|cFFFFFF00-|r Fixed an issue with Chat Tab Embed when embeding only one window.\n\n|cFFFFFF00v4.0.6c (|cFFFFCC00Nov 04, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option for numeral system: Western/East Asian.\n\n|cFFFFFF00v4.0.5c (|cFFFFCC00Oct 24, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option to disable the all-displays window (right click on title bar).\n\n|cFFFFFF00-|r Added an option to suppress segment changes after killing a boss encounter (experimental).\n\n|cFFFFFF00-|r Fixed pet battles auto hide.\n\n|cFFFFFF00-|r Fixed an issue with bar animations starting from the middle of the bar.\n\n|cFFFFFF00-|r Fixed buffs and spell cast start on weakauras creator tool.\n\n|cFFFFFF00v4.0.3a (|cFFFFCC00Set 29, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for an error on Damage Taken By Spell display.\n\n|cFFFFFF00v4.0.3 (|cFFFFCC00Set 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Some improvements on Plugin's icon at the title bar.\n\n|cFFFFFF00v4.0.2 (|cFFFFCC00Set 26, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 'ShielTronic Shield' on HealthPotion & Stone display.\n\n|cFFFFFF00-|r Improvements done on Vanguard Plugin.\n\n|cFFFFFF00-|r Fixed an alignment issue which was happening with few tooltips.\n\n|cFFFFFF00-|r Fixed a problem where sometimes the addon crashes while doing a /reload during raid.\n\n|cFFFFFF00-|r Fixed the creation of auras for weakauras from the Forge (/details forge).\n\n|cFFFFFF00v4.0.1 (|cFFFFCC00Set 21, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an options to use a customized skin file.\n\n|cFFFFFF00-|r Added an options to use a customized bar texture file.\n\n|cFFFFFF00-|r A Package with photoshop files with examples and the skin file for Minimalistic skin are available at WoW Interface.\n\n|cFFFFFF00-|r Added 'API Custom Displays.txt' on Details! folder, this file explain how to create scripts for custom displays.\n\n|cFFFFFF00v4.0h (|cFFFFCC00Set 19, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Created new plugin 'Target Caller' for RBGs, it's available at Curse.com.\n\n|cFFFFFF00-|r Fixed death display color when not using colored by the player class.\n\n|cFFFFFF00-|r Fixed a rare bug where the window for Encounter Details Plugin won't open when clicking on its icon.\n\n|cFFFFFF00-|r Added officer channel to 'Announce Death' feature.\n\n|cFFFFFF00v4.0f (|cFFFFCC00Set 16, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the title bar encounter timer." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v4.4 (|cFFFFCC00Mar 28, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Leech Trinket plugin. It creates a custom display called CalcLeech.\n\n|cFFFFFF00v4.3.7a (|cFFFFCC00Mar 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a rare issue with raid target counters where sometimes got invalid at the logon.\n\n|cFFFFFF00v4.3.7 (|cFFFFCC00Mar 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Streamer (plugin): added Dps and Hps display (disabled by default).\n\n|cFFFFFF00v4.3.7 (|cFFFFCC00Mar 02, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Streamer (plugin): fixed an issue where sometimes the option panel won't open.\n\n|cFFFFFF00v4.3.5 (|cFFFFCC00Feb 29, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added block amount on the Avoidance tab at the Player Detail Window.\n\n|cFFFFFF00v4.3.4 (|cFFFFCC00Feb 28, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Streamer (plugin) now saves the window size inside the profile, this should fix some problems.\n\n|cFFFFFF00-|r Streamer (plugin) added an option for frame strata, default is now Low (from High).\n\n|cFFFFFF00v4.3.3 (|cFFFFCC00Feb 28, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Damage Taken by Spell when not showing total and percentage.\n\n|cFFFFFF00v4.3.2 (|cFFFFCC00Feb 25, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added profile option for Details!: Streamer plugin (close/reopen the game client after updating the addon).\n\n|cFFFFFF00-|r Fixed an issue with Streamer plugin where it auto deactive after a reload or logon.\n\n|cFFFFFF00v4.3.1 (|cFFFFCC00Feb 24, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Auto Switch now checks if there is more than two windows using the same plugin and warn the user about the issue.\n\n|cFFFFFF00v4.3 (|cFFFFCC00Feb 19, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Details!: Streamer plugin, if you are a streamer or youtuber, enable it at the Plugins Management on Options Panel.\n\n|cFFFFFF00v4.2.10 (|cFFFFCC00Feb 11, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major fixes on the Weakaura creator tool.\n\n|cFFFFFF00v4.2.9a (|cFFFFCC00Feb 10, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Global profiles got a revamp, now you can select which profile is used on all characters.\n\n|cFFFFFF00-|r You also can overwrite the global profile on any ton by just selecting a profile for that character.\n\n|cFFFFFF00-|r Added two new custom displays: Damage Done on targets marked with skull and Damage Done on targets marked with any other mark.\n\n|cFFFFFF00-|r Bookmark now also supports Plugins.\n\n|cFFFFFF00-|r Warlock's Burning Rush won't be counted when the player is out of combat.\n\n|cFFFFFF00-|r Added a Scale options to Encounter Details plugin window.\n\n|cFFFFFF00-|r Added a report button for targets of targets at the Player Details Window.\n\n|cFFFFFF00-|r Fixed the click to switch segment through segment button: left click changes up, right click changes down, middle mouse switch back to current segment.\n\n|cFFFFFF00-|r Advanced Damage Taken now also makes the damage Taken by tanks always be post-mitigated by shields.\n\n|cFFFFFF00-|r Fixed a gap when setting the bars to 'bottom to top' grow direction.\n\n|cFFFFFF00-|r Fixed an issue with the window size when hiding borders.\n\n|cFFFFFF00v4.1.6 (|cFFFFCC00Jan 14, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the size of the right margin on tooltips.\n\n|cFFFFFF00v4.1.5 (|cFFFFCC00Jan 10, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the weakauras creator for DBM and BidWigs Timers.\n\n|cFFFFFF00-|r Fix for an issue with dungeon bosses where sometimes Details! throw some error messages.\n\n|cFFFFFF00-|r Fixed the background color of All Displays window (right click the title bar).\n\n|cFFFFFF00-|r Attempt to fix a 'class undefined' bug.\n\n|cFFFFFF00v4.1.4 (|cFFFFCC00Jan 03, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with the segment plugin for the statusbar.\n\n|cFFFFFF00v4.1.3 (|cFFFFCC00Jan 01, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Small visual improvement on tooltips.\n\n|cFFFFFF00-|r Fixed an issue when closing solo plugins with the red X button.\n\n|cFFFFFF00v4.1.2 (|cFFFFCC00Dec 31, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for item level tracker.\n\n|cFFFFFF00v4.1.1 (|cFFFFCC00Dec 23, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Using LibItemUpgradeInfo library to retrive the item level of upgraded items.\n\n|cFFFFFF00v4.1.0 (|cFFFFCC00Dec 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added new skin preset: 'New Gray'.\n\n|cFFFFFF00-|r Added a Dark skin for the Options Panel.\n\n|cFFFFFF00-|r Fixed an issue with the Plugin DPS Tuning when reseting data on Details!.\n\n|cFFFFFF00-|r Removed realm names from player at the Comparison Panel.\n\n|cFFFFFF00v4.0.8 (|cFFFFCC00Dec 13, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Framework and functions update for the next version of the Advanced Death Logs plugin.\n\n|cFFFFFF00v4.0.7 (|cFFFFCC00Dec 07, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some corner border for elvui skins.\n\n|cFFFFFF00-|r /run Details.death_tooltip_width = 500 makes the deathlog tooltip be 500 width.\n\n|cFFFFFF00v4.0.6e (|cFFFFCC00Nov 23, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue where sometimes some actors are duplicated at the end of an encounter.\n\n|cFFFFFF00-|r Fixed bookmark for segments (shift+right click).\n\n|cFFFFFF00-|r Fixed an issue with Chat Tab Embed when embeding only one window.\n\n|cFFFFFF00v4.0.6c (|cFFFFCC00Nov 04, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option for numeral system: Western/East Asian.\n\n|cFFFFFF00v4.0.5c (|cFFFFCC00Oct 24, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option to disable the all-displays window (right click on title bar).\n\n|cFFFFFF00-|r Added an option to suppress segment changes after killing a boss encounter (experimental).\n\n|cFFFFFF00-|r Fixed pet battles auto hide.\n\n|cFFFFFF00-|r Fixed an issue with bar animations starting from the middle of the bar.\n\n|cFFFFFF00-|r Fixed buffs and spell cast start on weakauras creator tool.\n\n|cFFFFFF00v4.0.3a (|cFFFFCC00Set 29, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for an error on Damage Taken By Spell display.\n\n|cFFFFFF00v4.0.3 (|cFFFFCC00Set 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Some improvements on Plugin's icon at the title bar.\n\n|cFFFFFF00v4.0.2 (|cFFFFCC00Set 26, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 'ShielTronic Shield' on HealthPotion & Stone display.\n\n|cFFFFFF00-|r Improvements done on Vanguard Plugin.\n\n|cFFFFFF00-|r Fixed an alignment issue which was happening with few tooltips.\n\n|cFFFFFF00-|r Fixed a problem where sometimes the addon crashes while doing a /reload during raid.\n\n|cFFFFFF00-|r Fixed the creation of auras for weakauras from the Forge (/details forge).\n\n|cFFFFFF00v4.0.1 (|cFFFFCC00Set 21, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an options to use a customized skin file.\n\n|cFFFFFF00-|r Added an options to use a customized bar texture file.\n\n|cFFFFFF00-|r A Package with photoshop files with examples and the skin file for Minimalistic skin are available at WoW Interface.\n\n|cFFFFFF00-|r Added 'API Custom Displays.txt' on Details! folder, this file explain how to create scripts for custom displays.\n\n|cFFFFFF00v4.0h (|cFFFFCC00Set 19, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Created new plugin 'Target Caller' for RBGs, it's available at Curse.com.\n\n|cFFFFFF00-|r Fixed death display color when not using colored by the player class.\n\n|cFFFFFF00-|r Fixed a rare bug where the window for Encounter Details Plugin won't open when clicking on its icon." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/plugins/Details_CalcLeech/Details_CalcLeech.lua b/plugins/Details_CalcLeech/Details_CalcLeech.lua new file mode 100644 index 00000000..add85bca --- /dev/null +++ b/plugins/Details_CalcLeech/Details_CalcLeech.lua @@ -0,0 +1,192 @@ + +do + + local Details = Details + if (not Details) then + print ("Calc Leech cannot be installed: Details! not found.") + return + end + + local _ + + --> minimal details version required to run this plugin + local MINIMAL_DETAILS_VERSION_REQUIRED = 76 + local CLEECH_VERSION = "v1.0" + + --> create a plugin object + local calcLeech = Details:NewPluginObject ("Details_CalcLeech", DETAILSPLUGIN_ALWAYSENABLED) + --> just localizing here the plugin's main frame + local frame = calcLeech.Frame + --> set the description + calcLeech:SetPluginDescription ("Calculates the healing done by the trinket leech.") + --> get the framework object + local framework = calcLeech:GetFramework() + + local CUSTOM_DISPLAY_VERSION = 3 + local CUSTOM_DISPLAY_NAME = "CalcLeech" + + local create_custom_object = function() + local new_object = { + name = CUSTOM_DISPLAY_NAME, + icon = [[Interface\ICONS\spell_shadow_lifedrain02]], + attribute = false, + spellid = false, + author = "Details!", + desc = "Calculates healing done from leech trinket.", + source = false, + target = false, + script_version = CUSTOM_DISPLAY_VERSION, + script = [[ + --get the parameters passed + local Combat, CustomContainer, Instance = ... + --declade the values to return + local total, top, amount = 0, 0, 0 + + if (Combat.PlayerLeechTrinket) then + for playerName, amount in pairs (Combat.PlayerLeechTrinket) do + local healActor = Combat:GetActor (2, playerName) + if (healActor) then + CustomContainer:AddValue (healActor, amount) + end + end + end + + --if not managed inside the loop, get the values of total, top and amount + total, top = CustomContainer:GetTotalAndHighestValue() + amount = CustomContainer:GetNumActors() + + --return the values + return total, top, amount + ]], + tooltip = [[ + + ]], + } + + calcLeech:InstallCustomObject (new_object) + end + + local rosterLeechAmount = {} + + local f = CreateFrame ("frame") + f:SetScript ("OnEvent", function (self, event, time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield) + if (token == "SPELL_HEAL" and spellid == 143924) then --http://www.wowhead.com/spell=143924/leech + + --> The next few lines of code is based on an aura for WeakAuras 2, I couldn't find who is the original author for give the credits. + --> If you are the original author, please contact-me on curseforge so I can add the credits here. + local healed = amount - overhealing + if (healed > 0) then + wipe (rosterLeechAmount) + local total_leech = 0 + + for i = 1, 40 do + local name, _, _, _, _, _, _, source, _, _, id, _, _, _, leech = UnitAura (target_name, i) + if (name and id == 184671) then + rosterLeechAmount [UnitName (source)] = leech + total_leech = total_leech + leech + end + end + + if (total_leech > 0) then + for from, leech_amount in pairs (rosterLeechAmount) do + if not combat.PlayerLeechTrinket [from] then + combat.PlayerLeechTrinket [from] = 0 + end + combat.PlayerLeechTrinket [from] = combat.PlayerLeechTrinket [from] + (healed * (leech_amount / total_leech)) + end + end + end + ------------- + + --elseif (token == "SPELL_AURA_APPLIED") then + + --elseif (token == "SPELL_AURA_REMOVED") then + + --elseif (token == "SPELL_AURA_REFRESH") then + + end + end) + + --> when receiving an event from details, handle it here + local player_has_trinket = function (combat) + + --> check if exists a custom display to show the trinket leech + local customObject = calcLeech:GetCustomObject (CUSTOM_DISPLAY_NAME) + if (customObject) then + if (customObject.script_version < CUSTOM_DISPLAY_VERSION) then + calcLeech:RemoveCustomObject (CUSTOM_DISPLAY_NAME) + create_custom_object() + end + else + create_custom_object() + end + + combat.PlayerLeechTrinket = {} + + f:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") + + end + + local handle_details_event = function (event, ...) + + if (event == "COMBAT_PLAYER_ENTER") then + if (true) then + player_has_trinket (...) + else + local role = UnitGroupRolesAssigned ("player") + if (role == "HEALER") then + local trinket1 = GetInventoryItemLink ("player", 13) + if (trinket1 and trinket1:find ("124234")) then + player_has_trinket (...) + end + local trinket2 = GetInventoryItemLink ("player", 14) + if (trinket2 and trinket2:find ("124234")) then + player_has_trinket (...) + end + end + end + + elseif (event == "COMBAT_PLAYER_LEAVE") then + --> details finished a segment + f:UnregisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") + + elseif (event == "PLUGIN_DISABLED") then + --> plugin has been disabled at the details options panel + + elseif (event == "PLUGIN_ENABLED") then + --> plugin has been enabled at the details options panel + + end + + end + + function calcLeech:OnEvent (_, event, ...) + + if (event == "ADDON_LOADED") then + local AddonName = select (1, ...) + if (AddonName == "Details_CalcLeech") then + + --> every plugin must have a OnDetailsEvent function + function calcLeech:OnDetailsEvent (event, ...) + return handle_details_event (event, ...) + end + + --> Install: install -> if successful installed; saveddata -> a table saved inside details db, used to save small amount of data like configs + local install, saveddata = Details:InstallPlugin ("TOOLBAR", "Leech Trinket", "Interface\\Icons\\Ability_Warrior_BattleShout", calcLeech, "DETAILS_PLUGIN_LEECH_TRINKET", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", CLEECH_VERSION) + if (type (install) == "table" and install.error) then + print (install.error) + end + + --> registering details events we need + Details:RegisterEvent (calcLeech, "COMBAT_PLAYER_ENTER") --when details creates a new segment, not necessary the player entering in combat. + Details:RegisterEvent (calcLeech, "COMBAT_PLAYER_LEAVE") --when details finishs a segment, not necessary the player leaving the combat. + end + end + + end + +end + + + + diff --git a/plugins/Details_CalcLeech/Details_CalcLeech.toc b/plugins/Details_CalcLeech/Details_CalcLeech.toc new file mode 100644 index 00000000..6739582f --- /dev/null +++ b/plugins/Details_CalcLeech/Details_CalcLeech.toc @@ -0,0 +1,6 @@ +## Interface: 60200 +## Title: Details Calc Leech +## Notes: Plugin for Details +## RequiredDeps: Details + +Details_CalcLeech.lua \ No newline at end of file