vanilla-wow-addons – Rev 1
?pathlinks?
IMBA_LOATHEB_DECURSE_STRING = "Loatheb casts Remove Curse on Loatheb."
IMBA_LOATHEB_SUMMON_SPORE_MSG = "Loatheb casts Summon Spore."
IMBA_LOATHEB_SPORE_DEATH_MSG = "Spore dies"
IMBA_LOATHEB_DEATH_MSG = "Loatheb dies"
IMBA_LOATHEB_DOOM_MSG = "afflicted by Inevitable Doom."
IMBA_LOATHEB_DECURSE_ALERT = "** Loatheb has Decursed Himself **"
IMBA_Spores_Killed=0;
IMBA_Loatheb_Doom_Time = 30;
IMBA_Loatheb_Doom_Time_First = 115;
IMBA_Loatheb_Doom_Time_Fast = 15;
IMBA_Loatheb_Normal_Dooms=7;
IMBA_Loatheb_Enrage_Time = 300-5;
IMBA_Silence_Time=30;
IMBA_Enrage_Time=60;
if (GetLocale()=="frFR") then
--Translation by A.su.K.A
IMBA_LOATHEB_DECURSE_STRING = "Horreb lance D\195\169livrance de la mal\195\169diction sur Horreb."
IMBA_LOATHEB_SPORE_DEATH_MSG = "Spore meurt."
IMBA_LOATHEB_DEATH_MSG = "Horreb meurt."
IMBA_LOATHEB_DOOM_MSG = "subit les effets de Mal\195\169diction in\195\169vitable."
IMBA_LOATHEB_DECURSE_ALERT = "** Horreb s'est D\195\169curs\195\169 **"
end
function IMBA_Loatheb_UpdateBarNumbers()
IMBA_Loatheb_SporeGroup:SetValText(math.mod(IMBA_Spores_Killed,8)+1);
end
function IMBA_Loatheb_InitNumbers()
IMBA_Loatheb_Dooms=0;
IMBA_Spores_Killed=0;
SendAddonMessage("IMBA", "VARSYNC IMBA_Spores_Killed 0 REPLACE","RAID");
IMBA_Loatheb_UpdateBarNumbers();
end
function IMBA_Loatheb_Start()
IMBA_Loatheb_InitNumbers();
IMBA_Loatheb_TimerDoom:StartTimer(IMBA_Loatheb_Doom_Time_First);
IMBA_Loatheb_TimerEnrageDoom:StartTimer(IMBA_Loatheb_Enrage_Time);
end
function IMBA_Loatheb_RegenActivator()
IMBA_Loatheb_Start()
--SendAddonMessage("IMBA", "VARSYNC IMBA_Spores_Killed 0 REPLACE","RAID");
IMBA_Loatheb:Show();
IMBA_SporeLockout=0;
end
function IMBA_Loatheb_RegisterEvents()
this:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");
this:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF");
this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE");
this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE");
end
function IMBA_Loatheb_UnregisterEvents()
this:UnregisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH");
this:UnregisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF");
this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE");
this:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE");
end
function IMBA_Loatheb_CheckSporeAnnounce()
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore==nil then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore=false;
return false;
end
return IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore;
end
function IMBA_Loatheb_ToggleSporeAnnounce()
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore==nil then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore=true;
return;
end
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore=false
else
IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore=true;
end
end
function IMBA_Loatheb_CheckDecurseAnnounce()
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse==nil then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse=false;
return false;
end
return IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse;
end
function IMBA_Loatheb_ToggleDecurseAnnounce()
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse==nil then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse=true;
return;
end
if IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse then
IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse=false
else
IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse=true;
end
end
function IMBA_Loatheb_OnLoad()
this:SetBackdropBorderColor(1, 1, 1, 1);
this:SetBackdropColor(0.0,0.0,0.0,0.6);
IMBA_Loatheb_Title:SetText("Loatheb Status");
IMBA_Loatheb_SporeGroup:SetBarText("Spore Group");
IMBA_Loatheb_TimerDoom:SetBarText("Next Doom");
IMBA_Loatheb_TimerEnrageDoom:SetBarText("Enraged Dooms in");
IMBA_Loatheb_InitNumbers();
IMBA_AddAddon("Loatheb", "Tracks Spore Group & Doom Timers", IMBA_LOCATIONS_NAXX_PLAGUE, "IMBA_Loatheb_RegenActivator", nil, nil, "IMBA_Loatheb");
if (GetLocale()=="frFR") then
IMBA_AddBossName("Loatheb","Horreb")
end
--IMBA_AddSyncVar("Loatheb","IMBA_Spores_Killed","MAX");
IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore=false;
IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse=false;
IMBA_AddOption("Loatheb","Announce Spore Groups",IMBA_Loatheb_ToggleSporeAnnounce,IMBA_Loatheb_CheckSporeAnnounce)
IMBA_AddOption("Loatheb","Announce Decurse",IMBA_Loatheb_ToggleDecurseAnnounce,IMBA_Loatheb_CheckDecurseAnnounce)
IMBA_DoomTimer=0;
IMBA_SporeLockout=0;
end
function IMBA_Loatheb_OnEvent(event)
if ( event == "CHAT_MSG_COMBAT_HOSTILE_DEATH" ) then
if string.find(arg1,IMBA_LOATHEB_SPORE_DEATH_MSG) then
IMBA_Spores_Killed=IMBA_Spores_Killed+1;
IMBA_SporeLockout=GetTime()+14;
IMBA_Loatheb_UpdateBarNumbers();
IMBA_AddRaidAlert("** Spore Group "..(math.mod(IMBA_Spores_Killed,8)+1).." Go! **",IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore,IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore);
elseif string.find(arg1,IMBA_LOATHEB_DEATH_MSG) then
IMBA_Loatheb_TimerDoom.active=false;
IMBA_Loatheb_TimerEnrageDoom.active=false;
end
elseif ( event == "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" ) then
if arg1 == IMBA_LOATHEB_DECURSE_STRING then
IMBA_AddRaidAlert(IMBA_LOATHEB_DECURSE_ALERT,IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore,IMBA_SavedVariables.Mods["Loatheb"].AnnounceDecurse);
elseif string.find(arg1,IMBA_LOATHEB_SUMMON_SPORE_MSG) and IMBA_SporeLockout<GetTime() then
if IMBA_Spores_Killed~=0 then
IMBA_Spores_Killed=IMBA_Spores_Killed+1;
IMBA_Loatheb_UpdateBarNumbers();
end
IMBA_AddRaidAlert("** Spore Group "..(math.mod(IMBA_Spores_Killed,8)+1).." Go! **",IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore,IMBA_SavedVariables.Mods["Loatheb"].AnnounceSpore);
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 IMBA_DoomTimer<GetTime() and string.find(arg1,IMBA_LOATHEB_DOOM_MSG) then
IMBA_DoomTimer=GetTime()+5;
IMBA_Loatheb_Dooms=IMBA_Loatheb_Dooms+1;
if IMBA_Loatheb_Dooms>7 then
IMBA_Loatheb_TimerDoom:StartTimer(IMBA_Loatheb_Doom_Time_Fast)
else
IMBA_Loatheb_TimerDoom:StartTimer(IMBA_Loatheb_Doom_Time);
end
end
end
end