Skip to content

Commit

Permalink
Merge pull request #72 from MysteryDragon/kynes-aegis-announcements
Browse files Browse the repository at this point in the history
Adding several Kyne's Aegis announcements
  • Loading branch information
memus authored Mar 28, 2021
2 parents 5a12586 + d412a4c commit 30a8c42
Show file tree
Hide file tree
Showing 6 changed files with 170 additions and 3 deletions.
22 changes: 22 additions & 0 deletions BuffsDebuffs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -577,3 +577,25 @@ sunspire.flame_split = 119485
sunspire.agony_totem = 118411

RaidNotifier.BuffsDebuffs[RAID_SUNSPIRE] = sunspire

-- ------------------------------------------------------
-- -- Kyne's Aegis---------------------------------------
-- -- ---------------------------------------------------
local kynes_aegis = {}

-- Half-Giant Tidebreaker's Crashing Wall
kynes_aegis.tidebreaker_crashing_wall = 134196
-- Bitter Knight's Sanguine Prison
kynes_aegis.bitter_knight_sanguine_prison = 132473
-- Bloodknight's Blood Fountain
kynes_aegis.bloodknight_blood_fountain = 140294
-- Dragon Totem spawn at Yandir the Butcher boss
kynes_aegis.yandir_dragon_totem_spawn = 133264
-- Harpy Totem spawn at Yandir the Butcher boss
kynes_aegis.yandir_harpy_totem_spawn = 133511
-- Gargoyle Totem spawn at Yandir the Butcher boss
kynes_aegis.yandir_gargoyle_totem_spawn = 133514
-- Chaurus Totem spawn at Yandir the Butcher boss
kynes_aegis.yandir_chaurus_totem_spawn = 133516

RaidNotifier.BuffsDebuffs[RAID_KYNES_AEGIS] = kynes_aegis
8 changes: 6 additions & 2 deletions RaidNotifier.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ RAID_ASYLUM_SANCTORIUM = 8
RAID_CLOUDREST = 9
RAID_BLACKROSE_PRISON = 10
RAID_SUNSPIRE = 11
RAID_KYNES_AEGIS = 12

-- Debugging
local function p() end
Expand Down Expand Up @@ -578,6 +579,7 @@ do ----------------------
[RAID_CLOUDREST] = 1051,
[RAID_BLACKROSE_PRISON] = 1082,
[RAID_SUNSPIRE] = 1121,
[RAID_KYNES_AEGIS] = 1196,
}

local RaidZones = {}
Expand Down Expand Up @@ -904,8 +906,9 @@ do ---------------------------
RaidNotifier.AS = RaidNotifier.AS or {}
RaidNotifier.CR = RaidNotifier.CR or {}
RaidNotifier.SS = RaidNotifier.SS or {}

RaidNotifier.Trial =
RaidNotifier.KA = RaidNotifier.KA or {}

RaidNotifier.Trial =
{
[RAID_AETHERIAN_ARCHIVE] = RaidNotifier.AA,
[RAID_HEL_RA_CITADEL] = RaidNotifier.HRC,
Expand All @@ -917,6 +920,7 @@ do ---------------------------
[RAID_ASYLUM_SANCTORIUM] = RaidNotifier.AS,
[RAID_CLOUDREST] = RaidNotifier.CR,
[RAID_SUNSPIRE] = RaidNotifier.SS,
[RAID_KYNES_AEGIS] = RaidNotifier.KA,
}

-------------------
Expand Down
1 change: 1 addition & 0 deletions RaidNotifier.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ TrialMawOfLorkhaj.lua
TrialSanctumOphidia.lua
TrialCloudrest.lua
TrialSunspire.lua
TrialKynesAegis.lua

Notifications.lua
RaidNotifier.lua
Expand Down
41 changes: 40 additions & 1 deletion Settings.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ RAID_ASYLUM_SANCTORIUM = 8
RAID_CLOUDREST = 9
RAID_BLACKROSE_PRISON = 10
RAID_SUNSPIRE = 11
RAID_KYNES_AEGIS = 12

-- ------------------
-- DEFAULT SETTINGS
Expand Down Expand Up @@ -293,6 +294,12 @@ do ------------------
negate_field = 1, -- "Self"
shock_bolt = true,
},
kynesAegis = {
tidebreaker_crashing_wall = false,
bitter_knight_sanguine_prison = false,
bloodknight_blood_fountain = false,
yandir_totem_spawn = 0, -- "Off"
},
dbg = {
enable = false,
notify = false,
Expand Down Expand Up @@ -525,7 +532,14 @@ function RaidNotifier:CreateSettingsMenu()
negate_field = {
L.Settings_General_Choices_Off,
L.Settings_General_Choices_Self,
}
}
},
kynesAegis = {
yandir_totem_spawn = {
L.Settings_General_Choices_Off,
L.Settings_General_Choices_OnlyChaurusTotem,
L.Settings_General_Choices_All,
},
},
}

Expand Down Expand Up @@ -1562,6 +1576,31 @@ function RaidNotifier:CreateSettingsMenu()
}, "sunspire", "negate_field")
subTable = nil

-- Kyne's Aegis
MakeSubmenu(L.Settings_KynesAegis_Header, RaidNotifier:GetRaidDescription(RAID_KYNES_AEGIS))
MakeControlEntry({
type = "checkbox",
name = L.Settings_KynesAegis_Crashing_Wall,
tooltip = L.Settings_KynesAegis_Crashing_Wall_TT,
}, "kynesAegis", "tidebreaker_crashing_wall")
MakeControlEntry({
type = "checkbox",
name = L.Settings_KynesAegis_Sanguine_Prison,
tooltip = L.Settings_KynesAegis_Sanguine_Prison_TT,
}, "kynesAegis", "bitter_knight_sanguine_prison")
MakeControlEntry({
type = "checkbox",
name = L.Settings_KynesAegis_Blood_Fountain,
tooltip = L.Settings_KynesAegis_Blood_Fountain_TT,
}, "kynesAegis", "bloodknight_blood_fountain")
MakeControlEntry({
type = "dropdown",
name = L.Settings_KynesAegis_Totem,
tooltip = L.Settings_KynesAegis_Totem_TT,
choices = choices.kynesAegis.yandir_totem_spawn,
}, "kynesAegis", "yandir_totem_spawn")
subTable = nil --end submenu

MakeControlEntry({
type = "header",
name = L.Settings_Debug_Header,
Expand Down
75 changes: 75 additions & 0 deletions TrialKynesAegis.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
RaidNotifier = RaidNotifier or {}
RaidNotifier.KA = {}

local RaidNotifier = RaidNotifier

local function p() end
local function dbg() end

local data = {}

function RaidNotifier.KA.Initialize()
p = RaidNotifier.p
dbg = RaidNotifier.dbg

data = {}
end

function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aActionSlotType, sName, sType, tName, tType, hitValue, pType, dType, log, sUnitId, tUnitId, abilityId)
local raidId = RaidNotifier.raidId
local self = RaidNotifier
local buffsDebuffs, settings = self.BuffsDebuffs[raidId], self.Vars.kynesAegis

if (tName == nil or tName == "") then
tName = self.UnitIdToString(tUnitId)
end

if (result == ACTION_RESULT_BEGIN) then
-- Half-Giant Tidebreaker's Crashing Wall
if (abilityId == buffsDebuffs.tidebreaker_crashing_wall) then
if (settings.tidebreaker_crashing_wall == true) then
self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CRASHING_WALL), "kynesAegis", "tidebreaker_crashing_wall", false)
end
end
-- Bloodknight's Blood Fountain
if (abilityId == buffsDebuffs.bloodknight_blood_fountain) then
if (settings.bloodknight_blood_fountain == true) then
self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_BLOOD_FOUNTAIN), "kynesAegis", "bloodknight_blood_fountain", false)
end
end
elseif (result == ACTION_RESULT_EFFECT_GAINED) then
-- Bitter Knight's Sanguine Prison
if (abilityId == buffsDebuffs.bitter_knight_sanguine_prison) then
if (settings.bitter_knight_sanguine_prison == true) then
if (tType ~= COMBAT_UNIT_TYPE_PLAYER and tName ~= "") then
self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_SANGUINE_PRISON_OTHER), tName), "kynesAegis", "bitter_knight_sanguine_prison")
end
end
end
-- Dragon Totems spawn at Yandir the Butcher boss
if (abilityId == buffsDebuffs.yandir_dragon_totem_spawn) then
if (settings.yandir_totem_spawn == 2) then
-- Since two totems spawns at once we want to avoid extra announcements, so we're adding 2 sec alert suppression
self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_DRAGON_TOTEM), "kynesAegis", "yandir_totem_spawn", 2)
end
end
-- Harpy Totem spawn at Yandir the Butcher boss
if (abilityId == buffsDebuffs.yandir_harpy_totem_spawn) then
if (settings.yandir_totem_spawn == 2) then
self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_HARPY_TOTEM), "kynesAegis", "yandir_totem_spawn")
end
end
-- Gargoyle Totem spawn at Yandir the Butcher boss
if (abilityId == buffsDebuffs.yandir_gargoyle_totem_spawn) then
if (settings.yandir_totem_spawn == 2) then
self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_GARGOYLE_TOTEM), "kynesAegis", "yandir_totem_spawn")
end
end
-- Chaurus Totem spawn at Yandir the Butcher boss
if (abilityId == buffsDebuffs.yandir_chaurus_totem_spawn) then
if (settings.yandir_totem_spawn >= 1) then
self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_TOTEM), "kynesAegis", "yandir_totem_spawn")
end
end
end
end
26 changes: 26 additions & 0 deletions lang/en.lua
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ L.Settings_General_Choices_500ms = "0.5s"
L.Settings_General_Choices_200ms = "0.2s"
L.Settings_General_Choices_Custom = "Custom"
L.Settings_General_Choices_Custom_Announcement = "Custom (movable)"
L.Settings_General_Choices_OnlyChaurusTotem = "Only Chaurus" -- Specific for Kyne's Aegis
-- Alerts
L.Alerts_General_No_Bufffood = "You have no bufffood!"
L.Alerts_General_Bufffood_Minutes = "Your '<<1>>' bufffood runs out in |cbd0000<<2>>|r minutes!"
Expand Down Expand Up @@ -546,6 +547,31 @@ L.Alerts_Sunspire_Shock_Bolt = "Incoming |c00ddffShock Bolt|r! Stac
L.Alerts_Sunspire_Apocalypse = "Incoming |cffff00Translation Apocalypse|r! Bash in"
L.Alerts_Sunspire_Apocalypse_Ends = "|cffff00Translation Apocalypse|r ends in"


--------------------------------
------ KYNE'S AEGIS -----
--------------------------------
L.Settings_KynesAegis_Header = "Kyne's Aegis"
-- Settings
L.Settings_KynesAegis_Crashing_Wall = "General: Crashing Wall"
L.Settings_KynesAegis_Crashing_Wall_TT = "Alerts you when the Half-Giant Tidebreaker starts his Crashing Wall attack, counting down until it is unleashed. Block or roll dodge it."
L.Settings_KynesAegis_Sanguine_Prison = "General: Sanguine Prison"
L.Settings_KynesAegis_Sanguine_Prison_TT = "Alerts you when your ally is trapped in Sanguine Prison casted by Bitter Knight. You need to free your ally by focusing down his prison."
L.Settings_KynesAegis_Blood_Fountain = "General: Blood Fountain"
L.Settings_KynesAegis_Blood_Fountain_TT = "Alerts you when Bloodknight starts his Blood Fountain attack, counting down until it is unleashed. It looks like cross-shaped AoE, and need to be avoided as it deals heavy damage."
L.Settings_KynesAegis_Totem = "Yandir: Totems spawn"
L.Settings_KynesAegis_Totem_TT = "Alerts you when certain totem appeared during the battle with Yandir the Butcher boss.\n\nDragon Totems: always two appears at the same time; each one blows out fire along a straight line in two opposite directions.\nHarpy Totem: spawns a lightning aura that will radiate out.\nGargoyle totem: encases random players into stone.\nChaurus Totem: poisons several people, and this poison should not be spread to others, that's why you should not stack at this phase."

-- Alerts
L.Alerts_KynesAegis_Crashing_Wall = "|cd2a100Crashing Wall|r in"
L.Alerts_KynesAegis_Sanguine_Prison_Other = "|cff0000<<!aC:1>>|r trapped in |cb00000Sanguine Prison|r. Free him!"
L.Alerts_KynesAegis_Blood_Fountain = "|cb00000Blood Fountain|r in"
L.Alerts_KynesAegis_Dragon_Totem = "Two |cffa500Dragon Totems|r spawned. Avoid the fire!"
L.Alerts_KynesAegis_Harpy_Totem = "|c00bfffHarpy Totem|r spawned."
L.Alerts_KynesAegis_Gargoyle_Totem = "|cf5f5dcGargoyle Totem|r spawned."
L.Alerts_KynesAegis_Chaurus_Totem = "|c39942eChaurus Totem|r spawned. Don't stack!"


--------------------------------
---- Debugging ----
--------------------------------
Expand Down

0 comments on commit 30a8c42

Please sign in to comment.