Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
6.2 kB
2
Indexable
Never
-- Не удаляйте этот комментарий! Он является частью кода индикации Health Bar - LWA - Priest
aura_env.region.configGroup = "health_bar"


-- Не удаляйте этот комментарий! Он является частью кода индикации Insanity Bar - LWA - Priest
aura_env.region.configGroup = "insanity_bar"

aura_env.power = {}
aura_env.power.unmodified = false
aura_env.spells = {
    
    --[[PRIEST]]--
    [8092] = { --Mind Blast
        power = 6,
        type = Enum.PowerType.Insanity,
    },
    [15407] = { --Mind Flay
        power = 12,
        type = Enum.PowerType.Insanity,
    },
    [34914] = { --Vampiric Touch
        power = 4,
        type = Enum.PowerType.Insanity,
    },
    [73510] = { --Mind Spike
        power = 4,
        type = Enum.PowerType.Insanity,
    },
    [263346] = { --Dark Void
        power = 15,
        type = Enum.PowerType.Insanity,
    },
    [391109] = { --Dark Ascension
        power = 30,
        type = Enum.PowerType.Insanity,
    },
    
}
aura_env.events = {
    "UNIT_SPELLCAST_START",
    "UNIT_SPELLCAST_STOP" ,
    "UNIT_POWER_FREQUENT",
    "OPTIONS",
    "PLAYER_SPECIALIZATION_CHANGED",
}

--Accepts a table and returns all indices as keypairs with value true
local function Set(list)
    local set = {}
    for _,v in ipairs(list) do set[v] = true end
    return set
end
aura_env.events = Set(aura_env.events)

aura_env.power.PowerTypes = Enum.PowerType.Insanity

aura_env.GetCurrentSpecializationID = function()
    return GetSpecializationInfo(GetSpecialization())
end

aura_env.findAndReplaceOrNew = function(tMain, tNew)
    for k,v in pairs(tNew) do
        tMain[v.id] = v
    end    
    return tMain
end

aura_env.getPowerModifierAmounts = function(spellID)
    local spell = aura_env.spells[spellID]
    if not spell or spell and not spell.mods then return 0,nil end
    local modAmounts = {}
    
    for i,mod in pairs(spell.mods) do
        local modStates = {}
        
        --Check modifier conditions
        for i,condition in pairs(mod.conditions) do
            modStates[i] = false
            
            if condition.type == 1 then --Buff
                local name, _, _, _, _, expirationTime = GetPlayerAuraBySpellID(condition.id)
                local endTimeMS = select(5, UnitCastingInfo("player"))
                if name and expirationTime and endTimeMS 
                and (endTimeMS/1000) <= expirationTime then modStates[i] = true end
                
            elseif condition.type == 2 then --Talent
                if IsPlayerSpell(condition.id) then modStates[i] = true end
            end            
        end
        
        --Check if modifier passes its Any/All requirement
        local requirements = false
        if mod.requirement == 1 then --Any
            for _,modState in pairs(modStates) do
                if modState then requirements = true end
            end     
        elseif mod.requirement == 2 then --All
            requirements = true
            for _,modState in pairs(modStates) do
                if not modState then requirements = false end
            end
        end 
        
        --Calculate modifier amounts
        if requirements then
            local total = mod.modType == 1 and spell.power+mod.modAmount or mod.modType == 2 and spell.power*mod.modAmount or spell.power   
            local change = total-spell.power
            modAmounts[i] = {total=total,change=change}
        end        
    end
    
    --Calculate total power change of all modifiers
    local totalChange = 0
    if #modAmounts > 0 then
        for _,v in pairs(modAmounts) do totalChange = totalChange+v.change end
    end
    
    return totalChange, modAmounts
end

aura_env.isDestruction = function()
    return GetSpecializationInfo(GetSpecialization()) == 267
end

-- Не удаляйте этот комментарий! Он является частью кода индикации Mana Bar (Discipline & Holy) - LWA - Priest
aura_env.region.configGroup = "mana_bar"

-- Не удаляйте этот комментарий! Он является частью кода индикации Mind Blast 1
aura_env.region.configGroup = "mind_blast"

-- Не удаляйте этот комментарий! Он является частью кода индикации Mind Blast 2
aura_env.region.configGroup = "mind_blast"

-- Не удаляйте этот комментарий! Он является частью кода индикации Holy Word: Serenity 2
aura_env.region.configGroup = "holy_word_serenity"
aura_env.region.index = 1
aura_env.region.indexMax = 2

-- Не удаляйте этот комментарий! Он является частью кода индикации Holy Word: Serenity 1
aura_env.region.configGroup = "holy_word_serenity"
aura_env.region.index = 2
aura_env.region.indexMax = 2

-- Не удаляйте этот комментарий! Он является частью кода индикации Holy Word: Sanctify 1
aura_env.region.configGroup = "holy_word_sanctify"
aura_env.region.index = 1
aura_env.region.indexMax = 2

-- Не удаляйте этот комментарий! Он является частью кода индикации Holy Word: Sanctify 2
aura_env.region.configGroup = "holy_word_sanctify"
aura_env.region.index = 2
aura_env.region.indexMax = 2


-- Не удаляйте этот комментарий! Он является частью кода индикации Power Word: Radiance 1
aura_env.region.configGroup = "holy_word_radiance"

-- Не удаляйте этот комментарий! Он является частью кода индикации Power Word: Radiance 2
aura_env.region.configGroup = "holy_word_radiance"



-- Не удаляйте этот комментарий! Он является частью кода индикации Mana Bar (Shadow) - LWA - Priest
aura_env.region.configGroup = "mana_bar_shadow"

-- Не удаляйте этот комментарий! Он является частью кода индикации Cast Bar - LWA - Priest
aura_env.region.configGroup = "cast_bar"