You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.8 KiB

local mod = DBM:NewMod("Gnoll", "DBM-DMF")
local L = mod:GetLocalizedStrings()
mod:SetRevision("20230526083434")
mod:RegisterEvents(
"SPELL_AURA_APPLIED 101612",
"SPELL_AURA_REMOVED 101612",
"UNIT_SPELLCAST_SUCCEEDED player",
"UNIT_POWER_UPDATE player"
)
mod.noStatistics = true
local warnGameOverQuest = mod:NewAnnounce("warnGameOverQuest", 2, 101612, nil, false)
local warnGameOverNoQuest = mod:NewAnnounce("warnGameOverNoQuest", 2, 101612, nil, false)
mod:AddBoolOption("warnGameOver", true, "announce")
local warnGnoll = mod:NewAnnounce("warnGnoll", 2, nil, false)
local specWarnHogger = mod:NewSpecialWarning("specWarnHogger")
local timerGame = mod:NewBuffActiveTimer(60, 101612, nil, nil, nil, 5, nil, nil, nil, 1, 5)
local gameEarnedPoints = 0
local gameMaxPoints = 0
function mod:SPELL_AURA_APPLIED(args)
if args.spellId == 101612 and args:IsPlayer() then
gameEarnedPoints = 0
gameMaxPoints = 0
timerGame:Start()
end
end
function mod:SPELL_AURA_REMOVED(args)
if args.spellId == 101612 and args:IsPlayer() then
timerGame:Cancel()
if self.Options.warnGameOver then
if gameEarnedPoints > 0 then
warnGameOverQuest:Show(gameEarnedPoints, gameMaxPoints)
else
warnGameOverNoQuest:Show(gameMaxPoints)
end
end
end
end
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, spellId)
if spellId == 102044 then--Hogger
gameMaxPoints = gameMaxPoints + 3
if self:AntiSpam(2, 1) then
specWarnHogger:Show()
end
elseif spellId == 102036 then--Gnoll
gameMaxPoints = gameMaxPoints + 1
warnGnoll:Show()
end
end
function mod:UNIT_POWER_UPDATE(_, type)
if type == "ALTERNATE" then
local playerPower = UnitPower("player", 10)
if playerPower > gameEarnedPoints then
gameEarnedPoints = playerPower
end
end
end