This commit is contained in:
Andrew6810
2022-10-21 06:50:13 -07:00
parent 8571e98fb1
commit 39c0ed874e
466 changed files with 52263 additions and 2 deletions
@@ -0,0 +1,23 @@
## Interface: 30300
## Title:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Magtheridon's Lair|r
## Title-esES:|cffffe00a<|r|cffff7d0aDBM|r|cffffe00a>|r |cff69ccf0Magtheridon's Lair|r
## Author: Tandanu and Nitram, updated by Junior and Szyler.
## LoadOnDemand: 1
## RequiredDeps: DBM-Core, DBM-BurningCrusade
## SavedVariablesPerCharacter: DBMMagtheridon_SavedVars, DBMMagtheridon_SavedStats
## X-DBM-BC-AddOn: 1
## X-DBM-Tab-ID: Magtheridon's Lair
## X-DBM-Tab-BCTab: 1
## X-DBM-Tab-Sort: 303
## X-DBM-Name: Magtheridon's Lair
## X-DBM-Name-esES: Magtheridon's Lair
## X-DBM-Tab-LoadZone: Magtheridon's Lair
## X-DBM-Tab-LoadZone-esES: Guarida de Magtheridon
localization.en.lua
localization.de.lua
localization.fr.lua
localization.tw.lua
localization.cn.lua
localization.ru.lua
localization.es.lua
Magtheridon.lua
+290
View File
@@ -0,0 +1,290 @@
local mod = DBM:NewMod("Magtheridon", "DBM-MagtheridonsLair")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 163 $"):sub(12, -3))
mod:SetCreatureID(17256, 17257)
mod:RegisterCombat("combat")
mod:SetMinCombatTime(120)
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_CAST_START",
"SPELL_CAST_SUCCESS",
"SPELL_AURA_REMOVED",
"CHAT_MSG_MONSTER_YELL",
"CHAT_MSG_MONSTER_EMOTE",
"CHAT_MSG_RAID_BOSS_EMOTE",
"SPELL_DAMAGE",
"SPELL_SUMMON",
"UNIT_HEALTH",
"SPELL_MISSED"
)
local WarnInfernal = mod:NewSpellAnnounce(30511, 2)
local WarnHeal = mod:NewCastAnnounce(30528, 2, nil, false)
local WarnNova = mod:NewSpellAnnounce(30616, 2)
local specWarnNova = mod:NewSpecialWarning("Pre-Quake Blast Nova in 10 seconds!")
local WarnQuake = mod:NewSpellAnnounce(85026, 2)
local specWarnDebris = mod:NewSpecialWarningYou(85030)
local specWarnConflag = mod:NewSpecialWarningYou(351085)
local warnMortalCleave = mod:NewAnnounce(L.MagCleave, 2, 85178)
local warnInterrupt = mod:NewAnnounce("Magtheridon interrupted", 3, "Interface\\Icons\\ability_kick")
local warnPhaseTwo = mod:NewAnnounce("Magtheridon is free!", 3, "Interface\\Icons\\Achievement_Boss_Magtheridon")
local warnPhaseThree = mod:NewAnnounce("Phase 3", 3, "Interface\\Icons\\Achievement_Boss_Magtheridon")
local timerQuake = mod:NewNextTimer(60, 85026)
local timerSpecialNova = mod:NewTimer(55, "!!Pre-Quake Blast Nova!!", 30616, 3)
local Nova = 1;
local timerNova = mod:NewTimer(55, "Blast Nova #%s", 30616)
local timerPhaseTwo = mod:NewPhaseTimer(120, 30205, "Magtheridon breaks free")
local timerFallingRoof = mod:NewTimer(10, "Roof is collapsing!")
--Heroic
-- local AnnounceHandofDeath = mod:NewTargetAnnounce(85437,2)
local specWarnYouHand = mod:NewSpecialWarningYou(85437)
local warnHandofDeath = mod:NewTargetAnnounce(85437, 3.8)
local timerHandofDeath = mod:NewTargetTimer(4, 85437)
local timerNextHandofDeath = mod:NewNextTimer(30, 85437)
-- local AnnounceFingerofDeath = mod:NewTargetAnnounce(85408,2)
local specWarnYouFinger = mod:NewSpecialWarningYou(85408)
local warnFingerofDeath = mod:NewTargetAnnounce(85408, 3.8)
local timerFingerofDeath = mod:NewTargetTimer(4, 85408)
local timerNextFingerofDeath = mod:NewNextTimer(30, 85408)
local specWarnYouFelShock = mod:NewSpecialWarningYou(85407)
local timerNextFelShock = mod:NewNextTimer(11, 85407)
-- local
local isMag = false;
local below30 = false;
local deathAbility = 0;
function mod:HandofDeath()
local target = nil
target = mod:GetBossTarget(17257)
local myName = UnitName("player")
if target == myName then
specWarnYouHand:Show()
SendChatMessage("Hand of Death on "..UnitName("PLAYER")..", STACK ON ME!", "YELL")
else
warnHandofDeath:Show(target)
end
timerHandofDeath:Start(target)
self:SetIcon(target, 8, 3)
end
function mod:FingerofDeath()
local target = nil
target = mod:GetBossTarget(17257)
local myName = UnitName("player")
if target == myName then
specWarnYouFinger:Show()
SendChatMessage("Finger of Death on "..UnitName("PLAYER")..", RUN AWAY!", "YELL")
else
warnFingerofDeath:Show(target)
end
timerFingerofDeath:Start(target)
self:SetIcon(target, 8, 3)
end
function mod:OnCombatStart(delay)
Nova = 1;
timerPhaseTwo:Start()
below30 = false;
self.vb.phase = 1
end
function mod:NextFingerofDeath()
self:UnscheduleMethod("NextFingerofDeath")
timerNextFingerofDeath:Start()
deathAbility=1
self:ScheduleMethod(30,"NextFingerofDeath")
end
function mod:NextHandofDeath()
self:UnscheduleMethod("NextHandofDeath")
timerNextHandofDeath:Start()
deathAbility=2
self:ScheduleMethod(30,"NextHandofDeath")
end
function mod:OnCombatEnd()
timerQuake:Cancel()
timerSpecialNova:Cancel()
timerNova:Cancel()
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(85030) and args:IsPlayer() then
specWarnDebris:Show()
elseif args:IsSpellID(30168) then
warnInterrupt:Show()
elseif args:IsSpellID(85405) then
if args.destName == UnitName("player") then
-- SendChatMessage("Fel Shock on "..UnitName("PLAYER")..", STACK ON ME!", "YELL")
specWarnYouFelShock:Show()
end
timerNextFelShock:Start()
elseif args:IsSpellID(30619) then
warnMortalCleave:Show(args.spellName, args.destName, args.amount or 1)
elseif args:IsSpellID(351085) then
if args.destName == UnitName("player") then
specWarnConflag:Show()
end
end
end
function mod:SPELL_AURA_APPLIED_DOSE(args)
if args:IsSpellID(30619) and args.amount >= 4 then
warnMortalCleave:Show(args.spellName, args.destName, args.amount or 1)
elseif args:IsSpellID(351085) then
if args.destName == UnitName("player") then
specWarnConflag:Show()
end
end
end
-- function mod:SPELL_AURA_REMOVED(args)
-- if args:IsSpellID(30205) then
-- timerQuake:Start(41)
-- timerNova:Start(66, tostring(Nova))
-- timerNextFingerofDeath:Start(21)
-- timerNextHandofDeath:Start(36)
-- below30 = false;
-- isMag = true;
-- warnPhaseTwo:Show()
-- timerPhaseTwo:Cancel()
-- end
-- end
--function mod:CHAT_MSG_RAID_BOSS_EMOTE(args)
-- if msg == L.DBM_MAG_EMOTE_PHASE2 and self.vb.phase == 1 then
-- timerQuake:Cancel()
-- timerNova:Cancel()
-- if mod:IsDifficulty("heroic10", "heroic25") then
-- timerNextFingerofDeath:Start(21)
-- timerNextHandofDeath:Start(36)
-- self:ScheduleMethod(21,"NextFingerofDeath");
-- self:ScheduleMethod(36,"NextHandofDeath");
-- end
-- timerPhaseTwo:Cancel()
-- self.vb.phase = 2
-- timerQuake:Start(41)
-- timerNova:Start(66, tostring(Nova))
-- below30 = false;
-- isMag = true;
-- warnPhaseTwo:Show()
-- end
--end
function mod:CHAT_MSG_MONSTER_YELL(msg)
if msg == L.DBM_MAG_YELL_PHASE2 and self.vb.phase == 1 then
timerQuake:Cancel()
timerNova:Cancel()
if mod:IsDifficulty("heroic10", "heroic25") then
timerNextFingerofDeath:Start(21)
timerNextHandofDeath:Start(36)
self:ScheduleMethod(21,"NextFingerofDeath");
self:ScheduleMethod(36,"NextHandofDeath");
end
timerPhaseTwo:Cancel()
timerQuake:Start(41)
timerNova:Start(66, tostring(Nova))
below30 = false;
isMag = true;
self.vb.phase = 2
warnPhaseTwo:Show()
end
if msg == L.DBM_MAG_YELL_PHASE3 then
warnPhaseThree:Show()
timerFallingRoof:Start()
if mod:IsDifficulty("heroic10", "heroic25") then
timerNextFingerofDeath:Cancel()
timerNextHandofDeath:Cancel()
self:UnscheduleMethod("NextFingerofDeath")
self:UnscheduleMethod("NextHandofDeath")
if deathAbility == 2 then
timerNextFingerofDeath:Start(21)
timerNextHandofDeath:Start(36)
self:ScheduleMethod(21,"NextFingerofDeath");
self:ScheduleMethod(36,"NextHandofDeath");
else
timerNextFingerofDeath:Start(36)
timerNextHandofDeath:Start(21)
self:ScheduleMethod(36,"NextFingerofDeath");
self:ScheduleMethod(21,"NextHandofDeath");
end
end
end
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(30528) then
WarnHeal:Show()
elseif args:IsSpellID(85026) then
WarnQuake:Show()
timerQuake:Start()
elseif args:IsSpellID(30616) then
Nova = Nova + 1;
WarnNova:Show()
if Nova >= 7 then
timerSpecialNova:Start()
specWarnNova:Schedule(45)
else
timerNova:Start(55, tostring(Nova))
end
end
if args:IsSpellID(85437, 85409) then
self:ScheduleMethod(0.2, "HandofDeath")
elseif args:IsSpellID(85408) then
self:ScheduleMethod(0.2, "FingerofDeath")
end
end
function mod:SPELL_SUMMON(args)
if args:IsSpellID(85033) then
WarnInfernal:Show()
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(30511) then
WarnInfernal:Show()
end
end
-- function mod:SPELL_DAMAGE(args)
-- if args:IsSpellID(85032) and args.destName and args:IsPlayer() then
-- specWarnDebris:Show()
-- end
--end
--function mod:SPELL_MISSED(args)
-- if args:IsSpellID(85031) and args.destName and args:IsPlayer() then
-- specWarnDebris:Show()
-- end
--end
function mod:UNIT_HEALTH(unit)
if isMag and (not below30) and (mod:GetUnitCreatureId(unit) == 17257) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp <= 30) then
self.vb.phase = 3
local elapsed, total = timerQuake:GetTime();
timerQuake:Update(elapsed, total+12);
if Nova >= 7 then
local elapsed, total = timerSpecialNova:GetTime();
timerSpecialNova:Update(elapsed, total+12);
else
local elapsed, total = timerNova:GetTime(tostring(Nova));
timerNova:Update(elapsed, total+12, tostring(Nova));
end
below30 = true;
end
end
end
+35
View File
@@ -0,0 +1,35 @@
-- ------------------------------------------- --
-- Deadly Boss Mods - Chinese localization --
-- by Diablohu<白银之手> @ 二区-轻风之语 --
-- www.dreamgen.cn --
-- 12/7/2007 --
-- ------------------------------------------- --
if (GetLocale() == "zhCN") then
-- Magtheridon
DBM_MAG_NAME = "玛瑟里顿";
DBM_MAG_DESCRIPTION = "警报地狱火、黑暗治愈以及冲击新星";
DBM_MAG_OPTION_1 = "警报地狱火";
DBM_MAG_OPTION_2 = "警报黑暗治愈";
DBM_MAG_OPTION_3 = "警报冲击新星";
DBM_MAG_EMOTE_PULL = "%s的禁锢开始变弱!";
DBM_MAG_YELL_PHASE2 = "我……自由了!"
DBM_MAG_EMOTE_NOVA = "%s开始施放冲击新星!";
DBM_MAG_CAST_INFERNAL = "地狱火导魔者施放了深渊燃魔。";
DBM_MAG_CAST_HEAL = "地狱火导魔者开始施放黑暗治愈。";
DBM_MAG_PHASE2_WARN = "*** %s秒后进入第二阶段 ***";
DBM_MAG_WARN_P2 = "*** 玛瑟里顿自由了! ***";
DBM_MAG_WARN_INFERNAL = "*** 地狱火 ***";
DBM_MAG_WARN_HEAL = "*** 黑暗治愈 ***";
DBM_MAG_WARN_NOVA_NOW = "*** 冲击新星 ***";
DBM_MAG_WARN_NOVA_SOON = "*** 冲击新星 - 即将施放 ***";
DBM_SBT["Phase 2"] = "第二阶段";
DBM_SBT["Heal"] = "治疗";
DBM_SBT["Blast Nova"] = "冲击新星";
end
+26
View File
@@ -0,0 +1,26 @@
if GetLocale() == "deDE" then
-- Magtheridon
DBM_MAG_NAME = "Magtheridon";
DBM_MAG_DESCRIPTION = "Sagt Infernos und Heilung an und zeigt Timer für Phase 2 und Drucknova an.";
DBM_MAG_OPTION_1 = "Infernos ansagen";
DBM_MAG_OPTION_2 = "Heilung ansagen";
DBM_MAG_OPTION_3 = "Drucknova ansagen";
DBM_MAG_EMOTE_PULL = "Die Fesseln von %s werden schwächer!";
DBM_MAG_YELL_PHASE2 = "Ich... bin... frei!"
DBM_MAG_EMOTE_NOVA = "%s beginnt, Drucknova zu wirken!";
DBM_MAG_CAST_INFERNAL = "Kanalisierer des Höllenfeuers wirkt Brennender Schlund.";
DBM_MAG_CAST_HEAL = "Kanalisierer des Höllenfeuers beginnt Dunkle Besserung zu wirken.";
DBM_MAG_PHASE2_WARN = "*** Phase 2 in %s Sek ***";
DBM_MAG_WARN_P2 = "*** Magtheridon ist frei ***";
DBM_MAG_WARN_INFERNAL = "*** Inferno ***";
DBM_MAG_WARN_HEAL = "*** Heilung ***";
DBM_MAG_WARN_NOVA_NOW = "*** Drucknova ***";
DBM_MAG_WARN_NOVA_SOON = "*** Drucknova bald ***";
DBM_SBT["Blast Nova"] = "Drucknova";
end
+54
View File
@@ -0,0 +1,54 @@
local L
DBMGUI_TAB_OTHER_BC = "Outlands" -- do not translate
-- Magtheridon
DBM_MAG_NAME = "Magtheridon";
DBM_MAG_DESCRIPTION = "Announces Infernals and Dark Mending and shows timers for Phase 2 and Blast Nova.";
DBM_MAG_OPTION_1 = "Announce Infernals";
DBM_MAG_OPTION_2 = "Announce Heal";
DBM_MAG_OPTION_3 = "Announce Blast Nova";
DBM_MAG_OPTION_4 = "Announce Quake";
DBM_MAG_OPTION_5 = "Announce Blast Nova that happens before Quake";
DBM_MAG_EMOTE_PULL = "%s is nearly free of his bonds!";
DBM_MAG_EMOTE_NOVA = "%s begins to cast Blast Nova!";
DBM_MAG_PHASE2_WARN = "*** Phase 2 in %s sec ***";
DBM_MAG_WARN_P2 = "*** Magtheridon is free ***";
DBM_MAG_EMOTE_P2 = "Maghteridon breaks free!";
DBM_MAG_WARN_P3 = "*** Phase 3 incoming!";
DBM_MAG_WARN_INFERNAL = "*** Infernal ***";
DBM_MAG_WARN_HEAL = "*** Heal ***";
DBM_MAG_WARN_NOVA_NOW = "*** Blast Nova ***";
DBM_MAG_WARN_NOVA_SOON = "Get ready for Blast Nova!";
DBM_MAG_WARN_QUAKE = "*** Quake ***";
PreQuakeNova = "*** PRE-QUAKE BLAST NOVA ***";
--Magtheridon
L = DBM:GetModLocalization("Magtheridon")
L:SetGeneralLocalization{
name = "Magtheridon"
}
L:SetTimerLocalization{
TimerFingers = "Next Finger of Death",
TimerHands = "Next Hand of Death",
TimerRoofCollapsing = "Roof is collapsing"
}
L:SetWarningLocalization{
MagCleave = "%s on >%s< (%d)" --(args.spellName, args.destName, args.amount or 1)
}
L:SetOptionLocalization{
MagCleave = "Show $spell:30619 targets and stack number warning" --(args.spellName, args.destName, args.amount or 1)
}
L:SetMiscLocalization{
DBM_MAG_YELL_PHASE2 = "I... am... unleashed!",
DBM_MAG_YELL_PHASE3 = "I will not be taken so easily! Let the walls of this prison tremble... and fall!",
DBM_MAG_EMOTE_PHASE2 = "%s breaks free!"
}
+23
View File
@@ -0,0 +1,23 @@
if GetLocale() == "esES" or GetLocale() == "esMX" then
-- Magtheridon
DBM_MAG_NAME = "Magtheridon";
DBM_MAG_DESCRIPTION = "Anuncia Infernales y Alivio oscuro y muestra los tiempos para la fase 2 y Nova explosiva.";
DBM_MAG_OPTION_1 = "Anunciar Infernales";
DBM_MAG_OPTION_2 = "Anunciar Sanación";
DBM_MAG_OPTION_3 = "Anunciar Nova explosiva";
DBM_MAG_EMOTE_PULL = "¡Las cadenas de %s empiezan a debilitarse!";
DBM_MAG_YELL_PHASE2 = "I... am... unleashed!"--translate
DBM_MAG_EMOTE_NOVA = "¡%s empieza a castear Nova explosiva!";
DBM_MAG_PHASE2_WARN = "*** Fase 2 en %s seg ***";
DBM_MAG_WARN_P2 = "*** Magtheridon se libera ***";
DBM_MAG_WARN_INFERNAL = "*** Infernal ***";
DBM_MAG_WARN_HEAL = "*** Sanación ***";
DBM_MAG_WARN_NOVA_NOW = "*** Nova explosiva ***";
DBM_MAG_WARN_NOVA_SOON = "¡Preparate para Nova explosiva!";
end
+1
View File
@@ -0,0 +1 @@
+25
View File
@@ -0,0 +1,25 @@
if (GetLocale() == "ruRU") then
-- Magtheridon
DBM_MAG_NAME = "Магтеридон";
DBM_MAG_DESCRIPTION = "Объявляет и показывает таймеры для Инферналов, Исцеление тьмой и Вспышка Огненной звезды в фазе 2.";
DBM_MAG_OPTION_1 = "Объявить Инферналов";
DBM_MAG_OPTION_2 = "Объявить Исцеление";
DBM_MAG_OPTION_3 = "Объявить Вспышка Огненной звезды";
DBM_MAG_EMOTE_PULL = "начинает ослабевать!";
DBM_MAG_YELL_PHASE2 = "Я… освобожден!"
DBM_MAG_EMOTE_NOVA = "%s начинает читать заклинание Вспышка Огненной звезды!";
DBM_MAG_PHASE2_WARN = "*** Фаза 2 через %s сек ***";
DBM_MAG_WARN_P2 = "*** Магтеридон свободен ***";
DBM_MAG_WARN_INFERNAL = "*** Инфернал ***";
DBM_MAG_WARN_HEAL = "*** Исцеление ***";
DBM_MAG_WARN_NOVA_NOW = "*** Вспышка Огненной звезды ***";
DBM_MAG_WARN_NOVA_SOON = "Готовы к Вспышке Огненной звезды!";
DBM_SBT["Blast Nova"] = "Вспышка Огненной звезды";
DBM_SBT["Phase 2"] = "Фаза 2";
end
+28
View File
@@ -0,0 +1,28 @@
if (GetLocale() == "zhTW") then
-- Magtheridon
DBM_MAG_NAME = "瑪瑟里頓";
DBM_MAG_DESCRIPTION = "提示地獄火, 補血, 衝擊新星, 顯示階段計時條.";
DBM_MAG_OPTION_1 = "提示召喚地獄火";
DBM_MAG_OPTION_2 = "提示補血";
DBM_MAG_OPTION_3 = "提示衝擊新星";
DBM_MAG_EMOTE_PULL = "%s的束縛開始變弱!";
DBM_MAG_YELL_PHASE2 = "我……被……釋放了!"
DBM_MAG_EMOTE_NOVA = "%s開始施放衝擊新星!";
DBM_MAG_CAST_CUT = "別再來了!別再來了……";
DBM_MAG_PHASE2_WARN = "*** %s 秒後開始第二階段 ***";
DBM_MAG_WARN_P2 = "*** 瑪瑟里頓獲得自由! ***";
DBM_MAG_WARN_INFERNAL = "*** 地獄火 ***";
DBM_MAG_WARN_HEAL = "*** 治療術 ***";
DBM_MAG_WARN_NOVA_NOW = "*** 衝擊新星 - 立即點盒子斷法! ***";
DBM_MAG_WARN_NOVA_SOON = "*** 即將施放衝擊新星! ***";
DBM_SBT["Blast Nova"] = "衝擊新星";
DBM_SBT["Phase 2"] = "第二階段";
end