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.
424 lines
12 KiB
424 lines
12 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Mists of Tirna Scithe Trash", 2290)
|
|
if not mod then return end
|
|
mod.displayName = CL.trash
|
|
mod:RegisterEnableMob(
|
|
164926, -- Drust Boughbreaker
|
|
164921, -- Drust Harvester
|
|
164920, -- Drust Soulcleaver
|
|
163058, -- Mistveil Defender
|
|
173720, -- Mistveil Gorgegullet
|
|
166276, -- Mistveil Guardian
|
|
173655, -- Mistveil Matriarch
|
|
173714, -- Mistveil Nightblossom
|
|
166275, -- Mistveil Shaper
|
|
166301, -- Mistveil Stalker
|
|
166304, -- Mistveil Stinger
|
|
166299, -- Mistveil Tender
|
|
167113, -- Spinemaw Acidgullet
|
|
167111, -- Spinemaw Staghorn
|
|
164929 -- Tirnenn Villager
|
|
)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.drust_boughbreaker = "Drust Boughbreaker"
|
|
L.drust_harvester = "Drust Harvester"
|
|
L.drust_soulcleaver = "Drust Soulcleaver"
|
|
L.mistveil_defender = "Mistveil Defender"
|
|
L.mistveil_gorgegullet = "Mistveil Gorgegullet"
|
|
L.mistveil_guardian = "Mistveil Guardian"
|
|
L.mistveil_matriarch = "Mistveil Matriarch"
|
|
L.mistveil_nightblossom = "Mistveil Nightblossom"
|
|
L.mistveil_shaper = "Mistveil Shaper"
|
|
L.mistveil_stalker = "Mistveil Stalker"
|
|
L.mistveil_stinger = "Mistveil Stinger"
|
|
L.mistveil_tender = "Mistveil Tender"
|
|
L.spinemaw_acidgullet = "Spinemaw Acidgullet"
|
|
L.spinemaw_staghorn = "Spinemaw Staghorn"
|
|
L.tirnenn_villager = "Tirnenn Villager"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
-- Drust Boughbreaker
|
|
324909, -- Furious Thrashing
|
|
324923, -- Bramble Burst
|
|
-- Drust Harvester
|
|
322938, -- Harvest Essence
|
|
-- Drust Soulcleaver
|
|
{322569, "TANK"}, -- Hand of Thros
|
|
{322557, "DISPEL"}, -- Soul Split
|
|
-- Mistveil Defender
|
|
331718, -- Spear Flurry
|
|
-- Mistveil Gorgegullet
|
|
340304, -- Poisonous Secretions
|
|
340305, -- Crushing Leap
|
|
{340300, "TANK_HEALER"}, -- Tongue Lashing
|
|
-- Mistveil Guardian
|
|
331743, -- Bucking Rampage
|
|
-- Mistveil Matriarch
|
|
340189, -- Pool of Radiance
|
|
340160, -- Radiant Breath
|
|
{340208, "TANK_HEALER"}, -- Shred Armor
|
|
-- Mistveil Nightblossom
|
|
{340289, "TANK_HEALER"}, -- Triple Bite
|
|
{340279, "DISPEL"}, -- Poisonous Discharge
|
|
-- Mistveil Shaper
|
|
324776, -- Bramblethorn Coat
|
|
-- Mistveil Stalker
|
|
{324987, "FLASH"}, -- Mistveil Bite
|
|
-- Mistveil Stinger
|
|
{325224, "DISPEL"}, -- Anima Injection
|
|
-- Mistveil Tender
|
|
{324914, "DISPEL"}, -- Nourish the Forest
|
|
-- Spinemaw Acidgullet
|
|
{325418, "ME_ONLY", "SAY"}, -- Volatile Acid
|
|
-- Spinemaw Staghorn
|
|
340544, -- Stimulate Regeneration
|
|
{326046, "DISPEL"}, -- Stimulate Resistance
|
|
-- Tirnenn Villager
|
|
321968, -- Bewildering Pollen
|
|
{322486, "FLASH"}, -- Overgrowth
|
|
}, {
|
|
[324909] = L.drust_boughbreaker,
|
|
[322938] = L.drust_harvester,
|
|
[322569] = L.drust_soulcleaver,
|
|
[331718] = L.mistveil_defender,
|
|
[340304] = L.mistveil_gorgegullet,
|
|
[331743] = L.mistveil_guardian,
|
|
[340189] = L.mistveil_matriarch,
|
|
[340289] = L.mistveil_nightblossom,
|
|
[324776] = L.mistveil_shaper,
|
|
[324987] = L.mistveil_stalker,
|
|
[325224] = L.mistveil_stinger,
|
|
[324914] = L.mistveil_tender,
|
|
[325418] = L.spinemaw_acidgullet,
|
|
[340544] = L.spinemaw_staghorn,
|
|
[321968] = L.tirnenn_villager,
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
-- Drust Boughbreaker
|
|
self:Log("SPELL_CAST_START", "FuriousThrashing", 324909)
|
|
self:Log("SPELL_CAST_START", "BrambleBurst", 324923)
|
|
-- Drust Harvester
|
|
self:Log("SPELL_CAST_SUCCESS", "HarvestEssence", 322938)
|
|
-- Drust Soulcleaver
|
|
self:Log("SPELL_AURA_APPLIED", "HandOfThrosApplied", 322569)
|
|
self:Log("SPELL_CAST_START", "SoulSplit", 322557)
|
|
self:Log("SPELL_AURA_APPLIED", "SoulSplitApplied", 322557)
|
|
self:Log("SPELL_AURA_APPLIED_DOSE", "SoulSplitApplied", 322557)
|
|
-- Mistveil Defender
|
|
self:Log("SPELL_CAST_START", "SpearFlurry", 331718)
|
|
-- Mistveil Gorgegullet
|
|
self:Log("SPELL_CAST_START", "PoisonousSecretions", 340304)
|
|
self:Log("SPELL_CAST_SUCCESS", "CrushingLeap", 340305)
|
|
self:Log("SPELL_CAST_START", "TongueLashing", 340300)
|
|
self:Death("MistveilGorgegulletDeath", 173720)
|
|
-- Mistveil Guardian
|
|
self:Log("SPELL_CAST_START", "BuckingRampage", 331743)
|
|
-- Mistveil Matriarch
|
|
self:Log("SPELL_CAST_START", "PoolOfRadiance", 340189)
|
|
self:Log("SPELL_CAST_START", "RadiantBreath", 340160)
|
|
self:Log("SPELL_CAST_START", "ShredArmor", 340208)
|
|
self:Death("MistveilMatriarchDeath", 173655)
|
|
-- Mistveil Nightblossom
|
|
self:Log("SPELL_CAST_START", "TripleBite", 340289)
|
|
self:Log("SPELL_CAST_SUCCESS", "PoisonousDischarge", 340279)
|
|
self:Log("SPELL_AURA_APPLIED", "PoisonousDischargeApplied", 340283)
|
|
-- Mistveil Shaper
|
|
self:Log("SPELL_CAST_START", "BramblethornCoat", 324776)
|
|
-- Mistveil Stalker
|
|
self:Log("SPELL_CAST_START", "MistveilBite", 324987)
|
|
-- Mistveil Stinger
|
|
self:Log("SPELL_AURA_APPLIED", "AnimaInjectionApplied", 325224)
|
|
-- Mistveil Tender
|
|
self:Log("SPELL_CAST_START", "NourishTheForest", 324914)
|
|
self:Log("SPELL_CAST_SUCCESS", "NourishTheForestSuccess", 324914)
|
|
-- Spinemaw Acidgullet
|
|
self:Log("SPELL_AURA_APPLIED", "VolatileAcidApplied", 325418)
|
|
-- Spinemaw Staghorn
|
|
self:Log("SPELL_CAST_SUCCESS", "StimulateRegeneration", 340544)
|
|
self:Log("SPELL_CAST_START", "StimulateResistance", 326046)
|
|
self:Log("SPELL_CAST_SUCCESS", "StimulateResistanceSuccess", 326046)
|
|
-- Tirnenn Villager
|
|
self:Log("SPELL_CAST_START", "BewilderingPollen", 321968)
|
|
self:Log("SPELL_CAST_SUCCESS", "Overgrowth", 322486)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
-- Drust Boughbreaker
|
|
|
|
function mod:FuriousThrashing(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:BrambleBurst(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
-- Drust Harvester
|
|
|
|
function mod:HarvestEssence(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
-- Drust Soulcleaver
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:HandOfThrosApplied(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
local unit = self:GetUnitIdByGUID(args.destGUID)
|
|
if unit and UnitAffectingCombat(unit) then
|
|
prev = t
|
|
self:Message(args.spellId, "red", CL.on:format(args.spellName, args.destName))
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:SoulSplit(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 and self:Tank() then
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if unit and UnitAffectingCombat(unit) then
|
|
prev = t
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SoulSplitApplied(args)
|
|
-- Some mobs fight each other before being engaged by players.
|
|
-- Only show messages when the target is a player controlled unit.
|
|
if self:Dispeller("magic", nil, args.spellId) and self:Player(args.destFlags) then
|
|
self:StackMessage(args.spellId, args.destName, args.amount, "yellow")
|
|
self:PlaySound(args.spellId, "info", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
-- Mistveil Defender
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:SpearFlurry(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if unit and UnitAffectingCombat(unit) then
|
|
prev = t
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Mistveil Gorgegullet
|
|
|
|
function mod:PoisonousSecretions(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:CrushingLeap(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:TongueLashing(args)
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alert")
|
|
self:CDBar(args.spellId, 9)
|
|
end
|
|
|
|
function mod:MistveilGorgegulletDeath(args)
|
|
self:StopBar(340300) -- Tongue Lashing
|
|
end
|
|
|
|
-- Mistveil Guardian
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:BuckingRampage(args)
|
|
local t = args.time
|
|
if t-prev > 1.5 then
|
|
prev = t
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Mistveil Matriarch
|
|
|
|
function mod:PoolOfRadiance(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "info")
|
|
end
|
|
|
|
function mod:RadiantBreath(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
function mod:ShredArmor(args)
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alert")
|
|
self:CDBar(args.spellId, 16)
|
|
end
|
|
|
|
function mod:MistveilMatriarchDeath(args)
|
|
self:StopBar(340208) -- Shred Armor
|
|
end
|
|
|
|
-- Mistveil Nightblossom
|
|
|
|
function mod:TripleBite(args)
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alert")
|
|
self:CDBar(args.spellId, 12.1)
|
|
end
|
|
|
|
function mod:PoisonousDischarge(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
do
|
|
local playerList = mod:NewTargetList()
|
|
function mod:PoisonousDischargeApplied(args)
|
|
if self:Dispeller("poison", nil, 340279) then
|
|
playerList[#playerList+1] = args.destName
|
|
self:TargetsMessage(340279, "yellow", playerList)
|
|
self:PlaySound(340279, "info", nil, playerList)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:MistveilNightblossomDeath(args)
|
|
self:StopBar(340289) -- Triple Bite
|
|
end
|
|
|
|
-- Mistveil Shaper
|
|
|
|
function mod:BramblethornCoat(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
-- Mistveil Stalker
|
|
|
|
do
|
|
local function printTarget(self, name, guid)
|
|
self:TargetMessage(324987, "yellow", name)
|
|
self:PlaySound(324987, "alert", nil, name)
|
|
if self:Me(guid) then
|
|
self:Flash(324987)
|
|
end
|
|
end
|
|
|
|
function mod:MistveilBite(args)
|
|
self:GetUnitTarget(printTarget, 0.4, args.sourceGUID)
|
|
end
|
|
end
|
|
|
|
-- Mistveil Stinger
|
|
|
|
function mod:AnimaInjectionApplied(args)
|
|
if self:Dispeller("magic") then
|
|
self:TargetMessage(args.spellId, "yellow", args.destName)
|
|
self:PlaySound(args.spellId, "info", nil, args.destName)
|
|
end
|
|
end
|
|
|
|
-- Mistveil Tender
|
|
|
|
function mod:NourishTheForest(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:NourishTheForestSuccess(args)
|
|
if self:Dispeller("magic", true, args.spellId) then
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
end
|
|
|
|
-- Spinemaw Acidgullet
|
|
|
|
function mod:VolatileAcidApplied(args)
|
|
self:TargetMessage(args.spellId, "orange", args.destName)
|
|
self:PlaySound(args.spellId, "alert", nil, args.destName)
|
|
if self:Me(args.destGUID) then
|
|
self:Say(args.spellId)
|
|
end
|
|
end
|
|
|
|
-- Spinemaw Staghorn
|
|
|
|
function mod:StimulateRegeneration(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:StimulateResistance(args)
|
|
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:StimulateResistanceSuccess(args)
|
|
if self:Dispeller("magic", true, args.spellId) then
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "warning")
|
|
end
|
|
end
|
|
|
|
-- Tirnenn Villager
|
|
|
|
function mod:BewilderingPollen(args)
|
|
self:Message(args.spellId, "red")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
|
|
do
|
|
local function printTarget(self, name, guid)
|
|
self:TargetMessage(322486, "yellow", name)
|
|
self:PlaySound(322486, "alert", nil, name)
|
|
if self:Me(guid) then
|
|
self:Flash(322486)
|
|
end
|
|
end
|
|
|
|
function mod:Overgrowth(args)
|
|
self:GetUnitTarget(printTarget, 0.4, args.sourceGUID)
|
|
end
|
|
end
|
|
|