Files
coa-dbm/DBM-ZulAman/Malacrass.lua
T
Szyler 5b3b160e21 5.16 update (#1)
Co-authored-by: Szyler <Szyler@Szyler.com>
2022-12-01 14:16:16 -07:00

214 lines
8.7 KiB
Lua

local mod = DBM:NewMod("Malacrass", "DBM-ZulAman")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 5015 $"):sub(12, -3))
mod:SetCreatureID(24239)
mod:RegisterCombat("combat_yell", L.YellPull)
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_CAST_START",
"SPELL_CAST_SUCCESS"
-- ,"SPELL_SUMMON"
)
--TODO, GTFO for standing in shit
local warnSiphon = mod:NewTargetAnnounce(2136107, 3) --2136107,
local warnBoltSoon = mod:NewPreWarnAnnounce(2136100, 5, 3) --2136100, 2136101, 2136102, 2136103, 2136104
local warnHeal1 = mod:NewCastAnnounce(2136150, 3)
local warnHeal2 = mod:NewCastAnnounce(2136156, 3)
local warnHeal3 = mod:NewCastAnnounce(43431, 3)
local warnHeal4 = mod:NewTargetAnnounce(43421, 3)
local warnPatch = mod:NewSpellAnnounce(43429, 3)
local specWarnBolt = mod:NewSpecialWarningSpell(2136100)
local specWarnHeal = mod:NewSpecialWarning("Interrupt Heal!")--#NewInterruptAnnounce(43548)
local specWarnBlindingLight = mod:NewSpecialWarning("Look Away!")
-- local specWarnHeal2 = mod:NewSpecialWarning("Interrupt Heal!")--mod:NewInterruptAnnounce(43451)
-- local specWarnHeal3 = mod:NewSpecialWarning("Interrupt Heal!")--mod:NewInterruptAnnounce(43431)
-- local specWarnHeal4 = mod:NewSpecialWarning("Dispel!")--mod:NewSpecialWarningDispel(43421)
-- local specWarnTotem = mod:NewSpecialWarning("Switch targets!")--mod:NewSpecialWarningSwitch(43436)
local timerSiphon = mod:NewTargetTimer(30, 2136107)
local timerNextBolt = mod:NewNextTimer(50, 2136100)
local timerBolt = mod:NewCastTimer(10, 2136100)
local timerPatch = mod:NewCastTimer(20, 43429)
local timerNextDrain = mod:NewNextTimer(60, 2136100)
local warnDruidSoul = mod:NewSpecialWarning("Druid Soul Absorbed")
local timerNextTranquility = mod:NewNextTimer(5, 2136126)
local timerCastTranquility = mod:NewCastTimer(10, 2136126)
local warnHunterSoul = mod:NewSpecialWarning("Hunter Soul Absorbed")
local timerNextMultiShot = mod:NewNextTimer(5, 2136127)
local timerNextFeign = mod:NewNextTimer(15, 2136128)
local timerNextExplosiveTrap = mod:NewNextTimer(20, 2136131) --2136129, 2136130, 2136131, 2136132, 2136133, 2136134
local timerNextBestialWrath = mod:NewNextTimer(25, 2136135) --2136135
local timerBestialWrath = mod:NewTargetTimer(10, 2136135)
local warnMageSoul = mod:NewSpecialWarning("Mage Soul Absorbed")
local timerNextRuneOfPower = mod:NewNextTimer(5, 2136136) --2136136
local timerRuneOfPower = mod:NewTargetTimer(6, 2136136) --2136136
local timerRuneOfPowerduration = mod:NewTimer(10, "Rune of Power duration", 2136136)
local timerNextBlizzard = mod:NewNextTimer(15, 2136137) --2136137, 2136138, 2136139, 2136140
local timerNextLivingBomb = mod:NewNextTimer(25, 2136141) --Dot: 2136141, 2136142, 2136143, 2136144, Explosion damage: 2136145, 2136146, 2136147, 2136148
local timerLivingBomb = mod:NewTargetTimer(12, 2136141) --2136141
local warnPaladinSoul = mod:NewSpecialWarning("Paladin Soul Absorbed")
local timerNextBlindingLight = mod:NewNextTimer(5, 2136155)
local timerCastBlindingLight = mod:NewCastTimer(2, 2136155)
local timerNextConsecration = mod:NewNextTimer(15, 2136151) --2136151, #2136152, #2136153, #2136154
local timerNextDivineShield = mod:NewNextTimer(25, 2136149)
local timerCastHearthstone = mod:NewCastTimer(6, 2136150)
local warnPriestSoul = mod:NewSpecialWarning("Priest Soul Absorbed")
local timerNextDivinePrayer = mod:NewNextTimer(5, 2136156)
local timerCastDivinePrayer = mod:NewCastTimer(4, 2136156)
local timerNextDomination = mod:NewNextTimer(15, 2136157) --2136157, 2136158
local timerNextManaBurn = mod:NewNextTimer(25, 2136159) --2136159, 2136160, 2136161, 2136162
local timerDomination = mod:NewTargetTimer(10, 2136157)
local warnRogueSoul = mod:NewSpecialWarning("Rogue Soul Absorbed")
local timerNextFanofKnives = mod:NewNextTimer(5, 2136164) --2136163, 2136164
local timerNextSmokeBomb = mod:NewNextTimer(15, 2136165) --2136165, 2136166
local timerNextDismantle = mod:NewNextTimer(25, 2136167)
local timerDismantle = mod:NewTargetTimer(6, 2136167)
local warnShamanSoul = mod:NewSpecialWarning("Shaman Soul Absorbed")
local timerNextEarthQuake = mod:NewNextTimer(5, 2136168) --2136168, 2136169, 2136170, 2136171
local timerNextThunderStorm = mod:NewNextTimer(15, 2136172) --2136172, 2136173, 2136174, 2136175
local timerNextChainHeal = mod:NewNextTimer(25, 2136176) --2136176
local timerCastChainHeal = mod:NewCastTimer(3, 2136176)
local warnWarlockSoul = mod:NewSpecialWarning("Warlock Soul Absorbed")
local timerNextCurseOfDoom = mod:NewNextTimer(5, 2136177) --2136177, 2136178, 2136179, 2136180
local timerCurseOfDoom = mod:NewTargetTimer(15, 2136177)
local timerNextRainofFire = mod:NewNextTimer(15, 2136186) --2136186, 2136187, 2136188, 2136189
local timerNextHellfire = mod:NewNextTimer(25, 2136181) --2136181, 2136182, 2136183, 2136184, 2136185
local specWarnRainofFire = mod:NewSpecialWarningRun(2136182)
local specWarnHellfire = mod:NewSpecialWarningRun(2136186)
local warnWarriorSoul = mod:NewSpecialWarning("Warrior Soul Absorbed")
local timerNextSpellReflect = mod:NewNextTimer(5, 2136190) --2136190
local timerNextHeroicLeap = mod:NewNextTimer(15, 2136191) --2136191, 2136192
local timerNextColossusSmash = mod:NewNextTimer(25, 2136193) --2136193
local timerColossusSmash = mod:NewTargetTimer(6, 2136193) --2136193
local timerSpellReflect = mod:NewTargetTimer(6, 2136190) --2136190
function mod:OnCombatStart(delay)
timerNextBolt:Start(10)
warnBoltSoon:Schedule(5)
timerNextDrain:Start(20)
end
function mod:SPELL_AURA_APPLIED(args)
-- if args:IsSpellID(2136107) then -- This spams everyone, don't add
-- warnSiphon:Show(args.destName)
-- timerSiphon:Show(args.destName)
if args:IsSpellID(2136114) then
warnDruidSoul:Show()
timerNextTranquility:Start()
elseif args:IsSpellID(2136115) then
warnHunterSoul:Show()
timerNextMultiShot:Start()
timerNextFeign:Start()
timerNextExplosiveTrap:Start()
timerNextBestialWrath:Start()
elseif args:IsSpellID(2136135) then
timerBestialWrath:Show(args.destName)
elseif args:IsSpellID(2136116) then
warnMageSoul:Show()
timerNextRuneOfPower:Start()
timerNextBlizzard:Start()
timerNextLivingBomb:Start()
elseif args:IsSpellID(2136136) and args.destName == "Malacrass" then
timerRuneOfPower:Show(args.destName)
timerRuneOfPowerduration:Start()
elseif args:IsSpellID(2136141) then
timerLivingBomb:Show(args.destName)
elseif args:IsSpellID(2136137, 2136138, 2136139, 2136140) then
specWarnRainofFire:Show()
elseif args:IsSpellID(2136117) then
warnPaladinSoul:Show()
timerNextBlindingLight:Start()
timerNextConsecration:Start()
timerNextDivineShield:Start()
elseif args:IsSpellID(2136118) then
warnPriestSoul:Show()
timerNextDivinePrayer:Start()
timerNextDomination:Start()
timerNextManaBurn:Start()
elseif args:IsSpellID(2136157) then
timerDomination:Show()
elseif args:IsSpellID(2136119) then
warnRogueSoul:Show()
timerNextFanofKnives:Start()
timerNextSmokeBomb:Start()
timerNextDismantle:Start()
elseif args:IsSpellID(2136167) then
timerDismantle:Show(args.destName)
elseif args:IsSpellID(2136120) then
warnShamanSoul:Show()
timerNextEarthQuake:Start()
timerNextThunderStorm:Start()
timerNextChainHeal:Start()
elseif args:IsSpellID(2136121) then
warnWarlockSoul:Show()
timerNextCurseOfDoom:Start()
timerNextHellfire:Start()
timerNextRainofFire:Start()
elseif args:IsSpellID(2136177, 2136178, 2136179, 2136180) then
timerCurseOfDoom:Show(args.destName)
elseif args:IsSpellID(2136186, 2136187, 2136188, 2136189) then
specWarnRainofFire:Show()
elseif args:IsSpellID(2136182, 2136183, 2136184, 2136185) then
specWarnHellfire:Show()
elseif args:IsSpellID(2136122) then
warnWarriorSoul:Show()
timerNextSpellReflect:Start()
timerNextHeroicLeap:Start()
timerNextColossusSmash:Start()
elseif args:IsSpellID(2136190) then
timerSpellReflect:Show(args.destName)
elseif args:IsSpellID(2136193) then
timerColossusSmash:Show(args.destName)
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2136150) then
timerCastHearthstone:Start()
specWarnHeal:Show()
elseif args:IsSpellID(2136156) then
timerCastDivinePrayer:Start()
specWarnHeal:Show()
elseif args:IsSpellID(2136126) then
timerCastTranquility:Start()
specWarnHeal:Show()
elseif args:IsSpellID(2136176) then
timerCastChainHeal:Start()
specWarnHeal:Show()
elseif args:IsSpellID(2136155) then
timerCastBlindingLight:Start()
specWarnBlindingLight:Show()
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(2136100) then --2136101, 2136102, 2136103, 2136104
specWarnBolt:Show()
warnBoltSoon:Schedule(35)
timerBolt:Start()
timerNextBolt:Start()
timerNextDrain:Schedule(10)
end
end
-- function mod:SPELL_SUMMON(args)
-- if args:IsSpellID(43436) then
-- specWarnTotem:Show()
-- end
-- end