From 486a9b227fea1eb9a5208d47d763ad07b0248482 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Thu, 9 Sep 2021 18:21:02 +0300 Subject: [PATCH 01/27] Removed meaningless trailing spaces in some files --- BuffsDebuffs.lua | 16 +++--- RaidNotifier.lua | 118 +++++++++++++++++++++---------------------- Settings.lua | 128 +++++++++++++++++++++++------------------------ lang/en.lua | 12 ++--- 4 files changed, 137 insertions(+), 137 deletions(-) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 56a4d9d..f8542f9 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -111,7 +111,7 @@ sanctum.spreading_poison[52036] = 1 -- \\ sanctum.spreading_poison[58663] = 1 -- >> Cast 1.9s, Enemy, 28m Range sanctum.spreading_poison[82591] = 1 -- // sanctum.spreading_poison[54419] = 2 -- \\ (the actual poison) -sanctum.spreading_poison[58669] = 2 -- >> Instant Cast, Enemy, 28m Range, 2.5s +sanctum.spreading_poison[58669] = 2 -- >> Instant Cast, Enemy, 28m Range, 2.5s sanctum.spreading_poison[82597] = 2 -- // sanctum.spreading_poison[54420] = 3 -- Instant Cast, Area, 3.5m Radius sanctum.spreading_poison[80794] = 4 -- Cast 1.9s, Cone??, 0m Range??, 28m Radius @@ -173,7 +173,7 @@ maw_lorkhaj.zhajBoss_curseduration = 25 maw_lorkhaj.zhajBoss_glyphability = 57525 maw_lorkhaj.zhajBoss_glyphcooldown = 25 maw_lorkhaj.zhajBoss_knownGlyphs = {} -maw_lorkhaj.zhajBoss_glyphs = +maw_lorkhaj.zhajBoss_glyphs = { {x=0.55496829748154, y=0.29175475239754}, {x=0.56342494487762, y=0.25405216217041}, @@ -183,7 +183,7 @@ maw_lorkhaj.zhajBoss_glyphs = {x=0.62508809566498, y=0.32699084281921}, } ---False Moon Twins, S’Kinrai and Vashai +--False Moon Twins, S’Kinrai and Vashai -- Holy Aspect maw_lorkhaj.twinBoss_lunaraspect = {} maw_lorkhaj.twinBoss_lunaraspect[59472] = true @@ -318,7 +318,7 @@ halls_fab.hunters_spawn_sphere = 90414 -- Pinnacle Factotum (2nd boss) halls_fab.pinnacleBoss_fluxburst = 90755 -- the streak-like attack halls_fab.pinnacleBoss_conduit_spawn = 91781 -- sadly not targeted on somebody -halls_fab.pinnacleBoss_conduit_drain = 91792 +halls_fab.pinnacleBoss_conduit_drain = 91792 halls_fab.pinnacleBoss_scalded_debuff = 90916 -- Refabrication Committee (4th bosses) @@ -403,7 +403,7 @@ asylum.interest_list[99990] = true -- "Enrage", called when bosses enrage, 2240 on start, 2250 on stop (also when they go to sleep), seems to repeat each 20s (does that mean the enrage stacks up?), tUnitId == boss-in-question asylum.interest_list[101354] = true -- easy debugging when put here (see above for what these do) -asylum.interest_list[64508] = true +asylum.interest_list[64508] = true RaidNotifier.BuffsDebuffs[RAID_ASYLUM_SANCTORIUM] = asylum @@ -527,12 +527,12 @@ sunspire.focus_fire_tick = { -- remove } -- Lokkestiiz ice boss sunspire.door_protection_ice = 120417 -- 2200 -sunspire.frozen_tomb = 119632 +sunspire.frozen_tomb = 119632 sunspire.frozen_tomb_wipe_time = 60000 sunspire.fire_trail = 122727 -- lighting breath while flying mechanic sunspire.raid_mr3_conjuredReflection = 124051 -sunspire.frozen_prison = 124335 +sunspire.frozen_prison = 124335 sunspire.storm_fury = { [115871] = true, [115702] = true, @@ -567,7 +567,7 @@ sunspire.translation_apocalypse = 121436 2240 time shift 124280 laduje portal na prawo (od startu okolo 3 sek) 2245 time shift 121502 - + ]] sunspire.negate_field = 121411 -- 2200 hitvalue diff --git a/RaidNotifier.lua b/RaidNotifier.lua index 7779acb..04e6ab7 100644 --- a/RaidNotifier.lua +++ b/RaidNotifier.lua @@ -38,7 +38,7 @@ end -- Locale local L -RaidNotifier.ActionResults = +RaidNotifier.ActionResults = { ACTION_RESULT_DAMAGE, ACTION_RESULT_BEGIN, @@ -46,7 +46,7 @@ RaidNotifier.ActionResults = ACTION_RESULT_EFFECT_GAINED, ACTION_RESULT_EFFECT_GAINED_DURATION, ACTION_RESULT_EFFECT_FADED, - ACTION_RESULT_INTERRUPT, + ACTION_RESULT_INTERRUPT, ACTION_RESULT_DIED, --ACTION_RESULT_DIED_XP, -- only interested in spawns/minions, which don't give exp?? } @@ -68,7 +68,7 @@ do --------------------------------- end local DEFAULT_SOUND = "Default_Sound" - local Sounds = + local Sounds = { {name = "-Default-", id = DEFAULT_SOUND}, {name = "-None-", id = SOUNDS.NO_SOUND}, @@ -96,7 +96,7 @@ do --------------------------------- {name = "Synergy Ready", id = SOUNDS.ABILITY_SYNERGY_READY}, {name = "TelVar Multiplier Max", id = SOUNDS.TELVAR_MULTIPLIERMAX}, } - + function RaidNotifier:GetSounds() return Sounds end @@ -132,7 +132,7 @@ do --------------------------------- local duration = 3000 local soundId = self:GetSoundValue(category, setting) - if soundId == DEFAULT_SOUND then -- + if soundId == DEFAULT_SOUND then -- soundId = self.Vars.general.default_sound end @@ -141,7 +141,7 @@ do --------------------------------- return end - if (interval) then + if (interval) then local currentTime = GetTimeStamp() if (interval > GetDiffBetweenTimeStamps(currentTime, self:GetLastNotify(category, setting))) then return @@ -163,7 +163,7 @@ do --------------------------------- if soundId ~= nil then PlaySound(soundId) end end end - + -- called when messageParams are applied to the line local orgTextScale, orgCountdownScale, orgCountdownColor local function SetupCallback(line, messageParams, doReset) @@ -221,30 +221,30 @@ do --------------------------------- p("Invalid text for '%s -> %s'", category, setting) return end - if (interval) then + if (interval) then local currentTime = GetTimeStamp() if (interval > GetDiffBetweenTimeStamps(currentTime, self:GetLastNotify(category, setting))) then return end self:SetLastNotify(category, setting, currentTime) end - + important = important and important or important == nil -- default countdown - + local countdownId = 0 if not self:IsCountdownInProgress() and self.Vars.general.use_center_screen_announce > 0 or important then countdownId = LCSA:CreateCountdown(timer, soundId, nil, text, nil, SetupCallback, CountdownCallback) else local pool = RaidNotifier.NotificationsPool.GetInstance() countdownId = pool:Add(text, timer, true) - if soundId ~= nil then PlaySound(soundId) end + if soundId ~= nil then PlaySound(soundId) end end if countdownId > 0 then countdownInProgress = true end return countdownId end - + function RaidNotifier:StopCountdown(countdownIndex) LCSA:EndCountdown(countdownIndex) -- if self.Vars.general.use_center_screen_announce == 0 and not important then @@ -253,7 +253,7 @@ do --------------------------------- -- end countdownInProgress = false end - + end @@ -273,7 +273,7 @@ do ---------------------- function RaidNotifier.OnUltimateReceived(unitTag, ultimateCurrent, ultimateCost) --, ultimateGroupId, isSelf) local self = RaidNotifier local userName = GetUnitDisplayName(unitTag) - ultimates[userName] = + ultimates[userName] = { userName = userName, name = GetUnitName(unitTag), @@ -301,7 +301,7 @@ do ---------------------- local function ToggleLibGroupSocket(enabled) local settings = RaidNotifier.Vars.ultimate - if settings.enabled then + if settings.enabled then local button = ZO_GroupMenu_Keyboard_LibGroupSocketToggle if not button then -- wait for button zo_callLater(function() ToggleLibGroupSocket(enabled) end, 1000) @@ -316,9 +316,9 @@ do ---------------------- function RaidNotifier:RegisterForUltimateChanges() local settings = self.Vars.ultimate if not settings.enabled then return end - + if not ultimateHandler then return end - + if listening then return end listening = true dbg("RegisterForUltimateChanges") @@ -326,7 +326,7 @@ do ---------------------- self:SetElementHidden("ultimate", "ulti_window", settings.hidden) ultimates = {} - if ultimateHandler.SetUltimateGroupId then + if ultimateHandler.SetUltimateGroupId then ultimateHandler:SetUltimateGroupId(ultimateGroupId) end ultimateHandler:RegisterForUltimateChanges(self.OnUltimateReceived) @@ -356,7 +356,7 @@ do ---------------------- local newMembers = {} for i=1, groupSize do local userName = GetUnitDisplayName("group"..i) - if userName and userName ~= "" then + if userName and userName ~= "" then newMembers[userName] = IsUnitOnline("group"..i) end end @@ -385,7 +385,7 @@ do ---------------------- function RaidNotifier:UnregisterForUltimateChanges() if not ultimateHandler then return end - + if not listening then return end listening = false dbg("UnregisterForUltimateChanges") @@ -416,7 +416,7 @@ do ---------------------- self:UpdateUltimates() end - SLASH_COMMANDS["/rnulti"] = function(str) + SLASH_COMMANDS["/rnulti"] = function(str) local args = {zo_strsplit(" ", str)} local self = RaidNotifier @@ -435,7 +435,7 @@ do ---------------------- settings.enabled = true settings.hidden = false self:RegisterForUltimateChanges() - self:UpdateUltimates() + self:UpdateUltimates() elseif (args[1] == "disable" or args[1] == "off" or args[1] == "0") then p("Disable Ultimate Exchange") settings.enabled = false @@ -446,7 +446,7 @@ do ---------------------- ultimateHandler:Refresh() end elseif (args[1] == "debug") then - if ultimateHandler then + if ultimateHandler then ultimateHandler:SetDebug(tonumber(args[2])) end elseif (args[1] == "clear") then @@ -459,7 +459,7 @@ do ---------------------- settings.override_cost = tonumber(args[2]) elseif (args[2] == "auto") then -- maybe use GetSlotBoundId to grab slotted ability instead? settings.override_cost = GetSlotAbilityCost(ACTION_BAR_ULTIMATE_SLOT_INDEX + 1) - else + else p("Trying to set override cost to unsupported value (%s)", args[2]) return end @@ -564,9 +564,9 @@ do ---------------------- self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_GENERAL_NO_BUFFFOOD), "general", "buffFood_reminder", settings.buffFood_reminder_interval) end end - + -- These should remain the same throughout updates - local RaidZoneIds = + local RaidZoneIds = { [RAID_HEL_RA_CITADEL] = 636, [RAID_AETHERIAN_ARCHIVE] = 638, @@ -626,7 +626,7 @@ do ---------------------- self.raidDifficulty = GetCurrentZoneDungeonDifficulty() if (self.raidId > 0) then dbg("Register for %s (%s)", GetRaidZoneName(self.raidId), GetString("SI_DUNGEONDIFFICULTY", self.raidDifficulty)) - + local trial = self.Trial[self.raidId] if (trial) then trial.Initialize() @@ -634,7 +634,7 @@ do ---------------------- local bossesChangedCallback = trial.OnBossesChanged local effectChangedCallback = trial.OnEffectChanged local combatStateChangedCallback = trial.OnCombatStateChanged - + local abilityList = {} local function RegisterForAbility(abId) if not abilityList[abId] then @@ -645,12 +645,12 @@ do ---------------------- -- The main juicy events we want, registered seperately for better performance -- TODO: Remove (some of) this debugging when releasing it - -- TODO: Also add filter for action result but will require re-organizing BuffsDebuffs.lua + -- TODO: Also add filter for action result but will require re-organizing BuffsDebuffs.lua dbg("----------------------------------------------") dbg(" Gathering Abilities for Raid") local raidData = self.BuffsDebuffs[self.raidId] for k,v in pairs(raidData) do - if type(v) == "number" then + if type(v) == "number" then if v > 10000 then dbg("Found ability #%d (%s)", v, k) RegisterForAbility(v) @@ -685,7 +685,7 @@ do ---------------------- end if (bossesChangedCallback) then EVENT_MANAGER:RegisterForEvent(self.Name, EVENT_BOSSES_CHANGED, bossesChangedCallback) - end + end -- In case of initializing while already at a boss if (bossesChangedCallback) then @@ -702,14 +702,14 @@ do ---------------------- end if (settings.no_assistants and GetActiveCollectibleByType(COLLECTIBLE_CATEGORY_TYPE_ASSISTANT) > 0) then UseCollectible(GetActiveCollectibleByType(COLLECTIBLE_CATEGORY_TYPE_ASSISTANT)) - end + end else if (combatStateChangedCallback) then - zo_callLater(function() - if (not IsUnitInCombat("player")) then + zo_callLater(function() + if (not IsUnitInCombat("player")) then dbg("not InCombat") combatStateChangedCallback(inCombat) - end + end end, 3000); end end @@ -719,7 +719,7 @@ do ---------------------- --self:AddFragment() listening = true - + -- Ultimate exchanging self:RegisterForUltimateChanges() @@ -748,7 +748,7 @@ do ---------------------- -- Ultimate exchanging self:UnregisterForUltimateChanges() - + -- Food buffs EVENT_MANAGER:UnregisterForUpdate(self.Name .. "Food") @@ -777,7 +777,7 @@ do ---------------------- end self.dbg = dbg - if ENABLE_DEBUG_LOG then + if ENABLE_DEBUG_LOG then if not RN_DEBUG_LOG then RN_DEBUG_LOG = {} end @@ -793,9 +793,9 @@ do ---------------------- end self:CreateSettingsMenu() - + L = self:GetLocale() - + -- Init debug self:ToggleDebugTracker(self.Vars.dbg.tracker or self.Vars.dbg.units) @@ -807,12 +807,12 @@ do ---------------------- self.AnnouncementUIManager:Initialize(RaidNotifierUICenterAnnounce) RaidNotifier.NotificationsPool.GetInstance():SetScale(self.Vars.general.notifications_scale / 100); RaidNotifier.NotificationsPool.GetInstance():SetPrecise(self.Vars.countdown.timerPrecise) - + -- Bindings ZO_CreateStringId("SI_BINDING_NAME_RAIDNOTIFIER_TOGGLE_ULTI", L.Binding_ToggleUltimateExchange) -- Always add fragment now - self:AddFragment() + self:AddFragment() -- These aren't needed anymore since we now start & stop Raid Notifier solely based on being in the raid zone --EVENT_MANAGER:RegisterForEvent(self.Name, EVENT_RAID_TRIAL_STARTED, function(...) self:RegisterEvents() end) @@ -856,11 +856,11 @@ end do local bossCount, bossAlive, bossFull function RaidNotifier:GetNumBosses(fresh) - if (not bossCount or fresh) then + if (not bossCount or fresh) then bossCount = 0 bossAlive = 0 - bossFull = 0 - + bossFull = 0 + local health, maxHealth for i = 1, MAX_BOSSES do if DoesUnitExist("boss"..i) then @@ -883,7 +883,7 @@ do --------------------------- local LUNIT = LibUnits2 local Util = RaidNotifier.Util - + function RaidNotifier.UnitIdToString(id) local name = RaidNotifier.Vars.general.useDisplayName and LUNIT.GetDisplayNameForUnitId(id) or LUNIT.GetNameForUnitId(id) if name == "" then @@ -891,7 +891,7 @@ do --------------------------- end return name end - + function RaidNotifier.UnitToTag(id) return LUNIT.GetUnitTagForUnitId(id) end @@ -922,7 +922,7 @@ do --------------------------- [RAID_SUNSPIRE] = RaidNotifier.SS, [RAID_KYNES_AEGIS] = RaidNotifier.KA, } - + ------------------- ---- Debugging ---- ------------------- @@ -934,19 +934,19 @@ do --------------------------- local trackedUnits = {} local trackedAbilities = {} - + local function OnCombatDebugEvent(_, result, isError, aName, aGraphic, aActionSlotType, sName, sType, tName, tType, hitValue, pType, dType, log, sUnitId, tUnitId, abilityId) local self = RaidNotifier - + -- if abilityId < 80000 then --- return +-- return if sType == COMBAT_UNIT_TYPE_PLAYER then return elseif self.blacklist and self.blacklist[abilityId] then - return + return end - + if self.Vars.dbg.units then local function CheckUnit(id, name, type) if id > 0 and not trackedUnits[id] then @@ -962,7 +962,7 @@ do --------------------------- end CheckUnit(tUnitId, tName, tType) end - + --self.Vars.dbg.blacklist = self.Vars.dbg.blacklist or {} --self.Vars.dbg.blacklist[abilityId] = true @@ -989,7 +989,7 @@ do --------------------------- local ability = (aName ~= "" and aName ~= nil) and aName or GetAbilityName(abilityId) debugList[result][abilityId] = self.Vars.dbg.spamControl - dlog(debugMsg, result, ability, abilityId, source, target, hitValue) + dlog(debugMsg, result, ability, abilityId, source, target, hitValue) end end end @@ -998,7 +998,7 @@ do --------------------------- local debugEventName = RaidNotifier.Name .. "_CombatEventDebug" function RaidNotifier:ToggleDebugTracker(enabled) EVENT_MANAGER:UnregisterForEvent(debugEventName, EVENT_COMBAT_EVENT) - if enabled then + if enabled then EVENT_MANAGER:RegisterForEvent(debugEventName, EVENT_COMBAT_EVENT, OnCombatDebugEvent) end end @@ -1028,7 +1028,7 @@ do --------------------------- end -- Fast debug toggle - SLASH_COMMANDS["/rndebug"] = function(str) + SLASH_COMMANDS["/rndebug"] = function(str) local args = {zo_strsplit(" ", str)} local self = RaidNotifier @@ -1045,7 +1045,7 @@ do --------------------------- elseif (args[1] == "spam") then settings.spamControl = Util.GetArgValue(args[2], settings.spamControl) p("%s Spam Control", settings.spamControl and "Enabled" or "Disabled") - elseif (args[1] == "arrow") then + elseif (args[1] == "arrow") then p("Arrow test") local masterList = GROUP_LIST_MANAGER:GetMasterList() if (#masterList == 0) then @@ -1060,7 +1060,7 @@ do --------------------------- p("%s My Enemy Only", settings.myEnemyOnly and "Enabled" or "Disabled") elseif (args[1] == "clear") then local result = tonumber(args[2]) - if result ~= nil then + if result ~= nil then p("Clearing debug list [%d]", result) debugList[result] = {} else diff --git a/Settings.lua b/Settings.lua index 41196eb..4f9332e 100644 --- a/Settings.lua +++ b/Settings.lua @@ -33,11 +33,11 @@ do ------------------ -- [3] = true, -- Tank -- } - -- local defaults = + -- local defaults = -- { -- useAccountWide = true, --very special setting!! - -- general = + -- general = -- { -- no need for advanced settings -- buffFood_reminder = true, -- buffFood_reminder_interval = 60, @@ -47,7 +47,7 @@ do ------------------ -- last_pet = 0, -- default_sound = SOUNDS.CHAMPION_POINTS_COMMITTED, -- }, - -- ultimate = + -- ultimate = -- { -- no need for advanced settings -- enabled = false, -- hidden = false, @@ -60,7 +60,7 @@ do ------------------ -- override_cost = 0, -- }, - -- helra = + -- helra = -- { -- warrior_stoneform = {value = 1, --[[Self]] sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY, roles = ALL_ROLES}, -- }, @@ -84,7 +84,7 @@ do ------------------ -- overcharge = {value = 0, --[[Off]] sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- call_lightning = {value = 1, --[[Self]] sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- }, - -- dragonstar = + -- dragonstar = -- { -- general_taking_aim = {value = false, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- general_crystal_blast = {value = true, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, @@ -112,7 +112,7 @@ do ------------------ -- stage7_poison = {value = true, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- stage9_synergy = {value = true, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- }, - -- hallsFab = + -- hallsFab = -- { -- conduit_strike = {value = true, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- taking_aim = {value = 1, --[[Self]] sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY, roles = ALL_ROLES}, @@ -125,9 +125,9 @@ do ------------------ -- committee_auras_dynamic = {value = false, }, -- TODO: combine with "committee_auras" as dropdown once fully tested -- committee_fabricant_spawn = {value = false, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, -- committee_reclaim_achieve = {value = false, sound = DEFAULT_SOUND, priority = DEFAULT_PRIORITY}, - -- }, + -- }, - -- dbg = + -- dbg = -- { -- no need for advanced settings -- enable = false, -- notify = false, @@ -138,10 +138,10 @@ do ------------------ -- devMode = false, -- }, -- } - + local defaults = { - dLog = {}, - useAccountWide = true, + dLog = {}, + useAccountWide = true, general = { buffFood_reminder = true, buffFood_reminder_interval = 60, @@ -214,7 +214,7 @@ do ------------------ rakkhat_unstablevoid_countdown = false, rakkhat_threshingwings = true, rakkhat_darknessfalls = false, - rakkhat_darkbarrage = false, + rakkhat_darkbarrage = false, rakkhat_lunarbastion1 = 0, -- "Off" rakkhat_lunarbastion2 = 0, -- "Off" hulk_armorweakened = false, @@ -230,7 +230,7 @@ do ------------------ stage9_synergy = true, }, hallsFab = { - conduit_strike = true, + conduit_strike = true, taking_aim = 1, -- "Self" taking_aim_dynamic = 1, -- "Normal" taking_aim_duration = 5000, @@ -248,7 +248,7 @@ do ------------------ committee_overpower_auras_duration = 9000, committee_fabricant_spawn = false, committee_reclaim_achieve = false, - }, + }, asylum = { llothis_defiling_blast = 1, -- "Self" llothis_soul_stained_corruption = false, @@ -268,7 +268,7 @@ do ------------------ hoarfrost = 0, -- "Off" hoarfrost_shed = true, hoarfrost_countdown = true, - heavy_attack = 0, -- "Off" + heavy_attack = 0, -- "Off" chilling_comet = true, baneful_barb = 0, -- "Off" roaring_flare = 2, -- "Full" @@ -317,7 +317,7 @@ do ------------------ else -- we passed the category itself already return settings[category] end - + end function RaidNotifier:GetDefaults() @@ -433,35 +433,35 @@ function RaidNotifier:CreateSettingsMenu() local off_self_all = { L.Settings_General_Choices_Off, - L.Settings_General_Choices_Self, - L.Settings_General_Choices_All, + L.Settings_General_Choices_Self, + L.Settings_General_Choices_All, } local choices = { mawLorkhaj = { twinBoss_aspects = { L.Settings_General_Choices_Off, - L.Settings_General_Choices_Minimal, + L.Settings_General_Choices_Minimal, L.Settings_General_Choices_Normal, - L.Settings_General_Choices_Full, + L.Settings_General_Choices_Full, }, shattering_strike = off_self_all, rakkhat_unstablevoid = off_self_all, rakkhat_lunarbastion1 = { L.Settings_General_Choices_Off, - L.Settings_General_Choices_Self, + L.Settings_General_Choices_Self, L.Settings_General_Choices_Other, - L.Settings_General_Choices_All, + L.Settings_General_Choices_All, }, rakkhat_lunarbastion2 = { L.Settings_General_Choices_Off, - L.Settings_General_Choices_Self, + L.Settings_General_Choices_Self, L.Settings_General_Choices_Other, - L.Settings_General_Choices_All, + L.Settings_General_Choices_All, }, suneater_eclipse = { L.Settings_General_Choices_Off, L.Settings_General_Choices_Self, - L.Settings_General_Choices_Near, + L.Settings_General_Choices_Near, L.Settings_General_Choices_All, }, }, @@ -501,7 +501,7 @@ function RaidNotifier:CreateSettingsMenu() draining_ballista = off_self_all, }, asylum = { - llothis_defiling_blast = off_self_all, + llothis_defiling_blast = off_self_all, felms_teleport_strike = off_self_all, olms_eruption = off_self_all, }, @@ -567,10 +567,10 @@ function RaidNotifier:CreateSettingsMenu() local function MakeControlEntry(data, category, key) if (category ~= nil and key ~= nil) then - -- for the majority of the settings + -- for the majority of the settings data.category = category data.key = key - + -- build simple table with zero-based values for choices if data.choices and not data.choicesValues then data.choicesValues = {} @@ -593,7 +593,7 @@ function RaidNotifier:CreateSettingsMenu() index = index + 1 data.reference = "RNSettingCtrl"..index end - + -- add get/set functions if they were not provided if not data.getFunc then data.getFunc = function() return getValue(data.category, data.key) end @@ -657,11 +657,11 @@ function RaidNotifier:CreateSettingsMenu() L.Settings_General_Choices_Major_Announcement, L.Settings_General_Choices_Custom_Announcement, }, choicesValues = { - CSA_CATEGORY_SMALL_TEXT, + CSA_CATEGORY_SMALL_TEXT, --CSA_CATEGORY_LARGE_TEXT, CSA_CATEGORY_MAJOR_TEXT, 0, - }, + }, noAlert = true, }, "general", "use_center_screen_announce") MakeControlEntry({ @@ -676,7 +676,7 @@ function RaidNotifier:CreateSettingsMenu() min = 70, max = 150, step = 5, noAlert = true, disabled = function() return savedVars.general.use_center_screen_announce ~= 0 end, - }, "general", "notifications_scale") + }, "general", "notifications_scale") MakeControlEntry({ type = "button", name = L.Settings_General_Notifications_Showcase, @@ -745,7 +745,7 @@ function RaidNotifier:CreateSettingsMenu() noAlert = true, scrollable = true, }, "general", "default_sound") - + -- moved here for easier access MakeControlEntry({ type = "checkbox", @@ -764,8 +764,8 @@ function RaidNotifier:CreateSettingsMenu() getFunc = function() return savedVars.ultimate.enabled end, setFunc = function(value) savedVars.ultimate.enabled = value - if self.raidId > 0 then - if value then + if self.raidId > 0 then + if value then self:RegisterForUltimateChanges() else self:UnregisterForUltimateChanges() @@ -780,7 +780,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_Hidden_TT, getFunc = function() return savedVars.ultimate.hidden end, setFunc = function(value) - savedVars.ultimate.hidden = value + savedVars.ultimate.hidden = value self:SetElementHidden("ultimate", "ulti_window", value) end, default = false, @@ -791,7 +791,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_UseColor_TT, getFunc = function() return savedVars.ultimate.useColor end, setFunc = function(value) - savedVars.ultimate.useColor = value + savedVars.ultimate.useColor = value self:UpdateUltimates() end, default = true, @@ -802,7 +802,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_UseDisplayName_TT, getFunc = function() return savedVars.ultimate.useDisplayName end, setFunc = function(value) - savedVars.ultimate.useDisplayName = value + savedVars.ultimate.useDisplayName = value self:UpdateUltimates() end, default = false, @@ -813,7 +813,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_ShowHealers_TT, getFunc = function() return savedVars.ultimate.showHealers end, setFunc = function(value) - savedVars.ultimate.showHealers = value + savedVars.ultimate.showHealers = value self:UpdateUltimates() end, default = true, @@ -824,7 +824,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_ShowTanks_TT, getFunc = function() return savedVars.ultimate.showTanks end, setFunc = function(value) - savedVars.ultimate.showTanks = value + savedVars.ultimate.showTanks = value self:UpdateUltimates() end, default = true, @@ -835,7 +835,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Ultimate_ShowDps_TT, getFunc = function() return savedVars.ultimate.showDps end, setFunc = function(value) - savedVars.ultimate.showDps = value + savedVars.ultimate.showDps = value self:UpdateUltimates() end, default = false, @@ -879,7 +879,7 @@ function RaidNotifier:CreateSettingsMenu() 10, 5, 2, - }, + }, getFunc = function() return savedVars.countdown.timerPrecise end, @@ -889,12 +889,12 @@ function RaidNotifier:CreateSettingsMenu() ReloadUI() end, noAlert = true, - }, "countdown", "timerPrecise") + }, "countdown", "timerPrecise") MakeControlEntry({ type = "checkbox", name = L.Settings_Countdown_UseColors, tooltip = L.Settings_Countdown_UseColors_TT, - noAlert = true, + noAlert = true, }, "countdown", "useColor") subTable = nil --end submenu @@ -906,9 +906,9 @@ function RaidNotifier:CreateSettingsMenu() tooltip = RAIDNOTIFIER_SETTINGS_PROFILE_USEGLOBAL_TT, warning = L.Settings_Profile_UseGlobal_Warning, getFunc = function() - return RNVars.Default[GetDisplayName()]["$AccountWide"].useAccountWide + return RNVars.Default[GetDisplayName()]["$AccountWide"].useAccountWide end, - setFunc = function(value) + setFunc = function(value) RNVars.Default[GetDisplayName()]["$AccountWide"].useAccountWide = value ReloadUI() end, @@ -1115,7 +1115,7 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_MawLorkhaj_Zhaj_Glyphs_Invert_TT, getFunc = function() return savedVars.mawLorkhaj.zhaj_glyphs_invert end, setFunc = function(value) savedVars.mawLorkhaj.zhaj_glyphs_invert = value; self:InvertGlyphs() end, - disabled = function() return not savedVars.mawLorkhaj.zhaj_glyphs end, + disabled = function() return not savedVars.mawLorkhaj.zhaj_glyphs end, noAlert = true, }, "mawLorkhaj", "zhaj_glyphs_invert") MakeControlEntry({ @@ -1460,19 +1460,19 @@ function RaidNotifier:CreateSettingsMenu() type = "checkbox", name = L.Settings_Cloudrest_Malicious_Strike, tooltip = L.Settings_Cloudrest_Malicious_Strike_TT, - }, "cloudrest", "malicious_strike") + }, "cloudrest", "malicious_strike") MakeControlEntry({ type = "dropdown", name = L.Settings_Cloudrest_Heavy_Attack, tooltip = L.Settings_Cloudrest_Heavy_Attack_TT, choices = choices.cloudrest.heavy_attack, - }, "cloudrest", "heavy_attack") + }, "cloudrest", "heavy_attack") MakeControlEntry({ type = "dropdown", name = L.Settings_Cloudrest_Baneful_Barb, tooltip = L.Settings_Cloudrest_Baneful_Barb_TT, choices = choices.cloudrest.baneful_barb, - }, "cloudrest", "baneful_barb") + }, "cloudrest", "baneful_barb") MakeControlEntry({ type = "checkbox", name = L.Settings_Cloudrest_Break_Amulet, @@ -1546,13 +1546,13 @@ function RaidNotifier:CreateSettingsMenu() type = "checkbox", name = L.Settings_Sunspire_Thrash, tooltip = L.Settings_Sunspire_Thrash_TT, - }, "sunspire", "thrash") + }, "sunspire", "thrash") MakeControlEntry({ type = "dropdown", name = L.Settings_Sunspire_Mark_For_Death, tooltip = L.Settings_Sunspire_Mark_For_Death_TT, choices = choices.sunspire.mark_for_death, - }, "sunspire", "mark_for_death") + }, "sunspire", "mark_for_death") MakeControlEntry({ type = "checkbox", name = L.Settings_Sunspire_Time_Breach, @@ -1562,7 +1562,7 @@ function RaidNotifier:CreateSettingsMenu() type = "checkbox", name = L.Settings_Sunspire_Shock_Bolt, tooltip = L.Settings_Sunspire_Shock_Bolt_TT, - }, "sunspire", "shock_bolt") + }, "sunspire", "shock_bolt") MakeControlEntry({ type = "checkbox", name = L.Settings_Sunspire_Apocalypse, @@ -1619,7 +1619,7 @@ function RaidNotifier:CreateSettingsMenu() --tooltip = RAIDNOTIFIER_SETTINGS_DEBUG_TRACKER_ENABLED_TT, -- dont need tooltip for this getFunc = function() return savedVars.dbg.tracker end, setFunc = function(value) - savedVars.dbg.tracker = value + savedVars.dbg.tracker = value self:ToggleDebugTracker(savedVars.dbg.tracker) end, }) @@ -1650,7 +1650,7 @@ function RaidNotifier:CreateSettingsMenu() --function RaidNotifier:GetSoundValue(category, key) -- local setting = self:GetSetting(savedVars, category, key) - -- return setting.sound + -- return setting.sound --end --function RaidNotifier:SetSoundValue(category, key, value) -- local setting = self:GetSetting(savedVars, category, key) @@ -1660,13 +1660,13 @@ function RaidNotifier:CreateSettingsMenu() local function InitializeCustomDialog() local customControl = RaidNotifier_ConfigDialog - + local function SetupDialog(dialog, data) customControl.selectSound = customControl:GetNamedChild("SelectSound") customControl.selectedSoundID = self:GetSoundValue(data.category, data.key) customControl.selectSound.dropdown:SetSelectedItemText(self:GetSoundName(customControl.selectedSoundID)) end - + local function OnDialogConfirm(dialog) self:SetSoundValue(dialog.data.category, dialog.data.key, dialog.selectedSoundID) end @@ -1696,12 +1696,12 @@ function RaidNotifier:CreateSettingsMenu() } } }) - + local function OnSoundSelected(comboBox, entryText, entry) customControl.selectedSoundID = entry.id PlaySound(entry.id) end - + local function PopulateSoundDropdown(comboBox) comboBox:SetSortsItems(false) @@ -1736,12 +1736,12 @@ function RaidNotifier:CreateSettingsMenu() if (control and not control.data.noAlert) then control.soundBtn = WINDOW_MANAGER:CreateControlFromVirtual(nil, control, "RaidNotifier_ConfigButton") control.soundBtn:SetAnchor(RIGHT, control.combobox or control[control.data.type], LEFT, -1, 0) - control.soundBtn:SetHandler("OnClicked", function() + control.soundBtn:SetHandler("OnClicked", function() ZO_Dialogs_ShowDialog("RAID_NOTIFIER_CONFIG_DIALOG", control.data) end) control.soundBtn.data = {tooltipText=function() return GetConfigButtonTooltipText(control) end} control.soundBtn:SetHidden(false) - + -- re-anchor the warning control if control.warning then control.warning:ClearAnchors() @@ -1750,7 +1750,7 @@ function RaidNotifier:CreateSettingsMenu() end end end - + end CALLBACK_MANAGER:RegisterCallback("LAM-PanelControlsCreated", OnPanelCreation) @@ -1762,7 +1762,7 @@ function RaidNotifier:TryUpgradeSettings() local savedVars = self.Vars local version, lastVersion = self.Version, savedVars.addonVersion or "0" - if lastVersion < "2.2.1" then + if lastVersion < "2.2.1" then -- change all alert sounds with CHAMPION_POINT_GAINED to DEFAULT_SOUND for key, sound in pairs(savedVars.sounds) do if sound == SOUNDS.CHAMPION_POINTS_COMMITTED then @@ -1777,7 +1777,7 @@ function RaidNotifier:TryUpgradeSettings() savedVars.countdown.timerScale = 100 savedVars.countdown.textScale = 100 end - + if lastVersion > "0" and lastVersion < "2.3.6" then -- set taking_aim_duration to "Custom" if previous duration differs from the default if savedVars.hallsFab.taking_aim_duration ~= defaults.hallsFab.taking_aim_duration then diff --git a/lang/en.lua b/lang/en.lua index 4cbaad2..743f5ac 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -58,7 +58,7 @@ L.Binding_ToggleUltimateExchange = "Toggle Ultimate" -------------------------------- L.Settings_Ultimate_Header = "Ultimate Exchange (beta)" L.Settings_Ultimate_Description = "This feature allows you to send your ultimate to your teammates so they can see how close you are to casting it. It uses your cost based on whatever cost reduction you might have from sets or passives." --- Settings +-- Settings L.Settings_Ultimate_Enabled = "Enabled" L.Settings_Ultimate_Enabled_TT = "Enable the sharing and receiving of ultimate values. It is always disabled outside of trials." L.Settings_Ultimate_Hidden = "Hidden" @@ -155,7 +155,7 @@ L.Settings_Archive_Overcharge = "Mobs: Overcharge" L.Settings_Archive_Overcharge_TT = "Alerts you when an Overcharger targets you with his Overcharge ability." L.Settings_Archive_Call_Lightning = "Mobs: Call Lightning" L.Settings_Archive_Call_Lightning_TT = "Alerts you when an Overcharger targets you with his Call Lightning ability." --- Alerts +-- Alerts L.Alerts_Archive_StormAtro_ImpendingStorm = "Incoming |cFF0000Impending Storm|r!" L.Alerts_Archive_StormAtro_LightningStorm = "Incoming |cfef92eLightning Storm|r! Go into the light!" L.Alerts_Archive_StoneAtro_BoulderStorm = "Incoming |cFF0000Boulder Storm|r! Block to avoid knockback!" @@ -352,7 +352,7 @@ L.Settings_HallsFab_Scalded_Debuff_TT = "Displays a small status i L.Settings_HallsFab_Overcharge_Aura = "Committee: Overcharging Aura" L.Settings_HallsFab_Overcharge_Aura_TT = "Alerts you when reclaimer start overcharging aura." L.Settings_HallsFab_Overpower_Auras = "Committee: Overpowering Auras" -L.Settings_HallsFab_Overpower_Auras_TT = "Alerts you when the tanks need to swap the committee bosses" +L.Settings_HallsFab_Overpower_Auras_TT = "Alerts you when the tanks need to swap the committee bosses" L.Settings_HallsFab_Overpower_Auras_Duration = " - Countdown Duration" L.Settings_HallsFab_Overpower_Auras_Duration_TT = "The duration of the countdown in milliseconds." L.Settings_HallsFab_Overpower_Auras_Dynamic = " - Dynamic Countdown" @@ -605,7 +605,7 @@ function RaidNotifier:MissingLocale() d("Obviously not missing any english strings....") end ---if (GetCVar('language.2') == 'de') then +--if (GetCVar('language.2') == 'de') then -- local MissingL = {} -- for k, v in pairs(RaidNotifier:GetLocale()) do -- if (not L[k]) then @@ -613,10 +613,10 @@ end -- L[k] = v -- end -- end --- function RaidNotifier:GetLocale() +-- function RaidNotifier:GetLocale() -- return L -- end --- -- for debugging +-- -- for debugging -- function RaidNotifier:MissingLocale() -- df("Missing strings for '%s'", GetCVar('language.2')) -- d(MissingL) From 385bfe07708a5cc0ba9059126573c70c26092624 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Thu, 9 Sep 2021 18:21:57 +0300 Subject: [PATCH 02/27] [RG] Added skeleton changes Here is basically no any alerts yet, just preparations for them. --- BuffsDebuffs.lua | 6 ++++++ RaidNotifier.lua | 4 ++++ RaidNotifier.txt | 1 + Settings.lua | 9 +++++++++ TrialRockgrove.lua | 26 ++++++++++++++++++++++++++ lang/en.lua | 9 +++++++++ 6 files changed, 55 insertions(+) create mode 100644 TrialRockgrove.lua diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index f8542f9..8fcbef7 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -599,3 +599,9 @@ kynes_aegis.yandir_gargoyle_totem_spawn = 133514 kynes_aegis.yandir_chaurus_totem_spawn = 133516 RaidNotifier.BuffsDebuffs[RAID_KYNES_AEGIS] = kynes_aegis + +-- ------------------------------------------------------ +-- -- Rockgrove------------------------------------------ +-- -- --------------------------------------------------- +local rockgrove = {} +RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/RaidNotifier.lua b/RaidNotifier.lua index 04e6ab7..faab1f3 100644 --- a/RaidNotifier.lua +++ b/RaidNotifier.lua @@ -23,6 +23,7 @@ RAID_CLOUDREST = 9 RAID_BLACKROSE_PRISON = 10 RAID_SUNSPIRE = 11 RAID_KYNES_AEGIS = 12 +RAID_ROCKGROVE = 13 -- Debugging local function p() end @@ -580,6 +581,7 @@ do ---------------------- [RAID_BLACKROSE_PRISON] = 1082, [RAID_SUNSPIRE] = 1121, [RAID_KYNES_AEGIS] = 1196, + [RAID_ROCKGROVE] = 1263, } local RaidZones = {} @@ -907,6 +909,7 @@ do --------------------------- RaidNotifier.CR = RaidNotifier.CR or {} RaidNotifier.SS = RaidNotifier.SS or {} RaidNotifier.KA = RaidNotifier.KA or {} + RaidNotifier.RG = RaidNotifier.RG or {} RaidNotifier.Trial = { @@ -921,6 +924,7 @@ do --------------------------- [RAID_CLOUDREST] = RaidNotifier.CR, [RAID_SUNSPIRE] = RaidNotifier.SS, [RAID_KYNES_AEGIS] = RaidNotifier.KA, + [RAID_ROCKGROVE] = RaidNotifier.RG, } ------------------- diff --git a/RaidNotifier.txt b/RaidNotifier.txt index 95c4103..c737ddf 100644 --- a/RaidNotifier.txt +++ b/RaidNotifier.txt @@ -29,6 +29,7 @@ TrialSanctumOphidia.lua TrialCloudrest.lua TrialSunspire.lua TrialKynesAegis.lua +TrialRockgrove.lua Notifications.lua RaidNotifier.lua diff --git a/Settings.lua b/Settings.lua index 4f9332e..7e6ca35 100644 --- a/Settings.lua +++ b/Settings.lua @@ -19,6 +19,7 @@ RAID_CLOUDREST = 9 RAID_BLACKROSE_PRISON = 10 RAID_SUNSPIRE = 11 RAID_KYNES_AEGIS = 12 +RAID_ROCKGROVE = 13 -- ------------------ -- DEFAULT SETTINGS @@ -300,6 +301,8 @@ do ------------------ bloodknight_blood_fountain = false, yandir_totem_spawn = 0, -- "Off" }, + rockgrove = { + }, dbg = { enable = false, notify = false, @@ -541,6 +544,8 @@ function RaidNotifier:CreateSettingsMenu() L.Settings_General_Choices_All, }, }, + rockgrove = { + }, } -- quick get/set value functions @@ -1601,6 +1606,10 @@ function RaidNotifier:CreateSettingsMenu() }, "kynesAegis", "yandir_totem_spawn") subTable = nil --end submenu + -- Rockgrove + MakeSubmenu(L.Settings_Rockgrove_Header, RaidNotifier:GetRaidDescription(RAID_ROCKGROVE)) + subTable = nil --end submenu + MakeControlEntry({ type = "header", name = L.Settings_Debug_Header, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua new file mode 100644 index 0000000..c3045ab --- /dev/null +++ b/TrialRockgrove.lua @@ -0,0 +1,26 @@ +RaidNotifier = RaidNotifier or {} +RaidNotifier.RG = {} + +local RaidNotifier = RaidNotifier + +local function p() end +local function dbg() end + +local data = {} + +function RaidNotifier.RG.Initialize() + p = RaidNotifier.p + dbg = RaidNotifier.dbg + + data = {} +end + +function RaidNotifier.RG.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.rockgrove + + if (tName == nil or tName == "") then + tName = self.UnitIdToString(tUnitId) + end +end diff --git a/lang/en.lua b/lang/en.lua index 743f5ac..e751738 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -572,6 +572,15 @@ L.Alerts_KynesAegis_Gargoyle_Totem = "|cf5f5dcGargoyle Totem|r L.Alerts_KynesAegis_Chaurus_Totem = "|c39942eChaurus Totem|r spawned. Don't stack!" +-------------------------------- +------ ROCKGROVE ----- +-------------------------------- +L.Settings_Rockgrove_Header = "Rockgrove" +-- Settings + +-- Alerts + + -------------------------------- ---- Debugging ---- -------------------------------- From ae1727d64161de67f159bfa6dd0e65df4af9415a Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Fri, 10 Sep 2021 18:37:04 +0300 Subject: [PATCH 03/27] [RG] Added Sul-Xan's Sundering Strike announcement --- BuffsDebuffs.lua | 4 ++++ Settings.lua | 8 ++++++++ TrialRockgrove.lua | 11 +++++++++++ lang/en.lua | 4 ++++ 4 files changed, 27 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 8fcbef7..70f3a82 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -604,4 +604,8 @@ RaidNotifier.BuffsDebuffs[RAID_KYNES_AEGIS] = kynes_aegis -- -- Rockgrove------------------------------------------ -- -- --------------------------------------------------- local rockgrove = {} + +-- Sul-Xan Reaver's Sundering Strike +rockgrove.sulxan_reaver_sundering_strike = 149524 + RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index 7e6ca35..039ca61 100644 --- a/Settings.lua +++ b/Settings.lua @@ -302,6 +302,7 @@ do ------------------ yandir_totem_spawn = 0, -- "Off" }, rockgrove = { + sulxan_reaver_sundering_strike = 0, -- "Off" }, dbg = { enable = false, @@ -545,6 +546,7 @@ function RaidNotifier:CreateSettingsMenu() }, }, rockgrove = { + sulxan_reaver_sundering_strike = off_self_all, }, } @@ -1608,6 +1610,12 @@ function RaidNotifier:CreateSettingsMenu() -- Rockgrove MakeSubmenu(L.Settings_Rockgrove_Header, RaidNotifier:GetRaidDescription(RAID_ROCKGROVE)) + MakeControlEntry({ + type = "dropdown", + name = L.Settings_Rockgrove_Sundering_Strike, + tooltip = L.Settings_Rockgrove_Sundering_Strike_TT, + choices = choices.rockgrove.sulxan_reaver_sundering_strike, + }, "rockgrove", "sulxan_reaver_sundering_strike") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index c3045ab..674f28d 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -23,4 +23,15 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (tName == nil or tName == "") then tName = self.UnitIdToString(tUnitId) end + + if (result == ACTION_RESULT_BEGIN) then + -- Sul-Xan Reaver's Sundering Strike + if (abilityId == buffsDebuffs.sulxan_reaver_sundering_strike) then + if (settings.sulxan_reaver_sundering_strike >= 1 and tType == COMBAT_UNIT_TYPE_PLAYER) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SUNDERING_STRIKE), "rockgrove", "sulxan_reaver_sundering_strike") + elseif (settings.sulxan_reaver_sundering_strike == 2 and tName ~= "") then + self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SUNDERING_STRIKE_OTHER), tName), "rockgrove", "sulxan_reaver_sundering_strike") + end + end + end end diff --git a/lang/en.lua b/lang/en.lua index e751738..959e1a8 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -577,8 +577,12 @@ L.Alerts_KynesAegis_Chaurus_Totem = "|c39942eChaurus Totem|r s -------------------------------- L.Settings_Rockgrove_Header = "Rockgrove" -- Settings +L.Settings_Rockgrove_Sundering_Strike = "General: Sundering Strike" +L.Settings_Rockgrove_Sundering_Strike_TT = "Alerts you when the Sul-Xan Reaper makes Sundering Strike attack. Roll dodge it." -- Alerts +L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" +L.Alerts_Rockgrove_Sundering_Strike_Other = "Incoming |cCDCDCDSundering Strike|r on |cFF0000<>|r!" -------------------------------- From e936810e00842f8d6c9d52f3d320ae87bcd8ea40 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Fri, 10 Sep 2021 19:08:44 +0300 Subject: [PATCH 04/27] [RG] Added Sul-Xan's Astral Shield announcement --- BuffsDebuffs.lua | 6 ++++++ Settings.lua | 6 ++++++ TrialRockgrove.lua | 17 +++++++++++++++++ lang/en.lua | 5 +++++ 4 files changed, 34 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 70f3a82..b7ed98b 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -607,5 +607,11 @@ local rockgrove = {} -- Sul-Xan Reaver's Sundering Strike rockgrove.sulxan_reaver_sundering_strike = 149524 +-- Sul-Xan Soulweaver's Astral Shield: casting +rockgrove.sulxan_soulweaver_astral_shield_cast = 149089 +-- Sul-Xan Soulweaver's Astral Shield: gained shield by himself +rockgrove.sulxan_soulweaver_astral_shield_self = 149099 +-- Sul-Xan Soulweaver's Astral Shield: gained shield by other adds +rockgrove.sulxan_soulweaver_astral_shield_others = 157236 RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index 039ca61..3476b9f 100644 --- a/Settings.lua +++ b/Settings.lua @@ -303,6 +303,7 @@ do ------------------ }, rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" + sulxan_soulweaver_astral_shield = false, }, dbg = { enable = false, @@ -1616,6 +1617,11 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_Rockgrove_Sundering_Strike_TT, choices = choices.rockgrove.sulxan_reaver_sundering_strike, }, "rockgrove", "sulxan_reaver_sundering_strike") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Astral_Shield, + tooltip = L.Settings_Rockgrove_Astral_Shield_TT, + }, "rockgrove", "sulxan_soulweaver_astral_shield") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 674f28d..dcf228b 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -32,6 +32,23 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct elseif (settings.sulxan_reaver_sundering_strike == 2 and tName ~= "") then self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SUNDERING_STRIKE_OTHER), tName), "rockgrove", "sulxan_reaver_sundering_strike") end + -- Sul-Xan Soulweaver's Astral Shield (cast) + elseif (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_cast) then + if (settings.sulxan_soulweaver_astral_shield) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_ASTRAL_SHIELD_CAST), "rockgrove", "sulxan_soulweaver_astral_shield") + end + end + elseif (result == ACTION_RESULT_EFFECT_FADED) then + -- Sul-Xan Soulweaver's Soul Remnant attack (his Astral Shield is broken) + if (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_self) then + if (settings.sulxan_soulweaver_astral_shield) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_REMNANT_HEAVY), "rockgrove", "sulxan_soulweaver_astral_shield") + end + -- Other's Soul Remnant attack (Astral Shield gained from Soulweaver is broken) + elseif (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_others) then + if (settings.sulxan_soulweaver_astral_shield) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_REMNANT), "rockgrove", "sulxan_soulweaver_astral_shield") + end end end end diff --git a/lang/en.lua b/lang/en.lua index 959e1a8..6fb798e 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -579,10 +579,15 @@ L.Settings_Rockgrove_Header = "Rockgrove" -- Settings L.Settings_Rockgrove_Sundering_Strike = "General: Sundering Strike" L.Settings_Rockgrove_Sundering_Strike_TT = "Alerts you when the Sul-Xan Reaper makes Sundering Strike attack. Roll dodge it." +L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" +L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" L.Alerts_Rockgrove_Sundering_Strike_Other = "Incoming |cCDCDCDSundering Strike|r on |cFF0000<>|r!" +L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r has been casted. Prepare to dodge or block!" +L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" +L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" -------------------------------- From fc5d503d0191589f1ae9c245accd7725a5512cec Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Fri, 10 Sep 2021 19:25:28 +0300 Subject: [PATCH 05/27] [RG] Added Sul-Xan's Soul Extraction announcement --- BuffsDebuffs.lua | 5 +++++ Settings.lua | 6 ++++++ TrialRockgrove.lua | 12 ++++++++++++ lang/en.lua | 3 +++ 4 files changed, 26 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index b7ed98b..14ca496 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -613,5 +613,10 @@ rockgrove.sulxan_soulweaver_astral_shield_cast = 149089 rockgrove.sulxan_soulweaver_astral_shield_self = 149099 -- Sul-Xan Soulweaver's Astral Shield: gained shield by other adds rockgrove.sulxan_soulweaver_astral_shield_others = 157236 +-- Sul-Xan Soulweaver's Soul Extraction +rockgrove.sulxan_soulweaver_soul_extraction = { + [158441] = true, + [158442] = true, +} RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index 3476b9f..ec3f78a 100644 --- a/Settings.lua +++ b/Settings.lua @@ -304,6 +304,7 @@ do ------------------ rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" sulxan_soulweaver_astral_shield = false, + sulxan_soulweaver_soul_extraction = false, }, dbg = { enable = false, @@ -1622,6 +1623,11 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Astral_Shield, tooltip = L.Settings_Rockgrove_Astral_Shield_TT, }, "rockgrove", "sulxan_soulweaver_astral_shield") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Soul_Extraction, + tooltip = L.Settings_Rockgrove_Soul_Extraction_TT, + }, "rockgrove", "sulxan_soulweaver_soul_extraction") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index dcf228b..f9100bc 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -37,6 +37,18 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (settings.sulxan_soulweaver_astral_shield) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_ASTRAL_SHIELD_CAST), "rockgrove", "sulxan_soulweaver_astral_shield") end + -- Sul-Xan Soulweaver's Soul Extraction + elseif (buffsDebuffs.sulxan_soulweaver_soul_extraction[abilityId]) then + if (settings.sulxan_soulweaver_soul_extraction and tType == COMBAT_UNIT_TYPE_PLAYER) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_EXTRACTION), "rockgrove", "sulxan_soulweaver_soul_extraction") + end + end + elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then + -- Sul-Xan Soulweaver's Soul Extraction (Debug purpose only!) + if (buffsDebuffs.sulxan_soulweaver_soul_extraction[abilityId]) then + if (settings.sulxan_soulweaver_soul_extraction and tType == COMBAT_UNIT_TYPE_PLAYER) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_EXTRACTION) .. " (GainDur)", "rockgrove", "sulxan_soulweaver_soul_extraction") + end end elseif (result == ACTION_RESULT_EFFECT_FADED) then -- Sul-Xan Soulweaver's Soul Remnant attack (his Astral Shield is broken) diff --git a/lang/en.lua b/lang/en.lua index 6fb798e..989e96f 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -581,6 +581,8 @@ L.Settings_Rockgrove_Sundering_Strike = "General: Sundering Strike" L.Settings_Rockgrove_Sundering_Strike_TT = "Alerts you when the Sul-Xan Reaper makes Sundering Strike attack. Roll dodge it." L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." +L.Settings_Rockgrove_Soul_Extraction = "General: Soul Extraction" +L.Settings_Rockgrove_Soul_Extraction_TT = "Alerts you when the Sul-Xan Soulweaver casts Soul Extraction on you." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" @@ -588,6 +590,7 @@ L.Alerts_Rockgrove_Sundering_Strike_Other = "Incoming |cCDCDCDSundering L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r has been casted. Prepare to dodge or block!" L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" +L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction on you!" -------------------------------- From bb15cc85ecef1d62dae4a46ae3973438b56957d2 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Fri, 10 Sep 2021 20:14:00 +0300 Subject: [PATCH 06/27] [RG] Added Havocrel Barbarian's Hasted Assault announcement --- BuffsDebuffs.lua | 5 +++++ Settings.lua | 6 ++++++ TrialRockgrove.lua | 5 +++++ lang/en.lua | 3 +++ 4 files changed, 19 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 14ca496..9aa0688 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -618,5 +618,10 @@ rockgrove.sulxan_soulweaver_soul_extraction = { [158441] = true, [158442] = true, } +-- Havocrel Barbarian's Hasted Assault +rockgrove.havocrel_barbarian_hasted_assault = { + [149261] = true, + [149268] = true, +} RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index ec3f78a..aca3f84 100644 --- a/Settings.lua +++ b/Settings.lua @@ -305,6 +305,7 @@ do ------------------ sulxan_reaver_sundering_strike = 0, -- "Off" sulxan_soulweaver_astral_shield = false, sulxan_soulweaver_soul_extraction = false, + havocrel_barbarian_hasted_assault = false, }, dbg = { enable = false, @@ -1628,6 +1629,11 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Soul_Extraction, tooltip = L.Settings_Rockgrove_Soul_Extraction_TT, }, "rockgrove", "sulxan_soulweaver_soul_extraction") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Hasted_Assault, + tooltip = L.Settings_Rockgrove_Hasted_Assault_TT, + }, "rockgrove", "havocrel_barbarian_hasted_assault") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index f9100bc..02e1921 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -42,6 +42,11 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (settings.sulxan_soulweaver_soul_extraction and tType == COMBAT_UNIT_TYPE_PLAYER) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_EXTRACTION), "rockgrove", "sulxan_soulweaver_soul_extraction") end + -- Havocrel Barbarian's Hasted Assault + elseif (buffsDebuffs.havocrel_barbarian_hasted_assault[abilityId]) then + if (settings.havocrel_barbarian_hasted_assault) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_HASTED_ASSAULT), "rockgrove", "havocrel_barbarian_hasted_assault") + end end elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then -- Sul-Xan Soulweaver's Soul Extraction (Debug purpose only!) diff --git a/lang/en.lua b/lang/en.lua index 989e96f..bcade99 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -583,6 +583,8 @@ L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." L.Settings_Rockgrove_Soul_Extraction = "General: Soul Extraction" L.Settings_Rockgrove_Soul_Extraction_TT = "Alerts you when the Sul-Xan Soulweaver casts Soul Extraction on you." +L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" +L.Settings_Rockgrove_Hasted_Assault_TT = "Alerts you when the Havocrel Barbarian makes Hasted Assault attack. He teleports from player to player in random order and attacks them. This should be blocked." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" @@ -591,6 +593,7 @@ L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r ha L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction on you!" +L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" -------------------------------- From 8b752a4943aa98222a523d63e3477a737c1beeef Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Fri, 10 Sep 2021 20:38:01 +0300 Subject: [PATCH 07/27] [RG] Added Oaxiltso's Savage Blitz announcement --- BuffsDebuffs.lua | 5 +++++ Settings.lua | 6 ++++++ TrialRockgrove.lua | 5 +++++ lang/en.lua | 3 +++ 4 files changed, 19 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 9aa0688..bff775f 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -623,5 +623,10 @@ rockgrove.havocrel_barbarian_hasted_assault = { [149261] = true, [149268] = true, } +-- Oaxiltso's Savage Blitz +rockgrove.oaxiltso_savage_blitz = { + [149414] = true, + [157932] = true, +} RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index aca3f84..51e3519 100644 --- a/Settings.lua +++ b/Settings.lua @@ -306,6 +306,7 @@ do ------------------ sulxan_soulweaver_astral_shield = false, sulxan_soulweaver_soul_extraction = false, havocrel_barbarian_hasted_assault = false, + oaxiltso_savage_blitz = false, }, dbg = { enable = false, @@ -1634,6 +1635,11 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Hasted_Assault, tooltip = L.Settings_Rockgrove_Hasted_Assault_TT, }, "rockgrove", "havocrel_barbarian_hasted_assault") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Savage_Blitz, + tooltip = L.Settings_Rockgrove_Savage_Blitz_TT, + }, "rockgrove", "oaxiltso_savage_blitz") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 02e1921..a9fcd27 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -47,6 +47,11 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (settings.havocrel_barbarian_hasted_assault) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_HASTED_ASSAULT), "rockgrove", "havocrel_barbarian_hasted_assault") end + -- Oaxiltso's Savage Blitz + elseif (buffsDebuffs.oaxiltso_savage_blitz[abilityId]) then + if (settings.oaxiltso_savage_blitz and tName ~= "") then + self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SAVAGE_BLITZ), tName), "rockgrove", "oaxiltso_savage_blitz") + end end elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then -- Sul-Xan Soulweaver's Soul Extraction (Debug purpose only!) diff --git a/lang/en.lua b/lang/en.lua index bcade99..6a1d4a1 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -585,6 +585,8 @@ L.Settings_Rockgrove_Soul_Extraction = "General: Soul Extraction" L.Settings_Rockgrove_Soul_Extraction_TT = "Alerts you when the Sul-Xan Soulweaver casts Soul Extraction on you." L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" L.Settings_Rockgrove_Hasted_Assault_TT = "Alerts you when the Havocrel Barbarian makes Hasted Assault attack. He teleports from player to player in random order and attacks them. This should be blocked." +L.Settings_Rockgrove_Savage_Blitz = "Oaxiltso: Savage Blitz" +L.Settings_Rockgrove_Savage_Blitz_TT = "Alerts you when the Oaxiltso charges at the furthest player." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" @@ -594,6 +596,7 @@ L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2F L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction on you!" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" +L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" -------------------------------- From c6836db850f4413818556aa1a4699e34b00f96df Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 13 Sep 2021 16:35:52 +0300 Subject: [PATCH 08/27] [RG] Added EVENT_EFFECT_CHANGED dummy handler --- RaidNotifier.lua | 3 +++ TrialRockgrove.lua | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/RaidNotifier.lua b/RaidNotifier.lua index faab1f3..234516a 100644 --- a/RaidNotifier.lua +++ b/RaidNotifier.lua @@ -684,6 +684,9 @@ do ---------------------- if (self.raidId == RAID_MAW_OF_LORKHAJ) then EVENT_MANAGER:AddFilterForEvent(self.Name, EVENT_EFFECT_CHANGED, REGISTER_FILTER_ABILITY_ID, self.BuffsDebuffs[RAID_MAW_OF_LORKHAJ].rakkhat_hulk_armorweakened) end + if (self.raidId == RAID_ROCKGROVE) then + EVENT_MANAGER:AddFilterForEvent(self.Name, EVENT_EFFECT_CHANGED, REGISTER_FILTER_UNIT_TAG_PREFIX, "group") + end end if (bossesChangedCallback) then EVENT_MANAGER:RegisterForEvent(self.Name, EVENT_BOSSES_CHANGED, bossesChangedCallback) diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index a9fcd27..9f133fb 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -15,6 +15,13 @@ function RaidNotifier.RG.Initialize() data = {} end +function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uTag, beginTime, endTime, stackCount, iconName, buffType, eType, aType, statusEffectType, uName, uId, abilityId, uType) + local raidId = RaidNotifier.raidId + local self = RaidNotifier + + local buffsDebuffs, settings = self.BuffsDebuffs[raidId], self.Vars.rockgrove +end + function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aActionSlotType, sName, sType, tName, tType, hitValue, pType, dType, log, sUnitId, tUnitId, abilityId) local raidId = RaidNotifier.raidId local self = RaidNotifier From 92236f7e7b22f8d06bed6d112750485a703a6d63 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 13 Sep 2021 18:15:11 +0300 Subject: [PATCH 09/27] [RG] Added Prime Meteor countdown --- BuffsDebuffs.lua | 5 +++++ Settings.lua | 6 ++++++ TrialRockgrove.lua | 11 +++++++++++ lang/en.lua | 3 +++ 4 files changed, 25 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index bff775f..251ce3a 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -628,5 +628,10 @@ rockgrove.oaxiltso_savage_blitz = { [149414] = true, [157932] = true, } +-- Radiating Heat (player gains this effect while Prime Meteor is present) +rockgrove.meteor_radiating_heat = { + [152462] = true, -- on trash + [157383] = true, -- on second boss +} RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index 51e3519..0b3b262 100644 --- a/Settings.lua +++ b/Settings.lua @@ -305,6 +305,7 @@ do ------------------ sulxan_reaver_sundering_strike = 0, -- "Off" sulxan_soulweaver_astral_shield = false, sulxan_soulweaver_soul_extraction = false, + prime_meteor = false, havocrel_barbarian_hasted_assault = false, oaxiltso_savage_blitz = false, }, @@ -1630,6 +1631,11 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Soul_Extraction, tooltip = L.Settings_Rockgrove_Soul_Extraction_TT, }, "rockgrove", "sulxan_soulweaver_soul_extraction") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Prime_Meteor, + tooltip = L.Settings_Rockgrove_Prime_Meteor_TT, + }, "rockgrove", "prime_meteor") MakeControlEntry({ type = "checkbox", name = L.Settings_Rockgrove_Hasted_Assault, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 9f133fb..4f86384 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -20,6 +20,17 @@ function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uT local self = RaidNotifier local buffsDebuffs, settings = self.BuffsDebuffs[raidId], self.Vars.rockgrove + + -- Prime Meteor + if (buffsDebuffs.meteor_radiating_heat[abilityId] and string.sub(uTag, 1, 5) == "group") then + if (settings.prime_meteor) then + if (changeType == EFFECT_RESULT_GAINED) then + if (AreUnitsEqual(uTag, "player")) then + self:StartCountdown(10000, GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_PRIME_METEOR), "rockgrove", "prime_meteor", true) + end + end + end + end end function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aActionSlotType, sName, sType, tName, tType, hitValue, pType, dType, log, sUnitId, tUnitId, abilityId) diff --git a/lang/en.lua b/lang/en.lua index 6a1d4a1..978175b 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -583,6 +583,8 @@ L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." L.Settings_Rockgrove_Soul_Extraction = "General: Soul Extraction" L.Settings_Rockgrove_Soul_Extraction_TT = "Alerts you when the Sul-Xan Soulweaver casts Soul Extraction on you." +L.Settings_Rockgrove_Prime_Meteor = "General: Prime Meteor" +L.Settings_Rockgrove_Prime_Meteor_TT = "Shows countdown when meteor appears indicating the time before it explodes. Make sure to kill the meteor in time." L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" L.Settings_Rockgrove_Hasted_Assault_TT = "Alerts you when the Havocrel Barbarian makes Hasted Assault attack. He teleports from player to player in random order and attacks them. This should be blocked." L.Settings_Rockgrove_Savage_Blitz = "Oaxiltso: Savage Blitz" @@ -595,6 +597,7 @@ L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r ha L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction on you!" +L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" From ee79859f18e4a90710ac8f9fff653d66ce063247 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 13 Sep 2021 18:51:10 +0300 Subject: [PATCH 10/27] [RG] Added Bahsei's Embrace of Death countdown --- BuffsDebuffs.lua | 2 ++ Settings.lua | 8 ++++++++ TrialRockgrove.lua | 11 +++++++++++ lang/en.lua | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 251ce3a..c0a35dc 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -633,5 +633,7 @@ rockgrove.meteor_radiating_heat = { [152462] = true, -- on trash [157383] = true, -- on second boss } +-- Flame-Herald Bahsei's Death Touch debuff (caused by Embrace of Death mech) +rockgrove.bahsei_death_touch = 150078 RaidNotifier.BuffsDebuffs[RAID_ROCKGROVE] = rockgrove diff --git a/Settings.lua b/Settings.lua index 0b3b262..4949f16 100644 --- a/Settings.lua +++ b/Settings.lua @@ -308,6 +308,7 @@ do ------------------ prime_meteor = false, havocrel_barbarian_hasted_assault = false, oaxiltso_savage_blitz = false, + bahsei_embrace_of_death = 0, -- "Off" }, dbg = { enable = false, @@ -552,6 +553,7 @@ function RaidNotifier:CreateSettingsMenu() }, rockgrove = { sulxan_reaver_sundering_strike = off_self_all, + bahsei_embrace_of_death = off_self_all, }, } @@ -1646,6 +1648,12 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Savage_Blitz, tooltip = L.Settings_Rockgrove_Savage_Blitz_TT, }, "rockgrove", "oaxiltso_savage_blitz") + MakeControlEntry({ + type = "dropdown", + name = L.Settings_Rockgrove_Embrace_Of_Death, + tooltip = L.Settings_Rockgrove_Embrace_Of_Death_TT, + choices = choices.rockgrove.bahsei_embrace_of_death, + }, "rockgrove", "bahsei_embrace_of_death") subTable = nil --end submenu MakeControlEntry({ diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 4f86384..3c4b1ec 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -30,6 +30,17 @@ function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uT end end end + -- Flame-Herald Bahsei's Embrace of Death (Death Touch debuff) + elseif (abilityId == buffsDebuffs.bahsei_death_touch and string.sub(uTag, 1, 5) == "group") then + if (changeType == EFFECT_RESULT_GAINED) then + if (settings.bahsei_embrace_of_death >= 1 and AreUnitsEqual(uTag, "player")) then + self:StartCountdown(8000, GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_EMBRACE_OF_DEATH), "rockgrove", "bahsei_embrace_of_death", true) + elseif (settings.bahsei_embrace_of_death == 2) then + local targetPlayerName = self.UnitIdToString(uId) + + self:StartCountdown(8000, zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_EMBRACE_OF_DEATH_OTHER), targetPlayerName), "rockgrove", "bahsei_embrace_of_death", true) + end + end end end diff --git a/lang/en.lua b/lang/en.lua index 978175b..2087f19 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -589,6 +589,8 @@ L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" L.Settings_Rockgrove_Hasted_Assault_TT = "Alerts you when the Havocrel Barbarian makes Hasted Assault attack. He teleports from player to player in random order and attacks them. This should be blocked." L.Settings_Rockgrove_Savage_Blitz = "Oaxiltso: Savage Blitz" L.Settings_Rockgrove_Savage_Blitz_TT = "Alerts you when the Oaxiltso charges at the furthest player." +L.Settings_Rockgrove_Embrace_Of_Death = "Flame-Herald Bahsei: Embrace of Death" +L.Settings_Rockgrove_Embrace_Of_Death_TT = "Alerts you when someone got cursed by Flame-Herald Bahsei. That person will explode after 8 seconds, spreading the curse. It's important to keep cursed player separated from the group." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" @@ -600,6 +602,8 @@ L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction o L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" +L.Alerts_Rockgrove_Embrace_Of_Death = "You're cursed by |c370073Embrace of Death|r! Stay away! Explosion in" +L.Alerts_Rockgrove_Embrace_Of_Death_Other = "|cFF0000<>|r cursed by |c370073Embrace of Death|r! Explosion in" -------------------------------- From fd5c2bd74de495ede6c88d66591c9133949b9d96 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 13 Sep 2021 19:04:24 +0300 Subject: [PATCH 11/27] [RG] Added Oaxiltso's Noxious Sludge announcement --- BuffsDebuffs.lua | 2 ++ Settings.lua | 8 ++++++++ TrialRockgrove.lua | 11 +++++++++++ lang/en.lua | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index c0a35dc..a807fed 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -628,6 +628,8 @@ rockgrove.oaxiltso_savage_blitz = { [149414] = true, [157932] = true, } +-- Oaxiltso's Noxious Sludge +rockgrove.oaxiltso_noxious_sludge = 157860 -- Radiating Heat (player gains this effect while Prime Meteor is present) rockgrove.meteor_radiating_heat = { [152462] = true, -- on trash diff --git a/Settings.lua b/Settings.lua index 4949f16..f9cc173 100644 --- a/Settings.lua +++ b/Settings.lua @@ -308,6 +308,7 @@ do ------------------ prime_meteor = false, havocrel_barbarian_hasted_assault = false, oaxiltso_savage_blitz = false, + oaxiltso_noxious_sludge = 0, -- "Off" bahsei_embrace_of_death = 0, -- "Off" }, dbg = { @@ -553,6 +554,7 @@ function RaidNotifier:CreateSettingsMenu() }, rockgrove = { sulxan_reaver_sundering_strike = off_self_all, + oaxiltso_noxious_sludge = off_self_all, bahsei_embrace_of_death = off_self_all, }, } @@ -1648,6 +1650,12 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Savage_Blitz, tooltip = L.Settings_Rockgrove_Savage_Blitz_TT, }, "rockgrove", "oaxiltso_savage_blitz") + MakeControlEntry({ + type = "dropdown", + name = L.Settings_Rockgrove_Noxious_Sludge, + tooltip = L.Settings_Rockgrove_Noxious_Sludge_TT, + choices = choices.rockgrove.oaxiltso_noxious_sludge, + }, "rockgrove", "oaxiltso_noxious_sludge") MakeControlEntry({ type = "dropdown", name = L.Settings_Rockgrove_Embrace_Of_Death, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 3c4b1ec..65c359a 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -30,6 +30,17 @@ function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uT end end end + -- Oaxiltso's Noxious Sludge + elseif (abilityId == buffsDebuffs.oaxiltso_noxious_sludge and string.sub(uTag, 1, 5) == "group") then + if (changeType == EFFECT_RESULT_GAINED) then + if (settings.oaxiltso_noxious_sludge >= 1 and AreUnitsEqual(uTag, "player")) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE), "rockgrove", "oaxiltso_noxious_sludge") + elseif (settings.oaxiltso_noxious_sludge == 2) then + local targetPlayerName = self.UnitIdToString(uId) + + self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE_OTHER), targetPlayerName), "rockgrove", "oaxiltso_noxious_sludge") + end + end -- Flame-Herald Bahsei's Embrace of Death (Death Touch debuff) elseif (abilityId == buffsDebuffs.bahsei_death_touch and string.sub(uTag, 1, 5) == "group") then if (changeType == EFFECT_RESULT_GAINED) then diff --git a/lang/en.lua b/lang/en.lua index 2087f19..8fc6838 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -589,6 +589,8 @@ L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" L.Settings_Rockgrove_Hasted_Assault_TT = "Alerts you when the Havocrel Barbarian makes Hasted Assault attack. He teleports from player to player in random order and attacks them. This should be blocked." L.Settings_Rockgrove_Savage_Blitz = "Oaxiltso: Savage Blitz" L.Settings_Rockgrove_Savage_Blitz_TT = "Alerts you when the Oaxiltso charges at the furthest player." +L.Settings_Rockgrove_Noxious_Sludge = "Oaxiltso: Noxious Sludge" +L.Settings_Rockgrove_Noxious_Sludge_TT = "Alerts you when someone is poisoned by Oaxiltso and has to go cleanse in the pool." L.Settings_Rockgrove_Embrace_Of_Death = "Flame-Herald Bahsei: Embrace of Death" L.Settings_Rockgrove_Embrace_Of_Death_TT = "Alerts you when someone got cursed by Flame-Herald Bahsei. That person will explode after 8 seconds, spreading the curse. It's important to keep cursed player separated from the group." @@ -602,6 +604,8 @@ L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction o L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" +L.Alerts_Rockgrove_Noxious_Sludge = "You're poisoned by |c008C22Noxious Sludge|r! Cleanse in the pool!" +L.Alerts_Rockgrove_Noxious_Sludge_Other = "|cFF0000<>|r is poisoned by |c008C22Noxious Sludge|r." L.Alerts_Rockgrove_Embrace_Of_Death = "You're cursed by |c370073Embrace of Death|r! Stay away! Explosion in" L.Alerts_Rockgrove_Embrace_Of_Death_Other = "|cFF0000<>|r cursed by |c370073Embrace of Death|r! Explosion in" From b2c8191e2105dbac625d351f6b67c59be2ed9c7a Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 15:44:01 +0300 Subject: [PATCH 12/27] [RG] Set Embrace of Death as "not important" countdown if happens on others --- TrialRockgrove.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 65c359a..67943a6 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -49,7 +49,7 @@ function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uT elseif (settings.bahsei_embrace_of_death == 2) then local targetPlayerName = self.UnitIdToString(uId) - self:StartCountdown(8000, zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_EMBRACE_OF_DEATH_OTHER), targetPlayerName), "rockgrove", "bahsei_embrace_of_death", true) + self:StartCountdown(8000, zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_EMBRACE_OF_DEATH_OTHER), targetPlayerName), "rockgrove", "bahsei_embrace_of_death", false) end end end From 2470270c15313bb09ea4c6a694e2bed4d19246ca Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 2 Oct 2021 12:38:06 +0300 Subject: [PATCH 13/27] [KA] Added Chaurus Bite projectile announcements at Yandir boss --- BuffsDebuffs.lua | 2 ++ Settings.lua | 8 ++++++++ TrialKynesAegis.lua | 10 ++++++++++ lang/en.lua | 4 ++++ 4 files changed, 24 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index a807fed..1382eee 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -597,6 +597,8 @@ kynes_aegis.yandir_harpy_totem_spawn = 133511 kynes_aegis.yandir_gargoyle_totem_spawn = 133514 -- Chaurus Totem spawn at Yandir the Butcher boss kynes_aegis.yandir_chaurus_totem_spawn = 133516 +-- Chaurus Bile, projectile from Chaurus Totem at Yandir the Butcher boss +kynes_aegis.yandir_chaurus_bile = 133559 RaidNotifier.BuffsDebuffs[RAID_KYNES_AEGIS] = kynes_aegis diff --git a/Settings.lua b/Settings.lua index f9cc173..c9449b0 100644 --- a/Settings.lua +++ b/Settings.lua @@ -300,6 +300,7 @@ do ------------------ bitter_knight_sanguine_prison = false, bloodknight_blood_fountain = false, yandir_totem_spawn = 0, -- "Off" + yandir_chaurus_bile = 0, -- "Off" }, rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" @@ -551,6 +552,7 @@ function RaidNotifier:CreateSettingsMenu() L.Settings_General_Choices_OnlyChaurusTotem, L.Settings_General_Choices_All, }, + yandir_chaurus_bile = off_self_all, }, rockgrove = { sulxan_reaver_sundering_strike = off_self_all, @@ -1615,6 +1617,12 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_KynesAegis_Totem_TT, choices = choices.kynesAegis.yandir_totem_spawn, }, "kynesAegis", "yandir_totem_spawn") + MakeControlEntry({ + type = "dropdown", + name = L.Settings_KynesAegis_Chaurus_Bile, + tooltip = L.Settings_KynesAegis_Chaurus_Bile_TT, + choices = choices.kynesAegis.yandir_chaurus_bile, + }, "kynesAegis", "yandir_chaurus_bile") subTable = nil --end submenu -- Rockgrove diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index abea43c..00ab208 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -71,5 +71,15 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_TOTEM), "kynesAegis", "yandir_totem_spawn") end end + -- Chaurus Bile projectile from Chaurus Totem at Yandir the Butcher boss + if (abilityId == buffsDebuffs.yandir_chaurus_bile) then + if (settings.yandir_chaurus_bile >= 1) then + if (tType == COMBAT_UNIT_TYPE_PLAYER) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_BILE_SELF), "kynesAegis", "yandir_chaurus_bile") + elseif (settings.yandir_chaurus_bile == 2) then + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_BILE_COMMON), "kynesAegis", "yandir_chaurus_bile", 2) + end + end + end end end diff --git a/lang/en.lua b/lang/en.lua index 8fc6838..5ea88b4 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -561,6 +561,8 @@ 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." +L.Settings_KynesAegis_Chaurus_Bile = "Yandir: Chaurus Bile" +L.Settings_KynesAegis_Chaurus_Bile_TT = "Alerts you when Chaurus Totem launch Chaurus Bile projectiles towards random group members. This projectile can be dodged." -- Alerts L.Alerts_KynesAegis_Crashing_Wall = "|cd2a100Crashing Wall|r in" @@ -570,6 +572,8 @@ L.Alerts_KynesAegis_Dragon_Totem = "Two |cffa500Dragon Totems 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!" +L.Alerts_KynesAegis_Chaurus_Bile_Self = "|c39942eChaurus Bile|r incoming at you. Dodge!" +L.Alerts_KynesAegis_Chaurus_Bile_Common = "|c39942eChaurus Bile|r incoming!" -------------------------------- From 35c25f2bf4d9db38056e1c321a0de7ddccb3fdda Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 2 Oct 2021 13:42:21 +0300 Subject: [PATCH 14/27] [KA] Added Lord Falgravn's Ichor Eruption countdown --- BuffsDebuffs.lua | 2 ++ Settings.lua | 19 +++++++++++++++++++ TrialKynesAegis.lua | 11 +++++++++++ lang/en.lua | 5 +++++ 4 files changed, 37 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 1382eee..eb48822 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -599,6 +599,8 @@ kynes_aegis.yandir_gargoyle_totem_spawn = 133514 kynes_aegis.yandir_chaurus_totem_spawn = 133516 -- Chaurus Bile, projectile from Chaurus Totem at Yandir the Butcher boss kynes_aegis.yandir_chaurus_bile = 133559 +-- Effect which fires when Lord Falgravn starts his Ichor Eruption mechanic +kynes_aegis.falgravn_ichor_eruption_timer = 136548 RaidNotifier.BuffsDebuffs[RAID_KYNES_AEGIS] = kynes_aegis diff --git a/Settings.lua b/Settings.lua index c9449b0..7c749c8 100644 --- a/Settings.lua +++ b/Settings.lua @@ -301,6 +301,8 @@ do ------------------ bloodknight_blood_fountain = false, yandir_totem_spawn = 0, -- "Off" yandir_chaurus_bile = 0, -- "Off" + falgravn_ichor_eruption = false, + falgravn_ichor_eruption_time_before = 3, }, rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" @@ -1623,6 +1625,23 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_KynesAegis_Chaurus_Bile_TT, choices = choices.kynesAegis.yandir_chaurus_bile, }, "kynesAegis", "yandir_chaurus_bile") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_KynesAegis_Ichor_Eruption, + tooltip = L.Settings_KynesAegis_Ichor_Eruption_TT, + }, "kynesAegis", "falgravn_ichor_eruption") + MakeControlEntry({ + type = "slider", + name = L.Settings_KynesAegis_Ichor_Eruption_CD_Time, + tooltip = L.Settings_KynesAegis_Ichor_Eruption_CD_Time_TT, + min = 2, + max = 30, + step = 0.5, + disabled = function() + return savedVars.kynesAegis.falgravn_ichor_eruption == false; + end, + noAlert = true, + }, "kynesAegis", "falgravn_ichor_eruption_time_before") subTable = nil --end submenu -- Rockgrove diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index 00ab208..462452c 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -81,5 +81,16 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct end end end + elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then + -- Lord Falgravn's timer before Ichor Eruption mechanic happens + if (abilityId == buffsDebuffs.falgravn_ichor_eruption_timer) then + if (settings.falgravn_ichor_eruption) then + local countdownTime = math.min(settings.falgravn_ichor_eruption_time_before * 1000, hitValue); + + zo_callLater(function() + self:StartCountdown(countdownTime, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_ICHOR_ERUPTION), "kynesAegis", "falgravn_ichor_eruption", false) + end, hitValue - countdownTime) + end + end end end diff --git a/lang/en.lua b/lang/en.lua index 5ea88b4..fee4c14 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -563,6 +563,10 @@ 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." L.Settings_KynesAegis_Chaurus_Bile = "Yandir: Chaurus Bile" L.Settings_KynesAegis_Chaurus_Bile_TT = "Alerts you when Chaurus Totem launch Chaurus Bile projectiles towards random group members. This projectile can be dodged." +L.Settings_KynesAegis_Ichor_Eruption = "Falgravn: Ichor Eruption" +L.Settings_KynesAegis_Ichor_Eruption_TT = "Shows countdown until Falgravn will release his Ichor Eruption." +L.Settings_KynesAegis_Ichor_Eruption_CD_Time = " - Countdown time" +L.Settings_KynesAegis_Ichor_Eruption_CD_Time_TT = "Time before Ichor Eruption when countdown should pop up." -- Alerts L.Alerts_KynesAegis_Crashing_Wall = "|cd2a100Crashing Wall|r in" @@ -574,6 +578,7 @@ L.Alerts_KynesAegis_Gargoyle_Totem = "|cf5f5dcGargoyle Totem|r L.Alerts_KynesAegis_Chaurus_Totem = "|c39942eChaurus Totem|r spawned. Don't stack!" L.Alerts_KynesAegis_Chaurus_Bile_Self = "|c39942eChaurus Bile|r incoming at you. Dodge!" L.Alerts_KynesAegis_Chaurus_Bile_Common = "|c39942eChaurus Bile|r incoming!" +L.Alerts_KynesAegis_Ichor_Eruption = "|cb00000Ichor Eruption|r in" -------------------------------- From 5b018991ef8e5d55d7ae8af820a914f53eddfd3e Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 2 Oct 2021 13:57:29 +0300 Subject: [PATCH 15/27] [KA] Added Captain Vrol's Fire Mage Meteors countdown --- BuffsDebuffs.lua | 2 ++ Settings.lua | 8 ++++++++ TrialKynesAegis.lua | 11 +++++++++++ lang/en.lua | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index eb48822..2fd86cb 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -599,6 +599,8 @@ kynes_aegis.yandir_gargoyle_totem_spawn = 133514 kynes_aegis.yandir_chaurus_totem_spawn = 133516 -- Chaurus Bile, projectile from Chaurus Totem at Yandir the Butcher boss kynes_aegis.yandir_chaurus_bile = 133559 +-- Meteor casted by Vrolsworn Fire Mage during the Captain Vrol boss encounter +kynes_aegis.vrol_firemage_meteor = 134023 -- Effect which fires when Lord Falgravn starts his Ichor Eruption mechanic kynes_aegis.falgravn_ichor_eruption_timer = 136548 diff --git a/Settings.lua b/Settings.lua index 7c749c8..1912fae 100644 --- a/Settings.lua +++ b/Settings.lua @@ -301,6 +301,7 @@ do ------------------ bloodknight_blood_fountain = false, yandir_totem_spawn = 0, -- "Off" yandir_chaurus_bile = 0, -- "Off" + vrol_firemage_meteor = 0, -- "Off" falgravn_ichor_eruption = false, falgravn_ichor_eruption_time_before = 3, }, @@ -555,6 +556,7 @@ function RaidNotifier:CreateSettingsMenu() L.Settings_General_Choices_All, }, yandir_chaurus_bile = off_self_all, + vrol_firemage_meteor = off_self_all, }, rockgrove = { sulxan_reaver_sundering_strike = off_self_all, @@ -1625,6 +1627,12 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_KynesAegis_Chaurus_Bile_TT, choices = choices.kynesAegis.yandir_chaurus_bile, }, "kynesAegis", "yandir_chaurus_bile") + MakeControlEntry({ + type = "dropdown", + name = L.Settings_KynesAegis_Vrol_FireMage_Meteor, + tooltip = L.Settings_KynesAegis_Vrol_FireMage_Meteor_TT, + choices = choices.kynesAegis.vrol_firemage_meteor, + }, "kynesAegis", "vrol_firemage_meteor") MakeControlEntry({ type = "checkbox", name = L.Settings_KynesAegis_Ichor_Eruption, diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index 462452c..4874eb9 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -81,6 +81,17 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct end end end + -- Vrolsworn Fire Mage's meteors (3 meteors at once) + if (abilityId == buffsDebuffs.vrol_firemage_meteor) then + -- hitValue = 1 for casting or 2250 as the duration of meteor's reaching the targets + if (settings.vrol_firemage_meteor >= 1 and hitValue > 1) then + if (tType == COMBAT_UNIT_TYPE_PLAYER) then + self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR), "kynesAegis", "vrol_firemage_meteor", true, 2) + elseif (settings.vrol_firemage_meteor == 2) then + self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR_OTHER), "kynesAegis", "vrol_firemage_meteor", false, 2) + end + end + end elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then -- Lord Falgravn's timer before Ichor Eruption mechanic happens if (abilityId == buffsDebuffs.falgravn_ichor_eruption_timer) then diff --git a/lang/en.lua b/lang/en.lua index fee4c14..b0ea6b3 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -563,6 +563,8 @@ 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." L.Settings_KynesAegis_Chaurus_Bile = "Yandir: Chaurus Bile" L.Settings_KynesAegis_Chaurus_Bile_TT = "Alerts you when Chaurus Totem launch Chaurus Bile projectiles towards random group members. This projectile can be dodged." +L.Settings_KynesAegis_Vrol_FireMage_Meteor = "Vrol: Meteors" +L.Settings_KynesAegis_Vrol_FireMage_Meteor_TT = "Alerts you when Vrolsworn Fire Mages from the boat will cast meteors on players." L.Settings_KynesAegis_Ichor_Eruption = "Falgravn: Ichor Eruption" L.Settings_KynesAegis_Ichor_Eruption_TT = "Shows countdown until Falgravn will release his Ichor Eruption." L.Settings_KynesAegis_Ichor_Eruption_CD_Time = " - Countdown time" @@ -578,6 +580,8 @@ L.Alerts_KynesAegis_Gargoyle_Totem = "|cf5f5dcGargoyle Totem|r L.Alerts_KynesAegis_Chaurus_Totem = "|c39942eChaurus Totem|r spawned. Don't stack!" L.Alerts_KynesAegis_Chaurus_Bile_Self = "|c39942eChaurus Bile|r incoming at you. Dodge!" L.Alerts_KynesAegis_Chaurus_Bile_Common = "|c39942eChaurus Bile|r incoming!" +L.Alerts_KynesAegis_Vrol_FireMage_Meteor = "|cffa500Meteor|r on you in" +L.Alerts_KynesAegis_Vrol_FireMage_Meteor_Other = "Meteors in" L.Alerts_KynesAegis_Ichor_Eruption = "|cb00000Ichor Eruption|r in" From 45ed40e35eec2f1c895eb4ff4399f11195c465ab Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 14:50:24 +0300 Subject: [PATCH 16/27] Added feature for event arguments analyze with delay --- DelayedEventHandler.lua | 51 +++++++++++++++++++++++++++++++++++++++++ RaidNotifier.txt | 1 + 2 files changed, 52 insertions(+) create mode 100644 DelayedEventHandler.lua diff --git a/DelayedEventHandler.lua b/DelayedEventHandler.lua new file mode 100644 index 0000000..ca44436 --- /dev/null +++ b/DelayedEventHandler.lua @@ -0,0 +1,51 @@ +local EventArgumentBag = ZO_Object:Subclass() + +function EventArgumentBag:New() + local object = ZO_Object.New(self) + + object.allEventArgs = {} + + return object +end + +function EventArgumentBag:Push(args) + table.insert(self.allEventArgs, args) +end + +function EventArgumentBag:ContainsArgumentWithValue(name, value) + for _, arguments in ipairs(self.allEventArgs) do + if arguments[name] == value then + return true + end + end + + return false +end + +local Handler = {} + +local eventStorage = {} + +function Handler.Add(name, arguments, releaseFunction, delayInMs) + if eventStorage[name] == nil then + eventStorage[name] = { + callId = nil, + argsBag = EventArgumentBag:New(), + } + end + + eventStorage[name].argsBag:Push(arguments) + + if eventStorage[name].callId == nil then + eventStorage[name].callId = zo_callLater( + function() + releaseFunction(eventStorage[name].argsBag) + eventStorage[name] = nil + end, + delayInMs + ) + end +end + +RaidNotifier = RaidNotifier or {} +RaidNotifier.DelayedEventHandler = Handler diff --git a/RaidNotifier.txt b/RaidNotifier.txt index c737ddf..4dd6e38 100644 --- a/RaidNotifier.txt +++ b/RaidNotifier.txt @@ -37,6 +37,7 @@ Util.lua BuffsDebuffs.lua Settings.lua UI.lua +DelayedEventHandler.lua RaidNotifier.xml Bindings.xml From a90478089e2cfeecfc7ef87808325673c6d0b5b9 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 14:52:35 +0300 Subject: [PATCH 17/27] [KA] Improved Captain Vrol's Fire Mage Meteors tracking --- TrialKynesAegis.lua | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index 4874eb9..4475ab2 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -82,14 +82,27 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct end end -- Vrolsworn Fire Mage's meteors (3 meteors at once) - if (abilityId == buffsDebuffs.vrol_firemage_meteor) then - -- hitValue = 1 for casting or 2250 as the duration of meteor's reaching the targets - if (settings.vrol_firemage_meteor >= 1 and hitValue > 1) then - if (tType == COMBAT_UNIT_TYPE_PLAYER) then - self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR), "kynesAegis", "vrol_firemage_meteor", true, 2) - elseif (settings.vrol_firemage_meteor == 2) then - self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR_OTHER), "kynesAegis", "vrol_firemage_meteor", false, 2) - end + -- hitValue = 1 for casting or 2250 as the duration of meteor's reaching the targets + if (abilityId == buffsDebuffs.vrol_firemage_meteor and hitValue > 1) then + -- If player is tracking only meteors on himself we don't need to use any tricks + if (settings.vrol_firemage_meteor == 1 and tType == COMBAT_UNIT_TYPE_PLAYER) then + self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR), "kynesAegis", "vrol_firemage_meteor", true, 2) + elseif (settings.vrol_firemage_meteor == 2) then + -- There will be several events for each of the targeted players + -- In order to determine if our player himself is meteor's target we will analyze all of them + RaidNotifier.DelayedEventHandler.Add( + "vrol_firemage_meteor", + { tType = tType }, + function(argsBag) + if (argsBag:ContainsArgumentWithValue("tType", COMBAT_UNIT_TYPE_PLAYER)) then + self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR), "kynesAegis", "vrol_firemage_meteor", true, 2) + else + self:StartCountdown(hitValue, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_VROL_FIREMAGE_METEOR_OTHER), "kynesAegis", "vrol_firemage_meteor", false, 2) + + end + end, + 50 + ) end end elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then From 517e57e89c793e5770476c85dd13b4f3496a2bac Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 14:56:40 +0300 Subject: [PATCH 18/27] Revert "[KA] Added Chaurus Bite projectile announcements" This reverts commit 46d8de213e21d177ad44438ced7ffdf34254e7e6. It was decided that this announcement is superfluous. --- BuffsDebuffs.lua | 2 -- Settings.lua | 8 -------- TrialKynesAegis.lua | 10 ---------- lang/en.lua | 4 ---- 4 files changed, 24 deletions(-) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 2fd86cb..13cbbd5 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -597,8 +597,6 @@ kynes_aegis.yandir_harpy_totem_spawn = 133511 kynes_aegis.yandir_gargoyle_totem_spawn = 133514 -- Chaurus Totem spawn at Yandir the Butcher boss kynes_aegis.yandir_chaurus_totem_spawn = 133516 --- Chaurus Bile, projectile from Chaurus Totem at Yandir the Butcher boss -kynes_aegis.yandir_chaurus_bile = 133559 -- Meteor casted by Vrolsworn Fire Mage during the Captain Vrol boss encounter kynes_aegis.vrol_firemage_meteor = 134023 -- Effect which fires when Lord Falgravn starts his Ichor Eruption mechanic diff --git a/Settings.lua b/Settings.lua index 1912fae..d30da8e 100644 --- a/Settings.lua +++ b/Settings.lua @@ -300,7 +300,6 @@ do ------------------ bitter_knight_sanguine_prison = false, bloodknight_blood_fountain = false, yandir_totem_spawn = 0, -- "Off" - yandir_chaurus_bile = 0, -- "Off" vrol_firemage_meteor = 0, -- "Off" falgravn_ichor_eruption = false, falgravn_ichor_eruption_time_before = 3, @@ -555,7 +554,6 @@ function RaidNotifier:CreateSettingsMenu() L.Settings_General_Choices_OnlyChaurusTotem, L.Settings_General_Choices_All, }, - yandir_chaurus_bile = off_self_all, vrol_firemage_meteor = off_self_all, }, rockgrove = { @@ -1621,12 +1619,6 @@ function RaidNotifier:CreateSettingsMenu() tooltip = L.Settings_KynesAegis_Totem_TT, choices = choices.kynesAegis.yandir_totem_spawn, }, "kynesAegis", "yandir_totem_spawn") - MakeControlEntry({ - type = "dropdown", - name = L.Settings_KynesAegis_Chaurus_Bile, - tooltip = L.Settings_KynesAegis_Chaurus_Bile_TT, - choices = choices.kynesAegis.yandir_chaurus_bile, - }, "kynesAegis", "yandir_chaurus_bile") MakeControlEntry({ type = "dropdown", name = L.Settings_KynesAegis_Vrol_FireMage_Meteor, diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index 4475ab2..f265fd3 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -71,16 +71,6 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_TOTEM), "kynesAegis", "yandir_totem_spawn") end end - -- Chaurus Bile projectile from Chaurus Totem at Yandir the Butcher boss - if (abilityId == buffsDebuffs.yandir_chaurus_bile) then - if (settings.yandir_chaurus_bile >= 1) then - if (tType == COMBAT_UNIT_TYPE_PLAYER) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_BILE_SELF), "kynesAegis", "yandir_chaurus_bile") - elseif (settings.yandir_chaurus_bile == 2) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_CHAURUS_BILE_COMMON), "kynesAegis", "yandir_chaurus_bile", 2) - end - end - end -- Vrolsworn Fire Mage's meteors (3 meteors at once) -- hitValue = 1 for casting or 2250 as the duration of meteor's reaching the targets if (abilityId == buffsDebuffs.vrol_firemage_meteor and hitValue > 1) then diff --git a/lang/en.lua b/lang/en.lua index b0ea6b3..8661fdf 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -561,8 +561,6 @@ 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." -L.Settings_KynesAegis_Chaurus_Bile = "Yandir: Chaurus Bile" -L.Settings_KynesAegis_Chaurus_Bile_TT = "Alerts you when Chaurus Totem launch Chaurus Bile projectiles towards random group members. This projectile can be dodged." L.Settings_KynesAegis_Vrol_FireMage_Meteor = "Vrol: Meteors" L.Settings_KynesAegis_Vrol_FireMage_Meteor_TT = "Alerts you when Vrolsworn Fire Mages from the boat will cast meteors on players." L.Settings_KynesAegis_Ichor_Eruption = "Falgravn: Ichor Eruption" @@ -578,8 +576,6 @@ L.Alerts_KynesAegis_Dragon_Totem = "Two |cffa500Dragon Totems 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!" -L.Alerts_KynesAegis_Chaurus_Bile_Self = "|c39942eChaurus Bile|r incoming at you. Dodge!" -L.Alerts_KynesAegis_Chaurus_Bile_Common = "|c39942eChaurus Bile|r incoming!" L.Alerts_KynesAegis_Vrol_FireMage_Meteor = "|cffa500Meteor|r on you in" L.Alerts_KynesAegis_Vrol_FireMage_Meteor_Other = "Meteors in" L.Alerts_KynesAegis_Ichor_Eruption = "|cb00000Ichor Eruption|r in" From 3fd808d89ee401f112a53e2b50204470c737ceb0 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 15:29:44 +0300 Subject: [PATCH 19/27] [KA] Hided Ichor Eruption timer in case boss was pushed before --- TrialKynesAegis.lua | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/TrialKynesAegis.lua b/TrialKynesAegis.lua index f265fd3..043dfa1 100644 --- a/TrialKynesAegis.lua +++ b/TrialKynesAegis.lua @@ -8,6 +8,12 @@ local function dbg() end local data = {} +-- Storing Lord Falgravn's Ichor Eruption timers to be able to cancel them in case effect will fade out earlier +local ichorEruption = { + callId = nil, + countdownId = nil, +} + function RaidNotifier.KA.Initialize() p = RaidNotifier.p dbg = RaidNotifier.dbg @@ -101,10 +107,30 @@ function RaidNotifier.KA.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (settings.falgravn_ichor_eruption) then local countdownTime = math.min(settings.falgravn_ichor_eruption_time_before * 1000, hitValue); - zo_callLater(function() - self:StartCountdown(countdownTime, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_ICHOR_ERUPTION), "kynesAegis", "falgravn_ichor_eruption", false) + ichorEruption.callId = zo_callLater(function() + -- Theoretically this function shouldn't be called if zo_callLater() was revoked by zo_removeCallLater() + -- So there should be no need in checking callId + -- But it's not 100% clear if that revoke works as intended at the present times + if ichorEruption.callId then + ichorEruption.callId = nil + ichorEruption.countdownId = self:StartCountdown(countdownTime, GetString(RAIDNOTIFIER_ALERTS_KYNESAEGIS_ICHOR_ERUPTION), "kynesAegis", "falgravn_ichor_eruption", false) + end end, hitValue - countdownTime) end end + elseif (result == ACTION_RESULT_EFFECT_FADED) then + -- Lord Falgravn's Ichor Eruption timer cancelling + if (abilityId == buffsDebuffs.falgravn_ichor_eruption_timer) then + if (settings.falgravn_ichor_eruption) then + if (ichorEruption.callId ~= nil) then + zo_removeCallLater(ichorEruption.callId) + ichorEruption.callId = nil + end + if (ichorEruption.countdownId ~= nil) then + self:StopCountdown(ichorEruption.countdownId) + ichorEruption.countdownId = nil + end + end + end end end From 7f4c1d2e3f1d572f2dbeacb59af26948b34c6de6 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 15:48:26 +0300 Subject: [PATCH 20/27] Revert "[RG] Added Sul-Xan's Soul Extraction announcement" This reverts commit 1ca288f1171f20d294183549ccb80d902d9c710a. This announcement does not work as expected. Decided to remove it. --- BuffsDebuffs.lua | 5 ----- Settings.lua | 6 ------ TrialRockgrove.lua | 12 ------------ lang/en.lua | 3 --- 4 files changed, 26 deletions(-) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 13cbbd5..3577187 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -617,11 +617,6 @@ rockgrove.sulxan_soulweaver_astral_shield_cast = 149089 rockgrove.sulxan_soulweaver_astral_shield_self = 149099 -- Sul-Xan Soulweaver's Astral Shield: gained shield by other adds rockgrove.sulxan_soulweaver_astral_shield_others = 157236 --- Sul-Xan Soulweaver's Soul Extraction -rockgrove.sulxan_soulweaver_soul_extraction = { - [158441] = true, - [158442] = true, -} -- Havocrel Barbarian's Hasted Assault rockgrove.havocrel_barbarian_hasted_assault = { [149261] = true, diff --git a/Settings.lua b/Settings.lua index d30da8e..f898921 100644 --- a/Settings.lua +++ b/Settings.lua @@ -307,7 +307,6 @@ do ------------------ rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" sulxan_soulweaver_astral_shield = false, - sulxan_soulweaver_soul_extraction = false, prime_meteor = false, havocrel_barbarian_hasted_assault = false, oaxiltso_savage_blitz = false, @@ -1657,11 +1656,6 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Astral_Shield, tooltip = L.Settings_Rockgrove_Astral_Shield_TT, }, "rockgrove", "sulxan_soulweaver_astral_shield") - MakeControlEntry({ - type = "checkbox", - name = L.Settings_Rockgrove_Soul_Extraction, - tooltip = L.Settings_Rockgrove_Soul_Extraction_TT, - }, "rockgrove", "sulxan_soulweaver_soul_extraction") MakeControlEntry({ type = "checkbox", name = L.Settings_Rockgrove_Prime_Meteor, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 67943a6..7a58e22 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -77,11 +77,6 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct if (settings.sulxan_soulweaver_astral_shield) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_ASTRAL_SHIELD_CAST), "rockgrove", "sulxan_soulweaver_astral_shield") end - -- Sul-Xan Soulweaver's Soul Extraction - elseif (buffsDebuffs.sulxan_soulweaver_soul_extraction[abilityId]) then - if (settings.sulxan_soulweaver_soul_extraction and tType == COMBAT_UNIT_TYPE_PLAYER) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_EXTRACTION), "rockgrove", "sulxan_soulweaver_soul_extraction") - end -- Havocrel Barbarian's Hasted Assault elseif (buffsDebuffs.havocrel_barbarian_hasted_assault[abilityId]) then if (settings.havocrel_barbarian_hasted_assault) then @@ -93,13 +88,6 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SAVAGE_BLITZ), tName), "rockgrove", "oaxiltso_savage_blitz") end end - elseif (result == ACTION_RESULT_EFFECT_GAINED_DURATION) then - -- Sul-Xan Soulweaver's Soul Extraction (Debug purpose only!) - if (buffsDebuffs.sulxan_soulweaver_soul_extraction[abilityId]) then - if (settings.sulxan_soulweaver_soul_extraction and tType == COMBAT_UNIT_TYPE_PLAYER) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_EXTRACTION) .. " (GainDur)", "rockgrove", "sulxan_soulweaver_soul_extraction") - end - end elseif (result == ACTION_RESULT_EFFECT_FADED) then -- Sul-Xan Soulweaver's Soul Remnant attack (his Astral Shield is broken) if (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_self) then diff --git a/lang/en.lua b/lang/en.lua index 8661fdf..f70900b 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -590,8 +590,6 @@ L.Settings_Rockgrove_Sundering_Strike = "General: Sundering Strike" L.Settings_Rockgrove_Sundering_Strike_TT = "Alerts you when the Sul-Xan Reaper makes Sundering Strike attack. Roll dodge it." L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." -L.Settings_Rockgrove_Soul_Extraction = "General: Soul Extraction" -L.Settings_Rockgrove_Soul_Extraction_TT = "Alerts you when the Sul-Xan Soulweaver casts Soul Extraction on you." L.Settings_Rockgrove_Prime_Meteor = "General: Prime Meteor" L.Settings_Rockgrove_Prime_Meteor_TT = "Shows countdown when meteor appears indicating the time before it explodes. Make sure to kill the meteor in time." L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" @@ -609,7 +607,6 @@ L.Alerts_Rockgrove_Sundering_Strike_Other = "Incoming |cCDCDCDSundering L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r has been casted. Prepare to dodge or block!" L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" -L.Alerts_Rockgrove_Soul_Extraction = "Incoming Soul Extraction on you!" L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" From 8e87ce0c37d7311de0b3414ff82b9e89093991ae Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 16:34:10 +0300 Subject: [PATCH 21/27] Added some convenient functions for DelayedEventHandler --- DelayedEventHandler.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/DelayedEventHandler.lua b/DelayedEventHandler.lua index ca44436..566a522 100644 --- a/DelayedEventHandler.lua +++ b/DelayedEventHandler.lua @@ -22,6 +22,24 @@ function EventArgumentBag:ContainsArgumentWithValue(name, value) return false end +function EventArgumentBag:GetEventCount() + return #self.allEventArgs +end + +function EventArgumentBag:GetValues() + return self.allEventArgs +end + +function EventArgumentBag:GetArgValues(name) + local values = {} + + for _, arguments in ipairs(self.allEventArgs) do + table.insert(values, arguments[name]) + end + + return values +end + local Handler = {} local eventStorage = {} From beddde5603d60d94ad8a7c941260015888aee512 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 16:35:17 +0300 Subject: [PATCH 22/27] [RG] Reworked Noxious Sludge alert to mention both players at once --- TrialRockgrove.lua | 17 +++++++++++++++-- lang/en.lua | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 7a58e22..2097394 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -34,11 +34,24 @@ function RaidNotifier.RG.OnEffectChanged(eventCode, changeType, eSlot, eName, uT elseif (abilityId == buffsDebuffs.oaxiltso_noxious_sludge and string.sub(uTag, 1, 5) == "group") then if (changeType == EFFECT_RESULT_GAINED) then if (settings.oaxiltso_noxious_sludge >= 1 and AreUnitsEqual(uTag, "player")) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE), "rockgrove", "oaxiltso_noxious_sludge") + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE_SELF), "rockgrove", "oaxiltso_noxious_sludge") elseif (settings.oaxiltso_noxious_sludge == 2) then local targetPlayerName = self.UnitIdToString(uId) - self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE_OTHER), targetPlayerName), "rockgrove", "oaxiltso_noxious_sludge") + self.DelayedEventHandler.Add( + "oaxiltso_noxious_sludge", + targetPlayerName, + function (argsBag) + if (argsBag:GetEventCount() >= 2) then + self:AddAnnouncement(zo_strformat(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE), unpack(argsBag:GetValues())), "rockgrove", "oaxiltso_noxious_sludge") + else + -- For some crazy people who'll go solo into the trial? + self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_NOXIOUS_SLUDGE_SELF), "rockgrove", "oaxiltso_noxious_sludge") + end + + end, + 50 + ) end end -- Flame-Herald Bahsei's Embrace of Death (Death Touch debuff) diff --git a/lang/en.lua b/lang/en.lua index f70900b..e65e24f 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -610,8 +610,8 @@ L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remn L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" L.Alerts_Rockgrove_Savage_Blitz = "Oaxiltso charges at |cFF0000<>|r!" -L.Alerts_Rockgrove_Noxious_Sludge = "You're poisoned by |c008C22Noxious Sludge|r! Cleanse in the pool!" -L.Alerts_Rockgrove_Noxious_Sludge_Other = "|cFF0000<>|r is poisoned by |c008C22Noxious Sludge|r." +L.Alerts_Rockgrove_Noxious_Sludge_Self = "You're poisoned by |c008C22Noxious Sludge|r! Cleanse in the pool!" +L.Alerts_Rockgrove_Noxious_Sludge = "|cFF0000<>|r and |cFF0000<>|r are poisoned by |c008C22Noxious Sludge|r." L.Alerts_Rockgrove_Embrace_Of_Death = "You're cursed by |c370073Embrace of Death|r! Stay away! Explosion in" L.Alerts_Rockgrove_Embrace_Of_Death_Other = "|cFF0000<>|r cursed by |c370073Embrace of Death|r! Explosion in" From f3c8ca8c0b12a86c797ce3075adb272222249d3b Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 16:40:15 +0300 Subject: [PATCH 23/27] [RG] Removed Soul Remnant alert which comes from secondary adds There is two types of Soul Remnant: - one is coming from the mage itself when his shield is broken - and others are from the other adds when their shields are broken First type does significantly more damage, but second type happens more often. In order to reduce alert spam I decided to remove less important alerts. --- BuffsDebuffs.lua | 2 -- TrialRockgrove.lua | 5 ----- lang/en.lua | 1 - 3 files changed, 8 deletions(-) diff --git a/BuffsDebuffs.lua b/BuffsDebuffs.lua index 3577187..07c15e4 100644 --- a/BuffsDebuffs.lua +++ b/BuffsDebuffs.lua @@ -615,8 +615,6 @@ rockgrove.sulxan_reaver_sundering_strike = 149524 rockgrove.sulxan_soulweaver_astral_shield_cast = 149089 -- Sul-Xan Soulweaver's Astral Shield: gained shield by himself rockgrove.sulxan_soulweaver_astral_shield_self = 149099 --- Sul-Xan Soulweaver's Astral Shield: gained shield by other adds -rockgrove.sulxan_soulweaver_astral_shield_others = 157236 -- Havocrel Barbarian's Hasted Assault rockgrove.havocrel_barbarian_hasted_assault = { [149261] = true, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 2097394..1b34c1b 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -104,11 +104,6 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct elseif (result == ACTION_RESULT_EFFECT_FADED) then -- Sul-Xan Soulweaver's Soul Remnant attack (his Astral Shield is broken) if (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_self) then - if (settings.sulxan_soulweaver_astral_shield) then - self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_REMNANT_HEAVY), "rockgrove", "sulxan_soulweaver_astral_shield") - end - -- Other's Soul Remnant attack (Astral Shield gained from Soulweaver is broken) - elseif (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_others) then if (settings.sulxan_soulweaver_astral_shield) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_REMNANT), "rockgrove", "sulxan_soulweaver_astral_shield") end diff --git a/lang/en.lua b/lang/en.lua index e65e24f..7eb201d 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -605,7 +605,6 @@ L.Settings_Rockgrove_Embrace_Of_Death_TT = "Alerts you when someone go L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" L.Alerts_Rockgrove_Sundering_Strike_Other = "Incoming |cCDCDCDSundering Strike|r on |cFF0000<>|r!" L.Alerts_Rockgrove_Astral_Shield_Cast = "|cFFFF8FAstral Shield|r has been casted. Prepare to dodge or block!" -L.Alerts_Rockgrove_Soul_Remnant_Heavy = "|cFF0000Incoming|r |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Soul_Remnant = "Incoming |c8FF2FFSoul Remnant|r!" L.Alerts_Rockgrove_Prime_Meteor = "|cFFD600Prime Meteor|r will explode in" L.Alerts_Rockgrove_Hasted_Assault = "Incoming |cFF0000Hasted Assault|r! Block!" From 60c4aa8bf8743c09eecba408e13393d46a723015 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Sat, 6 Nov 2021 16:52:55 +0300 Subject: [PATCH 24/27] [RG] Made separate settings for Sul-Xan Soulweaver's Soul Remnant --- Settings.lua | 6 ++++++ TrialRockgrove.lua | 2 +- lang/en.lua | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Settings.lua b/Settings.lua index f898921..02296a1 100644 --- a/Settings.lua +++ b/Settings.lua @@ -307,6 +307,7 @@ do ------------------ rockgrove = { sulxan_reaver_sundering_strike = 0, -- "Off" sulxan_soulweaver_astral_shield = false, + sulxan_soulweaver_soul_remnant = false, prime_meteor = false, havocrel_barbarian_hasted_assault = false, oaxiltso_savage_blitz = false, @@ -1656,6 +1657,11 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Astral_Shield, tooltip = L.Settings_Rockgrove_Astral_Shield_TT, }, "rockgrove", "sulxan_soulweaver_astral_shield") + MakeControlEntry({ + type = "checkbox", + name = L.Settings_Rockgrove_Soul_Remnant, + tooltip = L.Settings_Rockgrove_Soul_Remnant_TT, + }, "rockgrove", "sulxan_soulweaver_soul_remnant") MakeControlEntry({ type = "checkbox", name = L.Settings_Rockgrove_Prime_Meteor, diff --git a/TrialRockgrove.lua b/TrialRockgrove.lua index 1b34c1b..e740973 100644 --- a/TrialRockgrove.lua +++ b/TrialRockgrove.lua @@ -104,7 +104,7 @@ function RaidNotifier.RG.OnCombatEvent(_, result, isError, aName, aGraphic, aAct elseif (result == ACTION_RESULT_EFFECT_FADED) then -- Sul-Xan Soulweaver's Soul Remnant attack (his Astral Shield is broken) if (abilityId == buffsDebuffs.sulxan_soulweaver_astral_shield_self) then - if (settings.sulxan_soulweaver_astral_shield) then + if (settings.sulxan_soulweaver_soul_remnant) then self:AddAnnouncement(GetString(RAIDNOTIFIER_ALERTS_ROCKGROVE_SOUL_REMNANT), "rockgrove", "sulxan_soulweaver_astral_shield") end end diff --git a/lang/en.lua b/lang/en.lua index 7eb201d..b278975 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -589,7 +589,9 @@ L.Settings_Rockgrove_Header = "Rockgrove" L.Settings_Rockgrove_Sundering_Strike = "General: Sundering Strike" L.Settings_Rockgrove_Sundering_Strike_TT = "Alerts you when the Sul-Xan Reaper makes Sundering Strike attack. Roll dodge it." L.Settings_Rockgrove_Astral_Shield = "General: Astral Shield" -L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield, and when Soul Remnants affect you." +L.Settings_Rockgrove_Astral_Shield_TT = "Alerts you when the Sul-Xan Soulweaver casts his Astral Shield." +L.Settings_Rockgrove_Soul_Remnant = "General: Soul Remnant (Soulweaver)" +L.Settings_Rockgrove_Soul_Remnant_TT = "Alerts you when Soul Remnants targets you (as result of breaking Sul-Xan Soulweaver's Astral Shield)." L.Settings_Rockgrove_Prime_Meteor = "General: Prime Meteor" L.Settings_Rockgrove_Prime_Meteor_TT = "Shows countdown when meteor appears indicating the time before it explodes. Make sure to kill the meteor in time." L.Settings_Rockgrove_Hasted_Assault = "General: Hasted Assault" From de21d1f73993cb306861e5047fbcbd399a0f5036 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 8 Nov 2021 22:23:10 +0300 Subject: [PATCH 25/27] Added IntelliJ IDEA project files to .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index f587076..b25977c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# IntelliJ IDEA project files +/.idea *.psd *.png From dc8a83c99304675363ae1361a6b8e4c3a9b4e507 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 8 Nov 2021 23:52:01 +0300 Subject: [PATCH 26/27] [RG] Warning about having too much Embrace of Death alerts --- Settings.lua | 1 + lang/en.lua | 1 + 2 files changed, 2 insertions(+) diff --git a/Settings.lua b/Settings.lua index 02296a1..f0bbc85 100644 --- a/Settings.lua +++ b/Settings.lua @@ -1688,6 +1688,7 @@ function RaidNotifier:CreateSettingsMenu() name = L.Settings_Rockgrove_Embrace_Of_Death, tooltip = L.Settings_Rockgrove_Embrace_Of_Death_TT, choices = choices.rockgrove.bahsei_embrace_of_death, + choicesTooltips = { false, false, L.Settings_Rockgrove_Embrace_Of_Death_TT_All }, }, "rockgrove", "bahsei_embrace_of_death") subTable = nil --end submenu diff --git a/lang/en.lua b/lang/en.lua index b278975..b813b9c 100644 --- a/lang/en.lua +++ b/lang/en.lua @@ -602,6 +602,7 @@ L.Settings_Rockgrove_Noxious_Sludge = "Oaxiltso: Noxious Sludge" L.Settings_Rockgrove_Noxious_Sludge_TT = "Alerts you when someone is poisoned by Oaxiltso and has to go cleanse in the pool." L.Settings_Rockgrove_Embrace_Of_Death = "Flame-Herald Bahsei: Embrace of Death" L.Settings_Rockgrove_Embrace_Of_Death_TT = "Alerts you when someone got cursed by Flame-Herald Bahsei. That person will explode after 8 seconds, spreading the curse. It's important to keep cursed player separated from the group." +L.Settings_Rockgrove_Embrace_Of_Death_TT_All = "|cFF0000WARNING!|r If your group will get too much curses your screen may be fully covered in countdowns for a duration of those curses! We're working on ways to improve this notification." -- Alerts L.Alerts_Rockgrove_Sundering_Strike = "Incoming |cCDCDCDSundering Strike|r on you!" From 30554c4177c717bb8a2f9e0ba1da3fd4967a8d66 Mon Sep 17 00:00:00 2001 From: Arrvis the Lion Date: Mon, 8 Nov 2021 23:52:19 +0300 Subject: [PATCH 27/27] Version 2.19: bump API version (compatible with Deadlands DLC) --- RaidNotifier.lua | 2 +- RaidNotifier.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RaidNotifier.lua b/RaidNotifier.lua index 234516a..c4faa10 100644 --- a/RaidNotifier.lua +++ b/RaidNotifier.lua @@ -5,7 +5,7 @@ local RaidNotifier = RaidNotifier RaidNotifier.Name = "RaidNotifier" RaidNotifier.DisplayName = "Raid Notifier" -RaidNotifier.Version = "2.18" +RaidNotifier.Version = "2.19" RaidNotifier.Author = "|c009ad6Kyoma, Memus, Woeler, silentgecko|r" RaidNotifier.SV_Name = "RNVars" RaidNotifier.SV_Version = 4 diff --git a/RaidNotifier.txt b/RaidNotifier.txt index 4dd6e38..b0fad34 100644 --- a/RaidNotifier.txt +++ b/RaidNotifier.txt @@ -1,8 +1,8 @@ ## Title: |cEFEBBERaidNotifier|r ## Description: Displays on-screen notifications on different events during trials. ## Author: |c009ad6Kyoma, Memus, Woeler, silentgecko|r -## Version: 2.18.1 -## APIVersion: 101031 +## Version: 2.19 +## APIVersion: 101032 ## SavedVariables: RNVars RN_DEBUG_LOG ## DependsOn: LibAddonMenu-2.0>=28 LibUnits2 ## OptionalDependsOn: LibGroupSocket