mirror of
https://github.com/brues-code/pfUI.git
synced 2026-10-10 07:30:01 +00:00
add initial version of target castbar
This commit is contained in:
+129
-3
@@ -191,13 +191,139 @@ pfUI:RegisterModule("castbar", function ()
|
||||
end
|
||||
|
||||
if pfUI.uf.target then
|
||||
--[[ TODO
|
||||
pfUI.castbar.target = CreateFrame("Frame",nil, pfUI.uf.target)
|
||||
|
||||
pfUI.castbar.target = CreateFrame("Frame")
|
||||
pfUI.castbar.target:SetBackdrop(pfUI.backdrop)
|
||||
pfUI.castbar.target:SetHeight(pfUI_config.global.font_size * 2)
|
||||
pfUI.castbar.target:SetPoint("TOPRIGHT",pfUI.uf.target,"BOTTOMRIGHT",0,-1)
|
||||
pfUI.castbar.target:SetPoint("TOPLEFT",pfUI.uf.target,"BOTTOMLEFT",0,-1)
|
||||
|
||||
-- statusbar
|
||||
pfUI.castbar.target.bar = CreateFrame("StatusBar", nil, pfUI.castbar.target)
|
||||
]]--
|
||||
pfUI.castbar.target.bar:SetStatusBarTexture("Interface\\AddOns\\pfUI\\img\\bar")
|
||||
pfUI.castbar.target.bar:ClearAllPoints()
|
||||
pfUI.castbar.target.bar:SetPoint("TOPLEFT", pfUI.castbar.target, "TOPLEFT", 3, -3)
|
||||
pfUI.castbar.target.bar:SetPoint("BOTTOMRIGHT", pfUI.castbar.target, "BOTTOMRIGHT", -3, 3)
|
||||
pfUI.castbar.target.bar:SetMinMaxValues(0, 100)
|
||||
pfUI.castbar.target.bar:SetValue(20)
|
||||
pfUI.castbar.target.bar:SetStatusBarColor(.7,.7,.9,.8)
|
||||
|
||||
-- text left
|
||||
pfUI.castbar.target.bar.left = pfUI.castbar.target.bar:CreateFontString("Status", "DIALOG", "GameFontNormal")
|
||||
pfUI.castbar.target.bar.left:ClearAllPoints()
|
||||
pfUI.castbar.target.bar.left:SetPoint("TOPLEFT", pfUI.castbar.target.bar, "TOPLEFT", 3, 0)
|
||||
pfUI.castbar.target.bar.left:SetPoint("BOTTOMRIGHT", pfUI.castbar.target.bar, "BOTTOMRIGHT", -3, 0)
|
||||
pfUI.castbar.target.bar.left:SetNonSpaceWrap(false)
|
||||
pfUI.castbar.target.bar.left:SetFontObject(GameFontWhite)
|
||||
pfUI.castbar.target.bar.left:SetTextColor(1,1,1,1)
|
||||
pfUI.castbar.target.bar.left:SetFont("Interface\\AddOns\\pfUI\\fonts\\arial.ttf", pfUI_config.global.font_size, "OUTLINE")
|
||||
pfUI.castbar.target.bar.left:SetText("left")
|
||||
pfUI.castbar.target.bar.left:SetJustifyH("left")
|
||||
|
||||
-- text right
|
||||
pfUI.castbar.target.bar.right = pfUI.castbar.target.bar:CreateFontString("Status", "DIALOG", "GameFontNormal")
|
||||
pfUI.castbar.target.bar.right:ClearAllPoints()
|
||||
pfUI.castbar.target.bar.right:SetPoint("TOPLEFT", pfUI.castbar.target.bar, "TOPLEFT", 3, 0)
|
||||
pfUI.castbar.target.bar.right:SetPoint("BOTTOMRIGHT", pfUI.castbar.target.bar, "BOTTOMRIGHT", -3, 0)
|
||||
pfUI.castbar.target.bar.right:SetNonSpaceWrap(false)
|
||||
pfUI.castbar.target.bar.right:SetFontObject(GameFontWhite)
|
||||
pfUI.castbar.target.bar.right:SetTextColor(1,1,1,1)
|
||||
pfUI.castbar.target.bar.right:SetFont("Interface\\AddOns\\pfUI\\fonts\\arial.ttf", pfUI_config.global.font_size, "OUTLINE")
|
||||
pfUI.castbar.target.bar.right:SetText("right")
|
||||
pfUI.castbar.target.bar.right:SetJustifyH("right")
|
||||
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_SELF_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PARTY_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PARTY_BUFF");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS");
|
||||
pfUI.castbar.target:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE");
|
||||
pfUI.castbar.target:RegisterEvent("PLAYER_TARGET_CHANGED")
|
||||
|
||||
pfUI.castbar.target.casterDB = {}
|
||||
|
||||
pfUI.castbar.target:SetScript("OnEvent", function()
|
||||
if (arg1 ~= nil) then
|
||||
for mob, spell in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['SPELL_CAST']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "casts")
|
||||
return
|
||||
end
|
||||
for mob, spell in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['SPELL_PERFORM']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "performs")
|
||||
return
|
||||
end
|
||||
for mob, spell in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['SPELL_GAINS']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "gains")
|
||||
return
|
||||
end
|
||||
for mob, spell in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['SPELL_AFFLICTED']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "afflicted")
|
||||
return
|
||||
end
|
||||
for spell, mob in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['SPELL_HIT']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "hit")
|
||||
return
|
||||
end
|
||||
for spell, mob in string.gfind(arg1, pfLocaleSpellEvents["deDE"]['OTHER_SPELL_HIT']) do
|
||||
pfUI.castbar.target:Action(mob, spell, "hit")
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if UnitExists("target") and pfUI.castbar.target.casterDB[UnitName("target")] then
|
||||
local starttime = pfUI.castbar.target.casterDB[UnitName("target")].starttime or 0
|
||||
local casttime = pfUI.castbar.target.casterDB[UnitName("target")].casttime or 0
|
||||
if starttime + casttime > GetTime() then
|
||||
pfUI.castbar.target:Show()
|
||||
else
|
||||
pfUI.castbar.target.casterDB[UnitName("target")] = nil
|
||||
pfUI.castbar.target:Hide()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
pfUI.castbar.target.bar:SetScript("OnUpdate", function()
|
||||
if UnitExists("target") and pfUI.castbar.target.casterDB[UnitName("target")] then
|
||||
local spellname = pfUI.castbar.target.casterDB[UnitName("target")].cast or 0
|
||||
local starttime = pfUI.castbar.target.casterDB[UnitName("target")].starttime or 0
|
||||
local casttime = pfUI.castbar.target.casterDB[UnitName("target")].casttime or 0
|
||||
|
||||
if starttime + casttime > GetTime() then
|
||||
pfUI.castbar.target.bar:SetMinMaxValues(0, casttime)
|
||||
pfUI.castbar.target.bar:SetValue(GetTime() - starttime)
|
||||
pfUI.castbar.target.bar.left:SetText(spellname)
|
||||
pfUI.castbar.target.bar.right:SetText(round(GetTime() - starttime,1) .. " / " .. casttime)
|
||||
else
|
||||
pfUI.castbar.target.casterDB[UnitName("target")] = nil
|
||||
pfUI.castbar.target:Hide()
|
||||
end
|
||||
else
|
||||
pfUI.castbar.target:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
function pfUI.castbar.target:Action(mob, spell, special)
|
||||
if pfLocaleSpells["deDE"][spell] ~= nil then
|
||||
casttime = pfLocaleSpells["deDE"][spell].t / 1000
|
||||
icon = pfLocaleSpells["deDE"][spell].icon
|
||||
pfUI.castbar.target.casterDB[mob] = {cast = spell, starttime = GetTime(), casttime = casttime, icon = icon}
|
||||
if UnitExists("target") and pfUI.castbar.target.casterDB[UnitName("target")] then
|
||||
pfUI.castbar.target:Show()
|
||||
else
|
||||
pfUI.castbar.target:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user