Skip to content

Commit

Permalink
VanillaNaxx-Kel'Thuzad: rework phasing, timers and features
Browse files Browse the repository at this point in the history
  • Loading branch information
Zidras committed Jul 15, 2024
1 parent 8357f26 commit 7a3bec1
Show file tree
Hide file tree
Showing 11 changed files with 463 additions and 22 deletions.
1 change: 1 addition & 0 deletions DBM-VanillaNaxx/DBM-VanillaNaxx.toc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ localization.ru.lua
localization.tw.lua
localization.kr.lua
localization.es.lua
localization.mx.lua
localization.cn.lua

ArachnidQuarter\Anub'Rekhan.lua
Expand Down
54 changes: 33 additions & 21 deletions DBM-VanillaNaxx/FrostwyrmLair/Kel'Thuzad.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local select, tContains = select, tContains
local PickupInventoryItem, PutItemInBackpack, UseEquipmentSet, CancelUnitBuff = PickupInventoryItem, PutItemInBackpack, UseEquipmentSet, CancelUnitBuff
local UnitClass = UnitClass

mod:SetRevision("20240701222429")
mod:SetRevision("20240715125500")
mod:SetCreatureID(15990)
mod:SetModelID("creature/lich/lich.m2")
mod:SetMinCombatTime(60)
Expand All @@ -17,6 +17,7 @@ mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 27808 27819 28410",
"SPELL_AURA_REMOVED 28410",
"SPELL_CAST_SUCCESS 27810 27819 27808 28410",
"CHAT_MSG_MONSTER_YELL",
"UNIT_HEALTH boss1"
)

Expand All @@ -27,6 +28,7 @@ local warnFissure = mod:NewTargetNoFilterAnnounce(27810, 4)
local warnMana = mod:NewTargetAnnounce(27819, 2)
local warnChainsTargets = mod:NewTargetNoFilterAnnounce(28410, 4)
local warnMindControlSoon = mod:NewSoonAnnounce(28410, 4)
local warnPhase3 = mod:NewPhaseAnnounce(3, 3)

local specwarnP2Soon = mod:NewSpecialWarning("specwarnP2Soon")
local specWarnManaBomb = mod:NewSpecialWarningMoveAway(27819, nil, nil, nil, 1, 2)
Expand All @@ -36,15 +38,16 @@ local specWarnBlast = mod:NewSpecialWarningTarget(27808, "Healer", nil, nil, 1
local specWarnFissureYou = mod:NewSpecialWarningYou(27810, nil, nil, nil, 3, 2)
local specWarnFissureClose = mod:NewSpecialWarningClose(27810, nil, nil, nil, 2, 8)
local yellFissure = mod:NewYellMe(27810)
local specWarnAddsGuardians = mod:NewSpecialWarningAdds(29897, "-Healer", nil, nil, 1, 2) -- "Guardians of Icecrown. There's no spellID for this, so used something close: Guardians of Icecrown Passive"

local blastTimer = mod:NewBuffActiveTimer(4, 27808, nil, nil, nil, 5, nil, DBM_COMMON_L.HEALER_ICON)
local timerManaBomb = mod:NewCDTimer(20, 27819, nil, nil, nil, 3)--20-50
local timerManaBomb = mod:NewCDTimer(20, 27819, nil, nil, nil, 3) -- "Detonate Mana-27819-npc:15990-3 = pull:331.16/[Stage 1/0.00, Stage 2/310.52] 20.64/331.16, 19.99, 20.00, 20.91, 20.02, 20.00, 20.15"
local timerFrostBlast = mod:NewCDTimer(30, 27808, nil, nil, nil, 3, nil, DBM_COMMON_L.DEADLY_ICON)--40-46 (retail 40.1)
local timerFissure = mod:NewTargetTimer(5, 27810, nil, nil, 2, 3)
local timerFissureCD = mod:NewCDTimer(11.5, 27810, nil, nil, nil, 3, nil, nil, true) -- Huge variance! Added "keep" arg (25m Lordaeron 2022/10/16) - Stage 2/*, 22.8, 41.2, 77.5, 11.5
local timerFissureCD = mod:NewCDTimer(10, 27810, nil, nil, nil, 3) -- ~1s variance [9.99-11.13]. (Onyxia PTR: [2024-07-13]@[15:18:40]) - "Shadow Fissure-27810-npc:15990-3 = pull:320.05/[Stage 1/0.00, Stage 2/310.52] 9.53/320.05, 11.13, 9.99, 10.03, 9.99, 10.03, 10.01, 10.85, 10.99, 10.03, 9.99, 10.05, 10.01, 10.03"
local timerMC = mod:NewBuffActiveTimer(20, 28410, nil, nil, nil, 3)
local timerMCCD = mod:NewCDTimer(90, 28410, nil, nil, nil, 3)--actually 60 second cdish but its easier to do it this way for the first one.
local timerPhase2 = mod:NewTimer(228, "TimerPhase2", nil, nil, nil, 6) -- (25m Lordaeron 2022/10/16) - 228.0
local timerPhase2 = mod:NewTimer(310, "TimerPhase2", nil, nil, nil, 6) -- YELL-YELL. P2 script starts on Yell or Emote, and IEEU fires 0.55s after. (Onyxia PTR: [2024-07-13]@[15:18:40]) - 310

mod:AddRangeFrameOption(12, 27819)
mod:AddSetIconOption("SetIconOnMC", 28410, true, false, {1, 2, 3})
Expand All @@ -67,8 +70,8 @@ local function selfWarnMissingSet()
end

mod:AddMiscLine(L.EqUneqLineDescription)
mod:AddBoolOption("EqUneqWeaponsKT", mod:IsDps(), nil, selfWarnMissingSet)
mod:AddBoolOption("EqUneqWeaponsKT2")
mod:AddBoolOption("EqUneqWeaponsKT", false)
mod:AddBoolOption("EqUneqWeaponsKT2", mod:IsDps(), nil, selfWarnMissingSet)

local function selfSchedWarnMissingSet(self)
if self.Options.EqUneqWeaponsKT and not self:IsEquipmentSetAvailable("pve") then
Expand Down Expand Up @@ -226,18 +229,16 @@ local function StartPhase2(self)
self:SetStage(2)
warnPhase2:Show()
warnPhase2:Play("ptwo")
if self:IsDifficulty("normal25") then
timerMCCD:Start(31)
warnMindControlSoon:Schedule(26)
if self.Options.EqUneqWeaponsKT and self:IsDps() then
self:Schedule(60, UnWKT, self)
self:Schedule(60.5, UnWKT, self)
end
end
if self.Options.RangeFrame then
DBM.RangeCheck:Show(12)
timerMCCD:Start(31)
warnMindControlSoon:Schedule(26)
if self.Options.EqUneqWeaponsKT and self:IsDps() then
self:Schedule(60, UnWKT, self)
self:Schedule(60.5, UnWKT, self)
end
end
if self.Options.RangeFrame then
DBM.RangeCheck:Show(12)
end
end

function mod:OnCombatStart(delay)
Expand All @@ -246,12 +247,12 @@ function mod:OnCombatStart(delay)
table.wipe(frostBlastTargets)
self.vb.warnedAdds = false
self.vb.MCIcon = 1
specwarnP2Soon:Schedule(218-delay)
specwarnP2Soon:Schedule(300-delay)
timerPhase2:Start()
-- self:Schedule(226, StartPhase2, self)
self:RegisterShortTermEvents(
--[[self:RegisterShortTermEvents(
"INSTANCE_ENCOUNTER_ENGAGE_UNIT"
)
)]]
end

function mod:OnCombatEnd()
Expand Down Expand Up @@ -359,12 +360,23 @@ function mod:SPELL_AURA_REMOVED(args)
end
end

function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
function mod:CHAT_MSG_MONSTER_YELL(msg)
if msg == L.YellPhase2 or msg:find(L.YellPhase2) then
StartPhase2(self)
elseif msg == L.YellPhase3 or msg:find(L.YellPhase3) then
self:SetStage(3)
warnPhase3:Show()
elseif msg == L.YellGuardians or msg:find(L.YellGuardians) then
specWarnAddsGuardians:Show()
end
end

--[[function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
if UnitExists("boss1") and self:GetUnitCreatureId("boss1") == 15990 then
StartPhase2(self)
self:UnregisterShortTermEvents()
end
end
end]]

function mod:UNIT_HEALTH(uId)
if not self.vb.warnedAdds and self:GetUnitCreatureId(uId) == 15990 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.48 then
Expand Down
3 changes: 3 additions & 0 deletions DBM-VanillaNaxx/localization.cn.lua
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,9 @@ L:SetOptionLocalization({

L:SetMiscLocalization({
Yell = "仆从们,侍卫们,隶属于黑暗与寒冷的战士们!听从克尔苏加德的召唤!",
YellPhase2 = "你的末日临近了!", -- 12997
YellPhase3 = "主人,我需要帮助!", -- 12998
YellGuardians = "很好,冰荒废土的战士们,起来吧!我命令你们为主人而战斗,杀戮,直到死亡!一个活口都不要留!", -- 12994
setMissing = "注意力! 在您创建名为 pve 的装备集之前,DBM 自动武器卸载/装备将不起作用",
EqUneqLineDescription = "自动装备/取消装备"
})
3 changes: 3 additions & 0 deletions DBM-VanillaNaxx/localization.de.lua
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,9 @@ L:SetOptionLocalization({

L:SetMiscLocalization({
Yell = "Lakaien, Diener, Soldaten der eisigen Finsternis! Folgt dem Ruf von Kel'Thuzad!",
YellPhase2 = "Euer Ende ist gekommen!", -- 12997
YellPhase3 = "Meister, ich benötige Beistand.", -- 12998
YellGuardians = "Wohlan, Krieger der Eisigen Weiten, erhebt euch! Ich befehle euch für euren Meister zu kämpfen, zu töten und zu sterben! Keiner darf überleben!", -- 12994
setMissing = "AUFMERKSAMKEIT! Das automatische Ausrüsten/Ausrüsten von DBM-Waffen funktioniert erst, wenn Sie ein Ausrüstungsset namens pve . erstellen",
EqUneqLineDescription = "Automatisches An-/Ablegen"
})
3 changes: 3 additions & 0 deletions DBM-VanillaNaxx/localization.en.lua
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,9 @@ L:SetMiscLocalization({
Yell = "Minions, servants, soldiers of the cold dark! Obey the call of Kel'Thuzad!",
-- YellMC1 = "Your soul is bound to me, now!",
-- YellMC2 = "There will be no escape!",
YellPhase2 = "The end is upon you!", -- 12997
YellPhase3 = "Master, I require aid!", -- 12998
YellGuardians = "Very well. Warriors of the frozen wastes, rise up! I command you to fight, kill and die for your master! Let none survive!", -- 12994
setMissing = "ATTENTION! DBM automatic weapon unequipping/equipping will not work until you create a equipment set named pve",
EqUneqLineDescription = "Automatic Equip/Unequip"
})
5 changes: 4 additions & 1 deletion DBM-VanillaNaxx/localization.es.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
if GetLocale() ~= "esES" and GetLocale() ~= "esMX" then return end
if GetLocale() ~= "esES" then return end
local L

-----------------
Expand Down Expand Up @@ -385,6 +385,9 @@ L:SetOptionLocalization({

L:SetMiscLocalization({
Yell = "¡Esbirros, sirvientes, soldados de la fría oscuridad! ¡Obedeced la llamada de Kel'Thuzad!",
YellPhase2 = "¡Vuestra hora ha llegado!", -- 12997
YellPhase3 = "¡Maestro, necesito ayuda!", -- 12998
YellGuardians = "Muy bien. ¡Guerreros del desierto helado! ¡Levantaos, os ordeno luchar, matar y morir por vuestro maestro! ¡Que no sobreviva ninguno!", -- 12994
setMissing = "¡ATENCIÓN! El desequipamiento / equipamiento automático de armas de DBM no funcionará hasta que cree un equipamiento llamado pve",
EqUneqLineDescription = "Equipar/desequipar automático"
})
3 changes: 3 additions & 0 deletions DBM-VanillaNaxx/localization.fr.lua
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,9 @@ L:SetOptionLocalization({

L:SetMiscLocalization({
Yell = "Serviteurs, valets et soldats des ténèbres glaciales ! Répondez à l'appel de Kel'Thuzad !",
YellPhase2 = "Votre fin est proche !", -- 12997
YellPhase3 = "Maître, j'ai besoin d'aide !", -- 12998
YellGuardians = "Très bien. Guerriers des terres gelées, relevez-vous ! Je vous ordonne de combattre, de tuer et de mourir pour votre maître ! N'épargnez personne !", -- 12994
setMissing = "ATTENTION! DBM auto-déséquipement d'arme ne fonctionnera pas tant que vous n'aurez pas créer un set apellé pve",
EqUneqLineDescription = "Équiper/Déséquiper automatiquement"
})
3 changes: 3 additions & 0 deletions DBM-VanillaNaxx/localization.kr.lua
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,9 @@ L:SetOptionLocalization({

L:SetMiscLocalization({
Yell = "어둠의 문지기와 하수인, 그리고 병사들이여! 나 켈투자드가 부르니 명을 받들라!",
YellPhase2 = "최후를 맞이하라!", -- 12997
YellPhase3 = "주인님, 도와주소서!", -- 12998
YellGuardians = "좋다. 얼어붙은 땅의 전사들이여, 일어나라! 너희에게 싸울 것을 명하노라. 날 위해 죽고, 날 위해 죽여라! 한 놈도 살려두지 마라!", -- 12994
setMissing = "주목! DBM 자동 무기 해제/장착은 pve라는 장비 세트를 생성할 때까지 작동하지 않습니다.",
EqUneqLineDescription = "자동 장착/장비 해제"
})
Loading

0 comments on commit 7a3bec1

Please sign in to comment.