Skip to content

Commit

Permalink
WoD/TheEverbloom/Yalnu: Font of Life, Entanglement on players, Noxiou…
Browse files Browse the repository at this point in the history
…s Breath, Lumbering Swipe, warmup timer, timer updates
  • Loading branch information
ntowle committed Oct 1, 2023
1 parent f0164d8 commit 5b238a1
Show file tree
Hide file tree
Showing 12 changed files with 194 additions and 19 deletions.
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/deDE.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
L.energyStatus = "Eine Sphäre hat Bleichborke erreicht: %d%% Energie"
end

L = BigWigs:NewBossLocale("Yalnu", "deDE")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "deDE")
if L then
L.dreadpetal = "Schreckensblüte"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/esES.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "esES") or BigWigs:NewBossLocale("Yalnu", "esMX")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "esES") or BigWigs:NewBossLocale("The Everbloom Trash", "esMX")
if L then
L.dreadpetal = "Horripétalo"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/frFR.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "frFR")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "frFR")
if L then
L.dreadpetal = "Pétaleffroi"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/itIT.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "itIT")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "itIT")
if L then
L.dreadpetal = "Petalotruce"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/koKR.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "koKR")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "koKR")
if L then
L.dreadpetal = "공포꽃잎"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/ptBR.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
L.energyStatus = "Um glóbulo alcançou Cascasseca: %d%% energia"
end

L = BigWigs:NewBossLocale("Yalnu", "ptBR")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "ptBR")
if L then
L.dreadpetal = "Medônia"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/ruRU.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "ruRU")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "ruRU")
if L then
L.dreadpetal = "Страхоцвет"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/zhCN.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
L.energyStatus = "小水滴到达枯木:%d%% 能量"
end

L = BigWigs:NewBossLocale("Yalnu", "zhCN")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "zhCN")
if L then
L.dreadpetal = "恐瓣"
Expand Down
6 changes: 6 additions & 0 deletions WoD/TheEverbloom/Locales/zhTW.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ if L then
--L.energyStatus = "A Globule reached Witherbark: %d%% energy"
end

L = BigWigs:NewBossLocale("Yalnu", "zhTW")
if L then
--L.kirin_tor = "Kirin Tor"
--L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

L = BigWigs:NewBossLocale("The Everbloom Trash", "zhTW")
if L then
--L.dreadpetal = "Dreadpetal"
Expand Down
6 changes: 5 additions & 1 deletion WoD/TheEverbloom/Options/Colors.lua
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ BigWigs:AddColors("Archmage Sol", {
})

BigWigs:AddColors("Yalnu", {
[169120] = "cyan",
[169179] = "orange",
[169251] = "green",
[169240] = "red",
[169613] = "yellow",
[169878] = "purple",
[169929] = "purple",
[170132] = {"blue","red"},
})

BigWigs:AddColors("The Everbloom Trash", {
Expand Down
8 changes: 6 additions & 2 deletions WoD/TheEverbloom/Options/Sounds.lua
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,13 @@ BigWigs:AddSounds("Archmage Sol", {
})

BigWigs:AddSounds("Yalnu", {
[169179] = "warning",
[169251] = "info",
[169120] = "alert",
[169179] = "alarm",
[169240] = "info",
[169613] = "long",
[169878] = "alarm",
[169929] = "alarm",
[170132] = "info",
})

BigWigs:AddSounds("The Everbloom Trash", {
Expand Down
145 changes: 129 additions & 16 deletions WoD/TheEverbloom/Yalnu.lua
Original file line number Diff line number Diff line change
@@ -1,50 +1,163 @@

--------------------------------------------------------------------------------
-- Module Declaration
--

local mod, CL = BigWigs:NewBoss("Yalnu", 1279, 1210)
if not mod then return end
mod:RegisterEnableMob(83846)
mod.engageId = 1756
--mod.respawnTime = 0 -- wiping teleports you out, then you can retry immediately
mod:RegisterEnableMob(83846) -- Yalnu
mod:SetEncounterID(1756)
--mod:SetRespawnTime(0) -- wiping teleports you out, then you can retry immediately

--------------------------------------------------------------------------------
-- Locals
--

local colossalBlowCount = 1

--------------------------------------------------------------------------------
-- Localization
--

local L = mod:GetLocale()
if L then
L.kirin_tor = "Kirin Tor"
L.warmup_trigger = "The portal is lost! We must stop this beast before it can escape!"
end

--------------------------------------------------------------------------------
-- Initialization
--

function mod:GetOptions()
return {
169613, -- Genesis
"warmup",
-- Yalnu
169179, -- Colossal Blow
169251, -- Entanglement
169120, -- Font of Life
{169613, "CASTBAR"}, -- Genesis
169240, -- Entanglement (Kirin Tor)
170132, -- Entanglement (Player)
-- Vicious Mandragora
169878, -- Noxious Breath
-- Gnarled Ancient
169929, -- Lumbering Swipe
}, {
[169179] = self.displayName, -- Yalnu
[169878] = -10535, -- Vicious Mandragora
[169929] = -10537, -- Gnarled Ancient
}, {
[169240] = L.kirin_tor, -- Entanglement (Kirin Tor)
}
end

function mod:OnBossEnable()
self:Log("SPELL_CAST_START", "Genesis", 169613)
-- Warmup
self:RegisterEvent("CHAT_MSG_MONSTER_YELL", "Warmup")

-- Yalnu
self:Log("SPELL_CAST_START", "ColossalBlow", 169179)
self:Log("SPELL_CAST_SUCCESS", "Entanglement", 169251)
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1") -- Font of Life
-- TODO add spawns (Font of Life) have no summon events
self:Log("SPELL_CAST_START", "Genesis", 169613)
self:Log("SPELL_CAST_SUCCESS", "EntanglementKirinTor", 169251) -- aura is 169240
self:Log("SPELL_AURA_APPLIED", "EntanglementPlayer", 170132) -- cast is 170124

-- Vicious Mandragora
self:Log("SPELL_CAST_START", "NoxiousBreath", 169878)

-- Gnarled Ancient
self:Log("SPELL_CAST_START", "LumberingSwipe", 169929)
end

function mod:OnEngage()
self:CDBar(169613, 26) -- Genesis
colossalBlowCount = 1
self:CDBar(169179, 5.3) -- Colossal Blow
self:CDBar(169240, 12.4, CL.other:format(self:SpellName(169240), L.kirin_tor)) -- Entanglement (Kirin Tor)
self:CDBar(169120, 15.0) -- Font of Life
self:CDBar(169613, 25.6) -- Genesis
if self:MythicPlus() then
-- dungeon journal says "In Heroic and Challenge difficulty" but only observed in M+
self:CDBar(170132, 53.8) -- Entanglement (Player)
end
end

--------------------------------------------------------------------------------
-- Event Handlers
--

function mod:Genesis(args)
self:MessageOld(args.spellId, "yellow", "long")
self:Bar(args.spellId, 17, CL.cast:format(args.spellName))
self:Bar(args.spellId, 60)
-- Warmup

function mod:Warmup(event, msg)
-- [CHAT_MSG_MONSTER_YELL] The portal is lost! We must stop this beast before it can escape!#Lady Baihu
if msg == L.warmup_trigger then
self:Bar("warmup", 8.0, CL.active, "inv_enchant_shaperessence")
self:UnregisterEvent(event)
end
end

-- Yalnu

function mod:ColossalBlow(args)
self:MessageOld(args.spellId, "orange", "warning")
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "alarm")
colossalBlowCount = colossalBlowCount + 1
-- TODO timer is different in other difficulties? (this is from M+)
if colossalBlowCount % 2 == 0 then
self:CDBar(args.spellId, 40.1)
else
self:CDBar(args.spellId, 20.6)
end
end

function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, _, spellId)
if spellId == 169120 then -- Font of Life
-- this summons either 1 Gnarled Ancient, 2 Vicious Mandragoras, or 8 Swift Sproutlings
self:Message(spellId, "cyan")
self:PlaySound(spellId, "alert")
self:CDBar(spellId, 15.0)
end
end

function mod:Entanglement(args)
self:MessageOld(args.spellId, "green", "info")
function mod:Genesis(args)
self:Message(args.spellId, "yellow")
self:PlaySound(args.spellId, "long")
self:CastBar(args.spellId, 17) -- 2s cast + 15s channel
self:CDBar(args.spellId, 60.7)
end

function mod:EntanglementKirinTor(args)
self:Message(169240, "red", CL.other:format(args.spellName, L.kirin_tor))
self:PlaySound(169240, "info")
-- TODO timer is lower in other difficulties? (this is from M+)
-- TODO this won't be cast if all the friendly NPCs are dead...
-- UNIT_DIED##nil#Creature-0-5770-1279-9671-84358-0000188F23#Lady Baihu
-- no UNIT_DIED for Kirin Tor Battle-Mage though
self:CDBar(169240, 60.7, CL.other:format(args.spellName, L.kirin_tor))
end

function mod:EntanglementPlayer(args)
self:TargetMessage(args.spellId, "red", args.destName)
self:PlaySound(args.spellId, "info", nil, args.destName)
self:CDBar(args.spellId, 60.7)
end

-- Vicious Mandragora

do
local prev = 0
function mod:NoxiousBreath(args)
local t = args.time
if t - prev > 1.5 then
prev = t
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alarm")
end
end
end

-- Gnarled Ancient

function mod:LumberingSwipe(args)
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alarm")
end

0 comments on commit 5b238a1

Please sign in to comment.