565 lines
21 KiB
Lua
565 lines
21 KiB
Lua
if select(2, UnitClass("player")) ~= "DRUID" then return end
|
|
local damageTable = {}
|
|
local updateInterval = 0.1
|
|
local eventIndex = 0
|
|
local playerGUID
|
|
local timeElapsed = 0
|
|
local damageTP5S = 0
|
|
local idFR = 22842
|
|
local anouncedHealing = 0
|
|
|
|
local lowTransparency = 0.7
|
|
local mediumTransparency = 0.5
|
|
local highTransparency = 0.3
|
|
|
|
settingsFR = {}
|
|
|
|
local frenzyRegenFrame = CreateFrame("Frame", "frenzyRegenFrame", UIParent)
|
|
frenzyRegenFrame:SetSize(100, 26)
|
|
frenzyRegenFrame:ClearAllPoints()
|
|
frenzyRegenFrame:SetPoint("CENTER", UIParent)
|
|
frenzyRegenFrame:SetBackdrop({
|
|
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
|
|
tile = true,
|
|
tileSize = 16,
|
|
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
|
|
edgeSize = 12,
|
|
insets = { left = 3, right = 3, top = 3, bottom = 3 },
|
|
})
|
|
frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4)
|
|
frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1)
|
|
|
|
frenzyRegenFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
|
frenzyRegenFrame:RegisterEvent("ADDON_LOADED")
|
|
frenzyRegenFrame:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED")
|
|
frenzyRegenFrame:RegisterEvent("UPDATE_SHAPESHIFT_FORM")
|
|
frenzyRegenFrame:RegisterEvent("PLAYER_REGEN_DISABLED")
|
|
frenzyRegenFrame:RegisterEvent("PLAYER_REGEN_ENABLED")
|
|
frenzyRegenFrame:RegisterEvent("ARTIFACT_UPDATE")
|
|
frenzyRegenFrame:RegisterEvent("PET_BATTLE_CLOSE")
|
|
frenzyRegenFrame:RegisterEvent("PET_BATTLE_OPENING_START")
|
|
|
|
frenzyRegenFrame:EnableMouse(true)
|
|
frenzyRegenFrame:SetMovable(true)
|
|
frenzyRegenFrame:RegisterForDrag("LeftButton")
|
|
frenzyRegenFrame:SetScript("OnDragStart", frenzyRegenFrame.StartMoving)
|
|
frenzyRegenFrame:SetScript("OnDragStop", function(self)
|
|
self:StopMovingOrSizing()
|
|
settingsFR.XPos = self:GetLeft()
|
|
settingsFR.YPos = self:GetBottom()
|
|
end)
|
|
|
|
frenzyRegenFrame.damageTakenBar = CreateFrame("StatusBar", nil, frenzyRegenFrame)
|
|
frenzyRegenFrame.damageTakenBar:SetPoint("TOPLEFT", 3, -3)
|
|
frenzyRegenFrame.damageTakenBar:SetPoint("TOPRIGHT", -3, -3)
|
|
frenzyRegenFrame.damageTakenBar:SetHeight(20)
|
|
frenzyRegenFrame.damageTakenBar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar")
|
|
frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetHorizTile(false)
|
|
frenzyRegenFrame.damageTakenBar:GetStatusBarTexture():SetVertTile(false)
|
|
frenzyRegenFrame.damageTakenBar:SetMinMaxValues(0, 100)
|
|
frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0)
|
|
|
|
frenzyRegenFrame.damageTakenBar.bg = frenzyRegenFrame.damageTakenBar:CreateTexture(nil, "BACKGROUND")
|
|
frenzyRegenFrame.damageTakenBar.bg:SetTexture("Interface\\TARGETINGFRAME\\UI-StatusBar")
|
|
frenzyRegenFrame.damageTakenBar.bg:SetAllPoints(true)
|
|
frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0)
|
|
|
|
frenzyRegenFrame.damageTakenBar.value = frenzyRegenFrame.damageTakenBar:CreateFontString(nil, "OVERLAY")
|
|
frenzyRegenFrame.damageTakenBar.value:SetPoint("CENTER", frenzyRegenFrame.damageTakenBar, "CENTER", 4, 0)
|
|
frenzyRegenFrame.damageTakenBar.value:SetFont("Fonts\\FRIZQT__.TTF", 16, "OUTLINE")
|
|
frenzyRegenFrame.damageTakenBar.value:SetJustifyH("LEFT")
|
|
frenzyRegenFrame.damageTakenBar.value:SetShadowOffset(1, -1)
|
|
frenzyRegenFrame.damageTakenBar.value:SetTextColor(0, 1, 0)
|
|
|
|
function frenzyRegenFrame:getShortNumber(num)
|
|
if settingsFR.shortNumFlag then
|
|
if not num then
|
|
return 0
|
|
elseif num >= 1e6 then
|
|
return format("%.1fM", num / 1e6)
|
|
elseif num >= 1e3 then
|
|
return format("%.1fK", num / 1e3)
|
|
else
|
|
return format("%d", num)
|
|
end
|
|
else
|
|
return format("%d", num)
|
|
end
|
|
end
|
|
|
|
function frenzyRegenFrame:countHealing()
|
|
maxHP = UnitHealthMax("player")
|
|
|
|
versatilityBonus = GetCombatRatingBonus(CR_VERSATILITY_DAMAGE_DONE)
|
|
+ GetVersatilityBonus(CR_VERSATILITY_DAMAGE_DONE)
|
|
expectedHealing = math.max(maxHP * 0.05, damageTP5S * 0.5) * (1 + versatilityBonus / 100)
|
|
legendaryHealing = 0
|
|
|
|
if IsEquippedItem(137025) and settingsFR.legendaryFlag then -- Skysec's Hold
|
|
legendaryHealing = maxHP * 0.12 * (1 + versatilityBonus / 100)
|
|
end
|
|
|
|
local t18set = { 124246, 124255, 124261, 124267, 124272 }
|
|
local t18items = 0
|
|
for i = 1, 5, 1 do
|
|
if IsEquippedItem(t18set[i]) then t18items = t18items + 1 end
|
|
end
|
|
isT18eq = t18items > 1
|
|
|
|
local idx = 1
|
|
repeat
|
|
local name, _, _, _, _, _, _, _, _, _, spellID = UnitAura("player", idx, nil, "PLAYER|HELPFUL|CANCELABLE")
|
|
if spellID and spellID == 213680 then -- Guardian of Elune
|
|
expectedHealing = expectedHealing * 1.2
|
|
elseif isT18eq and spellID and spellID == 192081 then -- Ironfur id
|
|
expectedHealing = expectedHealing * 1.2
|
|
elseif spellID and spellID == 47788 then -- Guardian Spirit
|
|
expectedHealing = expectedHealing * 1.4
|
|
elseif spellID and spellID == 64844 then -- Divine Hymn
|
|
expectedHealing = expectedHealing * 1.1
|
|
elseif spellID and spellID == 116849 then -- Life Cocoon
|
|
expectedHealing = expectedHealing * 1.5
|
|
elseif spellID and spellID == 199368 then -- Legacy of the Ravencrest
|
|
expectedHealing = expectedHealing * 4
|
|
end
|
|
idx = idx + 1
|
|
until name == nil
|
|
|
|
if IsEquippedItem(128821) then expectedHealing = expectedHealing * (1 + settingsFR.artifactBonus) end
|
|
|
|
ratioHP = (expectedHealing + legendaryHealing) / maxHP * 100
|
|
anouncedHealing = format("Self healing %d%% over 3 sec", ratioHP)
|
|
|
|
charges, maxcharges = GetSpellCharges(idFR)
|
|
if settingsFR.statusTypeFlag == 1 then
|
|
frenzyRegenFrame.damageTakenBar:SetValue(charges * 100 / maxcharges)
|
|
else
|
|
frenzyRegenFrame.damageTakenBar:SetValue(ratioHP)
|
|
end
|
|
|
|
if settingsFR.displayFlag == 0 then
|
|
frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing + legendaryHealing))
|
|
anouncedHealing = format("Self healing %s over 3 sec", self:getShortNumber(expectedHealing + legendaryHealing))
|
|
elseif settingsFR.displayFlag == 1 then
|
|
frenzyRegenFrame.damageTakenBar.value:SetText(self:getShortNumber(expectedHealing / 6))
|
|
else
|
|
if settingsFR.displayFlag == 2 then frenzyRegenFrame.damageTakenBar.value:SetText(format("%d%%", ratioHP)) end
|
|
end
|
|
|
|
if settingsFR.showValueOnlyFlag then
|
|
transparency = 0
|
|
frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0)
|
|
frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 0)
|
|
else
|
|
transparency = settingsFR.transparencyFlag
|
|
frenzyRegenFrame:SetBackdropColor(0, 0, 0, 0.4)
|
|
frenzyRegenFrame:SetBackdropBorderColor(0, 0, 0, 1)
|
|
end
|
|
start = GetSpellCooldown(idFR)
|
|
if start ~= 0 and settingsFR.greyOutFlag then
|
|
frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.212, 0.212, 0.212, transparency)
|
|
frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0.1, 0.1, 0.1, transparency)
|
|
frenzyRegenFrame.damageTakenBar.value:SetTextColor(0.5, 0.5, 0.5, settingsFR.transparencyFlag)
|
|
else
|
|
frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0, 0.65, 0, transparency / 1.5)
|
|
if charges < maxcharges and settingsFR.statusTypeFlag == 1 then
|
|
frenzyRegenFrame.damageTakenBar:SetStatusBarColor(0.6, 0.65, 0, transparency / 1.5)
|
|
end
|
|
frenzyRegenFrame.damageTakenBar.bg:SetVertexColor(0, 0.35, 0, transparency)
|
|
frenzyRegenFrame.damageTakenBar.value:SetTextColor(0, 1, 0, settingsFR.transparencyFlag)
|
|
end
|
|
end
|
|
|
|
function frenzyRegenFrame:updateVisibility()
|
|
if IsPlayerSpell(idFR) then
|
|
self:Show()
|
|
else
|
|
self:Hide()
|
|
return
|
|
end
|
|
if C_PetBattles.IsInBattle() then
|
|
self:Hide()
|
|
return
|
|
else
|
|
self:Show()
|
|
end
|
|
if settingsFR.hideOutOfBearFlag then
|
|
if GetShapeshiftFormID() == 5 then
|
|
self:Show()
|
|
else
|
|
self:Hide()
|
|
return
|
|
end
|
|
end
|
|
if settingsFR.hideOutOfCombatFlag then
|
|
if UnitAffectingCombat("player") then
|
|
self:Show()
|
|
else
|
|
self:Hide()
|
|
end
|
|
end
|
|
if settingsFR.ignoreMouseFlag and UnitAffectingCombat("player") then
|
|
frenzyRegenFrame:EnableMouse(false)
|
|
else
|
|
frenzyRegenFrame:EnableMouse(true)
|
|
end
|
|
end
|
|
|
|
function frenzyRegenFrame:initFlags()
|
|
if settingsFR.displayFlag == nil then settingsFR.displayFlag = 0 end
|
|
if settingsFR.greyOutFlag == nil then settingsFR.greyOutFlag = true end
|
|
if settingsFR.movableFlag == nil then settingsFR.movableFlag = true end
|
|
if settingsFR.shortNumFlag == nil then settingsFR.shortNumFlag = true end
|
|
if settingsFR.hideOutOfCombatFlag == nil then settingsFR.hideOutOfCombatFlag = false end
|
|
if settingsFR.hideOutOfBearFlag == nil then settingsFR.hideOutOfBearFlag = false end
|
|
if settingsFR.legendaryFlag == nil then settingsFR.legendaryFlag = false end
|
|
if settingsFR.artifactBonus == nil then settingsFR.artifactBonus = 0 end
|
|
if settingsFR.transparencyFlag == nil then settingsFR.transparencyFlag = 1 end
|
|
if settingsFR.ignoreMouseFlag == nil then settingsFR.ignoreMouseFlag = false end
|
|
if settingsFR.announceFlag == nil then settingsFR.announceFlag = false end
|
|
if settingsFR.announceChannel == nil then settingsFR.announceChannel = "SAY" end
|
|
if settingsFR.statusTypeFlag == nil then settingsFR.statusTypeFlag = 0 end
|
|
if settingsFR.showValueOnlyFlag == nil then settingsFR.showValueOnlyFlag = false end
|
|
end
|
|
|
|
function frenzyRegenFrame:updateArtifactBonus()
|
|
if IsEquippedItem(128821) then
|
|
local powers = C_ArtifactUI.GetPowers()
|
|
if powers ~= nil then
|
|
for i = 1, #powers do
|
|
local id, _, rank = C_ArtifactUI.GetPowerInfo(powers[i])
|
|
if id == 200400 then -- Wildflesh id
|
|
settingsFR.artifactBonus = rank * 0.05
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
frenzyRegenFrame:SetScript("OnEvent", function(self, event, ...)
|
|
if event == "ADDON_LOADED" then
|
|
playerGUID = UnitGUID("player")
|
|
if settingsFR.XPos then
|
|
frenzyRegenFrame:ClearAllPoints()
|
|
frenzyRegenFrame:SetPoint("BOTTOMLEFT", settingsFR.XPos, settingsFR.YPos)
|
|
end
|
|
frenzyRegenFrame:initFlags()
|
|
if not settingsFR.movableFlag then frenzyRegenFrame:SetMovable(false) end
|
|
frenzyRegenFrame:updateVisibility()
|
|
elseif self:IsShown() and event == "COMBAT_LOG_EVENT_UNFILTERED" then
|
|
local _, eventType, _, sourceGUID, _, _, _, destGUID = ...
|
|
if settingsFR.announceFlag and sourceGUID == playerGUID and eventType == "SPELL_CAST_SUCCESS" then
|
|
local spellId = select(12, ...)
|
|
if spellId == idFR then -- Frenzied Regeneration
|
|
SendChatMessage(anouncedHealing, settingsFR.announceChannel, "Common")
|
|
end
|
|
end
|
|
if destGUID == playerGUID then
|
|
eventIndex = eventIndex + 1
|
|
if eventType == "SWING_DAMAGE" then
|
|
local _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ...
|
|
if absorbed == nil then absorbed = 0 end
|
|
damageTable[eventIndex] = { time(), amount + absorbed }
|
|
elseif
|
|
eventType == "SPELL_DAMAGE"
|
|
or eventType == "SPELL_PERIODIC_DAMAGE"
|
|
or eventType == "RANGE_DAMAGE"
|
|
then
|
|
local _, _, _, _, _, _, _, _, _, _, _, _, _, _, amount, _, _, _, _, absorbed = ...
|
|
if absorbed == nil then absorbed = 0 end
|
|
damageTable[eventIndex] = { time(), amount + absorbed }
|
|
end
|
|
end
|
|
elseif
|
|
event == "ACTIVE_TALENT_GROUP_CHANGED"
|
|
or event == "UPDATE_SHAPESHIFT_FORM"
|
|
or event == "PLAYER_REGEN_DISABLED"
|
|
or event == "PLAYER_REGEN_ENABLED"
|
|
or event == "PET_BATTLE_CLOSE"
|
|
or event == "PET_BATTLE_OPENING_START"
|
|
then
|
|
frenzyRegenFrame:updateVisibility()
|
|
elseif event == "ARTIFACT_UPDATE" then
|
|
frenzyRegenFrame:updateArtifactBonus()
|
|
end
|
|
end)
|
|
|
|
frenzyRegenFrame:SetScript("OnUpdate", function(self, elapsed)
|
|
timeElapsed = timeElapsed + elapsed
|
|
if timeElapsed >= updateInterval then
|
|
local t = time() - 5
|
|
for k, v in pairs(damageTable) do
|
|
if v[1] <= t then
|
|
damageTable[k] = nil
|
|
else
|
|
damageTP5S = damageTP5S + v[2]
|
|
end
|
|
end
|
|
self:countHealing()
|
|
damageTP5S = 0
|
|
timeElapsed = 0
|
|
end
|
|
end)
|
|
|
|
local dropDown = CreateFrame("Frame", "FRContextMenu", frenzyRegenFrame, "UIDropDownMenuTemplate")
|
|
UIDropDownMenu_Initialize(dropDown, function(self, level, menuList)
|
|
local info = UIDropDownMenu_CreateInfo()
|
|
if (level or 1) == 1 then
|
|
info.text = " Frame settings"
|
|
info.notCheckable = true
|
|
info.hasArrow = true
|
|
info.value = "position_submenu"
|
|
UIDropDownMenu_AddButton(info)
|
|
info.text = " Transparency"
|
|
info.value = "position_submenu2"
|
|
UIDropDownMenu_AddButton(info)
|
|
info.text = " Status bar shows..."
|
|
info.value = "position_submenu3"
|
|
UIDropDownMenu_AddButton(info)
|
|
info.text = " Announce healing..."
|
|
info.value = "position_submenu4"
|
|
UIDropDownMenu_AddButton(info)
|
|
info.hasArrow = false
|
|
info.isTitle = true
|
|
info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent"
|
|
info.tSizeX = 0
|
|
info.tSizeY = 8
|
|
info.text = ""
|
|
info.iconOnly = true
|
|
info.iconInfo = { tFitDropDownSizeX = true }
|
|
UIDropDownMenu_AddButton(info)
|
|
info = UIDropDownMenu_CreateInfo()
|
|
info.notCheckable = false
|
|
info.hasArrow = false
|
|
info.text = "Show total heal"
|
|
info.func = function() settingsFR.displayFlag = 0 end
|
|
info.checked = function() return settingsFR.displayFlag == 0 end
|
|
UIDropDownMenu_AddButton(info)
|
|
info.text = "Show heal per tick"
|
|
info.func = function() settingsFR.displayFlag = 1 end
|
|
info.checked = function() return settingsFR.displayFlag == 1 end
|
|
UIDropDownMenu_AddButton(info)
|
|
info.text = "Show % of HP"
|
|
info.func = function() settingsFR.displayFlag = 2 end
|
|
info.checked = function() return settingsFR.displayFlag == 2 end
|
|
UIDropDownMenu_AddButton(info)
|
|
elseif level == 2 then
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.text = "Block position"
|
|
info.func = function()
|
|
frenzyRegenFrame:SetMovable(not frenzyRegenFrame:IsMovable())
|
|
settingsFR.movableFlag = frenzyRegenFrame:IsMovable()
|
|
end
|
|
info.checked = function() return not frenzyRegenFrame:IsMovable() end
|
|
info.isNotRadio = true
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.text = "Ignore clicks in combat"
|
|
info.func = function()
|
|
settingsFR.ignoreMouseFlag = not settingsFR.ignoreMouseFlag
|
|
frenzyRegenFrame:updateVisibility()
|
|
end
|
|
info.checked = function() return settingsFR.ignoreMouseFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.hasArrow = false
|
|
info.isTitle = true
|
|
info.notCheckable = true
|
|
info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent"
|
|
info.tSizeX = 0
|
|
info.tSizeY = 8
|
|
info.text = ""
|
|
info.iconOnly = true
|
|
info.iconInfo = { tFitDropDownSizeX = true }
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info = UIDropDownMenu_CreateInfo()
|
|
info.notCheckable = false
|
|
info.isNotRadio = true
|
|
info.text = "Grey-out if FR's on cd"
|
|
info.func = function() settingsFR.greyOutFlag = not settingsFR.greyOutFlag end
|
|
info.checked = function() return settingsFR.greyOutFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.text = "Short numbers format"
|
|
info.func = function() settingsFR.shortNumFlag = not settingsFR.shortNumFlag end
|
|
info.checked = function() return settingsFR.shortNumFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.hasArrow = false
|
|
info.isTitle = true
|
|
info.notCheckable = true
|
|
info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent"
|
|
info.tSizeX = 0
|
|
info.tSizeY = 8
|
|
info.text = ""
|
|
info.iconOnly = true
|
|
info.iconInfo = { tFitDropDownSizeX = true }
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info = UIDropDownMenu_CreateInfo()
|
|
info.notCheckable = false
|
|
info.isNotRadio = true
|
|
info.text = "Include Skysec's Hold"
|
|
info.func = function() settingsFR.legendaryFlag = not settingsFR.legendaryFlag end
|
|
info.checked = function() return settingsFR.legendaryFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.hasArrow = false
|
|
info.isTitle = true
|
|
info.notCheckable = true
|
|
info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent"
|
|
info.tSizeX = 0
|
|
info.tSizeY = 8
|
|
info.text = ""
|
|
info.iconOnly = true
|
|
info.iconInfo = { tFitDropDownSizeX = true }
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info = UIDropDownMenu_CreateInfo()
|
|
info.notCheckable = false
|
|
info.text = "Hide when not in Bear form"
|
|
info.func = function()
|
|
settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag
|
|
frenzyRegenFrame:updateVisibility()
|
|
print("To turn off this setting type '/frshow bear'")
|
|
end
|
|
info.checked = function() return settingsFR.hideOutOfBearFlag end
|
|
info.isNotRadio = true
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu" then
|
|
info.text = "Hide when out of combat"
|
|
info.func = function()
|
|
settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag
|
|
frenzyRegenFrame:updateVisibility()
|
|
print("To turn off this setting type '/frshow combat'")
|
|
end
|
|
info.checked = function() return settingsFR.hideOutOfCombatFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info.text = "Show value only"
|
|
info.func = function() settingsFR.showValueOnlyFlag = not settingsFR.showValueOnlyFlag end
|
|
info.checked = function() return settingsFR.showValueOnlyFlag end
|
|
info.isNotRadio = true
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info.hasArrow = false
|
|
info.isTitle = true
|
|
info.notCheckable = true
|
|
info.icon = "Interface\\Common\\UI-TooltipDivider-Transparent"
|
|
info.tSizeX = 0
|
|
info.tSizeY = 8
|
|
info.text = ""
|
|
info.iconOnly = true
|
|
info.iconInfo = { tFitDropDownSizeX = true }
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info = UIDropDownMenu_CreateInfo()
|
|
info.text = "OFF"
|
|
info.notCheckable = false
|
|
info.func = function() settingsFR.transparencyFlag = 1 end
|
|
info.checked = function() return settingsFR.transparencyFlag == 1 end
|
|
info.isNotRadio = false
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info.text = "Low"
|
|
info.func = function() settingsFR.transparencyFlag = lowTransparency end
|
|
info.checked = function() return settingsFR.transparencyFlag == lowTransparency end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info.text = "Medium"
|
|
info.func = function() settingsFR.transparencyFlag = mediumTransparency end
|
|
info.checked = function() return settingsFR.transparencyFlag == mediumTransparency end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu2" then
|
|
info.text = "High"
|
|
info.func = function() settingsFR.transparencyFlag = highTransparency end
|
|
info.checked = function() return settingsFR.transparencyFlag == highTransparency end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then
|
|
info.text = "% of HP"
|
|
info.func = function() settingsFR.statusTypeFlag = 0 end
|
|
info.checked = function() return settingsFR.statusTypeFlag == 0 end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu3" then
|
|
info.text = "Number of charges"
|
|
info.func = function() settingsFR.statusTypeFlag = 1 end
|
|
info.checked = function() return settingsFR.statusTypeFlag == 1 end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then
|
|
info.text = "OFF"
|
|
info.func = function() settingsFR.announceFlag = false end
|
|
info.checked = function() return not settingsFR.announceFlag end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then
|
|
info.text = "/Say"
|
|
info.func = function()
|
|
settingsFR.announceChannel = "SAY"
|
|
settingsFR.announceFlag = true
|
|
end
|
|
info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "SAY" end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then
|
|
info.text = "/Yell"
|
|
info.func = function()
|
|
settingsFR.announceChannel = "YELL"
|
|
settingsFR.announceFlag = true
|
|
end
|
|
info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "YELL" end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then
|
|
info.text = "/Party"
|
|
info.func = function()
|
|
settingsFR.announceChannel = "PARTY"
|
|
settingsFR.announceFlag = true
|
|
end
|
|
info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "PARTY" end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
if UIDROPDOWNMENU_MENU_VALUE == "position_submenu4" then
|
|
info.text = "/Raid"
|
|
info.func = function()
|
|
settingsFR.announceChannel = "RAID"
|
|
settingsFR.announceFlag = true
|
|
end
|
|
info.checked = function() return settingsFR.announceFlag and settingsFR.announceChannel == "RAID" end
|
|
UIDropDownMenu_AddButton(info, level)
|
|
end
|
|
end
|
|
end)
|
|
|
|
frenzyRegenFrame:SetScript("OnMouseDown", function(self, button)
|
|
if button == "RightButton" then ToggleDropDownMenu(1, nil, dropDown, "cursor", 3, -3) end
|
|
end)
|
|
|
|
SLASH_FRENZYREGEN1 = "/frshow"
|
|
function SlashCmdList.FRENZYREGEN(msg, editbox)
|
|
if msg == "bear" then
|
|
settingsFR.hideOutOfBearFlag = not settingsFR.hideOutOfBearFlag
|
|
elseif msg == "combat" then
|
|
settingsFR.hideOutOfCombatFlag = not settingsFR.hideOutOfCombatFlag
|
|
end
|
|
frenzyRegenFrame:updateVisibility()
|
|
end
|