vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
IMBA_Follower_Count=2;
IMBA_Worshipper_Count=4;

IMBA_Silence_Time=30;
IMBA_Enrage_Time=60;

IMBA_FAERLINA_AGGRO_YELL1       = "You cannot hide from me!";
IMBA_FAERLINA_AGGRO_YELL2       = "Run while you still can!";
IMBA_FAERLINA_AGGRO_YELL3       = "Kneel before me, worm!";
IMBA_FAERLINA_AGGRO_YELL4       = "Slay them in the master's name!";

IMBA_FAERLINA_ENRAGE_MSG        =       "Grand Widow Faerlina gains Enrage.";
IMBA_FAERLINA_SILENCE           =       "Grand Widow Faerlina is afflicted by Widow's Embrace";
IMBA_FAERLINA_SILENCE_FADE      =       "Widow's Embrace fades from Grand Widow Faerlina."

if (GetLocale()=="frFR") then
        --Translation by A.su.K.A
        IMBA_FAERLINA_AGGRO_YELL1       = "Vous ne pouvez pas m'\195\169chapper !";
        IMBA_FAERLINA_AGGRO_YELL2       = "Fuyez tant que vous le pouvez !";
        IMBA_FAERLINA_AGGRO_YELL3       = "genoux, vermisseau !";
        IMBA_FAERLINA_AGGRO_YELL4       = "Tuez%-les au nom du ma\195\174tre !";

        IMBA_FAERLINA_ENRAGE_MSG        =       "Grande veuve Faerlina gagne Enrager.";
        IMBA_FAERLINA_SILENCE           =       "Grande veuve Faerlina subit les effets de Etreinte de la veuve.";
        IMBA_FAERLINA_SILENCE_FADE      =       "Enrager sur Grande veuve Faerlina vient de se dissiper."
end

function IMBA_Faerlina_UpdateBarNumbers()
        IMBA_Faerlina_Follower:SetValText(IMBA_Follower_Count);
        IMBA_Faerlina_Worshipper:SetValText(IMBA_Worshipper_Count);
end

function IMBA_Faerlina_InitNumbers()
        IMBA_Follower_Count=2;
        IMBA_Worshipper_Count=4;
        IMBA_Faerlina_UpdateBarNumbers();

        SendAddonMessage("IMBA", "VARSYNC IMBA_Follower_Count 2 REPLACE","RAID");
        SendAddonMessage("IMBA", "VARSYNC IMBA_Worshipper_Count 4 REPLACE","RAID");
end


function IMBA_Faerlina_Start()
        IMBA_Faerlina_TimerSilence.timeEnd=0;
        IMBA_Faerlina_TimerSilence.timeLength=IMBA_Silence_Time;
        IMBA_Faerlina_TimerSilence.active=true;

        IMBA_Faerlina_InitNumbers();
        IMBA_Faerlina_TimerEnrage:StartTimer(IMBA_Enrage_Time)
        IMBA_Faerlina_TimerEnrage:StartWarningTimer("** Faerlina Enrages in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"));
end

function IMBA_Faerlina_YellActivator(arg1)
        if IMBA_CheckIfRunning("Grand Widow Faerlina") then
                return false;
        end

        if string.find(arg1,IMBA_FAERLINA_AGGRO_YELL1) or string.find(arg1,IMBA_FAERLINA_AGGRO_YELL2) or string.find(arg1,IMBA_FAERLINA_AGGRO_YELL3) or string.find(arg1,IMBA_FAERLINA_AGGRO_YELL4) then        
                IMBA_Faerlina_Start()
                IMBA_Faerlina:Show();
                return true;
        end
        return false;
end

function IMBA_Faerlina_RegisterEvents()
        this:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");

        this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF");
        this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS");
        this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DEBUFF");
        this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
end

function IMBA_Faerlina_UnregisterEvents()
        this:UnregisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");

        this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF");
        this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS");
        this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DEBUFF");
        this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
        this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE");
        this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE");
        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
end

function IMBA_Faerlina_OnLoad()
        this:SetBackdropBorderColor(1, 1, 1, 1);
        this:SetBackdropColor(0.0,0.0,0.0,0.6);

        
        IMBA_Faerlina_Title:SetText("Faerlina Status");

        IMBA_Faerlina_Follower:SetBarText("Followers");
        IMBA_Faerlina_Follower:SetValText("2");
        IMBA_Faerlina_Worshipper:SetBarText("Worshippers");
        IMBA_Faerlina_Worshipper:SetValText("4");

        IMBA_Faerlina_TimerSilence.timeLength=IMBA_Silence_Time;
        IMBA_Faerlina_TimerSilence.timeEnd=0;
        IMBA_Faerlina_TimerSilence.repeating=false;
        IMBA_Faerlina_TimerSilence.active=true;
        IMBA_Faerlina_TimerSilence:SetBarText("Silenced for");

        IMBA_Faerlina_TimerEnrage.timeLength=IMBA_Enrage_Time;
        IMBA_Faerlina_TimerEnrage.timeEnd=0;
        IMBA_Faerlina_TimerEnrage.repeating=false;
        IMBA_Faerlina_TimerEnrage.active=true;
        IMBA_Faerlina_TimerEnrage:SetBarText("Enraging in");


        IMBA_Faerlina_InitNumbers();
        
        
        IMBA_AddAddon("Grand Widow Faerlina", "Tracks Follower & Worshipper Counts and Silence & Enrage Timers", IMBA_LOCATIONS_NAXX_SPIDER, nil, "IMBA_Faerlina_YellActivator",IMBA_FAERLINA_AGGRO_YELL1, "IMBA_Faerlina");
        IMBA_AddSyncVar("Grand Widow Faerlina","IMBA_Follower_Count","MIN");
        IMBA_AddSyncVar("Grand Widow Faerlina","IMBA_Worshipper_Count","MIN");
        IMBA_AddOption2("Grand Widow Faerlina","AnnounceEnrage","Announce Enrages")
        IMBA_AddOption2("Grand Widow Faerlina","AnnounceSilence","Announce Silencing and Fading")
        Faerline_Silence=0;
end

function IMBA_Faerlina_OnEvent(event)
        if ( event == "CHAT_MSG_COMBAT_HOSTILE_DEATH" ) then
                if ( arg1 == "Naxxramas Worshipper dies." ) then
                        IMBA_Worshipper_Count=IMBA_Worshipper_Count-1;
                        IMBA_Faerlina_UpdateBarNumbers();
                elseif ( arg1 == "Naxxramas Follower dies." ) then
                        IMBA_Follower_Count=IMBA_Follower_Count-1;
                        IMBA_Faerlina_UpdateBarNumbers();
                end
        elseif(event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DEBUFF") then
                
                if string.find(arg1,IMBA_FAERLINA_SILENCE) then
                        if Faerline_Silence > GetTime() then
                                return;
                        end
                        Faerline_Silence=GetTime()+5;
                        IMBA_Faerlina_TimerSilence:StartTimer(IMBA_Silence_Time)
                        IMBA_Faerlina_TimerSilence:StartWarningTimer("** Silence Wears Off in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"));
                        IMBA_AddRaidAlert("** Faerlina is Silenced **",IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"));

                        if IMBA_Faerlina_TimerEnrage.timeEnd < (GetTime()+IMBA_Silence_Time) then
                                IMBA_Faerlina_TimerEnrage:StartTimer(IMBA_Silence_Time+0.1) --Slightly offset so the message pops up after silence wearing off message
                                IMBA_Faerlina_TimerEnrage:StartWarningTimer("** Faerlina Enrages in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"));
                        end
                end
        elseif (event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE") or (event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE") or (event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE") then

                if string.find(arg1,"Widow's Embrace") then
                        if Faerline_Silence > GetTime() then
                                return;
                        end
                        Faerline_Silence=GetTime()+5;
                        IMBA_Faerlina_TimerSilence:StartTimer(IMBA_Silence_Time)
                        IMBA_Faerlina_TimerSilence:StartWarningTimer("** Silence Wears Off in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"));
                        IMBA_AddRaidAlert("** Faerlina is Silenced **",IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"));

                        if IMBA_Faerlina_TimerEnrage.timeEnd < (GetTime()+IMBA_Silence_Time) then
                                IMBA_Faerlina_TimerEnrage:StartTimer(IMBA_Silence_Time+0.1) --Slightly offset so the message pops up after silence wearing off message
                                IMBA_Faerlina_TimerEnrage:StartWarningTimer("** Faerlina Enrages in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"));
                        end
                end
        elseif (event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" ) or (event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS") then
                if string.find(arg1,IMBA_FAERLINA_ENRAGE_MSG) then
                        IMBA_Faerlina_TimerEnrage:StartTimer(IMBA_Enrage_Time)
                        IMBA_Faerlina_TimerEnrage:StartWarningTimer("** Faerlina Enrages in ~5 Seconds **",5,IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"));
                        IMBA_AddRaidAlert("** Faerlina is Enraged! **",IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceEnrage"));
                end
        elseif (event == "CHAT_MSG_SPELL_AURA_GONE_OTHER" ) then
                if string.find(arg1,IMBA_FAERLINA_SILENCE_FADE) then
                        IMBA_AddRaidAlert("** Silence has Faded **",IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"),IMBA_CheckVar("Grand Widow Faerlina","AnnounceSilence"));
                end
        end
end

Generated by GNU Enscript 1.6.5.90.