vanilla-wow-addons – Rev 1

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

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

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

L:RegisterTranslations("enUS", function() return {
        trigger1 = "casts Gate of Shazzrah",
        trigger2 = "Shazzrah gains Deaden Magic",

        warn1 = "Blink - ~45 seconds until next!",
        warn2 = "~5 seconds to Blink!",
        warn3 = "Shazzrah buffed himself!",

        bar1text = "Blink",

        cmd = "Shazzrah",
        
        selfbuff_cmd = "selfbuff",
        selfbuff_name = "Self Buff Alert",
        selfbuff_desc = "Warn when Shazzrah casts a Self Buff",
        
        blink_cmd = "blink",
        blink_name = "Blink Alert",
        blink_desc = "Warn when Shazzrah Blinks",
} end)

L:RegisterTranslations("zhCN", function() return {
        trigger1 = "沙斯拉尔施放了沙斯拉尔之门。",
        trigger2 = "沙斯拉尔获得了衰减魔法的效果",

        warn1 = "闪现术 - ~45秒后再次发动",
        warn2 = "~5秒后发动闪现术!",
        warn3 = "自我Buff - 驱散魔法!",

        bar1text = "闪现术",
        
        selfbuff_name = "自我Buff警报",
        selfbuff_desc = "沙斯拉尔自我Buff时发出警报",
        
        blink_name = "闪现术警报",
        blink_desc = "沙斯拉尔发动闪现术时发出警报",
} end)

L:RegisterTranslations("zhTW", function() return {
        -- Shazzrah 沙斯拉爾
        trigger1 = "沙斯拉爾施放了沙斯拉爾之門。",
        trigger2 = "沙斯拉爾獲得了衰減魔法的效果。",

        warn1 = "閃現術 - 45 秒後再次發動!",
        warn2 = "5 秒後發動閃現術!",
        warn3 = "自我 Buff - 驅散魔法",

        bar1text = "閃現術",
        
        selfbuff_name = "自我Buff警報",
        selfbuff_desc = "沙斯拉爾自我Buff時發出警報",
        
        blink_name = "閃現術警報",
        blink_desc = "沙斯拉爾發動閃現術時發出警報",
} end)

L:RegisterTranslations("koKR", function() return {
        trigger1 = "샤즈라|1이;가; 샤즈라의 문|1을;를; 시전합니다.",
        trigger2 = "샤즈라|1이;가; 마법 약화 효과를 얻었습니다.",

        warn1 = "점멸 - ~45초후 재점멸!",
        warn2 = "~5초후 점멸!",
        warn3 = "마법 약화 버프 - 마법 무효화를 사용하세요!",

        bar1text = "점멸",
        
        selfbuff_name = "약화 디버프 경고",
        selfbuff_desc = "샤즈라가 약화 디버프 시전시 경고",
        
        blink_name = "점멸 경고",
        blink_desc = "샤즈라 점멸 시 경고",
} end)

L:RegisterTranslations("deDE", function() return {
        trigger1 = "Shazzrah wirkt Portal von Shazzrah",
        trigger2 = "Shazzrah bekommt 'Magie d\195\164mpfen'",

        warn1 = "Portal! N\195\164chstes in ~45 Sekunden!",
        warn2 = "Portal in ~5 Sekunden!",
        warn3 = "Magied\195\164mpfer auf Shazzrah!",

        bar1text = "Portal",

        selfbuff_name = "Selbstbuff",
        selfbuff_desc = "Warnung, wenn Magied\195\164mpfer auf Shazzrah.",
        
        blink_name = "Portal",
        blink_desc = "Warnung, wenn Shazzrah Portal wirkt.",
} end)

L:RegisterTranslations("frFR", function() return {
        trigger1 = "Shazzrah lance Porte de Shazzrah.",
        trigger2 = "Shazzrah gagne Amortissement de la magie.",

        warn1 = "Transfert ! - ~45 secondes avant le prochain",
        warn2 = "~5 secondes avant Transfert !",
        warn3 = "Shazzrah se buff ! - Dispellez le",

        bar1text = "Transfert",

        selfbuff_name = "Alerte Buff",
        selfbuff_desc = "Pr\195\169viens quand Shazzrah se buff.",

        blink_name = "Alerte Transfert",
        blink_desc = "Pr\195\169viens quand Shazzrah se t\195\169l\195\169porte.",
} end)

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

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

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

function BigWigsShazzrah:OnEnable()
        self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
        self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE")
        self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
        self:RegisterEvent("BigWigs_RecvSync")
        self:TriggerEvent("BigWigs_ThrottleSync", "ShazzrahBlink", 10)
        self:TriggerEvent("BigWigs_ThrottleSync", "ShazzrahDeadenMagic", 5)
end

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

function BigWigsShazzrah:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS(msg)
        if (string.find(msg, L["trigger2"])) then
                self:TriggerEvent("BigWigs_SendSync", "ShazzrahDeadenMagic")
        end
end

function BigWigsShazzrah:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE(msg)
        if (string.find(msg, L["trigger1"])) then
                self:TriggerEvent("BigWigs_SendSync", "ShazzrahBlink")
        end
end

function BigWigsShazzrah:BigWigs_RecvSync(sync)
        if (sync == "ShazzrahBlink" and self.db.profile.blink) then
                self:TriggerEvent("BigWigs_Message", L["warn1"], "Important")
                self:ScheduleEvent("BigWigs_Message", 40, L["warn2"], "Urgent")
                self:TriggerEvent("BigWigs_StartBar", self, L["bar1text"], 45, "Interface\\Icons\\Spell_Arcane_Blink")
        elseif (sync == "ShazzrahDeadenMagic" and self.db.profile.selfbuff) then
                self:TriggerEvent("BigWigs_Message", L["warn3"], "Important")
        end
end