tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Razorgore_OnLoad"); function CT_RABoss_Razorgore_OnLoad() CT_RABoss_AddMod("Razorgore", "Displays warnings for the razorgore encounter.", 1, CT_RABOSS_LOCATIONS_BLACKWINGSLAIR); CT_RABoss_AddEvent("Razorgore", "CHAT_MSG_MONSTER_YELL", CT_RABoss_Razorgore_EventHandler); CT_RABoss_AddEvent("Razorgore", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Razorgore_EventHandler); CT_RABoss_AddDropDownButton("Razorgore", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); CT_RABoss_AddDropDownButton("Razorgore", "Display approximately how many eggs should be popped", "CT_RABoss_ModInfo", "displayapproxprogress", "CT_RABoss_SetInfo"); CT_RABoss_AddDropDownButton("Razorgore", "Announce approximate progress to raid", "CT_RABoss_ModInfo", "announceapproxprogress", "CT_RABoss_SetInfo"); end function CT_RABoss_Razorgore_EventHandler(event) if ( not CT_RABoss_Mods["Razorgore"] or not CT_RABoss_Mods["Razorgore"]["status"] or not CT_RABoss_Mods["Razorgore"].enabled ) then return; end if ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, "breached the hatchery") ) then CT_RABoss_Razorgore_StartEncounter(); elseif ( event == "CHAT_MSG_MONSTER_YELL" and string.find(arg1, "device shall never torment me") ) then -- CT_RABoss_Announce("Failed attempt", CT_RABoss_Mods["Razorgore"]["announce"]); CT_RABoss_Razorgore_StopWarnings(); elseif ( event == "CHAT_MSG_MONSTER_EMOTE" and string.find(arg1, "controlling power of the orb is drained") ) then CT_RABoss_Announce("All eggs popped!", CT_RABoss_Mods["Razorgore"]["announce"]); CT_RABoss_Razorgore_StopWarnings(); end end function CT_RABoss_Razorgore_StartEncounter() DEFAULT_CHAT_FRAME:AddMessage("Razorgore encounter started, use /rabrr to reset the timers."); CT_RABoss_Announce("*** ATTACK THE ORB CONTROLLER! ENCOUNTER STARTED! ***", CT_RABoss_Mods["Razorgore"]["announce"]) --Timex:AddSchedule("MyAddOn", 5, nil, nil, ace.print, ace, "Hello World!") Timex:AddSchedule("CT_RABoss_Razorgore_A", 45, nil, nil, CT_RABoss_Razorgore_WarningA); Timex:AddSchedule("CT_RABoss_Razorgore_WarningsStart", 63, nil, nil, CT_RABoss_Razorgore_StartWarnings); -- Timex:AddSchedule("CT_RABoss_Razorgore_3", 78, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_4", 93, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_5", 108, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_B", 123, nil, nil, CT_RABoss_Razorgore_WarningB); -- Timex:AddSchedule("CT_RABoss_Razorgore_7", 138, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_8", 153, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_9", 168, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_C", 183, nil, nil, CT_RABoss_Razorgore_WarningC); -- Timex:AddSchedule("CT_RABoss_Razorgore_11", 198, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_12", 213, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_13", 228, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_D", 243, nil, nil, CT_RABoss_Razorgore_WarningD); -- Timex:AddSchedule("CT_RABoss_Razorgore_15", 258, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_16", 273, nil, nil, CT_RABoss_Razorgore_Warning); -- Timex:AddSchedule("CT_RABoss_Razorgore_17", 288, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_E", 303, nil, nil, CT_RABoss_Razorgore_WarningE); -- Timex:AddSchedule("CT_RABoss_Razorgore_19", 318, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_F", 333, nil, nil, CT_RABoss_Razorgore_WarningF); -- Timex:AddSchedule("CT_RABoss_Razorgore_21", 348, nil, nil, CT_RABoss_Razorgore_Warning); Timex:AddSchedule("CT_RABoss_Razorgore_G", 363, nil, nil, CT_RABoss_Razorgore_WarningG); end function CT_RABoss_Razorgore_StartWarnings() CT_RABoss_Razorgore_Warning(); Timex:AddSchedule("CT_RABoss_Razorgore_Spawns", 15, true, nil, CT_RABoss_Razorgore_Warning); end function CT_RABoss_Razorgore_Warning() CT_RABoss_Announce("*** Spawns in 2 seconds ***", CT_RABoss_Mods["Razorgore"]["announce"]); end function CT_RABoss_Razorgore_WarningA() CT_RABoss_Announce("*** Get into Position - Spawns in 5 seconds ***", CT_RABoss_Mods["Razorgore"]["announce"]); end function CT_RABoss_Razorgore_WarningB() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully 9 eggs down)", CT_RABoss_Mods["Razorgore"]["announceapproxprogress"]); end end function CT_RABoss_Razorgore_WarningC() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully 14 eggs down)", CT_RABoss_Mods["Razorgore"]["announceapproxprogress"]); end end function CT_RABoss_Razorgore_WarningD() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully 19 eggs down)", CT_RABoss_Mods["Razorgore"]["announceapproxprogress"]); end end function CT_RABoss_Razorgore_WarningE() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully 24 eggs down)", CT_RABoss_Mods["Razorgore"]["announceapproxprogress"]); end end function CT_RABoss_Razorgore_WarningF() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully 27 eggs down)", CT_RABoss_Mods["Razorgore"]["announceapproxprogress"]); end end function CT_RABoss_Razorgore_WarningG() if (CT_RABoss_Mods["Razorgore"]["displayapproxprogress"]) then CT_RABoss_Announce("(hopefully Razorgore up - 30 eggs down)", CT_RABoss_Mods["Razorgore"]["announce"]); end end function CT_RABoss_Razorgore_StopWarnings() CT_RABoss_Announce("Razorgore encounter timers reset"); DEFAULT_CHAT_FRAME:AddMessage("Razorgore encounter timers reset"); Timex:DeleteSchedule("CT_RABoss_Razorgore_A"); Timex:DeleteSchedule("CT_RABoss_Razorgore_B"); Timex:DeleteSchedule("CT_RABoss_Razorgore_C"); Timex:DeleteSchedule("CT_RABoss_Razorgore_D"); Timex:DeleteSchedule("CT_RABoss_Razorgore_E"); Timex:DeleteSchedule("CT_RABoss_Razorgore_F"); Timex:DeleteSchedule("CT_RABoss_Razorgore_G"); Timex:DeleteSchedule("CT_RABoss_Razorgore_WarningsStart"); Timex:DeleteSchedule("CT_RABoss_Razorgore_Spawns"); end -- Slash command to start the timers CT_RA_RegisterSlashCmd("/rabossrazorgorestart", "Starts the razorgore timers", 15, "RABOSSRAZORGORESTART", function(msg) CT_RABoss_Razorgore_StartEncounter(); end, "/rabrs"); -- Slash command to reset the timers CT_RA_RegisterSlashCmd("/rabossrazorgorereset", "Resets the razorgore timers", 15, "RABOSSRAZORGORERESET", function(msg) CT_RABoss_Razorgore_StopWarnings(); end, "/rabrr");