/trunk
1022, -- Main de protec |
1038, -- Main de salut |
1044, -- Main de liberté |
31850, -- Ardent défenseur |
}, |
combat = { |
1022, -- Main de protec |
1038, -- Main de salut |
1044, -- Main de liberté |
31850, -- Ardent défenseur |
}, |
spells = { |
{ |
frame.name = "?"; |
frame.disp_role = 0; |
frame.createTooltip = phUnitFrame.createTooltip; |
local bar = frame:CreateTexture(); |
bar:SetTexture("Interface\\TargetingFrame\\UI-StatusBar"); |
bar:SetVertexColor(1,0,0,0.5); |
bar:SetPoint("TOPLEFT",frame,"TOPLEFT"); |
bar:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT"); |
frame.ibar = CreateFrame("StatusBar",nil,frame); |
frame.ibar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar"); |
frame.ibar:SetMinMaxValues(0, 100); |
frame.ibar:SetValue(0); |
frame.ibar:SetStatusBarColor(0,0.5,0.5); |
frame.ibar:SetPoint("TOPLEFT",frame,"TOPLEFT"); |
frame.ibar:SetPoint("BOTTOMRIGHT",frame,"BOTTOMRIGHT"); |
frame.bar = CreateFrame("StatusBar",nil,frame); |
frame.bar:SetFrameLevel(frame.ibar:GetFrameLevel()+1); |
frame.bar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar"); |
frame.bar:SetMinMaxValues(0, 100); |
frame.bar:SetValue(100); |
frame:RegisterEvent("UNIT_MAXHEALTH"); |
frame:RegisterEvent("UNIT_AURA"); |
frame:RegisterEvent("UNIT_NAME_UPDATE"); |
frame:RegisterEvent("UNIT_HEAL_PREDICTION"); |
frame:SetScript("OnEvent",function(frame,event,...) |
if event == "PLAYER_TARGET_CHANGED" or "PLAYER_FOCUS_CHANGED" then |
phUnitFrame.update(frame); |
phUnitFrame.update(frame,event); |
elseif frame.unit then |
local unit = ...; |
if UnitIsUnit(unit,frame.unit) then |
phUnitFrame.update(frame); |
phUnitFrame.update(frame,event); |
end; |
end; |
end); |
end; |
end, |
update = function(frame) |
update = function(frame,event) |
local unit = frame.unit; |
if not unit or not UnitExists(unit) then |
phUnitFrame.updateSimple(frame,unit); |
return; |
end |
local role = frame.role; |
if not role then |
local r = UnitGroupRolesAssigned(unit); |
frame.icon:Show(); |
return; |
end |
if UnitIsFriend("player",unit) then |
frame.bar:SetStatusBarColor(0,1,0); |
if not UnitIsVisible(unit) or not UnitInRange(unit) then |
if not frame.order then |
frame.order = 100; |
end; |
frame.ibar:SetMinMaxValues(0,UnitHealthMax(unit)); |
frame.ibar:SetValue(UnitHealth(unit)+UnitGetIncomingHeals(unit)); |
frame.bar:SetMinMaxValues(0,UnitHealthMax(unit)); |
frame.bar:SetValue(UnitHealth(unit)); |
local model = phUnitFramesModels[frame.config.model]; |
phUnitFrame.updateAuras(frame,frame.buffs,model.buffs); |
phUnitFrame.updateAuras(frame,frame.debuffs,model.debuffs); |
phUnitFrame.updateAuras(frame,frame.buffs,model.buffs); |
phUnitFrame.updateAuras(frame,frame.debuffs,model.debuffs); |
end, |
frame:update(); |
end); |
frame:SetScript("OnUpdate",function(frame,timediff) |
if GetTime() - frame.lastUpdate >= 1 then |
frame:update(); |
end; |
frame:update(); |
end); |
frame.text = frame:CreateFontString(nil,"ARTWORK"); |
return; |
end; |
frame.lastUpdate = GetTime(); |
local childs = frame.childs; |
if not InCombatLockdown() then |
local config = frame.config; |
if config.units == "raid" then |
--[[for i,child in pairs(childs) do |
child:changeUnit("player"); |
end;--]] |
if GetNumRaidMembers() > 0 then |
for i,child in pairs(childs) do |
child:changeUnit("raid"..i); |