vanilla-wow-addons – Rev 1
?pathlinks?
------------------------------
-- Are you local? --
------------------------------
local kri = AceLibrary("Babble-Boss-2.2")["Lord Kri"]
local yauj = AceLibrary("Babble-Boss-2.2")["Princess Yauj"]
local vem = AceLibrary("Babble-Boss-2.2")["Vem"]
local boss = AceLibrary("Babble-Boss-2.2")["The Bug Family"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
local deaths = 0
local fearstatus
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
cmd = "BugFamily",
fear_cmd = "fear",
fear_name = "Fear Alert",
fear_desc = "Warn for Fear",
heal_cmd = "heal",
heal_name = "Heal Alert",
heal_desc = "Warn for Heal",
healtrigger = "Princess Yauj begins to cast Great Heal.",
healwarn = "Casting heal!",
feartrigger = "is afflicted by Fear%.",
fearbar = "AoE Fear",
fearwarn1 = "AoE Fear! Next in 20 Seconds!",
fearwarn2 = "AoE Fear in 5 Seconds!",
} end )
L:RegisterTranslations("frFR", function() return {
fear_name = "Alerte Peur",
fear_desc = "Pr\195\169viens des Peurs de zone.",
heal_name = "Alerte Soins",
heal_desc = "Pr\195\169viens lors de l'incantation de soins.",
healtrigger = "Princesse Yauj commence \195\160 lancer Soins exceptionnels.",
healwarn = "Princesse Yauj commence \195\160 se soigner - Interrompez-la !",
feartrigger = "subit les effets de Peur%.",
fearbar = "Peur de zone",
fearwarn1 = "Peur de zone ! prochain dans 20 secondes",
fearwarn2 = "Peur de zone dans 5 secondes !",
} end )
L:RegisterTranslations("deDE", function() return {
fear_name = "Furcht",
fear_desc = "Warnung, wenn wenn Prinzessin Yauj AoE Furcht wirkt.",
heal_name = "Heilung",
heal_desc = "Warnung, wenn Prinzessin Yauj versucht sich zu heilen.",
healtrigger = "Prinzessin Yauj beginnt Gro\195\159es Heilen zu wirken.",
healwarn = "Prinzessin Yauj versucht sich zu heilen!",
feartrigger = "ist von Furcht betroffen.",
fearbar = "AoE Furcht",
fearwarn1 = "AoE Furcht! N\195\164chste in 20 Sekunden!",
fearwarn2 = "AoE Furcht in 5 Sekunden!",
} end )
L:RegisterTranslations("zhCN", function() return {
fear_name = "恐惧警报",
fear_desc = "敌人发动群体恐惧时发出警报",
heal_name = "治疗警报",
heal_desc = "亚尔基公主施放治疗时发出警报",
healtrigger = "亚尔基公主开始施放强效治疗术。",
healwarn = "亚尔基公主正在施放治疗 - 迅速打断!",
feartrigger = "受到了恐惧效果的影响。",
fearbar = "群体恐惧",
fearwarn1 = "群体恐惧 - 20秒后再次发动",
fearwarn2 = "5秒后发动群体恐惧!",
} end )
L:RegisterTranslations("zhTW", function() return {
-- Princess Yauj 亞爾基公主
fear_name = "恐懼警報",
fear_desc = "敵人發動群體恐懼時發出警報",
heal_name = "治療警報",
heal_desc = "亞爾基公主施放治療時發出警報",
healtrigger = "亞爾基公主開始施放強效治療術。",
healwarn = "正在施放治療! 打斷!",
feartrigger = "受到恐懼術的傷害",
fearbar = "群體恐懼",
fearwarn1 = "群體恐懼 - 20 秒後再次發動",
fearwarn2 = "5 秒後群體恐懼!",
} end )
L:RegisterTranslations("koKR", function() return {
fear_name = "공포 경고",
fear_desc = "공포에 대한 경고",
heal_name = "치유 경고",
heal_desc = "치유에 대한 경고",
healtrigger = "공주 야우즈|1이;가; 상급 치유|1을;를; 시전합니다.",
healwarn = "치유 시전 - 시전 방해!",
feartrigger = "공포에 걸렸습니다.",
fearbar = "공포",
fearwarn1 = "공포 시전! 다음 시전 20초후!",
fearwarn2 = "5초후 공포!",
} end )
----------------------------------
-- Module Declaration --
----------------------------------
BigWigsBugFamily = BigWigs:NewModule(boss)
BigWigsBugFamily.zonename = AceLibrary("Babble-Zone-2.2")["Ahn'Qiraj"]
BigWigsBugFamily.enabletrigger = {kri, yauj, vem}
BigWigsBugFamily.toggleoptions = {"fear", "heal", "bosskill"}
BigWigsBugFamily.revision = tonumber(string.sub("$Revision: 16639 $", 12, -3))
------------------------------
-- Initialization --
------------------------------
function BigWigsBugFamily:OnEnable()
deaths = 0
fearstatus = nil
self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF")
self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "FearEvent")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "FearEvent")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "FearEvent")
self:RegisterEvent("BigWigs_Message")
end
------------------------------
-- Event Handlers --
------------------------------
function BigWigsBugFamily:FearEvent(msg)
if not fearstatus and string.find(msg, L["feartrigger"]) and self.db.profile.fear then
fearstatus = true
self:TriggerEvent("BigWigs_StartBar", self, L["fearbar"], 20, "Interface\\Icons\\Spell_Shadow_Possession")
self:TriggerEvent("BigWigs_Message", L["fearwarn1"], "Important")
self:ScheduleEvent("BigWigs_Message", 15, L["fearwarn2"], "Urgent")
end
end
function BigWigsBugFamily:BigWigs_Message(txt)
if fearstatus and txt == L["fearwarn2"] then fearstatus = nil end
end
function BigWigsBugFamily:CHAT_MSG_COMBAT_HOSTILE_DEATH(msg)
if (msg == string.format(UNITDIESOTHER, kri) or msg == string.format(UNITDIESOTHER, yauj) or msg == string.format(UNITDIESOTHER, vem)) then
deaths = deaths + 1
if (deaths == 3) then
if self.db.profile.bosskill then self:TriggerEvent("BigWigs_Message", string.format(AceLibrary("AceLocale-2.2"):new("BigWigs")["%s has been defeated"], boss), "Bosskill", nil, "Victory") end
self.core:ToggleModuleActive(self, false)
end
end
end
function BigWigsBugFamily:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF(msg)
if msg == L["healtrigger"] and self.db.profile.heal then
self:TriggerEvent("BigWigs_Message", L["healwarn"], "Urgent")
end
end