vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
IMBA_GROBBULUS_SLIMESPRAY_MSG   =       "Grobbulus ?'s Slime Spray"
IMBA_GROBBULUS_SLIMESPRAY_TIME  =       30;

IMBA_GROBBULUS_POISONCLOUD_MSG  =       "Grobbulus casts Poison Cloud."
IMBA_GROBBULUS_POISONCLOUD_TIME =       15;

IMBA_GROBBULUS_INJECTION_MSG    =       "^([^%s]+) ([^%s]+) afflicted by Mutating Injection"
IMBA_GROBBULUS_INJECTION_MSGR   =       "Mutating Injection fades from ([^%s]+)[.]"

if (GetLocale()=="frFR") then
        --Translation by A.su.K.A
        IMBA_GROBBULUS_POISONCLOUD_MSG  =       "Grobbulus lance Nuage de poison."

        IMBA_GROBBULUS_INJECTION_MSG    =       "^([^%s]+) ([^%s]+) les effets de Injection mutante."
        IMBA_GROBBULUS_INJECTION_MSGR   =       "Injection mutante sur ([^%s]+)[.] vient de se dissiper."
end

function IMBA_Grobbulus_RegenActivator()
        IMBA_Grobbulus:Show();
end

function IMBA_Grobbulus_RegisterEvents()
        this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE");

        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_CREATURE_VS_CREATURE_BUFF");

        this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
        this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_PARTY");
        this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF");
end

function IMBA_Grobbulus_UnregisterEvents()
        this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE");
        this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE");
        this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE");

        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_CREATURE_VS_CREATURE_BUFF");

        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_PARTY");
        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF");
end

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

        
        IMBA_Grobbulus_Title:SetText("Grobbulus Timers");

        IMBA_Grobbulus_TimerPoisonCloud:SetBarText("Poison Cloud");
        IMBA_Grobbulus_TimerSlimeSpray:SetBarText("Slime Spray");

        
        IMBA_AddAddon("Grobbulus", "Timer for Poison Cloud, Slime Spray, and announce/marking of injection", IMBA_LOCATIONS_NAXX_ABOM, "IMBA_Grobbulus_RegenActivator", nil,nil,"IMBA_Grobbulus");
        IMBA_AddOption2("Grobbulus","AnnounceInjection","Announce Mutating Injection");
        IMBA_AddOption2("Grobbulus","MarkInjection","Mark Mutating Injectee");
end



function IMBA_Grobbulus_OnEvent(event)
        if ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE" or event == "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE" or event == "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE") then
                if string.find(arg1,IMBA_GROBBULUS_SLIMESPRAY_MSG)  then
                        IMBA_Grobbulus_TimerSlimeSpray:StartTimer(IMBA_GROBBULUS_SLIMESPRAY_TIME)
                end
        elseif event=="CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" then
                if string.find(arg1,IMBA_GROBBULUS_POISONCLOUD_MSG) then
                        IMBA_Grobbulus_TimerPoisonCloud:StartTimer(IMBA_GROBBULUS_POISONCLOUD_TIME)
                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
                local iStart, iEnd, sPlayer, sType = string.find(arg1, IMBA_GROBBULUS_INJECTION_MSG);
                if ( sPlayer and sType ) then
                        if ( sPlayer == "You" and sType == "are" ) then
                                IMBA_RangeChecker_Active=true;
                                IMBA_AddRaidAlert("** "..UnitName("player").." is Injected **",IMBA_CheckVar("Grobbulus","AnnounceInjection"),true);
                                if IMBA_CheckVar("Grobbulus","MarkInjection") then
                                        SetRaidTarget("player",8);
                                end

                        else    
                                if IsRaidLeader() or IsRaidOfficer() then
                                        SendChatMessage("You've been injected!", "WHISPER", nil, sPlayer);
                                end

                                IMBA_AddRaidAlert("** "..sPlayer.." is Injected **",IMBA_CheckVar("Grobbulus","AnnounceInjection"),IMBA_CheckVar("Grobbulus","AnnounceInjection"));
                                if IMBA_CheckVar("Grobbulus","MarkInjection") then
                                        local markUnit=IMBA_FindPlayerUnitByName(sPlayer)
                                        if UnitExists(markUnit) then
                                                SetRaidTarget(markUnit,8);
                                        end
                                end
                        end
                        return;
                end
        elseif IMBA_CheckVar("Grobbulus","MarkInjection") and ((event == "CHAT_MSG_SPELL_AURA_GONE_OTHER") or (event == "CHAT_MSG_SPELL_AURA_GONE_SELF") or (event == "CHAT_MSG_SPELL_AURA_GONE_PARTY")) then
                local   iStart, iEnd, sPlayer = string.find(arg1, IMBA_GROBBULUS_INJECTION_MSGR);
                if ( sPlayer ) then
                        if ( sPlayer == "you" ) then                            
                                SetRaidTarget("player",0);                              
                        else                            
                                local markUnit=IMBA_FindPlayerUnitByName(sPlayer)
                                if UnitExists(markUnit) then
                                        SetRaidTarget(markUnit,0);
                                end
                        end
                        return;
                end
        end
end

Generated by GNU Enscript 1.6.5.90.