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.
148 lines
4.1 KiB
148 lines
4.1 KiB
|
4 years ago
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Module Declaration
|
||
|
|
--
|
||
|
|
|
||
|
|
local mod, CL = BigWigs:NewBoss("Naltira", 1516, 1500)
|
||
|
|
if not mod then return end
|
||
|
|
mod:RegisterEnableMob(98207, 98759) -- Naltira, Vicious Manafang
|
||
|
|
mod.engageId = 1826
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Locals
|
||
|
|
--
|
||
|
|
|
||
|
|
local webCount = 1
|
||
|
|
local blinkCount = 1
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Localization
|
||
|
|
--
|
||
|
|
|
||
|
|
local L = mod:GetLocale()
|
||
|
|
if L then
|
||
|
|
L.vicious_manafang = -13765
|
||
|
|
L.vicious_manafang_desc = -13766 -- Devour
|
||
|
|
L.vicious_manafang_icon = "inv_misc_monsterspidercarapace_01"
|
||
|
|
end
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Initialization
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:GetOptions()
|
||
|
|
return {
|
||
|
|
-12687, -- Blink Strikes
|
||
|
|
{200040, "FLASH"}, -- Nether Venom
|
||
|
|
{200284, "PROXIMITY"}, -- Tangled Web
|
||
|
|
-- "vicious_manafang", -- Vicious Manafang
|
||
|
|
211543, -- Devour
|
||
|
|
}, {
|
||
|
|
[211543] = L.vicious_manafang,
|
||
|
|
}
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnBossEnable()
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "NetherVenom", 200040)
|
||
|
|
self:Log("SPELL_PERIODIC_DAMAGE", "NetherVenomDamage", 200040)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "TangledWebApplied", 200284)
|
||
|
|
self:Log("SPELL_AURA_REMOVED", "TangledWebRemoved", 200284)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "Devour", 211543)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnEngage()
|
||
|
|
webCount = 1
|
||
|
|
blinkCount = 1
|
||
|
|
|
||
|
|
self:CDBar(-12687, 16) -- Blink Strikes
|
||
|
|
-- self:CDBar("vicious_manafang", 26, L.vicious_manafang, L.vicious_manafang_icon) -- Vicious Manafang
|
||
|
|
-- self:ScheduleTimer("ViciousManafang", 26)
|
||
|
|
self:CDBar(200040, 26) -- Nether Venom
|
||
|
|
self:CDBar(200284, 35) -- Tangled Web
|
||
|
|
|
||
|
|
-- no CLEU event for Blink Strikes
|
||
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", "BlinkStrikes", "boss1")
|
||
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_CHANNEL_START", "BlinkStrikes", "boss1")
|
||
|
|
end
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Event Handlers
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:BlinkStrikes(_, _, _, spellId)
|
||
|
|
if spellId == 199809 then -- UNIT_SPELLCAST_SUCCEEDED
|
||
|
|
blinkCount = 1
|
||
|
|
self:Bar(-12687, 30)
|
||
|
|
elseif spellId == 199811 then -- UNIT_SPELLCAST_CHANNEL_START
|
||
|
|
local target = self:UnitName("boss1target")
|
||
|
|
self:TargetMessageOld(-12687, target, "orange", "alarm", CL.count:format(self:SpellName(spellId), blinkCount))
|
||
|
|
blinkCount = blinkCount + 1
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- function mod:ViciousManafang()
|
||
|
|
-- self:MessageOld("vicious_manafang", "yellow", self:Tank() and "info", L.spawned:format(L.vicious_manafang), false)
|
||
|
|
-- self:Bar("vicious_manafang", 20, L.vicious_manafang, L.vicious_manafang_icon)
|
||
|
|
-- self:ScheduleTimer("ViciousManafang", 20)
|
||
|
|
-- end
|
||
|
|
|
||
|
|
function mod:Devour(args)
|
||
|
|
self:TargetMessageOld(args.spellId, args.destName, "red", "info", nil, nil, true)
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local targets, isOnMe = {}, nil
|
||
|
|
local function printTarget(self, spellId)
|
||
|
|
if isOnMe then
|
||
|
|
self:OpenProximity(spellId, 30, targets)
|
||
|
|
end
|
||
|
|
self:TargetMessageOld(spellId, self:ColorName(targets), "yellow", "warning")
|
||
|
|
isOnMe = nil
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:TangledWebApplied(args)
|
||
|
|
targets[#targets+1] = args.destName
|
||
|
|
if #targets == 1 then
|
||
|
|
self:ScheduleTimer(printTarget, 0.1, self, args.spellId)
|
||
|
|
self:CDBar(args.spellId, webCount == 1 and 26 or 21)
|
||
|
|
webCount = webCount + 1
|
||
|
|
end
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
isOnMe = true
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:TangledWebRemoved(args)
|
||
|
|
if self:Me(args.destName) then
|
||
|
|
self:MessageOld(args.spellId, "green", nil, CL.removed:format(args.spellName))
|
||
|
|
self:CloseProximity(args.spellId)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:NetherVenom(args)
|
||
|
|
local t = GetTime()
|
||
|
|
if t-prev > 5 then
|
||
|
|
prev = t
|
||
|
|
self:MessageOld(args.spellId, "orange")
|
||
|
|
self:CDBar(args.spellId, 30)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:NetherVenomDamage(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
local t = GetTime()
|
||
|
|
if t-prev > 2 then
|
||
|
|
prev = t
|
||
|
|
self:Flash(args.spellId)
|
||
|
|
self:MessageOld(args.spellId, "blue", "alarm", CL.underyou:format(args.spellName))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|