vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
IMBA_Viscidus_GlobsLeft_Num =20
IMBA_Viscidus_GlobsLeft_Num2    =       20;
IMBA_Viscidus_GlobDie_Msg       =       "Glob of Viscidus dies"

IMBA_Viscidus_PoisonVolley_Msg  =       "Viscidus's Poison Bolt Volley hits"
IMBA_Viscidus_PoisonVolley_Time =       10

IMBA_Viscidus_Frozen            =       false
IMBA_Viscidus_Frozen_Msg        =       "is frozen solid!"
IMBA_Viscidus_Frozen_Time       =       15

function IMBA_Viscidus_RegenActivator() 
        IMBA_Viscidus_GlobsLeft_Num = 20;
        IMBA_Viscidus_GlobsLeft_Num2 = 20;
        IMBA_Viscidus_GlobsLeft:SetValText(20);
        --SendAddonMessage("IMBA", "VARSYNC IMBA_Viscidus_GlobsLeft_Num 20 REPLACE","RAID");
        IMBA_Viscidus_ResetFrostHits()

        IMBA_Viscidus_TimerPoisonVolley:SetBarText("Poison Volley");
        IMBA_Viscidus_TimerPoisonVolley:StartTimer(IMBA_Viscidus_PoisonVolley_Time,false,nil,5)
        IMBA_Viscidus_TimerPoisonVolley.callback=nil;

        IMBA_Viscidus:Show();
end

function IMBA_Viscidus_ResetFrostHits()
        IMBA_Viscidus_Frozen=false;
        IMBA_Viscidus_CounterHits:SetBarText("Frost Hits Left");
        IMBA_Viscidus_CounterHits.maxNumber=200;
        IMBA_Viscidus_CounterHits:SetNum(200);
        IMBA_Viscidus_GlobsLeft_Num=IMBA_Viscidus_GlobsLeft_Num2;
end

function IMBA_Viscidus_ResetPhysicalHits()
        IMBA_Viscidus_Frozen=true;
        IMBA_Viscidus_CounterHits:SetBarText("Physical Hits Left");
        IMBA_Viscidus_CounterHits.maxNumber=150;
        IMBA_Viscidus_CounterHits:SetNum(150);
end

function IMBA_Viscidus_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_MONSTER_EMOTE");

        this:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");

        this:RegisterEvent("CHAT_MSG_COMBAT_SELF_HITS");
        this:RegisterEvent("CHAT_MSG_COMBAT_PARTY_HITS");
        this:RegisterEvent("CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS");
        this:RegisterEvent("CHAT_MSG_SPELL_SELF_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_PARTY_DAMAGE");
        this:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE");

end

function IMBA_Viscidus_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_MONSTER_EMOTE");

        this:UnregisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");

        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_OTHER");
        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_PARTY");
        this:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF");
        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_Viscidus_OnLoad()
        this:SetBackdropBorderColor(1, 1, 1, 1);
        this:SetBackdropColor(0.0,0.0,0.0,0.6);

        
        IMBA_Viscidus_Title:SetText("Viscidus Status");

        IMBA_Viscidus_GlobsLeft:SetBarText("Globs Left");
        IMBA_Viscidus_GlobsLeft:SetValText(20);
        IMBA_Viscidus_TimerPoisonVolley:SetBarText("Poison Volley");
        IMBA_Viscidus_CounterHits:SetBarText("Frost Hits Left");

        
        IMBA_AddAddon("Viscidus", "Timer for Poison Bolt Volley, Shatter, and counting of Frost/Physical Hits", IMBA_LOCATIONS_AQ40, "IMBA_Viscidus_RegenActivator", nil,nil,"IMBA_Viscidus");
        IMBA_AddSyncVar("Viscidus","IMBA_Viscidus_GlobsLeft_Num","MIN");
end



function IMBA_Viscidus_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_Viscidus_PoisonVolley_Msg)  then
                        IMBA_Viscidus_TimerPoisonVolley:SetBarText("Poison Volley");
                        IMBA_Viscidus_TimerPoisonVolley:StartTimer(IMBA_Viscidus_PoisonVolley_Time)
                        IMBA_Viscidus_TimerPoisonVolley.callback=nil;
                end
        elseif event=="CHAT_MSG_MONSTER_EMOTE" then
                if string.find(arg1,IMBA_Viscidus_Frozen_Msg) then
                        IMBA_Viscidus_TimerPoisonVolley:SetBarText("Thaws in");
                        IMBA_Viscidus_TimerPoisonVolley:StartTimer(IMBA_Viscidus_Frozen_Time)
                        IMBA_Viscidus_TimerPoisonVolley.callback=IMBA_Viscidus_ResetFrostHits;
                        IMBA_Viscidus_ResetPhysicalHits();
                end
        elseif event=="CHAT_MSG_COMBAT_HOSTILE_DEATH" then
                if string.find(arg1,IMBA_Viscidus_GlobDie_Msg) then
                        IMBA_Viscidus_GlobsLeft_Num2=IMBA_Viscidus_GlobsLeft_Num2-1;
                        IMBA_Viscidus_GlobsLeft_Num=IMBA_Viscidus_GlobsLeft_Num2;
                        IMBA_Viscidus_GlobsLeft:SetValText(IMBA_Viscidus_GlobsLeft_Num2);
                        IMBA_Viscidus_ResetFrostHits()
                end
        else
                if string.find(arg1,"Viscidus") and (not string.find(arg1,"Glob of")) and (string.find(arg1,"hit") or string.find(arg1,"crit"))  then
                        if (not IMBA_Viscidus_Frozen) and string.find(arg1, "Frost") then
                                IMBA_Viscidus_CounterHits:Decrement();
                        elseif IMBA_Viscidus_Frozen and not (string.find(arg1, "Arcane") or string.find(arg1, "Fire") or string.find(arg1, "Frost") or string.find(arg1, "Holy") or string.find(arg1, "Nature") or string.find(arg1, "Shadow")) then
                                IMBA_Viscidus_CounterHits:Decrement();
                        end
                end
        end
end

Generated by GNU Enscript 1.6.5.90.