vanilla-wow-addons – Rev 1
?pathlinks?
-- -------------------------------------------
-- << Power Auras >>
-- Par -Sinsthar-
-- [Ziya/Tiven - serveur Fr - Kirin Tor]
--
-- Effets visuels autour du personnage
-- en cas de buff ou de debuff.
-- -------------------------------------------
PowaVersion = "v2.01"
CurrentAura = 1;
CurrentSecondeAura = 0;
MaxAuras = 20;
SecondeAura = MaxAuras + 1;
CurrentTestAura = MaxAuras + 2;
PowaEnabled = 0;
PowaModTest = false; -- on test les effets
Powa_FramesVisibleTime = {}; -- visible ou pas
PowaMisc = {
quickhide = false,
disabled = false,
BTimerX = 0,
BTimerY = 0,
BTimerA = 1.00,
BTimerScale = 1.00,
BCents = true,
DTimerX = 0,
DTimerY = 0,
DTimerA = 1.00,
DTimerScale = 1.00,
DCents = true
};
PowaGlobal = {maxeffects = 20, maxtextures = 15}
PowaSet = {};
for i = 1, SecondeAura do
PowaSet[i] = {
texture = 1,
anim1 = 1,
anim2 = 0,
speed = 1.00,
begin = 0,
duration = 0,
alpha = 0.75,
size = 0.75,
torsion = 1,
symetrie = 0,
x = 0,
y = -30,
buffname = "",
isdebuff = false,
isdebufftype = false,
timer = false,
inverse = false,
r = 1.0,
g = 1.0,
b = 1.0
};
end
TabBuff = {}; -- liste des buffs en cours
TabDebuff = {}; -- debuffs
TabDebuffType = {}; -- debuff types
-- ---------------------------------------------------------------------------------------------
function Powa_OnLoad()
-- Registering Events --
this:RegisterEvent("PLAYER_AURAS_CHANGED");
this:RegisterEvent("PLAYER_ENTERING_WORLD");
this:RegisterEvent("VARIABLES_LOADED");
Powa_Frames = {};
Powa_textures = {};
-- options init
SlashCmdList["POWA"] = Powa_SlashHandler;
SLASH_POWA1 = "/powa";
end
-- ----------------------------------------------------------------------------------------------
function Powa_InitTabs()
for i = 1, CurrentTestAura do
if (PowaSet[i]) then -- gere les rajout de variables suivant les versions
if (PowaSet[i].timer == nil) then PowaSet[i].timer = false; end
if (PowaSet[i].inverse == nil) then PowaSet[i].inverse = false; end
if (PowaSet[i].speed == nil) then PowaSet[i].speed = 1.0; end
if (PowaSet[i].begin == nil) then PowaSet[i].begin = 0; end
if (PowaSet[i].duration == nil) then PowaSet[i].duration = 0; end
else -- pas init
PowaSet[i] = {
texture = 1,
anim1 = 1,
anim2 = 0,
speed = 1.00,
begin = 0,
duration = 0,
alpha = 0.75,
size = 0.75,
torsion = 1,
symetrie = 0,
x = 0,
y = -30,
buffname = "",
isdebuff = false,
isdebufftype = false,
timer = false,
inverse = false,
r = 1.0,
g = 1.0,
b = 1.0 }
Powa_FramesVisibleTime[i] = 0;
end
end
if (PowaMisc) then
if (PowaMisc.BTimerX == nil) then PowaMisc.BTimerX = 0; end
if (PowaMisc.BTimerY == nil) then PowaMisc.BTimerY = 0; end
if (PowaMisc.BTimerA == nil) then PowaMisc.BTimerA = 1.00; end
if (PowaMisc.BTimerScale == nil) then PowaMisc.BTimerScale = 1.00; end
if (PowaMisc.DTimerX == nil) then PowaMisc.DTimerX = 0; end
if (PowaMisc.DTimerY == nil) then PowaMisc.DTimerY = 0; end
if (PowaMisc.DTimerA == nil) then PowaMisc.DTimerA = 1.00; end
if (PowaMisc.DTimerScale == nil) then PowaMisc.DTimerScale = 1.00; end
if (PowaMisc.BCents == nil) then PowaMisc.BCents = true; end
if (PowaMisc.DCents == nil) then PowaMisc.DCents = true; end
else
PowaMisc.quickhide = false;
PowaMisc.disabled = false;
PowaMisc.BTimerX = 0;
PowaMisc.BTimerY = 0;
PowaMisc.BTimerA = 1.00;
PowaMisc.BTimerScale = 1.00;
PowaMisc.DTimerX = 0;
PowaMisc.DTimerY = 0;
PowaMisc.DTimerA = 1.00;
PowaMisc.DTimerScale = 1.00;
PowaMisc.BCents = true;
PowaMisc.DCents = true;
end
end
-- -----------------------------------------------------------------------------------------------
function Powa_CreateFrames()
for i = 1, CurrentTestAura do
if (Powa_Frames[i]) then
-- deja cree, ne fait rien
else
-- Frame --
Powa_Frames[i] = CreateFrame("Frame","Frame"..i);
Powa_Frames[i]:Hide();
-- Texture --
Powa_textures[i] = Powa_Frames[i]:CreateTexture(nil,"BACKGROUND");
Powa_textures[i]:SetBlendMode("ADD");
Powa_textures[i]:SetAllPoints(Powa_Frames[i]); -- attache la texture a la frame
Powa_Frames[i].texture = Powa_textures[i];
Powa_Frames[i].baseL = 256;
Powa_Frames[i].baseH = 256;
Powa_FramesVisibleTime[i] = 0;
end
end
end
Powa_Timer = {};
Powa_timertex = {};
Tstep = 0.09765625;
function Powa_CreateTimer()
for i = 1, 4 do
if (Powa_Timer[i]) then
else
Powa_Timer[i] = CreateFrame("Frame","Timer"..i);
Powa_Timer[i]:Hide();
Powa_timertex[i] = Powa_Timer[i]:CreateTexture(nil,"BACKGROUND");
Powa_timertex[i]:SetBlendMode("ADD");
Powa_timertex[i]:SetAllPoints(Powa_Timer[i]); -- attache la texture a la frame
Powa_Timer[i].texture = Powa_timertex[i];
Powa_timertex[i]:SetTexture("Interface\\Addons\\PowerAuras\\timers.tga");
end
end
Powa_UpdateOptionsTimer();
Powa_UpdateOptionsTimer2();
end
-- ------------------------------------------------------------------------------------ BUFF CHECKS
function Powa_MemorizeBuffs() -- cree un string contenant tous les noms des buffs en cours
local buffIndex, untilCancelled;
for i = 1, 24 do
TabBuff[i] = "xXx";
buffIndex, untilCancelled = GetPlayerBuff(i-1, "HELPFUL");
if (buffIndex >= 0) then
Powa_Tooltip:SetPlayerBuff(buffIndex);
if (Powa_TooltipTextLeft1:IsShown()) then
TabBuff[i] = string.upper(Powa_TooltipTextLeft1:GetText());
else
Powa_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); -- ERROR !! Ca ne doit jamais arriver ca
end
end
end
for i = 1, 16 do
TabDebuff[i] = "xXx";
TabDebuffType[i] = "xXx";
buffIndex, untilCancelled = GetPlayerBuff(i-1, "HARMFUL");
if (buffIndex >= 0) then
Powa_Tooltip:SetPlayerBuff(buffIndex);
if (Powa_TooltipTextLeft1:IsShown()) then
TabDebuff[i] = string.upper(Powa_TooltipTextLeft1:GetText());
if (Powa_TooltipTextRight1:IsShown()) then
TabDebuffType[i] = string.upper(Powa_TooltipTextRight1:GetText());
else
TabDebuffType[i] = string.upper(PowaText.aucun);
end
else
Powa_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); -- ERROR !! Ca ne doit jamais arriver ca
end
end
end
end
function PowaCompareBuffDebuff(xnum)
if (PowaMisc.disabled == true) then return false; end
if (PowaSet[xnum].isdebuff) then -- un debuff
for i = 1, 16 do
Powa_Frames[xnum].buffindex = 0;
for pword in string.gfind(PowaSet[xnum].buffname, "[%w%s%-%'\195\130-\195\190]+") do
if (string.find(TabDebuff[i], string.upper(pword), 1, true)) then
Powa_Frames[xnum].buffindex = i-1; -- point vers le debuff qui a le timer
return true;
end
end
end
elseif (PowaSet[xnum].isdebufftype) then -- type de debuff (cherche a l'inverse)
for i = 1, 16 do
if (string.find(string.upper(PowaSet[xnum].buffname), TabDebuffType[i], 1, true)) then
Powa_Frames[xnum].buffindex = i-1; -- point vers le debuff type qui a le timer
return true;
end
end
else -- un buff
for i = 1, 24 do
Powa_Frames[xnum].buffindex = 0;
for pword in string.gfind(PowaSet[xnum].buffname, "[%w%s%-%'\195\130-\195\190]+") do
if (string.find(TabBuff[i], string.upper(pword), 1, true)) then
Powa_Frames[xnum].buffindex = i-1; -- point vers le buff qui a le timer
return true;
end
end
end
end
return false;
end
function Powa_NewCheckBuffs() -- compare chaque nom de buff d'activation avec l'ensemble des buffs memorises
local LastAura;
Powa_MemorizeBuffs();
LastAura = 0;
for j = 1, MaxAuras do
if (PowaSet[j].buffname == "" or PowaSet[j].buffname == " ") then -- ne fait rien si vide
PowaSet[j].buffname = "";
elseif (PowaCompareBuffDebuff(j)) then -- buff actif
if (PowaSet[j].inverse == true) then
if (Powa_Frames[j]:IsVisible() ) then
Powa_FramesVisibleTime[j] = 0;
if (j == CurrentSecondeAura) then
Powa_FramesVisibleTime[SecondeAura] = 0;
if (LastAura > 0) then -- cet effet n'est plus actif mais on affiche l'aura 2 sur le dernier effet
CurrentSecondeAura = LastAura;
Powa_DisplayAura(LastAura);
end
end
end
else
Powa_DisplayAura(j);
LastAura = j;
end
else -- -- perte d'aura, s'il est visible on le cache
if (PowaSet[j].inverse == false) then
if (Powa_Frames[j]:IsVisible() ) then
Powa_FramesVisibleTime[j] = 0;
if (j == CurrentSecondeAura) then
Powa_FramesVisibleTime[SecondeAura] = 0;
if (LastAura > 0) then -- cet effet n'est plus actif mais on affiche l'aura 2 sur le dernier effet
CurrentSecondeAura = LastAura;
Powa_DisplayAura(LastAura);
end
end
end
else
Powa_DisplayAura(j);
LastAura = j;
end
end
end -- end for
end
-- ----------------------------------------------------------------------------------------- EVENT
function Powa_OnEvent()
if event == "PLAYER_ENTERING_WORLD" then
Powa_Tooltip:SetOwner(UIParent, "ANCHOR_NONE");
elseif event == "VARIABLES_LOADED" then
DEFAULT_CHAT_FRAME:AddMessage("|cffB0A0ff<Power Auras>|r |cffffff00"..PowaVersion.."|r - "..PowaText.welcome);
-- defini le nombre max d'effets
MaxAuras = PowaGlobal.maxeffects;
SecondeAura = MaxAuras + 1;
CurrentTestAura = MaxAuras + 2;
-- verifie en cas de rajout d'effets que tous sont initialises (sinon ca bug :P)
Powa_InitTabs();
Powa_CreateFrames();
-- defini le nombre max de textures
if (PowaGlobal.maxtextures > 50) then PowaGlobal.maxtextures = 50;
elseif (PowaGlobal.maxtextures < 20) then PowaGlobal.maxtextures = 20; end
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,PowaGlobal.maxtextures);
getglobal("PowaBarAuraTextureSliderHigh"):SetText(PowaGlobal.maxtextures);
PowaEnabled = 1;
Powa_CreateTimer();
elseif event == "PLAYER_AURAS_CHANGED" then -- passe les buffs en revue
if (PowaModTest == false) then
Powa_NewCheckBuffs();
end
end
end
-- -----------------------------------------------------------------------------------------------
function Powa_DisplayAura(FNum)
if (PowaEnabled == 0) then return; end -- desactived
if (Powa_FramesVisibleTime[FNum] == 0) then -- si pas en cours
Powa_textures[FNum]:SetTexture("Interface\\Addons\\PowerAuras\\aura"..PowaSet[FNum].texture..".tga");
Powa_textures[FNum]:SetVertexColor(PowaSet[FNum].r,PowaSet[FNum].g,PowaSet[FNum].b);
if (PowaSet[FNum].symetrie == 1) then Powa_textures[FNum]:SetTexCoord(1, 0, 0, 1); -- inverse X
elseif (PowaSet[FNum].symetrie == 2) then Powa_textures[FNum]:SetTexCoord(0, 1, 1, 0); -- inverse Y
elseif (PowaSet[FNum].symetrie == 3) then Powa_textures[FNum]:SetTexCoord(1, 0, 1, 0); -- inverse XY
else Powa_textures[FNum]:SetTexCoord(0, 1, 0, 1); end
if (PowaSet[FNum].begin > 0) then Powa_Frames[FNum].beginAnim = 1;
else Powa_Frames[FNum].beginAnim = 0; end
Powa_Frames[FNum].baseL = 256 * PowaSet[FNum].size * PowaSet[FNum].torsion;
Powa_Frames[FNum].baseH = 256 * PowaSet[FNum].size * (2-PowaSet[FNum].torsion);
Powa_Frames[FNum]:SetAlpha(PowaSet[FNum].alpha);
Powa_Frames[FNum]:SetPoint("Center",PowaSet[FNum].x, PowaSet[FNum].y);
Powa_Frames[FNum]:SetWidth(Powa_Frames[FNum].baseL);
Powa_Frames[FNum]:SetHeight(Powa_Frames[FNum].baseH);
Powa_Frames[FNum].statut = 0;
Powa_Frames[FNum].duree = 0;
Powa_Frames[FNum]:Show();
Powa_FramesVisibleTime[FNum] = 1; -- affiche anim1
Powa_FramesVisibleTime[SecondeAura] = 0; -- init anim2
end
if (Powa_FramesVisibleTime[SecondeAura] == 0) then -- si pas en cours (Anim 2)
CurrentSecondeAura = FNum; -- 2eme aura en cours
if (PowaSet[FNum].anim2 == 0) then -- pas d'anim
Powa_Frames[SecondeAura]:Hide();
return;
end
if (PowaSet[FNum].begin > 0) then Powa_Frames[FNum].beginAnim = 2;
else Powa_Frames[FNum].beginAnim = 0; end
PowaSet[SecondeAura].size = PowaSet[FNum].size;
PowaSet[SecondeAura].torsion = PowaSet[FNum].torsion;
PowaSet[SecondeAura].alpha = PowaSet[FNum].alpha * 0.5;
PowaSet[SecondeAura].anim1 = PowaSet[FNum].anim2;
PowaSet[SecondeAura].speed = PowaSet[FNum].speed;
PowaSet[SecondeAura].duration = PowaSet[FNum].duration;
PowaSet[SecondeAura].x = PowaSet[FNum].x;
PowaSet[SecondeAura].y = PowaSet[FNum].y;
Powa_textures[SecondeAura]:SetTexture("Interface\\Addons\\PowerAuras\\aura"..PowaSet[FNum].texture..".tga");
Powa_textures[SecondeAura]:SetVertexColor(PowaSet[FNum].r,PowaSet[FNum].g,PowaSet[FNum].b);
if (PowaSet[FNum].symetrie == 1) then Powa_textures[SecondeAura]:SetTexCoord(1, 0, 0, 1); -- inverse X
elseif (PowaSet[FNum].symetrie == 2) then Powa_textures[SecondeAura]:SetTexCoord(0, 1, 1, 0); -- inverse Y
elseif (PowaSet[FNum].symetrie == 3) then Powa_textures[SecondeAura]:SetTexCoord(1, 0, 1, 0); -- inverse XY
else Powa_textures[SecondeAura]:SetTexCoord(0, 1, 0, 1); end
Powa_Frames[SecondeAura].baseL = Powa_Frames[FNum].baseL;
Powa_Frames[SecondeAura].baseH = Powa_Frames[FNum].baseH;
Powa_Frames[SecondeAura]:SetAlpha(PowaSet[SecondeAura].alpha);
Powa_Frames[SecondeAura]:SetPoint("Center",PowaSet[FNum].x, PowaSet[FNum].y);
Powa_Frames[SecondeAura]:SetWidth(Powa_Frames[SecondeAura].baseL);
Powa_Frames[SecondeAura]:SetHeight(Powa_Frames[SecondeAura].baseH);
Powa_Frames[SecondeAura].statut = 1;
Powa_Frames[SecondeAura].duree = Powa_Frames[FNum].duree;
Powa_Frames[SecondeAura]:Show();
Powa_FramesVisibleTime[SecondeAura] = 1;
end
end
-- -------------------------------------------------------------------------------------- TIMERS
PowaActiveTimer = 0; -- le timer en cours
PowaActiveTimerValue = 0;
PowaActiveTimerSup = 0; -- le 2eme timer en cours
PowaActiveTimerSupValue = 0;
PowaActiveTimer2 = 0; -- le timer en cours (debuffs)
PowaActiveTimer2Value = 0;
PowaActiveTimer2Sup = 0; -- le 2eme timer en cours
PowaActiveTimer2SupValue = 0;
function Powa_UpdateTimer(numi)
local newvalue;
if (numi > MaxAuras) then -- fin du cycle on arrete
return;
elseif (PowaSet[numi].timer == false) then -- cet effet n'affiche pas de timer
return;
end
-- prend le timer
if (getglobal("PowaBarConfigFrameOptions"):IsVisible()) then -- options des timers, affiche
PowaActiveTimer2 = numi;
PowaActiveTimer2Value = random(1,9) + (random(1, 99) / 100);
PowaActiveTimer = numi;
PowaActiveTimerValue = random(1,9) + (random(1, 99) / 100);
elseif (PowaSet[numi].isdebuff or PowaSet[numi].isdebufftype) then
if (PowaModTest) then
newvalue = random(1,9) + (random(1, 99) / 100);
else
newvalue = GetPlayerBuffTimeLeft( GetPlayerBuff(Powa_Frames[numi].buffindex, "HARMFUL") );
end
if (newvalue > 0) then -- ok on a un timer a afficher...
if ((PowaActiveTimer2Value > 0) and (newvalue > PowaActiveTimer2Value)) then
-- y'a deja un timer dont le nombre est plus petit, domage
return;
end
PowaActiveTimer2 = numi; -- lien vers l'effet
PowaActiveTimer2Value = newvalue; -- retiens la valeur
end
else
if (PowaModTest) then
newvalue = random(1,9) + (random(1, 99) / 100);
else
newvalue = GetPlayerBuffTimeLeft( GetPlayerBuff(Powa_Frames[numi].buffindex, "HELPFUL") );
end
if (newvalue > 0) then -- ok on a un timer a afficher...
if ((PowaActiveTimerValue > 0) and (newvalue > PowaActiveTimerValue)) then
-- y'a deja un timer dont le nombre est plus petit, domage
return;
end
PowaActiveTimer = numi; -- lien vers l'effet
PowaActiveTimerValue = newvalue; -- retiens la valeur
end
end
end
function Powa_ResetTimers()
local deci, uni, newvalue;
if (PowaActiveTimer > 0) then -- timer a un lien
if (Powa_Frames[PowaActiveTimer]:IsVisible()) then -- l'effet est visible, affiche
-- timer 1, le gros (secondes)
Powa_timertex[1]:SetVertexColor(PowaSet[PowaActiveTimer].r,PowaSet[PowaActiveTimer].g,PowaSet[PowaActiveTimer].b);
-- si le timer est > 60, le transforme en minutes
newvalue = PowaActiveTimerValue;
if (newvalue > 60.00) then newvalue = newvalue / 60; end
newvalue = math.min (99.00, newvalue);
deci = math.floor(newvalue / 10);
uni = math.floor(newvalue - (deci*10));
Powa_timertex[1]:SetTexCoord(Tstep * uni, Tstep * (uni+1), Tstep * deci, Tstep * (deci+1));
Powa_Timer[1]:Show();
-- timer 2, le petit (centieme de secondes)
Powa_timertex[2]:SetVertexColor(PowaSet[PowaActiveTimer].r,PowaSet[PowaActiveTimer].g,PowaSet[PowaActiveTimer].b);
newvalue = PowaActiveTimerValue;
if (newvalue > 60.00) then
newvalue = math.mod(newvalue,60);
else
newvalue = (newvalue - math.floor(newvalue)) * 100;
end
deci = math.floor(newvalue / 10);
uni = math.floor(newvalue - (deci*10));
Powa_timertex[2]:SetTexCoord(Tstep * uni, Tstep * (uni+1), Tstep * deci, Tstep * (deci+1));
if (PowaMisc.BCents == true) then
Powa_Timer[2]:Show();
else
Powa_Timer[2]:Hide();
end
else
Powa_Timer[1]:Hide(); -- cache les timer
Powa_Timer[2]:Hide(); -- cache les timer
end
else
Powa_Timer[1]:Hide();
Powa_Timer[2]:Hide(); -- cache les timer
end
PowaActiveTimer = 0;
PowaActiveTimerValue = 0;
-- idem pour les debuffs
if (PowaActiveTimer2 > 0) then -- timer a un lien
if (Powa_Frames[PowaActiveTimer2]:IsVisible()) then -- l'effet est visible, affiche
-- timer 1, le gros (secondes)
Powa_timertex[3]:SetVertexColor(PowaSet[PowaActiveTimer2].r,PowaSet[PowaActiveTimer2].g,PowaSet[PowaActiveTimer2].b);
-- si le timer est > 60, le transforme en minutes
newvalue = PowaActiveTimer2Value;
if (newvalue > 60.00) then newvalue = newvalue / 60; end
newvalue = math.min (99.00, newvalue);
deci = math.floor(newvalue / 10);
uni = math.floor(newvalue - (deci*10));
Powa_timertex[3]:SetTexCoord(Tstep * uni, Tstep * (uni+1), Tstep * deci, Tstep * (deci+1));
Powa_Timer[3]:Show();
-- timer 2, le petit (centieme de secondes)
Powa_timertex[4]:SetVertexColor(PowaSet[PowaActiveTimer2].r,PowaSet[PowaActiveTimer2].g,PowaSet[PowaActiveTimer2].b);
newvalue = PowaActiveTimer2Value;
if (newvalue > 60.00) then
newvalue = math.mod(newvalue,60);
else
newvalue = (newvalue - math.floor(newvalue)) * 100;
end
deci = math.floor(newvalue / 10);
uni = math.floor(newvalue - (deci*10));
Powa_timertex[4]:SetTexCoord(Tstep * uni, Tstep * (uni+1), Tstep * deci, Tstep * (deci+1));
if (PowaMisc.DCents == true) then
Powa_Timer[4]:Show();
else
Powa_Timer[4]:Hide();
end
else
Powa_Timer[3]:Hide(); -- cache les timer
Powa_Timer[4]:Hide(); -- cache les timer
end
else
Powa_Timer[3]:Hide();
Powa_Timer[4]:Hide(); -- cache les timer
end
PowaActiveTimer2 = 0;
PowaActiveTimer2Value = 0;
end
-- -------------------------------------------------------------------------------------- ON UPDATE
minScale = {a=0, w=0, h=0};
maxScale = {a=0, w=0, h=0};
curScale = {a=0, w=0, h=0};
speedScale = 0;
function Powa_OnUpdate(elapsed)
for i = 1, CurrentTestAura do
if (PowaEnabled == 0) then return; end -- desactived
if (Powa_FramesVisibleTime[i] > 0) then -- si visible seulement
Powa_UpdateTimer(i); -- met a jour les Timers
curScale.w = Powa_Frames[i].baseL; -- regle la taille de l'image en pixel
curScale.h = Powa_Frames[i].baseH;
-- pas d'anim si l'effet va disparaitre avec duree
if ((PowaSet[i].duration > 0) and (Powa_Frames[i].duree > PowaSet[i].duration)) then
-- si visible, baisse l'alpha
if (Powa_Frames[i]:GetAlpha() > 0) then
curScale.a = Powa_Frames[i]:GetAlpha() - (elapsed / 2);
-- si alpha 0, cache
if (curScale.a <= 0) then
Powa_Frames[i]:SetAlpha(0);
else
Powa_Frames[i]:SetAlpha(curScale.a);
end
end
-- Animation 1 : aucune
elseif (PowaSet[i].anim1 == 1) then
-- Animation 2 : max alpha <-> mi-alpha
elseif (PowaSet[i].anim1 == 2) then
minScale.a = PowaSet[i].alpha * 0.5 * PowaSet[i].speed;
maxScale.a = PowaSet[i].alpha;
if (Powa_Frames[i].statut == 0) then
curScale.a = Powa_Frames[i]:GetAlpha() - (elapsed / 2);
Powa_Frames[i]:SetAlpha( curScale.a )
if (Powa_Frames[i]:GetAlpha() < minScale.a) then
Powa_Frames[i]:SetAlpha(minScale.a);
Powa_Frames[i].statut = 1;
end
else
curScale.a = Powa_Frames[i]:GetAlpha() + (elapsed / 2);
if (curScale.a > 1.0) then curScale.a = 1.0; end -- pas trop haut non plus
Powa_Frames[i]:SetAlpha( curScale.a )
if (Powa_Frames[i]:GetAlpha() >= maxScale.a) then
Powa_Frames[i]:SetAlpha(maxScale.a);
Powa_Frames[i].statut = 0;
end
end
-- Animation 3 : mini-zoom in repetitif + fading
elseif (PowaSet[i].anim1 == 3) then
minScale.w = curScale.w * 0.90;
minScale.h = curScale.h * 0.90;
maxScale.w = curScale.w * 1.20;
maxScale.h = curScale.h * 1.20;
speedScale = (25 * PowaSet[i].speed) * PowaSet[i].size;
if (Powa_Frames[i].statut == 1) then -- decale anim 2
Powa_Frames[i]:SetWidth(curScale.w * 1.15);
Powa_Frames[i]:SetHeight(curScale.h * 1.15);
Powa_Frames[i].statut = 0;
end
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() + (elapsed * speedScale) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() + (elapsed * speedScale) )
Powa_Frames[i]:SetAlpha( ((maxScale.w - Powa_Frames[i]:GetWidth()) / (maxScale.w - minScale.w)) * PowaSet[i].alpha );
if (Powa_Frames[i]:GetWidth() > maxScale.w) then
Powa_Frames[i]:SetWidth(minScale.w);
Powa_Frames[i]:SetHeight(minScale.h);
end
-- Animation 4 : mini-zoom in/out
elseif (PowaSet[i].anim1 == 4) then
minScale.w = curScale.w * 0.95;
minScale.h = curScale.h * 0.95;
maxScale.w = curScale.w * 1.05;
maxScale.h = curScale.h * 1.05;
speedScale = (50 * PowaSet[i].speed) * PowaSet[i].size;
if (Powa_Frames[i].statut == 0) then
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() + (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() + (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
if (Powa_Frames[i]:GetWidth() > maxScale.w) then
Powa_Frames[i]:SetWidth(maxScale.w);
Powa_Frames[i]:SetHeight(maxScale.h);
Powa_Frames[i].statut = 1;
end
else
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() - (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() - (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
if (Powa_Frames[i]:GetWidth() < minScale.w) then
Powa_Frames[i]:SetWidth(minScale.w);
Powa_Frames[i]:SetHeight(minScale.h);
Powa_Frames[i].statut = 0;
end
end
-- Animation 5 : effet bulle
elseif (PowaSet[i].anim1 == 5) then
minScale.w = curScale.w * 0.95;
minScale.h = curScale.h * 0.95;
maxScale.w = curScale.w * 1.05;
maxScale.h = curScale.h * 1.05;
speedScale = (50 * PowaSet[i].speed) * PowaSet[i].size;
if (Powa_Frames[i].statut == 0) then
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() + (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() - (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
if (Powa_Frames[i]:GetWidth() > maxScale.w) then
Powa_Frames[i]:SetWidth(maxScale.w);
Powa_Frames[i]:SetHeight(minScale.h);
Powa_Frames[i].statut = 1;
end
else
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() - (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() + (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
if (Powa_Frames[i]:GetHeight() > maxScale.h) then
Powa_Frames[i]:SetWidth(minScale.w);
Powa_Frames[i]:SetHeight(maxScale.h);
Powa_Frames[i].statut = 0;
end
end
-- position au hasard + zoom in + fade
elseif (PowaSet[i].anim1 == 6) then
if (Powa_Frames[i]:GetAlpha() > 0) then
curScale.a = Powa_Frames[i]:GetAlpha() - (elapsed * PowaSet[i].alpha * 0.5);
if (curScale.a < 0) then Powa_Frames[i]:SetAlpha(0.0);
else Powa_Frames[i]:SetAlpha(curScale.a); end
maxScale.w = Powa_Frames[i]:GetWidth() + (elapsed * 100 * PowaSet[i].speed * PowaSet[i].size);
maxScale.h = Powa_Frames[i]:GetHeight() + (elapsed * 100 * PowaSet[i].speed * PowaSet[i].size);
if ( (maxScale.w * 1.5) > Powa_Frames[i]:GetWidth()) then -- evite les lags
Powa_Frames[i]:SetWidth(maxScale.w)
Powa_Frames[i]:SetHeight(maxScale.h)
end
else
maxScale.w = random(0,10) - 5;
maxScale.h = random(0,10) - 5;
Powa_Frames[i]:SetAlpha(PowaSet[i].alpha);
Powa_Frames[i]:SetWidth(curScale.w * 0.85);
Powa_Frames[i]:SetHeight(curScale.h * 0.85);
Powa_Frames[i]:SetPoint("Center",PowaSet[i].x + maxScale.w, PowaSet[i].y + maxScale.h);
end
-- static sauf parfois ou la texture est decalee + opaque (type electrique)
elseif (PowaSet[i].anim1 == 7) then
if (Powa_Frames[i].statut < 2) then
Powa_Frames[i]:SetAlpha(PowaSet[i].alpha / 2); -- mi-alpha
if (random( 210-(PowaSet[i].speed*100) ) == 1) then
Powa_Frames[i].statut = 2;
maxScale.w = random(0,10) - 5;
maxScale.h = random(0,10) - 5;
Powa_Frames[i]:SetPoint("Center",PowaSet[i].x + maxScale.w, PowaSet[i].y + maxScale.h);
Powa_Frames[i]:SetAlpha(PowaSet[i].alpha);
end
else
Powa_Frames[i]:SetPoint("Center",PowaSet[i].x, PowaSet[i].y);
Powa_Frames[i].statut = 0;
end
-- zoom out + stop + fade
elseif (PowaSet[i].anim1 == 8) then
minScale.w = curScale.w;
minScale.h = curScale.h;
maxScale.w = curScale.w * 1.30;
maxScale.h = curScale.h * 1.30;
speedScale = (50 * PowaSet[i].speed) * PowaSet[i].size;
if (Powa_Frames[i].statut == 0) then -- demarre le zoom out (max size)
Powa_Frames[i]:SetWidth(maxScale.w);
Powa_Frames[i]:SetHeight(maxScale.h);
Powa_Frames[i]:SetAlpha(0.0);
Powa_Frames[i].statut = 2;
elseif (Powa_Frames[i].statut == 2) then -- zoom out + fade in
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() - (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() - (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
Powa_Frames[i]:SetAlpha( ((maxScale.w - Powa_Frames[i]:GetWidth()) / (maxScale.w - minScale.w)) * PowaSet[i].alpha );
if (Powa_Frames[i]:GetWidth() < curScale.w) then
Powa_Frames[i]:SetWidth(curScale.w);
Powa_Frames[i]:SetHeight(curScale.h);
Powa_Frames[i].statut = 1;
end
elseif (Powa_Frames[i].statut == 1) then -- demarre le fade-out
Powa_Frames[i]:SetWidth(curScale.w);
Powa_Frames[i]:SetHeight(curScale.h);
Powa_Frames[i]:SetAlpha(PowaSet[i].alpha);
Powa_Frames[i].statut = 3;
elseif (Powa_Frames[i].statut == 3) then -- fade-out
curScale.a = Powa_Frames[i]:GetAlpha() - (elapsed / random(1,2));
if (curScale.a < 0.0) then
Powa_Frames[i]:SetAlpha(0.0);
Powa_Frames[i].statut = 0;
else
Powa_Frames[i]:SetAlpha(curScale.a);
end
end
-- deplacement vers le haut + fade-out + reduction
elseif (PowaSet[i].anim1 == 9) then
speedScale = (50 * PowaSet[i].speed) * PowaSet[i].size;
if (Powa_Frames[i].statut < 2) then -- debut
Powa_Frames[i]:SetWidth(curScale.w);
Powa_Frames[i]:SetHeight(curScale.h);
Powa_Frames[i]:SetPoint("Center",PowaSet[i].x, PowaSet[i].y);
Powa_Frames[i]:SetAlpha(PowaSet[i].alpha);
Powa_Frames[i].statut = 2;
else
_,_,_,xOfs,yOfs = Powa_Frames[i]:GetPoint();
Powa_Frames[i]:SetPoint("Center",xOfs + (random(1,3)-2), yOfs + (elapsed * random(10,20)));
curScale.a = Powa_Frames[i]:GetAlpha() - ( (elapsed / random(2,4)) * PowaSet[i].alpha);
Powa_Frames[i]:SetWidth( Powa_Frames[i]:GetWidth() - (elapsed * speedScale * PowaSet[i].torsion) )
Powa_Frames[i]:SetHeight( Powa_Frames[i]:GetHeight() - (elapsed * speedScale * (2-PowaSet[i].torsion) ) )
if (curScale.a < 0.0) then
Powa_Frames[i]:SetAlpha(0.0);
Powa_Frames[i].statut = 1;
else
Powa_Frames[i]:SetAlpha(curScale.a);
end
end
end
-- si duration
if (PowaSet[i].duration > 0) then
-- ajoute le temps passe
Powa_Frames[i].duree = Powa_Frames[i].duree + elapsed;
end
-- FADE OUT
elseif Powa_Frames[i]:IsVisible() then
if (PowaMisc.quickhide == false) then
curScale.a = Powa_Frames[i]:GetAlpha() - (elapsed * 2);
if (curScale.a <= 0) then
Powa_Frames[i]:Hide();
else
Powa_Frames[i]:SetAlpha(curScale.a);
Powa_Frames[i]:SetWidth(Powa_Frames[i]:GetWidth() + (elapsed * 200) );
Powa_Frames[i]:SetHeight(Powa_Frames[i]:GetHeight() + (elapsed * 200) );
end
else
Powa_Frames[i]:Hide();
end
end
end
Powa_ResetTimers(); -- reset Timers
end
-- ----------------------------------------------------------------------------- LIGNE DE COMMANDE
function Powa_SlashHandler(msg)
msgNumber = 0;
if (msg == "") then
-- aucun parametre, on ouvre/ferme les options
if (PowaBarConfigFrame:IsVisible()) then
Powa_OptionClose();
else
Powa_OptionHideAll();
Powa_InitPage();
PowaModTest = true;
PowaBarConfigFrame:Show();
end
else -- y'a des parametres, on y travaille
for a in string.gfind( msg, "maxtex (%d+)" ) do
msgNumber = tonumber(a);
if (msgNumber > 50) then msgNumber = 50; elseif (msgNumber < 20) then msgNumber = 2; end
PowaGlobal.maxtextures = msgNumber;
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,msgNumber);
getglobal("PowaBarAuraTextureSliderHigh"):SetText(msgNumber);
DEFAULT_CHAT_FRAME:AddMessage("|cffB0A0ff<Power Auras>|r "..PowaText.aideCommande2a.." "..a);
return;
end
for a in string.gfind( msg, "maxeffect (%d+)" ) do
msgNumber = tonumber(a);
if (msgNumber > 100) then msgNumber = 100; elseif (msgNumber < 10) then msgNumber = 10; end
PowaEnabled = 0; -- desactive temporairement les effets
Powa_OptionHideAll(); -- cache tout les effets en cours
MaxAuras = msgNumber; -- definie le max d'aura
SecondeAura = MaxAuras + 1; -- definie la derniere aura
CurrentTestAura = MaxAuras + 2;
PowaGlobal.maxeffects = MaxAuras; -- sauve le nombre max d'effet
Powa_InitTabs(); -- initialise les pages d'effets en plus
Powa_CreateFrames(); -- cree les textures des effets en plus
PowaEnabled = 1; -- reactive les effets
CurrentAura = 1; -- defini l'effet en cours 1
Powa_InitPage(); -- initalise les pages des options
DEFAULT_CHAT_FRAME:AddMessage("|cffB0A0ff<Power Auras>|r "..PowaText.aideCommande3a.." "..a);
return;
end
DEFAULT_CHAT_FRAME:AddMessage("|cffB0A0ff<Power Auras>|r "..PowaText.aideCommande1);
DEFAULT_CHAT_FRAME:AddMessage("|cffffff50 /powa maxtex ##|r : "..PowaText.aideCommande2);
DEFAULT_CHAT_FRAME:AddMessage("|cffffff50 /powa maxeffect ##|r : "..PowaText.aideCommande3);
end
end
-- --------------------------------------------------------------------------- GESTION DES OPTIONS
function Powa_InitPage()
getglobal("PowaBarAuraTextureSlider"):SetValue(PowaSet[CurrentAura].texture);
getglobal("PowaBarAuraAlphaSlider"):SetValue(PowaSet[CurrentAura].alpha);
getglobal("PowaBarAuraSizeSlider"):SetValue(PowaSet[CurrentAura].size);
getglobal("PowaBarAuraCoordSlider"):SetValue(PowaSet[CurrentAura].y);
getglobal("PowaBarAuraCoordXSlider"):SetValue(PowaSet[CurrentAura].x);
getglobal("PowaBarAuraAnim2Slider"):SetValue(PowaSet[CurrentAura].anim2);
getglobal("PowaBarAuraAnim1Slider"):SetValue(PowaSet[CurrentAura].anim1);
getglobal("PowaBarAuraAnimSpeedSlider"):SetValue(PowaSet[CurrentAura].speed);
getglobal("PowaBarAuraDurationSlider"):SetValue(PowaSet[CurrentAura].duration);
getglobal("PowaBarAuraSymSlider"):SetValue(PowaSet[CurrentAura].symetrie);
getglobal("PowaBarAuraDeformSlider"):SetValue(PowaSet[CurrentAura].torsion);
getglobal("PowaBarBuffName"):SetText(PowaSet[CurrentAura].buffname);
getglobal("AuraTexture"):SetTexture("Interface\\Addons\\PowerAuras\\Aura"..PowaSet[CurrentAura].texture..".tga");
getglobal("PowaColorNormalTexture"):SetVertexColor(PowaSet[CurrentAura].r,PowaSet[CurrentAura].g,PowaSet[CurrentAura].b);
getglobal("AuraTexture"):SetVertexColor(PowaSet[CurrentAura].r,PowaSet[CurrentAura].g,PowaSet[CurrentAura].b);
getglobal("PowaColor_SwatchBg").r = PowaSet[CurrentAura].r;
getglobal("PowaColor_SwatchBg").g = PowaSet[CurrentAura].g;
getglobal("PowaColor_SwatchBg").b = PowaSet[CurrentAura].b;
getglobal("PowaHeader"):SetText("POWER AURAS "..PowaVersion);
getglobal("powa_Text"):SetText(PowaText.nomTitre.." "..CurrentAura.."/"..MaxAuras);
getglobal("PowaHideAllButton"):SetText(PowaText.nomHide);
getglobal("PowaTestButton"):SetText(PowaText.nomTest);
getglobal("PowaCloseButton"):SetText(PowaText.nomClose);
getglobal("PowaListButton"):SetText(PowaText.nomListe);
if (PowaSet[CurrentAura].isdebuff) then
getglobal("PowaDebuffButton"):SetChecked(true);
getglobal("PowaDebuffTypeButton"):SetChecked(false);
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomDebuff);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff2;
elseif (PowaSet[CurrentAura].isdebufftype) then
getglobal("PowaDebuffTypeButton"):SetChecked(true);
getglobal("PowaDebuffButton"):SetChecked(false);
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomDebuffType);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff3;
else
getglobal("PowaDebuffButton"):SetChecked(false);
getglobal("PowaDebuffTypeButton"):SetChecked(false);
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomBuff);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff;
end
getglobal("PowaShowTimerButton"):SetChecked(PowaSet[CurrentAura].timer);
getglobal("PowaInverseButton"):SetChecked(PowaSet[CurrentAura].inverse);
if (PowaSet[CurrentAura].inverse) then
PowaSet[CurrentAura].timer = false;
getglobal("PowaShowTimerButton"):SetChecked(PowaSet[CurrentAura].timer);
Powa_DisableCheckBox("PowaShowTimerButton");
else
Powa_EnableCheckBox("PowaShowTimerButton");
end
end
function Powa_ChangePagePrev() -- page precedente
if (CurrentAura == 1) then
CurrentAura = MaxAuras;
else
CurrentAura = CurrentAura - 1;
end
Powa_InitPage();
end
function Powa_ChangePageNext() -- page suivante
if (CurrentAura == MaxAuras) then
CurrentAura = 1;
else
CurrentAura = CurrentAura + 1;
end
Powa_InitPage();
end
function Powa_UpdateAura() -- met a jour l'effet apres modification d'options
if (PowaEnabled == 0) then return; end -- desactived
Powa_FramesVisibleTime[CurrentAura] = 0;
Powa_FramesVisibleTime[SecondeAura] = 0;
if (Powa_Frames[CurrentAura]:IsVisible()) then -- sinon on affiche seulement si deja visible
Powa_DisplayAura(CurrentAura);
end
end
function Powa_OptionClose() -- ferme la fenetre d'option
PowaModTest = false;
getglobal("PowaBarConfigFrame"):Hide();
getglobal("PowaListFrame"):Hide();
-- cache tous les effets en test
for i = 1, MaxAuras+2 do
if (PowaSet[i].duration > 0) then
Powa_Frames[i].duree = 31; -- force affiche et mode transparent
Powa_Frames[i]:Show();
Powa_Frames[i]:SetAlpha(0.0);
Powa_FramesVisibleTime[i] = 1;
else
Powa_FramesVisibleTime[i] = 0;
end
end
Powa_NewCheckBuffs(); -- detect les effets en cours
end
function Powa_OptionTest() -- teste ou masque l'effet choisi
if (Powa_Frames[CurrentAura]:IsVisible()) then -- deja visible, on la cache
Powa_FramesVisibleTime[CurrentAura] = 0;
Powa_FramesVisibleTime[SecondeAura] = 0;
else -- pas visible alors on affiche
Powa_DisplayAura(CurrentAura);
end
end
function Powa_OptionHideAll() -- cache tous les effets
-- cache tous les effets en test
for i = 1, MaxAuras+2 do
Powa_FramesVisibleTime[i] = 0;
end
end
-- ---------------------------------------------------------------------------------- FENETRE D'OPTION
function PowaBarAuraTextureSliderChanged()
local SliderValue = getglobal("PowaBarAuraTextureSlider"):GetValue();
getglobal("PowaBarAuraTextureSliderText"):SetText(PowaText.nomTexture.." : "..SliderValue);
getglobal("AuraTexture"):SetTexture("Interface\\Addons\\PowerAuras\\Aura"..SliderValue..".tga");
PowaSet[CurrentAura].texture = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraAlphaSliderChanged()
local SliderValue = getglobal("PowaBarAuraAlphaSlider"):GetValue();
getglobal("PowaBarAuraAlphaSliderText"):SetText(PowaText.nomAlpha.." : "..format("%.2f", SliderValue) );
PowaSet[CurrentAura].alpha = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraSizeSliderChanged()
local SliderValue = getglobal("PowaBarAuraSizeSlider"):GetValue();
getglobal("PowaBarAuraSizeSliderText"):SetText(PowaText.nomTaille.." : "..format("%.2f", SliderValue) );
PowaSet[CurrentAura].size = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraCoordSliderChanged()
local SliderValue = getglobal("PowaBarAuraCoordSlider"):GetValue();
getglobal("PowaBarAuraCoordSliderText"):SetText(PowaText.nomPos.." Y : "..SliderValue);
PowaSet[CurrentAura].y = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraCoordXSliderChanged()
local SliderValue = getglobal("PowaBarAuraCoordXSlider"):GetValue();
getglobal("PowaBarAuraCoordXSliderText"):SetText(PowaText.nomPos.." X : "..SliderValue);
PowaSet[CurrentAura].x = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraAnim2SliderChanged()
local SliderValue = getglobal("PowaBarAuraAnim2Slider"):GetValue();
getglobal("PowaBarAuraAnim2SliderText"):SetText(PowaText.nomAnim2.." : "..SliderValue);
PowaSet[CurrentAura].anim2 = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraAnim1SliderChanged()
local SliderValue = getglobal("PowaBarAuraAnim1Slider"):GetValue();
getglobal("PowaBarAuraAnim1SliderText"):SetText(PowaText.nomAnim1.." : "..SliderValue);
PowaSet[CurrentAura].anim1 = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraAnimSpeedSliderChanged()
local SliderValue = getglobal("PowaBarAuraAnimSpeedSlider"):GetValue();
getglobal("PowaBarAuraAnimSpeedSliderText"):SetText(PowaText.nomSpeed.." : "..format("%.0f",SliderValue*100).."%");
PowaSet[CurrentAura].speed = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraAnimDurationSliderChanged()
local SliderValue = getglobal("PowaBarAuraDurationSlider"):GetValue();
getglobal("PowaBarAuraDurationSliderText"):SetText(PowaText.nomDuration.." : "..SliderValue.." sec");
PowaSet[CurrentAura].duration = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraSymSliderChanged()
local SliderValue = getglobal("PowaBarAuraSymSlider"):GetValue();
if (SliderValue == 0) then
getglobal("PowaBarAuraSymSliderText"):SetText(PowaText.nomSymetrie.." : "..PowaText.aucune);
elseif (SliderValue == 1) then
getglobal("PowaBarAuraSymSliderText"):SetText(PowaText.nomSymetrie.." : X");
elseif (SliderValue == 2) then
getglobal("PowaBarAuraSymSliderText"):SetText(PowaText.nomSymetrie.." : Y");
elseif (SliderValue == 3) then
getglobal("PowaBarAuraSymSliderText"):SetText(PowaText.nomSymetrie.." : XY");
end
PowaSet[CurrentAura].symetrie = SliderValue;
Powa_UpdateAura();
end
function PowaBarAuraDeformSliderChanged()
local SliderValue = getglobal("PowaBarAuraDeformSlider"):GetValue();
getglobal("PowaBarAuraDeformSliderText"):SetText(PowaText.nomDeform.." : "..format("%.2f", SliderValue));
PowaSet[CurrentAura].torsion = SliderValue;
Powa_UpdateAura();
end
function PowaMaxTexSliderChanged()
local SliderValue = getglobal("PowaMaxTexSlider"):GetValue();
getglobal("PowaMaxTexSliderText"):SetText(PowaText.nomMaxTex.." : "..SliderValue);
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,SliderValue);
getglobal("PowaBarAuraTextureSliderHigh"):SetText(SliderValue);
PowaGlobal.maxtextures = SliderValue;
end
function PowaTextChanged()
PowaSet[CurrentAura].buffname = getglobal("PowaBarBuffName"):GetText();
end
function PowaDebuffChecked()
if (getglobal("PowaDebuffButton"):GetChecked()) then
PowaSet[CurrentAura].isdebuff = true;
PowaSet[CurrentAura].isdebufftype = false;
getglobal("PowaDebuffTypeButton"):SetChecked(false);
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomDebuff);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff2;
else
PowaSet[CurrentAura].isdebuff = false;
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomBuff);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff;
end
Powa_UpdateList();
end
function PowaDebuffTypeChecked()
if (getglobal("PowaDebuffTypeButton"):GetChecked()) then
PowaSet[CurrentAura].isdebufftype = true;
PowaSet[CurrentAura].isdebuff = false;
getglobal("PowaDebuffButton"):SetChecked(false);
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomDebuffType);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff3;
else
PowaSet[CurrentAura].isdebufftype = false;
getglobal("PowaBarBuffNameText"):SetText(PowaText.nomBuff);
getglobal("PowaBarBuffName").aide = PowaText.aideBuff;
end
Powa_UpdateList();
end
function PowaQuickHideChecked()
if (getglobal("PowaQuickHideButton"):GetChecked()) then
PowaMisc.quickhide = true;
else
PowaMisc.quickhide = false;
end
end
function PowaShowTimerChecked()
if (getglobal("PowaShowTimerButton"):GetChecked()) then
PowaSet[CurrentAura].timer = true;
else
PowaSet[CurrentAura].timer = false;
end
end
function PowaInverseChecked()
if (getglobal("PowaInverseButton"):GetChecked()) then
PowaSet[CurrentAura].inverse = true;
PowaSet[CurrentAura].timer = false;
getglobal("PowaShowTimerButton"):SetChecked(false);
Powa_DisableCheckBox("PowaShowTimerButton");
else
PowaSet[CurrentAura].inverse = false;
Powa_EnableCheckBox("PowaShowTimerButton");
end
end
function Powa_DisableCheckBox(checkBox)
getglobal(checkBox):Disable();
getglobal(checkBox.."Text"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b);
end
function Powa_EnableCheckBox(checkBox, checked)
getglobal(checkBox):Enable();
getglobal(checkBox.."Text"):SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
end
-- ---------------------------------------------------------------------------- OPTIONS DEPLACEMENT
function PowaBar_MouseDown( strButton, frmFrame)
if( strButton == "LeftButton") then
getglobal( frmFrame ):StartMoving( );
end
end
function PowaBar_MouseUp( strButton, frmFrame)
getglobal( frmFrame ):StopMovingOrSizing( );
end
-- ----------------------------------------------------------------------------------- COLOR PICKER
function PowaOptionsFrame_SetColor()
local r,g,b = ColorPickerFrame:GetColorRGB();
local swatch,frame;
swatch = getglobal("PowaColorNormalTexture"); -- juste le visuel
frame = getglobal("PowaColor_SwatchBg"); -- enregistre la couleur
swatch:SetVertexColor(r,g,b);
frame.r = r;
frame.g = g;
frame.b = b;
PowaSet[CurrentAura].r = r;
PowaSet[CurrentAura].g = g;
PowaSet[CurrentAura].b = b;
getglobal("AuraTexture"):SetVertexColor(r,g,b);
Powa_UpdateAura();
end
function PowaOptionsFrame_CancelColor()
local r = ColorPickerFrame.previousValues.r;
local g = ColorPickerFrame.previousValues.g;
local b = ColorPickerFrame.previousValues.b;
local swatch,frame;
swatch = getglobal("PowaColorNormalTexture"); -- juste le visuel
frame = getglobal("PowaColor_SwatchBg"); -- enregistre la couleur
swatch:SetVertexColor(r,g,b);
frame.r = r;
frame.g = g;
frame.b = b;
getglobal("AuraTexture"):SetVertexColor(r,g,b);
end
function Powa_OpenColorPicker()
CloseMenus();
button = getglobal("PowaColor_SwatchBg");
ColorPickerFrame.func = PowaOptionsFrame_SetColor -- button.swatchFunc;
ColorPickerFrame:SetColorRGB(button.r, button.g, button.b);
ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity};
ColorPickerFrame.cancelFunc = PowaOptionsFrame_CancelColor
ColorPickerFrame:SetPoint("TOPLEFT", "PowaBarConfigFrame", "TOPRIGHT", 0, 0)
ColorPickerFrame:Show();
end
Generated by GNU Enscript 1.6.5.90.