add initial version of target castbar

This commit is contained in:
shagu
2016-08-07 23:58:28 +02:00
parent 815a210ad9
commit 479c4ed924
7 changed files with 261 additions and 53 deletions
+26 -10
View File
@@ -1,14 +1,30 @@
pfLocaleClass["deDE"] = {
["Hexenmeister"] = "WARLOCK",
["Krieger"] = "WARRIOR",
["Jäger"] = "HUNTER",
["Magier"] = "MAGE",
["Priester"] = "PRIEST",
["Druide"] = "DRUID",
["Paladin"] = "PALADIN",
["Schamane"] = "SHAMAN",
["Schurke"] = "ROGUE",
}
["Hexenmeister"] = "WARLOCK",
["Krieger"] = "WARRIOR",
["Jäger"] = "HUNTER",
["Magier"] = "MAGE",
["Priester"] = "PRIEST",
["Druide"] = "DRUID",
["Paladin"] = "PALADIN",
["Schamane"] = "SHAMAN",
["Schurke"] = "ROGUE",
}
pfLocaleSpellEvents["deDE"] = {
['SPELL_GAINS'] = "(.+) bekommt (.+).",
['SPELL_CAST'] = "(.+) beginnt (.+) zu wirken.",
['SPELL_PERFORM'] = "(.+) beginnt (.+) auszuf\195\188hren.",
['SPELL_AFFLICTED'] = "(.+) ist von (.+) betroffen.",
['SPELL_HIT'] = "(.+) von Euch trifft (.+) f\195\188r %d+\.",
['OTHER_SPELL_HIT'] = "%a+'s (.+) trifft (.+) f\195\188r %d+\.",
}
pfLocaleSpellInterrupts["deDE"] = {
["Schildhieb"] = true;
["Zuschlagen"] = true;
["Tritt"] = true;
["Erdschock"] = true;
}
pfLocaleSpells["deDE"] = {
['Eisenherz nimmt wieder Huhngestalt an'] = {t=1000, icon="Ability_Racial_BearForm" };
+26 -10
View File
@@ -1,14 +1,30 @@
pfLocaleClass["enUS"] = {
["Warlock"] = "WARLOCK",
["Warrior"] = "WARRIOR",
["Hunter"] = "HUNTER",
["Mage"] = "MAGE",
["Priest"] = "PRIEST",
["Druid"] = "DRUID",
["Paladin"] = "PALADIN",
["Shaman"] = "SHAMAN",
["Rogue"] = "ROGUE",
}
["Warlock"] = "WARLOCK",
["Warrior"] = "WARRIOR",
["Hunter"] = "HUNTER",
["Mage"] = "MAGE",
["Priest"] = "PRIEST",
["Druid"] = "DRUID",
["Paladin"] = "PALADIN",
["Shaman"] = "SHAMAN",
["Rogue"] = "ROGUE",
}
pfLocaleSpellEvents["enUS"] = {
['SPELL_GAINS'] = "(.+) gains (.+).",
['SPELL_CAST'] = "(.+) begins to cast (.+)."
['SPELL_PERFORM'] = "(.+) begins to perform (.+)."
['SPELL_AFFLICTED'] = "(.+) %a+ afflicted by (.+)."
['SPELL_HIT'] = "Your (.+) %a%a?its (.+) for %d+\."
['OTHER_SPELL_HIT'] = "%a+'s (.+) %a%a?its (.+) for %d+\."
}
pfLocaleSpellInterrupts["enUS"] = {
["Shield Bash"] = true;
["Pummel"] = true;
["Kick"] = true;
["Earth Shock"] = true;
}
pfLocaleSpells["enUS"] = {
['"Plucky" Resumes Chicken Form'] = {t=1000, icon="Ability_Racial_BearForm" };
+26 -10
View File
@@ -1,14 +1,30 @@
pfLocaleClass["frFR"] = {
["D\195\169moniste"] = "WARLOCK",
["Guerrier"] = "WARRIOR",
["Chasseur"] = "HUNTER",
["Mage"] = "MAGE",
["Pr\195\170tre"] = "PRIEST",
["Druide"] = "DRUID",
["Paladin"] = "PALADIN",
["Chaman"] = "SHAMAN",
["Voleur"] = "ROGUE",
}
["D\195\169moniste"] = "WARLOCK",
["Guerrier"] = "WARRIOR",
["Chasseur"] = "HUNTER",
["Mage"] = "MAGE",
["Pr\195\170tre"] = "PRIEST",
["Druide"] = "DRUID",
["Paladin"] = "PALADIN",
["Chaman"] = "SHAMAN",
["Voleur"] = "ROGUE",
}
pfLocaleSpellEvents["frFR"] = { -- TODO
['SPELL_GAINS'] = "(.+) gains (.+).",
['SPELL_CAST'] = "(.+) begins to cast (.+)."
['SPELL_PERFORM'] = "(.+) begins to perform (.+)."
['SPELL_AFFLICTED'] = "(.+) %a+ afflicted by (.+)."
['SPELL_HIT'] = "Your (.+) %a%a?its (.+) for %d+\."
['OTHER_SPELL_HIT'] = "%a+'s (.+) %a%a?its (.+) for %d+\."
}
pfLocaleSpellInterrupts["frFR"] = { -- TODO
["Shield Bash"] = true;
["Pummel"] = true;
["Kick"] = true;
["Earth Shock"] = true;
}
pfLocaleSpells["frFR"] = {
['Le Brave reprend sa forme de poulet'] = {t=1000, icon="Ability_Racial_BearForm" };
+26 -10
View File
@@ -1,14 +1,30 @@
pfLocaleClass["ruRU"] = {
["Чернокнижница"] = "WARLOCK",
["Воин"] = "WARRIOR",
["Охотница"] = "HUNTER",
["Маг"] = "MAGE",
["Жрица"] = "PRIEST",
["Друид"] = "DRUID",
["Паладин"] = "PALADIN",
["Шаманка"] = "SHAMAN",
["Разбойница"] = "ROGUE",
}
["Чернокнижница"] = "WARLOCK",
["Воин"] = "WARRIOR",
["Охотница"] = "HUNTER",
["Маг"] = "MAGE",
["Жрица"] = "PRIEST",
["Друид"] = "DRUID",
["Паладин"] = "PALADIN",
["Шаманка"] = "SHAMAN",
["Разбойница"] = "ROGUE",
}
pfLocaleSpellEvents["ruRU"] = { -- TODO
['SPELL_GAINS'] = "(.+) gains (.+).",
['SPELL_CAST'] = "(.+) begins to cast (.+)."
['SPELL_PERFORM'] = "(.+) begins to perform (.+)."
['SPELL_AFFLICTED'] = "(.+) %a+ afflicted by (.+)."
['SPELL_HIT'] = "Your (.+) %a%a?its (.+) for %d+\."
['OTHER_SPELL_HIT'] = "%a+'s (.+) %a%a?its (.+) for %d+\."
}
pfLocaleSpellInterrupts["ruRU"] = { -- TODO
["Shield Bash"] = true;
["Pummel"] = true;
["Kick"] = true;
["Earth Shock"] = true;
}
pfLocaleSpells["ruRU"] = {
['"Отчаянный" снова принимает облик цыпленка"'] = {t=1000, icon="Ability_Racial_BearForm" };
+26 -10
View File
@@ -1,14 +1,30 @@
pfLocaleClass["zhCN"] = {
["术士"] = "WARLOCK",
["战士"] = "WARRIOR",
["猎人"] = "HUNTER",
["法师"] = "MAGE",
["牧师"] = "PRIEST",
["德鲁伊"] = "DRUID",
["圣骑士"] = "PALADIN",
["萨满祭司"] = "SHAMAN",
["盗贼"] = "ROGUE",
}
["术士"] = "WARLOCK",
["战士"] = "WARRIOR",
["猎人"] = "HUNTER",
["法师"] = "MAGE",
["牧师"] = "PRIEST",
["德鲁伊"] = "DRUID",
["圣骑士"] = "PALADIN",
["萨满祭司"] = "SHAMAN",
["盗贼"] = "ROGUE",
}
pfLocaleSpellEvents["zhCN"] = { -- TODO
['SPELL_GAINS'] = "(.+) gains (.+).",
['SPELL_CAST'] = "(.+) begins to cast (.+)."
['SPELL_PERFORM'] = "(.+) begins to perform (.+)."
['SPELL_AFFLICTED'] = "(.+) %a+ afflicted by (.+)."
['SPELL_HIT'] = "Your (.+) %a%a?its (.+) for %d+\."
['OTHER_SPELL_HIT'] = "%a+'s (.+) %a%a?its (.+) for %d+\."
}
pfLocaleSpellInterrupts["zhCN"] = { -- TODO
["Shield Bash"] = true;
["Pummel"] = true;
["Kick"] = true;
["Earth Shock"] = true;
}
pfLocaleSpells["zhCN"] = {
['"Plucky" Resumes Chicken Form'] = {t=1000, icon="Ability_Racial_BearForm" };
+129 -3
View File
@@ -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)
+2
View File
@@ -31,6 +31,8 @@ pfUI.module = {}
pfUI.modules = {}
pfLocaleClass = {}
pfLocaleSpells = {}
pfLocaleSpellEvents = {}
pfLocaleSpellInterrupts = {}
function pfUI:RegisterModule(n, f)
pfUI.module[n] = f