dc8afd6584
Co-authored-by: Szyler <Szyler@Szyler.com>
71 lines
2.0 KiB
Lua
71 lines
2.0 KiB
Lua
local mod = DBM:NewMod("PT", "DBM-Party-BC", 12)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 147 $"):sub(12, -3))
|
|
|
|
mod:RegisterEvents(
|
|
"UPDATE_WORLD_STATES",
|
|
"UNIT_DIED",
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
mod:RemoveOption("HealthFrame")
|
|
|
|
-- Portals
|
|
local warnWavePortalSoon = mod:NewAnnounce("WarnWavePortalSoon", 2, 57687)
|
|
local warnWavePortal = mod:NewAnnounce("WarnWavePortal", 3, 57687)
|
|
local warnBossPortal = mod:NewAnnounce("WarnBossPortal", 4, 33341)
|
|
local timerNextPortal = mod:NewTimer(120, "TimerNextPortal", 57687)
|
|
|
|
--mod:AddBoolOption("ShowAllPortalTimers", false, "timer")
|
|
|
|
local lastPortal = 0
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 17879 then
|
|
timerNextPortal:Start(40, lastPortal + 1)
|
|
warnWavePortalSoon:Schedule(35)
|
|
elseif cid == 17880 then
|
|
timerNextPortal:Start(40, lastPortal + 1)
|
|
warnWavePortalSoon:Schedule(35)
|
|
end
|
|
end
|
|
|
|
function mod:UPDATE_WORLD_STATES()
|
|
local text = select(3, GetWorldStateUIInfo(2))
|
|
if not text then return end
|
|
local _, _, currentPortal = string.find(text, L.PortalCheck)
|
|
if not currentPortal then
|
|
currentPortal = 0
|
|
end
|
|
currentPortal = tonumber(currentPortal)
|
|
lastPortal = tonumber(lastPortal)
|
|
if currentPortal > lastPortal then
|
|
warnWavePortalSoon:Cancel()
|
|
timerNextPortal:Cancel()
|
|
if currentPortal == 6 or currentPortal == 12 or currentPortal == 18 then
|
|
warnBossPortal:Show()
|
|
else
|
|
warnWavePortal:Show(currentPortal)
|
|
--[[ if self.Options.ShowAllPortalTimers then
|
|
timerNextPortal:Start(122, currentPortal + 1)--requires complete overhaul I haven't patience to do.
|
|
warnWavePortalSoon:Schedule(112)--because portals spawn faster and faster each time.
|
|
end--]]
|
|
end
|
|
lastPortal = currentPortal
|
|
elseif currentPortal < lastPortal then
|
|
lastPortal = 0
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
if msg == L.Shielddown or msg:find(L.Shielddown) then
|
|
self:SendSync("Wipe")
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
warnWavePortalSoon:Cancel()
|
|
timerNextPortal:Cancel()
|
|
end |