• 0

    posted a message on DrDamage - Official Thread
    Quote from Gagorian
    This is due to changes in the buff/debuff API.. It just doesn't detect new buffs being applied or removed. You can force and update after the change by changing an item for example.


    Seems to be working if you change PLAYER_AURAS_CHANGED to UNIT_AURA and check if the target is the player.
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    The Mangle debuff should be in the Aura file. There are at least two other classes that get a good amount of damage bonus from it.
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    Macaroon Support: (add this to DrDamage.lua, ~line 120)

    elseif IsAddOnLoaded("Macaroon") then
            ABglobalbutton = "MacaroonButton"
            ABgetID = function( button )
                if(button.macrospell) then
                    return nil, button.macrospell, button.macrorank
                end
        end
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    Changed for the Rogue module:

    if select(2, UnitClass("player")) ~= "ROGUE" then return end
    local BR
    local GetSpellInfo = GetSpellInfo
    local UnitDebuff = UnitDebuff
    local UnitCreatureType = UnitCreatureType
    local math_min = math.min
    local math_floor = math.floor
    local BI
    if GetLocale() ~= "enUS" then 
        BI = LibStub:GetLibrary("LibBabble-Inventory-3.0"):GetLookupTable()
    else
        BI = {}
        setmetatable(BI,{ __index = function(t,k) return k end })
    end
    
    function DrDamage:PlayerData()
        
        --Special calculation
        --self.Calculation["Mace Specialization"] = function( calculation, value )
        --    if self:GetWeaponType() == BI["One-Handed Maces"] then
        --        calculation.critM = calculation.critM * (1 + 0.01 * value)
        --    end
        --end
        --General
        
        
        self.Calculation["ROGUE"] = function( calculation, ActiveAuras, BuffTalentRanks )
            if BuffTalentRanks["Prey on the Weak"] then
                if(UnitHealth("target") ~= 0) then
                        if(UnitHealth("player") > UnitHealth("target")) then
                            calculation.critM = calculation.critM * ( 1 + BuffTalentRanks["Prey on the Weak"])
                        end
                end
            end
            
            if BuffTalentRanks["Remorseless Attacks"] and ActiveAuras["Remorseless"] then
                calculation.critPerc = calculation.critPerc + BuffTalentRanks["Remorseless Attacks"]
            end
            if BuffTalentRanks["Improved Kidney Shot"] and ActiveAuras["Kidney Shot"] then
                calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Improved Kidney Shot"])
            end
            if BuffTalentRanks["Find Weakness"] and ActiveAuras["Find Weakness"] then
                calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Find Weakness"])
            end
            if BuffTalentRanks["Hunger For Blood"] and ActiveAuras["Hunger For Blood"] then
                calcualtion.dmgM = calculation.dmgM * (0.03 * ActiveAuras["Hunger For Blood"])
            end
    
        end
        self.Calculation["Murder"] = function( calculation, talentValue )
            local targetType = UnitCreatureType("target")
            
            if BR and targetType and BR:HasReverseTranslation( targetType ) then
                targetType = BR:GetReverseTranslation( targetType )
            end
            
            if targetType == "Humanoid"
            or targetType == "Beast"
            or targetType == "Giant"
            or targetType == "Dragonkin" then
                calculation.dmgM = calculation.dmgM * ( 1 + talentValue )
            end
        end
        
        --Spell specific
        
        self.Calculation["Mutilate"] = function( calculation, ActiveAuras )
            if ActiveAuras["Deadly Poison"] or ActiveAuras["Poison"] then
                calculation.dmgM = calculation.dmgM * 1.5
            end
            if ActiveAuras["Shadowstep"] then
                calculation.dmgM = calculation.dmgM * 1.2
            end
        end
        self.Calculation["Envenom"] = function( calculation, ActiveAuras, BuffTalentRanks, action )
            local cp = calculation.Melee_ComboPoints
            if ActiveAuras["Deadly Poison"] and  cp > 0 then
                local bonus = (self:GetSetAmount("Deathmantle") >= 2) and 40 or 0
                calculation.minDam = calculation.minDam + action.PerCombo * math_min(ActiveAuras["Deadly Poison"], cp) + cp * bonus
                calculation.maxDam = calculation.maxDam + action.PerCombo * math_min(ActiveAuras["Deadly Poison"], cp) + cp * bonus
            else
                calculation.zero = true
            end
            if ActiveAuras["Shadowstep"] then
                calculation.dmgM = calculation.dmgM * 1.2
            end
            if BuffTalentRanks["Dirty Deeds"] then
                if(UnitHealth("target") ~= 0) then
                    if(UnitHealthMax("target") ~= 100) then
                        local perc = math_floor((UnitHealth("target") / UnitHealthMax("target")) * 100 )
                        if perc < 35 then
                            calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Dirty Deeds"])
                        end
                    else
                        if(UnitHealth("target") < 35) then
                            calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Dirty Deeds"])
                        end
                    end
                end
            end
        end
        self.Calculation["Sinister Strike"] = function( calculation, ActiveAuras, BuffTalentRanks)
            if ActiveAuras["Shadowstep"] then
                calculation.dmgM = calculation.dmgM * 1.2
            end
            if BuffTalentRanks["Dirty Deeds"] then
                if(UnitHealth("target") ~= 0) then
                    if(UnitHealthMax("target") ~= 100) then
                        local perc = math_floor((UnitHealth("target") / UnitHealthMax("target")) * 100 )
                        if perc < 35 then
                            calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Dirty Deeds"])
                        end
                    else
                        if(UnitHealth("target") < 35) then
                            calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Dirty Deeds"])
                        end
                    end
                end
            end
        end
        self.Calculation["Backstab"] = self.Calculation["Sinister Strike"]
        self.Calculation["Shiv"] = self.Calculation["Sinister Strike"]
        self.Calculation["Gouge"] = self.Calculation["Sinister Strike"]
        self.Calculation["Envenom"] = self.Calculation["Sinister Strike"]
        self.Calculation["Ambush"] = self.Calculation["Sinister Strike"]
        self.Calculation["Rupture"] = self.Calculation["Sinister Strike"]
        self.Calculation["Hemorrhage"] = self.Calculation["Sinister Strike"]
        self.Calculation["Garrote"] = self.Calculation["Sinister Strike"]
        
        --Set bonuses
        self.SetBonuses["Deathmantle"] = { 30144, 30145, 30146, 30147, 30148, }
        self.SetBonuses["Slayer's Armor"] = { 31026, 31027, 31028, 31029, 31030, 34448, 34558, 34575 }
        
        self.SetBonuses["Eviscerate"] = function( calculation)
            local cp = calculation.Melee_ComboPoints
            if cp > 0 and self:GetSetAmount("Deathmantle") >= 2 then
                calculation.minDam = calculation.minDam + cp * 40
                calculation.maxDam = calculation.maxDam + cp * 40
            end
        end
        self.SetBonuses["Backstab"] = function( calculation )
            if self:GetSetAmount("Slayer's Armor") >= 4 then
                calculation.dmgM = calculation.dmgM * 1.06
            end
        end
        self.SetBonuses["Sinister Strike"] = self.SetBonuses["Backstab"]
        self.SetBonuses["Mutilate"] = self.SetBonuses["Backstab"]
        self.SetBonuses["Hemorrhage"] = self.SetBonuses["Backstab"]
        
        
        --Auras
        --[[local dPoison = { 2818, 2819, 11353, 11354, 25349, 26968, 27187 }
        local allPoisons = { 26688, 3409, 5760, 8692, 11398, 13218 }            
        for _, v in ipairs(dPoison) do
            self.TargetAura[GetSpellInfo(v)] = { ModType = "Special", Spell = { GetSpellInfo(32645), GetSpellInfo(1329) }, }
            self.Calculation[GetSpellInfo(v)] = function( _, ActiveAuras, _, index, apps )
                if not index or select(7,UnitDebuff("target",index)) then
                    ActiveAuras["Deadly Poison"] = (ActiveAuras["Deadly Poison"] or 0) + (apps or 5)
                end            
            end
        end
        for _, v in ipairs(allPoisons) do
            self.TargetAura[GetSpellInfo(v)] = { ModType = "Special", Spell = GetSpellInfo(1329) }
            self.Calculation[GetSpellInfo(v)] = function( _, ActiveAuras, _, index )
                if not index or select(7,UnitDebuff("target",index)) then
                    ActiveAuras["Poison"] = true
                end
            end
        end--]]
        
        --Remorseless
        --Find Weakness
        --Shadowstep
        --Kidney Shot
        self.PlayerAura[GetSpellInfo(31234)] = { ModType = "ActiveAura", ActiveAura = "Remorseless" }
        self.PlayerAura[GetSpellInfo(14143)] = { ModType = "ActiveAura", ActiveAura = "Find Weakness" }
        self.PlayerAura[GetSpellInfo(36554)] = { ModType = "ActiveAura", ActiveAura = "Shadowstep" }
        self.TargetAura[GetSpellInfo(408)] = { ModType = "ActiveAura", ActiveAura = "Kidney Shot", SelfCast = true }
        self.PlayerAura[GetSpellInfo(51662)] = { ModType = "ActiveAura", ActiveAura = "Hunger For Blood" }
        self.spellInfo = {
            [GetSpellInfo(1752)] = {
                ["Name"] = "Sinister Strike",
                [0] = { Energy = 45, WeaponDamage = 1 },
                [1] = { 3 },
                [2] = { 6 },
                [3] = { 10 },
                [4] = { 15 },
                [5] = { 22 },
                [6] = { 33 },
                [7] = { 52 },
                [8] = { 68 },
                [9] = { 80 },
                [10] = { 98 },
                [11] = { 150 },
                [12] = { 180 },
            },
            [GetSpellInfo(53)] = {
                ["Name"] = "Backstab",
                [0] = { Energy = 60, WeaponDamage = 1.5, Weapon = "Daggers" },
                [1] = { 15 },
                [2] = { 30 },
                [3] = { 48 },
                [4] = { 69 },
                [5] = { 90 },
                [6] = { 135 },
                [7] = { 165 },
                [8] = { 210 },
                [9] = { 225 },
                [10] = { 255 },
                [11] = { 382.5 },
                [12] = { 465 },
            },
            [GetSpellInfo(2098)] = {
                ["Name"] = "Eviscerate",
                [0] = { Energy = 35, ComboPoints = true, APBonus = {0.03, 0.06, 0.09, 0.12, 0.15 }},
                [1] = { 6, 10, PerCombo = 5 },
                [2] = { 14, 22, PerCombo = 11 },
                [3] = { 25, 39, PerCombo = 19 },
                [4] = { 41, 61, PerCombo = 31 },
                [5] = { 60, 90, PerCombo = 45 },
                [6] = { 93, 137, PerCombo = 71 },
                [7] = { 144, 212, PerCombo = 110 },
                [8] = { 199, 295, PerCombo = 151 },
                [9] = { 224, 332, PerCombo = 170 },
                [10] = { 245, 365, PerCombo = 185 },
                [11] = { 405, 613, PerCombo = 301 },
                [12] = { 497, 751, PerCombo = 370 },
            },
            [GetSpellInfo(8676)] = {
                ["Name"] = "Ambush",
                [0] = { Energy = 60, WeaponDamage = 2.75, Weapon = "Daggers" },
                [1] = { 77 },
                [2] = { 110 },
                [3] = { 137.5 },
                [4] = { 203.5 },
                [5] = { 253 },
                [6] = { 319 },
                [7] = { 368.5 },
                [8] = { 508.75 },
                [9] = { 770 },
                [9] = { 907.5 },
            },
            [GetSpellInfo(1776)] = {
                ["Name"] = "Gouge",
                [0] = { Energy = 45, Cooldown = 10, APBonus = 0.21 },
                [1] = { 1 },
            },    
            [GetSpellInfo(14278)] = {
                ["Name"] = "Ghostly Strike",
                [0] = { Energy = 40, WeaponDamage = 1.25, Cooldown = 20, NoNormalization = true },
                [1] = { 0 },
                ["None"] = { 0 },
            },
            [GetSpellInfo(14251)] = {
                ["Name"] = "Riposte",
                [0] = { Energy = 10, WeaponDamage = 1.5, NoNormalization = true, NoWeapon = true },
                [1] = { 0 },
                ["None"] = { 0 },
            },
            [GetSpellInfo(703)] = {
                ["Name"] = "Garrote",
                [0] = { Energy = 50, NoCrits = true, APBonus = 0.42, eDuration = 18, Ticks = 3, NoWeapon = true },
                [1] = { 120 },
                [2] = { 162 },
                [3] = { 222 },
                [4] = { 270 },
                [5] = { 342 },
                [6] = { 426 },
                [7] = { 510 },
                [8] = { 646 },
                [9] = { 714 },
            },
            [GetSpellInfo(1943)] = {
                ["Name"] = "Rupture",
                [0] = { Energy = 25, NoCrits = true, ComboPoints = true, APBonus = { 0.015*4, 0.024*5, 0.03*6, 0.03428571*7, 0.0375*8 }, ExtraPerCombo = { 0, 0, 1, 3, 6 }, eDuration = 6, DurationPerCombo = 2 },
                [1] = { 40, PerCombo = 20, Extra = 4 },
                [2] = { 60, PerCombo = 30, Extra = 6 },
                [3] = { 88, PerCombo = 42, Extra = 8 },
                [4] = { 128, PerCombo = 57, Extra = 10 },
                [5] = { 176, PerCombo = 79, Extra = 14 },
                [6] = { 272, PerCombo = 108, Extra = 16 },
                [7] = { 324, PerCombo = 136, Extra = 22 },
                [8] = { 488, PerCombo = 197, Extra = 30 },
                [9] = { 580, PerCombo = 235, Extra = 36 },
            },
            [GetSpellInfo(16511)] = {
                ["Name"] = "Hemorrhage",
                [0] = { Energy = 35, WeaponDamage = 1.1 },
                [1] = { 0 },
                [2] = { 0 },
                [3] = { 0 },
                [4] = { 0 },
            },
            [GetSpellInfo(5938)] = {
                ["Name"] = "Shiv",
                [0] = { Energy = 20, WeaponDamage = 1, OffhandAttack = true },
                [1] = { 0 },
            },        
            [GetSpellInfo(32645)] = {
                ["Name"] = "Envenom",
                [0] = { School = "Nature", ComboPoints = true, Energy = 35, APBonus = {0.07, 0.14, 0.21, 0.28, 0.35} },
                [1] = { 118, PerCombo = 118 },
                [2] = { 148, PerCombo = 148 },
                [3] = { 148, PerCombo = 148 }, -- seems to be wrong (data taken from wowhead)
                [4] = { 148, PerCombo = 148 },
            },
            [GetSpellInfo(26679)] = {
                ["Name"] = "Deadly Throw",
                [0] = { School = "Ranged", WeaponDamage = 1, Energy = 35, ComboPoints = true, APBonus = 0.03 },
                [1] = { 164, 180, PerCombo = 105 },
                [2] = { 223, 245, PerCombo = 142 },
                [3] = { 350, 386, PerCombo = 224 },
            },
            [GetSpellInfo(1329)] = {
                ["Name"] = "Mutilate",
                [0] = { Energy = 60, WeaponDamage = 1, DualAttack = true, OffhandBonus = true },
                [1] = { 44 },
                [2] = { 63 },
                [3] = { 88 },
                [4] = { 101 },
                [4] = { 153 },
                [4] = { 181 },
            },
        }
        self.talentInfo = {
            --Assassination:
            --Remorseless Attacks
            --Find Weakness
            --Puncturing Wounds
            --Improved Eviscerate
            --Lethality
            --Murder
            --Vile Poisons
            --Improved Kidney Shot
    
            [GetSpellInfo(14144)] = {    [1] = { Effect = 20, Spells = { "Sinister Strike", "Hemorrhage", "Backstab", "Mutilate", "Ambush", "Ghostly Strike" }, ModType = "Amount", Value = "Remorseless Attacks" }, },
            [GetSpellInfo(31234)] = {    [1] = { Effect = 0.02, Spells = "All" }, },
            [GetSpellInfo(13733)] = {    [1] = { Effect = 10, Spells = "Backstab", ModType = "critPerc" }, 
                            [2] = { Effect = 5, Spells = "Mutilate", ModType = "critPerc" }, },
            [GetSpellInfo(14162)] = {    [1] = { Effect = {0.07, 0.14, 0.20} , Spells = "Eviscerate" }, },
            [GetSpellInfo(14128)] = {    [1] = { Effect = 0.06, Spells = { "Sinister Strike", "Gouge", "Backstab", "Ghostly Strike", "Mutilate", "Shiv", "Hemorrhage" }, ModType = "critM", Multiply = true }, },
            [GetSpellInfo(14158)] = {    [1] = { Effect = 0.02, Spells = "All", ModType = "Murder" }, },
            [GetSpellInfo(16513)] = {    [1] = { Effect = {0.07, 0.14, 0.20}, Spells = "Envenom" }, },
            [GetSpellInfo(14174)] = {     [1] = { Effect = 0.03, Spells = "All", ModType = "Amount", Value = "Improved Kidney Shot" }, },
            [GetSpellInfo(51632)] = {     [1] = { Effect = 0.15, Spells = {"Rupture", "Garrote"} }, },
            --Combat:
            --Aggression
            --Precision
            
            --Dual Wield Specialization
            --Surprise Attacks
            --Blade Twisting
            --Prey on the Weak
            [GetSpellInfo(18427)] = {    [1] = { Effect = 0.03, Spells = { "Sinister Strike", "Eviscerate", "Backstab" } }, },
            [GetSpellInfo(13705)] = {    [1] = { Effect = 1, Spells = "All", ModType = "hitPerc" }, },
            --[GetSpellInfo(13709)] = {    [1] = { Effect = 1, Spells = "All", ModType = "Mace Specialization" }, },
            [GetSpellInfo(13715)] = {     [1] = { Effect = 0.1, Spells = { "Attack", "Mutilate" }, ModType = "offHdmgM", Multiply = true }, NoManual = true, },
            [GetSpellInfo(32601)] = {    [1] = { Effect = 0.1, Spells = { "Sinister Strike", "Backstab", "Shiv", "Gouge", "Hemorrhage" } }, },
            [GetSpellInfo(31124)] = { [1] = { Effect = 0.05, Spells = { "Sinister Strike", "Backstab" }}, },
            [GetSpellInfo(51685)] = { [1] = { ModType = "ActiveAura" }, }, -- "ActiveAura" ignores it and only gives me the rank
            --Subtlety:
            --Improved Ambush
            --Opportunity
            --Serrated Blades
            --Sinister Calling
            --Dirty Deeds
            [GetSpellInfo(14079)] = {    [1] = { Effect = 25, Spells = "Ambush", ModType = "critPerc" }, },
            [GetSpellInfo(14057)] = {    [1] = { Effect = 0.1, Spells = { "Backstab",  "Ambush", "Garrote" } }, }, -- Mutilate is missing because it can be used in front... don't know how to check if someone is behind a unit
            [GetSpellInfo(14171)] = {    [1] = { Effect = 0.1, Spells = "Rupture" }, },
            [GetSpellInfo(31216)] = {    [1] = { Effect = 0.01, Spells = { "Backstab", "Hemorrhage" }, Add = true, }, },
            [GetSpellInfo(14171)] = {    [1] = { Effect = 0.1, Spells = "Rupture" }, },
            [GetSpellInfo(14082)] = { [1] = { Effect = 0.1, Spells = {"Sinister Strike", "Backstab", "Shiv", "Gouge", "Mutilate", "Shiv", "Envenom", "Eviscerate", "Ambush", "Rupture", "Hemorrhage"}, ModType = "ActiveAura" }, },
            -- Master of Subtlety missing
            --[GetSpellInfo(36554)] = {    [1] = { Effect = 0.2, Spells = { "Sinister Strike", "Backstab", "Shiv", "Gouge", "Mutilate", "Shiv", "Envenom", "Eviscerate", "Ambush", "Rupture", "Hemorrhage" }, ModType = "ActiveAura", }, },
            
        }
    end


    This line should be added to the Aura.lua (for Savage Combat)

        if playerMelee or playerHybrid then
            --Shadowform
            Aura[GetSpellInfo(15473)] = { School = { "Ranged", "Physical" }, Value = -0.15 }
            --Holyform
            Aura[GetSpellInfo(46565)] = { School = { "Ranged", "Physical" }, Value = -0.2 }
            --Armor Disruption
            Aura[GetSpellInfo(36482)] = { School = {"Ranged", "Physical" }, Value = 0.05, Apps = 5 }
            --Hemorrhage
            Aura[GetSpellInfo(16511)] = { School = { "Ranged", "Physical" }, Value = { 13, 21, 29, 42, 75 }, Ranks = 5, ModType = "dmgBonus" }
            --if nature or playerClass == "ROGUE" or playerClass == "HUNTER" then --Stormstrike only affects damage dealt by the shaman who cast it, so this belongs in Shaman.lua --DALLYTEMP
                --Stormstrike
                --Aura[GetSpellInfo(17364)] = { School = "Nature", Value = 0.2, }
            --end
            [B]--Savage Combat
            Aura[GetSpellInfo(51682)] = { School = { "Ranged", "Physical" }, Value = 0.01, Ranks = 2 }
        end[/B]
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    Works for me if I change it.
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    Quote from Gagorian »

    Hi there, thanks for the solution. I did change the DrDamage code to support 2.3 Trinity before I saw this though. I used the following function:

    ABgetID = function( button ) return SecureButton_GetModifiedAttribute(button,"action",SecureStateChild_GetEffectiveButton(button)) end


    This seemed to work during my short tests so unless your solution gives any advantages compared to using the blizz API, I can leave it as that.


    The second solution only works for action buttons but not for spell/macro... buttons. So please change it to the first one.
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    It will now save two keys per action, but this also means that I had to change the structure of the saved variables file.

    If you have created profiles or relations between a profile and a target then you have to create them again! (r54489)
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    The thing with the default binding will take some more time but I will try to implement it.

    Changing your bindings depending on your target (as long as you are out of combat) will be my next thing on my to do list.
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    You can only set key bindings out of combat, so the only thing that would be possible are things like going into a special instance or if you put a special piece of gear on or any other thing that happens out of combat.
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    I will add the FuBar text options soon but I don't want to change the behavior with deleting and creating profiles because otherwise you would maybe overwrite something important by mistake.
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    It uses your current key bindings and captures everything you have set. So it should work with every other addon that sets key bindings. (I also use SpellBinder so I'm sure that it works with it ;))
    Posted in: General AddOns
  • 0

    posted a message on KeyProfiler
    KeyProfiler should help you if you need different key bindings for different situations and you don't want to change them by setting every key again and again. You only need to save your key configuration and can then load them later with only one click.

    WikiPage: http://wowace.com/wiki/KeyProfiler
    Download: http://files.wowace.com/KeyProfiler/KeyProfiler.zip
    Posted in: General AddOns
  • 0

    posted a message on NBuffBars - Official Thread
    Please give the user the option to change the mouse bindings ingame.
    Posted in: General AddOns
  • 0

    posted a message on Assessment - Official Thread
    Is it possible to show how much damage was resisted (only partial resisted spells)? (Maybe also as a percentage value compared to the damage you did)
    Posted in: General AddOns
  • 0

    posted a message on DrDamage - Official Thread
    Please add the t6 2 piece bonus (additional sw:p tick)... I'm sure that the Moonkin bonus is also not present atm (additional Moonfire tick)

    Priest:
    http://www.wowhead.com/?item=31064
    Moonkin:
    http://www.wowhead.com/?item=31040
    Posted in: General AddOns
  • To post a comment, please or register a new account.