vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
------------------------------
--      Are you local?      --
------------------------------

local boss = AceLibrary("Babble-Boss-2.2")["Magmadar"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)

----------------------------
--      Localization      --
----------------------------

L:RegisterTranslations("enUS", function() return {
        -- Chat message triggers
        trigger1 = "%s goes into a killing frenzy!",
        trigger2 = "by Panic.",

        -- Warnings and bar texts
        ["Frenzy alert!"] = true,
        ["5 seconds until AoE Fear!"] = true,
        ["AoE Fear - 30 seconds until next!"] = true,
        ["AoE Fear"] = true,

        -- AceConsole strings
        cmd = "Magmadar",
        
        fear_cmd = "fear",
        fear_name = "Warn for Fear",
        fear_desc = "Warn when Magmadar casts AoE Fear",
        
        frenzy_cmd = "frenzy",
        frenzy_name = "Frenzy alert",
        frenzy_desc = "Warn when Magmadar goes into a frenzy",
} end)

L:RegisterTranslations("koKR", function() return {
        -- Chat message triggers
        trigger1 = "%s|1이;가; 살기를 띤 듯한 광란의 상태에 빠집니다!",
        trigger2 = "공황에 걸렸습니다.",

        -- Warnings and bar texts
        ["Frenzy alert!"] = "광폭화 경보 - 사냥꾼의 평정 사격을 쏘세요!",
        ["5 seconds until AoE Fear!"] = "5초후 광역 공포!",
        ["AoE Fear - 30 seconds until next!"] = "광역 공포 경보 - 다음 공포까지 30초!",
        ["AoE Fear"] = "광역 공포",

        fear_name = "공포 경고",
        fear_desc = "마그마다르 공포 시전 시 경고",
        
        frenzy_name = "광폭화 경고",
        frenzy_desc = "마그마다르 광폭화 시 경고",
} end)


L:RegisterTranslations("zhCN", function() return {
        trigger1 = "变得狂怒无比!",
        trigger2 = "受到了恐慌",

        ["Frenzy alert!"] = "狂暴警报 - 猎人立刻使用宁神射击!",
        ["5 seconds until AoE Fear!"] = "5秒后发动群体恐惧!",
        ["AoE Fear - 30 seconds until next!"] = "群体恐惧 - 30秒后再次发动",
        ["AoE Fear"] = "群体恐惧",
        
        fear_name = "恐惧警报",
        fear_desc = "恐惧警报",
        
        frenzy_name = "狂暴警报",
        frenzy_desc = "狂暴警报",
} end)

L:RegisterTranslations("zhTW", function() return {
        -- Magmadar 瑪格曼達
        trigger1 = "變得極為狂暴!",
        trigger2 = "受到恐慌的傷害",

        ["Frenzy alert!"] = "狂暴狀態! 獵人立刻使用寧神射擊!",
        ["5 seconds until AoE Fear!"] = "5 秒後發動群體恐懼",
        ["AoE Fear - 30 seconds until next!"] = "群體恐懼 - 30 秒後再次發動",
        ["AoE Fear"] = "群體恐懼",
        
        fear_name = "群體恐懼警報",
        fear_desc = "當瑪格曼達發動群體恐懼效果時發出警報",
        
        frenzy_name = "狂暴警報",
        frenzy_desc = "當瑪格曼達狂暴時發出警報",
} end)

L:RegisterTranslations("deDE", function() return {
        trigger1 = "%s ger\195\164t in t\195\182dliche Raserei!",
        trigger2 = "von Panik betroffen",

        ["Frenzy alert!"] = "Raserei! - Einlullender Schuss!",
        ["5 seconds until AoE Fear!"] = "AoE Furcht in 5 Sekunden!",
        ["AoE Fear - 30 seconds until next!"] = "AoE Furcht! N\195\164chste in 30 Sekunden!",
        ["AoE Fear"] = "AoE Furcht",

        fear_name = "Furcht",
        fear_desc = "Warnung, wenn Magmadar AoE Furcht wirkt.",
        
        frenzy_name = "Raserei",
        frenzy_desc = "Warnung, wenn Magmadar in Raserei ger\195\164t.",
} end)

L:RegisterTranslations("frFR", function() return {
        trigger1 = "%s entre dans une fr\195\169n\195\169sie sanglante !",
        trigger2 = " subit les effets de Panique.",

        ["Frenzy alert!"] = "Alerte fr\195\169n\195\169sie - Tir tranquillisant !",
        ["5 seconds until AoE Fear!"] = "Peur de zone dans 5 secondes !",

        ["AoE Fear - 30 seconds until next!"] = "Peur de zone ! - 30 secondes avant la prochaine",
        ["AoE Fear"] = "Peur de zone",

        fear_name = "Alerte Peur",
        fear_desc = "Pr\195\169viens quand Magmadar lance sa peur de zone.",

        frenzy_name = "Alerte Fr\195\169n\195\169sie",
        frenzy_desc = "Pr\195\169viens quand Magmadar passe en fr\195\169n\195\169sie.",
} end)

----------------------------------
--      Module Declaration      --
----------------------------------

BigWigsMagmadar = BigWigs:NewModule(boss)
BigWigsMagmadar.zonename = AceLibrary("Babble-Zone-2.2")["Molten Core"]
BigWigsMagmadar.enabletrigger = boss
BigWigsMagmadar.toggleoptions = {"fear", "frenzy", "bosskill"}
BigWigsMagmadar.revision = tonumber(string.sub("$Revision: 16639 $", 12, -3))

------------------------------
--      Initialization      --
------------------------------

function BigWigsMagmadar:OnEnable()
        self.prior = nil
        self:RegisterEvent("BigWigs_Message")
        self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE")
        self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "Fear")
        self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "Fear")
        self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "Fear")
        self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")

        self:RegisterEvent("BigWigs_RecvSync")
        self:TriggerEvent("BigWigs_ThrottleSync", "MagmadarFear", 5)
end

------------------------------
--      Event Handlers      --
------------------------------

function BigWigsMagmadar:CHAT_MSG_MONSTER_EMOTE(msg)
        if msg == L["trigger1"] and self.db.profile.frenzy then
                self:TriggerEvent("BigWigs_Message", L["Frenzy alert!"], "Important", nil, "Alert")
        end
end

function BigWigsMagmadar:BigWigs_RecvSync( sync ) 
        if sync ~= "MagmadarFear" then return end
        if self.db.profile.fear then
                self:TriggerEvent("BigWigs_StartBar", self, L["AoE Fear"], 30, "Interface\\Icons\\Spell_Shadow_PsychicScream")
                self:TriggerEvent("BigWigs_Message", L["AoE Fear - 30 seconds until next!"], "Important")
                self:ScheduleEvent("BigWigs_Message", 25, L["5 seconds until AoE Fear!"], "Urgent")
        end
end

function BigWigsMagmadar:Fear(msg)
        if not self.prior and string.find(msg, L["trigger2"]) then
                self:TriggerEvent("BigWigs_SendSync", "MagmadarFear")
                self.prior = true
        end
end

function BigWigsMagmadar:BigWigs_Message(text)
        if text == L["5 seconds until AoE Fear!"] then self.prior = nil end
end