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.
136 lines
5.2 KiB
136 lines
5.2 KiB
local mod = DBM:NewMod(708, "DBM-Party-MoP", 5, 321)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20240623004247")
|
|
mod:SetCreatureID(61442, 61444, 61445)--61442 (Kuai the Brute), 61444 (Ming the Cunning), 61445 (Haiyan the Unstoppable)
|
|
mod:SetEncounterID(1442)
|
|
|
|
--http://www.wowpedia.org/Clan_Leaders_of_the_Mogu
|
|
mod:RegisterCombat("combat")
|
|
mod:RegisterKill("yell", L.Defeat)--Defeat off first line said after all are defeated.
|
|
mod:SetWipeTime(30)--Based on data, phase transitions are 10-16 seconds, 20 should be enough, but can raise if needed.
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 119946 123655 120201",
|
|
"SPELL_CAST_START 119922 119981 123654",
|
|
"INSTANCE_ENCOUNTER_ENGAGE_UNIT",
|
|
"UNIT_DIED"
|
|
)
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
local warnRavage = mod:NewTargetNoFilterAnnounce(119946, 3)--Mu'Shiba's Fixate attack
|
|
local warnWhirlingDervish = mod:NewSpellAnnounce(119981, 3)--Ming's Attack
|
|
local warnTraumaticBlow = mod:NewTargetNoFilterAnnounce(123655, 3, nil, "Healer")--Haiyan's Attack
|
|
local warnConflag = mod:NewTargetNoFilterAnnounce(120201, 3, nil, "Healer")--Haiyan's Attack
|
|
|
|
local specWarnShockwave = mod:NewSpecialWarningDodge(119922, nil, nil, nil, 1, 2)--Not sure if he always faced it toward tank, or did it blackhorn style, if it's blackhorn style this needs to be changed to a targetscan if possible
|
|
local specWarnLightningBolt = mod:NewSpecialWarningInterrupt(123654, false, nil, nil, 1, 2)
|
|
|
|
local timerRP = mod:NewCombatTimer(60)
|
|
local timerRavageCD = mod:NewCDTimer(20, 119946, nil, nil, nil, 3)
|
|
local timerShockwaveCD = mod:NewCDTimer(10.9, 119922, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
local timerWhirlingDervishCD= mod:NewCDTimer(22, 119981, nil, nil, nil, 3)
|
|
local timerTraumaticBlowCD = mod:NewCDTimer(17, 123655, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)--17-21sec variation
|
|
local timerConflagCD = mod:NewCDTimer(10, 120201, nil, nil, nil, 3)--10-22?
|
|
local timerMeteorCD = mod:NewNextTimer(55, 120195, nil, nil, nil, 3)--Assumed based on limited data
|
|
|
|
local shockwaveCD = 15
|
|
local seenAdds = {}
|
|
--local kuai = DBM:EJ_GetSectionInfo(6015)
|
|
--local ming = DBM:EJ_GetSectionInfo(6019)
|
|
--local haiyan = DBM:EJ_GetSectionInfo(6023)
|
|
|
|
function mod:OnCombatStart()
|
|
table.wipe(seenAdds)
|
|
--Initial timers started by INSTANCE_ENCOUNTER_ENGAGE_UNIT
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 119922 then
|
|
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
|
|
specWarnShockwave:Show()
|
|
specWarnShockwave:Play("shockwave")
|
|
end
|
|
timerShockwaveCD:Start(shockwaveCD)
|
|
elseif args.spellId == 119981 then
|
|
warnWhirlingDervish:Show()
|
|
timerWhirlingDervishCD:Start()
|
|
elseif args.spellId == 123654 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnLightningBolt:Show(args.sourceName)
|
|
specWarnLightningBolt:Play("kickcast")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 119946 then
|
|
warnRavage:Show(args.destName)
|
|
timerRavageCD:Start()
|
|
elseif args.spellId == 123655 then
|
|
warnTraumaticBlow:Show(args.destName)
|
|
timerTraumaticBlowCD:Start()
|
|
elseif args.spellId == 120201 then
|
|
warnConflag:Show(args.destName)
|
|
timerConflagCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
for i = 1, 5 do
|
|
local unitID = "boss"..i
|
|
local GUID = UnitGUID(unitID)
|
|
if GUID and not seenAdds[GUID] then
|
|
seenAdds[GUID] = true
|
|
local cid = self:GetCIDFromGUID(GUID)
|
|
if cid == 61442 then--Kuai
|
|
shockwaveCD = 15
|
|
timerWhirlingDervishCD:Cancel()
|
|
timerConflagCD:Cancel()
|
|
timerMeteorCD:Cancel()
|
|
timerTraumaticBlowCD:Cancel()
|
|
timerShockwaveCD:Start(17.2)
|
|
timerRavageCD:Start(21.6)
|
|
elseif cid == 61444 then--Ming
|
|
timerShockwaveCD:Cancel()
|
|
timerRavageCD:Cancel()
|
|
timerConflagCD:Cancel()
|
|
timerMeteorCD:Cancel()
|
|
timerTraumaticBlowCD:Cancel()
|
|
timerWhirlingDervishCD:Start(22)--Not confirmed through multiple pulls, just one
|
|
elseif cid == 61445 then--Haiyan
|
|
timerWhirlingDervishCD:Cancel()
|
|
timerShockwaveCD:Cancel()
|
|
timerRavageCD:Cancel()
|
|
timerConflagCD:Start()--Not confirmed through multiple pulls, just one
|
|
timerMeteorCD:Start(42)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 61453 then--Mu'Shiba, Kuai's Add
|
|
timerRavageCD:Cancel()
|
|
shockwaveCD = 10--Need more data to confirm this but appears to be case.
|
|
end
|
|
end
|
|
|
|
--"<2.94 18:23:24> [CHAT_MSG_MONSTER_YELL] Useless, all of you! Even the guards you give me in tribute can't keep these lesser beings from my palace.#Xin the Weaponmaster###Xin the Weaponmaster##0#0##0#946#nil#0#false#false#false#fals
|
|
--"<24.62 18:23:45> [ENCOUNTER_START] 1442#Trial of the King#2#5",
|
|
--"<24.66 18:23:45> [PLAYER_REGEN_DISABLED] +Entering combat!",
|
|
--"<27.17 18:23:48> [INSTANCE_ENCOUNTER_ENGAGE_UNIT] Fake Args:#boss1#true#true#true#Kuai the Brute#
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
if msg == L.Pull then
|
|
self:SendSync("firstPull")
|
|
end
|
|
end
|
|
|
|
function mod:OnSync(msg)
|
|
if msg == "firstPull" then
|
|
timerRP:Start(21.7)--24.2 until an actually attackable mob, but we'll use it as a combat timer for now
|
|
end
|
|
end
|
|
|