This is an addon that adds CombatFeedback to the oUF unitframes, based on the Blizzard combat feedback code. (Just wish I could reuse their functions easily)
It will display +100 on the frame when someone gets healed for 100 and -100 when someone gets damaged. It will also display block, miss etc.
To use this in your oUF layout you will need a CombatFeedbackText member on your oUF unit object (self):
Code:
local cbft = self:CreateFontString(nil, "OVERLAY")
cbft:SetPoint("CENTER", self, "CENTER")
cbft:SetFontObject(GameFontNormal)
self.CombatFeedbackText = cbft
Note: this usually places the CombatFeedbackText below the statusbars etc, so you might want to do:
Code:
local cbft = hpbar:CreateFontString(nil, "OVERLAY")
where hpbar is your hitpoints bar.
The combattext fades in and out when the damage happens, you can control the fading on a per unitframe basis by setting the .maxAlpha member
on the CombatFeedbackText string:
Code:
self.CombatFeedbackText.maxAlpha = .8
The default value is .6
You can ignore messages on a per unitframe basis using the following:
Code:
self.CombatFeedbackText.ignoreImmune = true -- ignore 'immune' reports
self.CombatFeedbackText.ignoreDamage = true -- ignore damage hits, blocks, misses, parries etc.
self.CombatFeedbackText.ignoreHeal = true -- ignore heals
self.CombatFeedbackText.ignoreEnergize = true -- ignore energize events
self.CombatFeedbackText.ignoreOther = true -- ignore everything else
The default will show everything.
You can change the colors by setting a .colors table on the CombatFeedbackText.
The default colors table is:
Code:
local colors = {
STANDARD = { 1, 1, 1 }, -- color for everything not in the list below
-- damage colors
IMMUNE = { 1, 1, 1 },
DAMAGE = { 1, 0, 0 },
CRUSHING = { 1, 0, 0 },
CRITICAL = { 1, 0, 0 },
GLANCING = { 1, 0, 0 },
ABSORB = { 1, 1, 1 },
BLOCK = { 1, 1, 1 },
RESIST = { 1, 1, 1 },
MISS = { 1, 1, 1 },
-- heal colors
HEAL = { 0, 1, 0 },
CRITHEAL = { 0, 1, 0 },
-- energize colors
ENERGIZE = { 0.41, 0.8, 0.94 },
CRITENERGIZE = { 0.41, 0.8, 0.94 },
}
You can override one or more:
Code:
self.CombatFeedbackText.colors = {
DAMAGE = {0,1,1},
CRITHEAL = {0,0,1},
}
Enjoy
-Ammo