local floor = math.floor;
local GetTime = GetTime;
local UnitAura = UnitAura;
-local UnitIsPlayer = UnitIsPlayer;
local UnitIsDeadOrGhost, UnitIsConnected = UnitIsDeadOrGhost, UnitIsConnected;
local CTimerAfter = C_Timer.After;
-local watchedAuras = {
- [53563] = "TOPRIGHT",
- [156910] = "TOPRIGHT",
- [200025] = "TOPRIGHT",
- [200654] = "BOTTOMLEFT",
-};
-local majorAuras = {
- ["Psychic Assault"] = true,
- ["Everburning Flames"] = true,
- ["Corrupt"] = true,
- ["Sleep Canister"] = true,
- ["Misery"] = true,
- ["Necrotic Embrace"] = true,
- ["Fulminating Pulse"] = true,
- ["Chilled Blood"] = true,
- ["Soulblight"] = true,
- ["Soulburst"] = true,
- ["Soulbomb"] = true,
- ["Aqua Bomb"] = true,
-};
+local Settings = OmaRFSettings;
+local majorAuras = Settings.MajorAuras;
+local positions = {};
+local watchedAuras = {};
local updaters = {};
local updating = {};
-local positions = {"TOPRIGHT", "BOTTOMLEFT"};
local auraFilters = {"HELPFUL", "HARMFUL"};
+local M = {};
+OmaRFIndicators = M;
+
local function remaining(text, expires, current)
if expires == 0 then
text:SetText("");
end
end
-function OmaCheckIndicators(frame, unit)
+function M.CheckIndicators(frame, unit)
for _, pos in pairs(positions) do
frame.inds[pos].expires = nil;
frame.inds[pos]:Hide();
name, _, icon, count, _, _, expires, caster, _, _, id = UnitAura(unit, i, filter);
if not id then break end
local pos = watchedAuras[id] or watchedAuras[name];
- if pos and UnitIsPlayer(caster) then
+ if pos and caster == "player" then
needUpdate = remaining(frame.inds[pos].text, expires, current);
frame.inds[pos].expires = expires;
frame.inds[pos]:Show();
frame.major:Hide();
end
end
+
+function M.LoadChar()
+ watchedAuras = Settings.Character["WatchedAuras"];
+ positions = Settings.Character.Positions;
+end