mirror of
https://github.com/Relintai/Relintais-Enemy-Kooldown-Tracker-WotLK.git
synced 2024-11-08 10:12:11 +01:00
-Implemented types and colors.
-Implemented type based sorting. -DRs now gets cleaned up in PLAYER_ENTER_WORLD.
This commit is contained in:
parent
1475704a05
commit
ca3296c6f6
113
Vect.lua
113
Vect.lua
@ -1,14 +1,13 @@
|
||||
|
||||
--TODOS:
|
||||
--Way to show pet cds on the master -> currently looks impossible
|
||||
--dr cleanup (PLAYER ENTER WORLD)
|
||||
--Option to show pet cds on possible master (eg spell lock on all locks)
|
||||
--interrupts first option (or last or don't care), or better -> rank system v
|
||||
--3 option -> interrupt, stun, gap closers, strong nukes, the user can select which is first
|
||||
--mana gem, fap
|
||||
--support for rows
|
||||
--Bug: have to check if dr is completed on adding it, also do the same with drs (reassign should update them too, because probably thats the cause for
|
||||
--the comparer error, onupdate is called null out drs while its comparing)
|
||||
|
||||
--Message: ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:20: Cannot find a library instance of "AceGUI-3.0".
|
||||
--Option to show pet cds on possible master (eg spell lock on all locks)
|
||||
|
||||
--document the db these will be needed:
|
||||
--silence, gapcloser, defensive, potion, nuke, anticc, cc, stun, disarm, cdreset, shield, uncategorized
|
||||
--db-> class, type, isPet
|
||||
|
||||
--"Globals"
|
||||
local aceDB = LibStub("AceDB-3.0");
|
||||
@ -52,7 +51,9 @@ Vect.defaults = {
|
||||
xPos = 350,
|
||||
yPos = 350,
|
||||
growOrder = 2,
|
||||
sortOrder = 5
|
||||
sortOrder = 5,
|
||||
colorframeenabled = true,
|
||||
colorframesize = 4
|
||||
},
|
||||
focus = {
|
||||
enabled = true,
|
||||
@ -60,7 +61,9 @@ Vect.defaults = {
|
||||
xPos = 380,
|
||||
yPos = 380,
|
||||
growOrder = 2,
|
||||
sortOrder = 5
|
||||
sortOrder = 5,
|
||||
colorframeenabled = true,
|
||||
colorframesize = 4
|
||||
},
|
||||
targetdr = {
|
||||
enabled = true,
|
||||
@ -91,6 +94,95 @@ Vect.defaults = {
|
||||
sortOrder = 5,
|
||||
drnumsize = 14,
|
||||
drnumposition = 1
|
||||
},
|
||||
colors = {
|
||||
["gapcloser"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0,
|
||||
["g"] = 0.8117647058823529,
|
||||
["r"] = 1,
|
||||
},
|
||||
["anticc"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.796078431372549,
|
||||
["g"] = 1,
|
||||
["r"] = 0,
|
||||
},
|
||||
["disarm"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.9647058823529412,
|
||||
["g"] = 1,
|
||||
["r"] = 0,
|
||||
},
|
||||
["defensive"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.08627450980392157,
|
||||
["g"] = 1,
|
||||
["r"] = 0.2,
|
||||
},
|
||||
["nuke"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0,
|
||||
["g"] = 0,
|
||||
["r"] = 1,
|
||||
},
|
||||
["shield"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.3333333333333333,
|
||||
["g"] = 1,
|
||||
["r"] = 0.8901960784313725,
|
||||
},
|
||||
["potion"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.6313725490196078,
|
||||
["g"] = 0.7372549019607844,
|
||||
["r"] = 1,
|
||||
},
|
||||
["cdreset"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 1,
|
||||
["g"] = 0,
|
||||
["r"] = 0.6274509803921569,
|
||||
},
|
||||
["silence"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 1,
|
||||
["g"] = 0.03529411764705882,
|
||||
["r"] = 0.1882352941176471,
|
||||
},
|
||||
["stun"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 1,
|
||||
["g"] = 0.07450980392156863,
|
||||
["r"] = 0.9137254901960784,
|
||||
},
|
||||
["uncategorized"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 1,
|
||||
["g"] = 0.9058823529411765,
|
||||
["r"] = 0.9607843137254902,
|
||||
},
|
||||
["cc"] = {
|
||||
["a"] = 1,
|
||||
["b"] = 0.3686274509803922,
|
||||
["g"] = 0.3568627450980392,
|
||||
["r"] = 0.3764705882352941,
|
||||
},
|
||||
},
|
||||
cdtypesortorder = {
|
||||
enabled = true,
|
||||
silence = 1,
|
||||
gapcloser = 2,
|
||||
defensive = 3,
|
||||
potion = 4,
|
||||
nuke = 5,
|
||||
anticc = 6,
|
||||
cc = 7,
|
||||
stun = 8,
|
||||
disarm = 9,
|
||||
cdreset = 10,
|
||||
shield = 11,
|
||||
uncategorized = 12
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -250,6 +342,7 @@ function Vect:PLAYER_ENTERING_WORLD()
|
||||
end
|
||||
end
|
||||
end
|
||||
Vect.drs = {}
|
||||
end
|
||||
|
||||
function Vect:ZONE_CHANGED_NEW_AREA()
|
||||
|
@ -15,6 +15,8 @@ function Vect:ReassignCds(which)
|
||||
for i = 1, 23 do
|
||||
local frame = Vect.frames[which][i]["frame"];
|
||||
frame:Hide();
|
||||
local colorframe = Vect.frames[which][i]["colorframe"];
|
||||
colorframe:Hide();
|
||||
end
|
||||
--check if frames are unlocked
|
||||
if not db["locked"] then return end;
|
||||
@ -22,6 +24,8 @@ function Vect:ReassignCds(which)
|
||||
if not db["selfCDRegister"] and self.targets[which] == UnitGUID("player") then return end;
|
||||
--check if we have cooldown for that unit
|
||||
if not self.cds[self.targets[which]] then return end;
|
||||
--update cds
|
||||
Vect:UpdateCds(which);
|
||||
--sort them
|
||||
local tmp = Vect:SortCDs(which);
|
||||
--let's fill them up
|
||||
@ -33,6 +37,15 @@ function Vect:ReassignCds(which)
|
||||
local CoolDown = Vect.frames[which][i]["cooldown"];
|
||||
CoolDown:SetCooldown(v["currentTime"], v["cd"]);
|
||||
frame:Show();
|
||||
if (db[which]["colorframeenabled"]) then
|
||||
local colorframe = Vect.frames[which][i]["colorframe"];
|
||||
--self:Print(v["spellID"] .. " cat: " .. v["spellCategory"]);
|
||||
colorframe:SetBackdropColor(db["color"][v["spellCategory"]]["r"],
|
||||
db["color"][v["spellCategory"]]["g"],
|
||||
db["color"][v["spellCategory"]]["b"],
|
||||
db["color"][v["spellCategory"]]["a"]);
|
||||
colorframe:Show();
|
||||
end
|
||||
i = i + 1;
|
||||
end
|
||||
end
|
||||
@ -54,7 +67,7 @@ function Vect:AddCd(srcGUID, spellID)
|
||||
end
|
||||
|
||||
local spec = Vect.cds[srcGUID]["spec"];
|
||||
local cd, reset = Vect.spells[spellID][spec], Vect.spells[spellID][2];
|
||||
local cd, reset, spellCategory = Vect.spells[spellID][spec], Vect.spells[spellID][2], Vect.spells[spellID][8];
|
||||
|
||||
if specchange and (not cd) then
|
||||
if self.targets["target"] == srcGUID then
|
||||
@ -77,7 +90,8 @@ function Vect:AddCd(srcGUID, spellID)
|
||||
endTime,
|
||||
cd,
|
||||
spellIcon,
|
||||
spellID
|
||||
spellID,
|
||||
spellCategory
|
||||
}
|
||||
|
||||
--self:Print(Vect.cds[srcGUID][spellID][1] .. " " .. Vect.cds[srcGUID][spellID][2] .. " " .. Vect.cds[srcGUID][spellID][3]);
|
||||
@ -146,7 +160,8 @@ function Vect:SortCDs(which)
|
||||
endTime = v[2],
|
||||
cd = v[3],
|
||||
spellIcon = v[4],
|
||||
spellID = v[5]
|
||||
spellID = v[5],
|
||||
spellCategory = v[6]
|
||||
};
|
||||
|
||||
--self:Print(v[1] .. v[2] .. v[3] .. v[4] .. v[5])
|
||||
@ -157,20 +172,36 @@ function Vect:SortCDs(which)
|
||||
|
||||
if not tmp then return end;
|
||||
|
||||
if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeft(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeft(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotal(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotal(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentFirst(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentLast(a, b) end);
|
||||
if not db["cdtypesortorder"]["enabled"] then
|
||||
if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeft(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeft(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotal(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotal(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentFirst(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentLast(a, b) end);
|
||||
end --["7"] = "No order"
|
||||
else
|
||||
if db[which]["sortOrder"] == "1" then --["1"] = "Ascending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDLeftT(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "2" then --["2"] = "Descending (CD left)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDLeftT(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "3" then --["3"] = "Ascending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerAscendingCDTotalT(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "4" then --["4"] = "Descending (CD total)",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerDescendingCDTotalT(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "5" then --["5"] = "Recent first",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentFirstT(a, b) end);
|
||||
elseif db[which]["sortOrder"] == "6" then --["6"] = "Recent Last",
|
||||
table.sort(tmp, function(a, b) return Vect:ComparerRecentLastT(a, b) end);
|
||||
end --["7"] = "No order"
|
||||
end
|
||||
--["7"] = "No order"
|
||||
|
||||
return tmp;
|
||||
end
|
||||
|
||||
@ -191,10 +222,24 @@ function Vect:CreateFrames(which)
|
||||
CoolDown:SetAllPoints()
|
||||
CoolDown:SetCooldown(GetTime(), 50);
|
||||
frame:Hide();
|
||||
|
||||
local colorframe = CreateFrame("Frame", nil, UIParent, nil);
|
||||
colorframe:SetFrameStrata("BACKGROUND");
|
||||
colorframe:SetWidth(150);
|
||||
colorframe:SetHeight(150);
|
||||
colorframe:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background",
|
||||
--edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
|
||||
edgeFile = nil,
|
||||
tile = true, tileSize = 16, edgeSize = 0,
|
||||
--insets = { left = 4, right = 4, top = 4, bottom = 4 }});
|
||||
insets = nil});
|
||||
colorframe:Hide();
|
||||
|
||||
Vect.frames[which][i] = {}
|
||||
Vect.frames[which][i]["frame"] = frame;
|
||||
Vect.frames[which][i]["texture"] = text;
|
||||
Vect.frames[which][i]["cooldown"] = CoolDown;
|
||||
Vect.frames[which][i]["colorframe"] = colorframe;
|
||||
end
|
||||
end
|
||||
|
||||
@ -204,6 +249,7 @@ function Vect:MoveTimersStop(which)
|
||||
local y = db[which]["yPos"];
|
||||
local size = db[which]["size"];
|
||||
local growOrder = db[which]["growOrder"];
|
||||
local cdbacksize = db[which]["colorframesize"];
|
||||
|
||||
for i = 1, 23 do
|
||||
local frame = Vect.frames[which][i]["frame"];
|
||||
@ -214,15 +260,37 @@ function Vect:MoveTimersStop(which)
|
||||
local text = Vect.frames[which][i]["texture"];
|
||||
text:SetAllPoints(frame);
|
||||
frame.texture = text;
|
||||
|
||||
local colorframe = Vect.frames[which][i]["colorframe"];
|
||||
colorframe:ClearAllPoints();
|
||||
colorframe:SetFrameStrata("BACKGROUND");
|
||||
colorframe:SetBackdropColor(1, 1, 1, 1);
|
||||
|
||||
--set them based on the grow type
|
||||
if growOrder == "1" then --Up
|
||||
frame:SetPoint("BOTTOMLEFT", x, y + ((i - 1) * size));
|
||||
|
||||
colorframe:SetWidth(size + (2 * cdbacksize));
|
||||
colorframe:SetHeight(size);
|
||||
colorframe:SetPoint("BOTTOMLEFT", x - cdbacksize, y + ((i - 1) * size));
|
||||
elseif growOrder == "2" then --Right
|
||||
frame:SetPoint("BOTTOMLEFT", x + ((i - 1) * size), y);
|
||||
|
||||
colorframe:SetWidth(size);
|
||||
colorframe:SetHeight(size + (2 * cdbacksize));
|
||||
colorframe:SetPoint("BOTTOMLEFT", x + ((i - 1) * size), y - cdbacksize);
|
||||
elseif growOrder == "3" then --Down
|
||||
frame:SetPoint("BOTTOMLEFT", x, y - ((i - 1) * size));
|
||||
|
||||
colorframe:SetWidth(size + (2 * cdbacksize));
|
||||
colorframe:SetHeight(size);
|
||||
colorframe:SetPoint("BOTTOMLEFT", x - cdbacksize, (y - ((i - 1) * size)));
|
||||
else --Left
|
||||
frame:SetPoint("BOTTOMLEFT", x - ((i - 1) * size), y);
|
||||
|
||||
colorframe:SetWidth(size);
|
||||
colorframe:SetHeight(size + (2 * cdbacksize));
|
||||
colorframe:SetPoint("BOTTOMLEFT", x - ((i - 1) * size), y - cdbacksize);
|
||||
end
|
||||
local CoolDown = Vect.frames[which][i]["cooldown"];
|
||||
CoolDown:SetAllPoints();
|
||||
@ -231,19 +299,27 @@ function Vect:MoveTimersStop(which)
|
||||
end
|
||||
|
||||
function Vect:VOnTimerUpdate(which)
|
||||
if (Vect:UpdateCds(which)) then
|
||||
--we have to update both, because if somebody is targeted and focused since sorting is
|
||||
--implemented it triggers only one update, probably it had bugs before too, but got unnoticed
|
||||
self:ReassignCds("target");
|
||||
self:ReassignCds("focus");
|
||||
end
|
||||
end
|
||||
|
||||
function Vect:UpdateCds(which)
|
||||
--check if we have cooldown for that unit
|
||||
if not self.cds[self.targets[which]] then return end
|
||||
local t = GetTime();
|
||||
local found = false;
|
||||
--let's check if one of the cooldowns finished
|
||||
for k, v in pairs(self.cds[self.targets[which]]) do
|
||||
if not (k == "spec") then
|
||||
if v[2] <= t then
|
||||
self.cds[self.targets[which]][v[5]] = nil;
|
||||
--we have to update both, because if somebody is targeted and focused since sorting is
|
||||
--implemented it triggers only one update, probably it had bugs before too, but got unnoticed
|
||||
self:ReassignCds("target");
|
||||
self:ReassignCds("focus");
|
||||
found = true;
|
||||
end
|
||||
end
|
||||
end
|
||||
return found;
|
||||
end
|
||||
|
@ -52,6 +52,8 @@ function Vect:SetPartEnabledOrDisabled(which, enable)
|
||||
for i = 1, 23 do
|
||||
local frame = Vect.frames[which][i]["frame"];
|
||||
frame:Hide();
|
||||
local colorframe = Vect.fremes[which][i]["colorframe"];
|
||||
colorframe:Hide();
|
||||
end
|
||||
else
|
||||
self:ReassignCds(which);
|
||||
@ -84,6 +86,38 @@ function Vect:setSpecDetectionEnabledorDisabled(enable)
|
||||
--self:ReassignCds(which);
|
||||
end
|
||||
|
||||
function Vect:getColorFrameEnabled(which)
|
||||
local db = Vect.db.profile;
|
||||
return db[which]["colorframeenabled"];
|
||||
end
|
||||
|
||||
function Vect:setColorFrameEnabled(which, enable)
|
||||
local db = Vect.db.profile;
|
||||
db[which]["colorframeenabled"] = enable;
|
||||
--hide all those frames
|
||||
if not enable then
|
||||
for i = 1, 23 do
|
||||
local colorframe = Vect.frames[which][i]["colorframe"];
|
||||
colorframe:Hide();
|
||||
end
|
||||
else
|
||||
self:ReassignCds(which);
|
||||
end
|
||||
end
|
||||
|
||||
function Vect:getCDTypeSortingEnable()
|
||||
local db = Vect.db.profile;
|
||||
return db["cdtypesortorder"]["enabled"];
|
||||
end
|
||||
|
||||
function Vect:setCDTypeSortingEnable(v)
|
||||
local db = Vect.db.profile;
|
||||
db["cdtypesortorder"]["enabled"] = v;
|
||||
|
||||
self:ReassignCds("target");
|
||||
self:ReassignCds("focus");
|
||||
end
|
||||
|
||||
--lock
|
||||
function Vect:isLocked()
|
||||
return Vect.db.profile["locked"];
|
||||
@ -219,10 +253,27 @@ end
|
||||
|
||||
function Vect:setDRNumSize(which, size)
|
||||
local db = Vect.db.profile;
|
||||
db[which]["drnumsize"] = size;
|
||||
db[which]["size"] = size;
|
||||
Vect:MoveDRTimersStop(which)
|
||||
end
|
||||
|
||||
function Vect:getColorFrameSize(which)
|
||||
local db = Vect.db.profile;
|
||||
return db[which]["colorframesize"];
|
||||
end
|
||||
|
||||
function Vect:setColorFrameSize(which, size)
|
||||
local db = Vect.db.profile;
|
||||
db[which]["colorframesize"] = size;
|
||||
|
||||
Vect:MoveTimersStop(which);
|
||||
Vect:ReassignCds(which);
|
||||
|
||||
if not db["locked"] then
|
||||
Vect:ShowMovableFrames();
|
||||
end
|
||||
end
|
||||
|
||||
--Grow Order
|
||||
function Vect:getGrowOrder(which)
|
||||
local db = Vect.db.profile;
|
||||
@ -253,6 +304,18 @@ function Vect:setSortOrder(which, v)
|
||||
Vect:ReassignCds(which);
|
||||
end
|
||||
|
||||
function Vect:getTypeSortOrder(which)
|
||||
local db = Vect.db.profile;
|
||||
return db["cdtypesortorder"][which];
|
||||
end
|
||||
|
||||
function Vect:setTypeSortOrder(which, v)
|
||||
local db = Vect.db.profile;
|
||||
db["cdtypesortorder"][which] = v;
|
||||
Vect:ReassignCds("target");
|
||||
Vect:ReassignCds("focus");
|
||||
end
|
||||
|
||||
--Num Position functions
|
||||
function Vect:getDRNumPosition(which)
|
||||
local db = Vect.db.profile;
|
||||
@ -265,6 +328,34 @@ function Vect:setDRNumPosition(which, v)
|
||||
Vect:MoveDRTimersStop(which);
|
||||
end
|
||||
|
||||
--Color options
|
||||
function Vect:getColor(part)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if not db["color"] then db["color"] = {} end
|
||||
|
||||
if not db["color"][part] then
|
||||
db["color"][part] = {};
|
||||
db["color"][part]["r"] = 1;
|
||||
db["color"][part]["g"] = 0;
|
||||
db["color"][part]["b"] = 0;
|
||||
db["color"][part]["a"] = 1;
|
||||
end
|
||||
|
||||
return db["color"][part]["r"], db["color"][part]["g"], db["color"][part]["b"], db["color"][part]["a"];
|
||||
end
|
||||
|
||||
function Vect:setColor(part, r, g, b, a)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if not db["color"][part] then db["color"][part] = {} end
|
||||
|
||||
db["color"][part]["r"] = r;
|
||||
db["color"][part]["g"] = g;
|
||||
db["color"][part]["b"] = b;
|
||||
db["color"][part]["a"] = a;
|
||||
end
|
||||
|
||||
--Debug settings
|
||||
function Vect:getDebugLevel()
|
||||
local db = Vect.db.profile;
|
||||
|
@ -29,9 +29,9 @@ function Vect:GetVectOptions()
|
||||
type = "group", name = "DRs", desc = "DR frame's settings.", childGroups = "tab",order = 3,
|
||||
args = Vect:getDROptions();
|
||||
},
|
||||
selfdr = {
|
||||
type = "group", name = "Self DRs", desc = "Self DR frame's settings.", childGroups = "tab",order = 4,
|
||||
args = Vect:getSelfDROptions()
|
||||
coloroptions = {
|
||||
type = "group", name = "Global", desc = "Global settings.", childGroups = "tab",order = 4,
|
||||
args = Vect:getGlobalOptions()
|
||||
},
|
||||
debugoptions = {
|
||||
type = "group", name = "Debug", desc = "Debug settings.", childGroups = "tab", order = 5,
|
||||
@ -61,7 +61,6 @@ function Vect:getTargetandFocusOptions()
|
||||
set = function(_, v)
|
||||
Vect:setFrameSize("target", v);
|
||||
end
|
||||
|
||||
},
|
||||
targetGrowSelect = {
|
||||
type = "select", style = "dropdown", name = "targetGrow",
|
||||
@ -94,18 +93,32 @@ function Vect:getTargetandFocusOptions()
|
||||
Vect:setSortOrder("target", v);
|
||||
end
|
||||
},
|
||||
targetcolortoggle = {
|
||||
type = "toggle", name = "Colors", desc = "Enable/Disable showing the target's cooldown's colors.", order = 15,
|
||||
get = function() return Vect:getColorFrameEnabled("target") end,
|
||||
set = function(_, v)
|
||||
Vect:setColorFrameEnabled("target", v);
|
||||
end
|
||||
},
|
||||
targetcolorrange = {
|
||||
type = "range", name = "Target's Color size", order = 16, min = 1, max = 30, step = 1,
|
||||
get = function() return Vect:getColorFrameSize("target") end,
|
||||
set = function(_, v)
|
||||
Vect:setColorFrameSize("target", v);
|
||||
end
|
||||
},
|
||||
focusHeader = {
|
||||
type = "header", name = "Focus's settings", order = 15
|
||||
type = "header", name = "Focus's settings", order = 17
|
||||
},
|
||||
focustoggle = {
|
||||
type = "toggle", name = "Focus", desc = "Enable/Disable showing the focus's cooldowns", order = 16,
|
||||
type = "toggle", name = "Focus", desc = "Enable/Disable showing the focus's cooldowns", order = 18,
|
||||
get = function() return Vect:isPartEnabled("focus") end,
|
||||
set = function(_, v)
|
||||
Vect:SetPartEnabledOrDisabled("focus", v);
|
||||
end
|
||||
},
|
||||
focusRange = {
|
||||
type = "range", name = "Focus's size", order = 17, min = 10, max = 150, step = 1,
|
||||
type = "range", name = "Focus's size", order = 19, min = 10, max = 150, step = 1,
|
||||
get = function() return Vect:getFrameSize("focus") end,
|
||||
set = function(_, v)
|
||||
Vect:setFrameSize("focus", v);
|
||||
@ -113,7 +126,7 @@ function Vect:getTargetandFocusOptions()
|
||||
},
|
||||
focusGrowSelect = {
|
||||
type = "select", style = "dropdown", name = "focusGrow",
|
||||
desc = "Change which way the focus's cooldowns will grow", order = 18,
|
||||
desc = "Change which way the focus's cooldowns will grow", order = 20,
|
||||
values = {
|
||||
["1"] = "Up",
|
||||
["2"] = "Right",
|
||||
@ -127,7 +140,7 @@ function Vect:getTargetandFocusOptions()
|
||||
},
|
||||
focusSortSelect = {
|
||||
type = "select", style = "dropdown", name = "focusSortOrder",
|
||||
desc = "Change the focus's cooldowns's sort order", order = 19,
|
||||
desc = "Change the focus's cooldowns's sort order", order = 21,
|
||||
values = {
|
||||
["1"] = "Ascending (CD left)",
|
||||
["2"] = "Descending (CD left)",
|
||||
@ -142,16 +155,20 @@ function Vect:getTargetandFocusOptions()
|
||||
Vect:setSortOrder("focus", v);
|
||||
end
|
||||
},
|
||||
globalHeader = {
|
||||
type = "header", name = "Global settings", order = 20
|
||||
focuscolortoggle = {
|
||||
type = "toggle", name = "Colors", desc = "Enable/Disable showing the target's cooldown's colors.", order = 22,
|
||||
get = function() return Vect:getColorFrameEnabled("focus") end,
|
||||
set = function(_, v)
|
||||
Vect:setColorFrameEnabled("focus", v);
|
||||
end
|
||||
},
|
||||
focuscolorrange = {
|
||||
type = "range", name = "Focus's Color size", order = 23, min = 1, max = 30, step = 1,
|
||||
get = function() return Vect:getColorFrameSize("focus") end,
|
||||
set = function(_, v)
|
||||
Vect:setColorFrameSize("focus", v);
|
||||
end
|
||||
},
|
||||
specdetectiontoggle = {
|
||||
type = "toggle", name = "Spec Detection", desc = "Enable/Disable Spec Detection", order = 21,
|
||||
get = function() return Vect:isSpecDetectionEnabled() end,
|
||||
set = function(_, v)
|
||||
Vect:setSpecDetectionEnabledorDisabled(v);
|
||||
end
|
||||
}
|
||||
}
|
||||
return args;
|
||||
end
|
||||
@ -160,7 +177,7 @@ end
|
||||
function Vect:getDROptions()
|
||||
local args = {
|
||||
targetdrHeader = {
|
||||
type = "header", name = "Target's DR settings", order = 10
|
||||
type = "header", name = "Target's settings", order = 10
|
||||
},
|
||||
targetdrtoggle = {
|
||||
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the target's DRs.", order = 11,
|
||||
@ -304,22 +321,18 @@ function Vect:getDROptions()
|
||||
Vect:setDRNumPosition("focusdr", v);
|
||||
end
|
||||
},
|
||||
}
|
||||
return args;
|
||||
end
|
||||
|
||||
--order 40-50
|
||||
function Vect:getSelfDROptions()
|
||||
local args = {
|
||||
selfdrHeader = {
|
||||
type = "header", name = "Self's settings", order = 24
|
||||
},
|
||||
selfdrtoggle = {
|
||||
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the your DRs.", order = 11,
|
||||
type = "toggle", name = "Enabled", desc = "Enable/Disable showing the your DRs.", order = 25,
|
||||
get = function() return Vect:isPartEnabled("selfdr") end,
|
||||
set = function(_, v)
|
||||
Vect:SetDRPartEnabledOrDisabled("selfdr", v);
|
||||
end
|
||||
},
|
||||
selfdrrange = {
|
||||
type = "range", name = "Self's DRs size", order = 12, min = 10, max = 150, step = 1,
|
||||
type = "range", name = "Self's DRs size", order = 26, min = 10, max = 150, step = 1,
|
||||
get = function() return Vect:getFrameSize("selfdr") end,
|
||||
set = function(_, v)
|
||||
Vect:setFrameSize("selfdr", v);
|
||||
@ -327,7 +340,7 @@ function Vect:getSelfDROptions()
|
||||
},
|
||||
selfdrGrowSelect = {
|
||||
type = "select", style = "dropdown", name = "selfDRGrow",
|
||||
desc = "Change which way the your DRs will grow", order = 13,
|
||||
desc = "Change which way the your DRs will grow", order = 27,
|
||||
values = {
|
||||
["1"] = "Up",
|
||||
["2"] = "Right",
|
||||
@ -341,7 +354,7 @@ function Vect:getSelfDROptions()
|
||||
},
|
||||
selfdrSortSelect = {
|
||||
type = "select", style = "dropdown", name = "selfDRSortOrder",
|
||||
desc = "Change the your DR's sort order", order = 14,
|
||||
desc = "Change the your DR's sort order", order = 28,
|
||||
values = {
|
||||
["1"] = "Ascending (CD left)",
|
||||
["2"] = "Descending (CD left)",
|
||||
@ -358,7 +371,7 @@ function Vect:getSelfDROptions()
|
||||
},
|
||||
selfdrnumsizerange = {
|
||||
type = "range", name = "Number's size", desc = "Your DR's Number's size. Set it to 0 to disable it!",
|
||||
order = 15, min = 1, max = 30, step = 1,
|
||||
order = 29, min = 1, max = 30, step = 1,
|
||||
get = function() return Vect:getDRNumSize("selfdr") end,
|
||||
set = function(_, v)
|
||||
Vect:setDRNumSize("selfdr", v);
|
||||
@ -367,7 +380,7 @@ function Vect:getSelfDROptions()
|
||||
},
|
||||
selfdrnumposselect = {
|
||||
type = "select", style = "dropdown", name = "selfDRNumPos",
|
||||
desc = "Change your DR's number's position.", order = 16,
|
||||
desc = "Change your DR's number's position.", order = 30,
|
||||
values = {
|
||||
["1"] = "Up",
|
||||
["2"] = "Right",
|
||||
@ -384,6 +397,215 @@ function Vect:getSelfDROptions()
|
||||
return args;
|
||||
end
|
||||
|
||||
--order 40-50
|
||||
function Vect:getGlobalOptions()
|
||||
local args = {
|
||||
globalHeader = {
|
||||
type = "header", name = "Global CD settings", order = 10
|
||||
},
|
||||
specdetectiontoggle = {
|
||||
type = "toggle", name = "Spec Detection", desc = "Enable/Disable Spec Detection", order = 11,
|
||||
get = function() return Vect:isSpecDetectionEnabled() end,
|
||||
set = function(_, v)
|
||||
Vect:setSpecDetectionEnabledorDisabled(v);
|
||||
end
|
||||
},
|
||||
petcdguessingtoggle = {
|
||||
type = "toggle", name = "Pet CD Guessing",
|
||||
desc = "Enable/Disable Pet Cd Guessing, this will show pet cds on all possible masters, since there is no reasonable way of determining who's pet it is from combatlog events and GUIDs, this will be really inaccurate if there are 2-3 lock for example.",
|
||||
order = 12,
|
||||
get = function() return Vect:isSpecDetectionEnabled() end,
|
||||
set = function(_, v)
|
||||
Vect:setSpecDetectionEnabledorDisabled(v);
|
||||
end
|
||||
},
|
||||
globalcdtypesortHeader = {
|
||||
type = "header", name = "Global CD Type sorting", order = 13
|
||||
},
|
||||
cdtypesortordertoggle = {
|
||||
type = "toggle", name = "Enabled", desc = "Enable/Disable CD Type Sort Order", order = 15,
|
||||
get = function() return Vect:getCDTypeSortingEnable() end,
|
||||
set = function(_, v)
|
||||
Vect:setCDTypeSortingEnable(v);
|
||||
end
|
||||
},
|
||||
silencerange = {
|
||||
type = "range", name = "Silence's Type Order", order = 17, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("silence") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("silence", v);
|
||||
end
|
||||
},
|
||||
gapcloserrange = {
|
||||
type = "range", name = "Gapcloser's Type Order", order = 18, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("gapcloser") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("gapcloser", v);
|
||||
end
|
||||
},
|
||||
defensiverange = {
|
||||
type = "range", name = "Defensive's Type Order", order = 19, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("defensive") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("defensive", v);
|
||||
end
|
||||
},
|
||||
potionrange = {
|
||||
type = "range", name = "Potion's Type Order", order = 20, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("potion") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("potion", v);
|
||||
end
|
||||
},
|
||||
nukerange = {
|
||||
type = "range", name = "Nuke's Type Order", order = 21, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("nuke") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("nuke", v);
|
||||
end
|
||||
},
|
||||
anticcrange = {
|
||||
type = "range", name = "Anticc's Type Order", order = 22, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("anticc") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("anticc", v);
|
||||
end
|
||||
},
|
||||
ccrange = {
|
||||
type = "range", name = "Cc's Type Order", order = 23, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("cc") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("cc", v);
|
||||
end
|
||||
},
|
||||
stunrange = {
|
||||
type = "range", name = "Stun's Type Order", order = 24, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("stun") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("stun", v);
|
||||
end
|
||||
},
|
||||
disarmrange = {
|
||||
type = "range", name = "Disarm's Type Order", order = 25, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("disarm") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("disarm", v);
|
||||
end
|
||||
},
|
||||
cdresetrange = {
|
||||
type = "range", name = "Cdreset's Type Order", order = 26, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("cdreset") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("cdreset", v);
|
||||
end
|
||||
},
|
||||
shieldrange = {
|
||||
type = "range", name = "shield's Type Order", order = 27, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("shield") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("shield", v);
|
||||
end
|
||||
},
|
||||
uncategorizedrange = {
|
||||
type = "range", name = "Uncategorized's Type Order", order = 28, min = 1, max = 15, step = 1,
|
||||
get = function() return Vect:getTypeSortOrder("uncategorized") end,
|
||||
set = function(_, v)
|
||||
Vect:setTypeSortOrder("uncategorized", v);
|
||||
end
|
||||
},
|
||||
|
||||
--50+
|
||||
globalcolorHeader = {
|
||||
type = "header", name = "CD Color settings", order = 51
|
||||
},
|
||||
silencecolorsel = {
|
||||
type = "color", name = "Silence's color", hasAlpha = true, order = 52,
|
||||
get = function() return Vect:getColor("silence") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("silence", r, g, b, a);
|
||||
end
|
||||
},
|
||||
gapclosercolorsel = {
|
||||
type = "color", name = "Gapcloser's color", hasAlpha = true, order = 53,
|
||||
get = function() return Vect:getColor("gapcloser") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("gapcloser", r, g, b, a);
|
||||
end
|
||||
},
|
||||
defensivecolorsel = {
|
||||
type = "color", name = "Defensive's color", hasAlpha = true, order = 54,
|
||||
get = function() return Vect:getColor("defensive") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("defensive", r, g, b, a);
|
||||
end
|
||||
},
|
||||
potioncolorsel = {
|
||||
type = "color", name = "Potion's color", hasAlpha = true, order = 55,
|
||||
get = function() return Vect:getColor("potion") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("potion", r, g, b, a);
|
||||
end
|
||||
},
|
||||
nukecolorsel = {
|
||||
type = "color", name = "Nuke's color", hasAlpha = true, order = 56,
|
||||
get = function() return Vect:getColor("nuke") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("nuke", r, g, b, a);
|
||||
end
|
||||
},
|
||||
anticccolorsel = {
|
||||
type = "color", name = "Anticc's color", hasAlpha = true, order = 57,
|
||||
get = function() return Vect:getColor("anticc") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("anticc", r, g, b, a);
|
||||
end
|
||||
},
|
||||
cccolorsel = {
|
||||
type = "color", name = "Cc's color", hasAlpha = true, order = 58,
|
||||
get = function() return Vect:getColor("cc") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("cc", r, g, b, a);
|
||||
end
|
||||
},
|
||||
stuncolorsel = {
|
||||
type = "color", name = "Stun's color", hasAlpha = true, order = 59,
|
||||
get = function() return Vect:getColor("stun") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("stun", r, g, b, a);
|
||||
end
|
||||
},
|
||||
disarmcolorsel = {
|
||||
type = "color", name = "Disarm's color", hasAlpha = true, order = 60,
|
||||
get = function() return Vect:getColor("disarm") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("disarm", r, g, b, a);
|
||||
end
|
||||
},
|
||||
cdresetcolorsel = {
|
||||
type = "color", name = "Cdreset's color", hasAlpha = true, order = 61,
|
||||
get = function() return Vect:getColor("cdreset") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("cdreset", r, g, b, a);
|
||||
end
|
||||
},
|
||||
shieldcolorsel = {
|
||||
type = "color", name = "Shield's color", hasAlpha = true, order = 62,
|
||||
get = function() return Vect:getColor("shield") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("shield", r, g, b, a);
|
||||
end
|
||||
},
|
||||
uncategorizedcolorsel = {
|
||||
type = "color", name = "Uncategorized's color", hasAlpha = true, order = 63,
|
||||
get = function() return Vect:getColor("uncategorized") end,
|
||||
set = function(_, r, g, b, a)
|
||||
Vect:setColor("uncategorized", r, g, b, a);
|
||||
end
|
||||
},
|
||||
}
|
||||
return args;
|
||||
end
|
||||
|
||||
--order 50+
|
||||
function Vect:getDebugOptions()
|
||||
local args = {
|
||||
@ -429,3 +651,24 @@ function Vect:getDebugOptions()
|
||||
}
|
||||
return args;
|
||||
end
|
||||
|
||||
function Vect:GetTypeSortDropdown(num)
|
||||
local arr = {
|
||||
type = "select", style = "dropdown", name = "selfDRSortOrder",
|
||||
desc = "Change the your DR's sort order", order = 28,
|
||||
values = {
|
||||
["1"] = "Ascending (CD left)",
|
||||
["2"] = "Descending (CD left)",
|
||||
["3"] = "Ascending (CD total)",
|
||||
["4"] = "Descending (CD total)",
|
||||
["5"] = "Recent first",
|
||||
["6"] = "Recent Last",
|
||||
["7"] = "No order"
|
||||
},
|
||||
get = function() return Vect:getSortOrder("selfdr") end,
|
||||
set = function(_, v)
|
||||
Vect:setSortOrder("selfdr", v);
|
||||
end
|
||||
}
|
||||
return arr;
|
||||
end
|
||||
|
112
data/sorters.lua
112
data/sorters.lua
@ -1,13 +1,6 @@
|
||||
|
||||
-- table.sort(tmp, function(a, b) if db.growUp then return self:C_RemainingComparer(a, b) else return self:C_ReversalRemainingComparer(a, b) end end)
|
||||
|
||||
--function Aesa:C_RemainingComparer(a, b)
|
||||
-- return b.remaining < a.remaining
|
||||
--end
|
||||
|
||||
--["1"] = "Ascending (CD left)",
|
||||
function Vect:ComparerAscendingCDLeft(a, b)
|
||||
local time = GetTime();
|
||||
if a.endTime < b.endTime then
|
||||
return true;
|
||||
else
|
||||
@ -17,7 +10,6 @@ end
|
||||
|
||||
--["2"] = "Descending (CD left)",
|
||||
function Vect:ComparerDescendingCDLeft(a, b)
|
||||
local time = GetTime();
|
||||
if a.endTime < b.endTime then
|
||||
return false;
|
||||
else
|
||||
@ -60,3 +52,107 @@ function Vect:ComparerRecentLast(a, b)
|
||||
return false;
|
||||
end
|
||||
end
|
||||
|
||||
--CD Type sorters
|
||||
|
||||
--["1"] = "Ascending (CD left)",
|
||||
function Vect:ComparerAscendingCDLeftT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.endTime < b.endTime then
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--["2"] = "Descending (CD left)",
|
||||
function Vect:ComparerDescendingCDLeftT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.endTime < b.endTime then
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--["3"] = "Ascending (CD total)",
|
||||
function Vect:ComparerAscendingCDTotalT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.cd < b.cd then
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--["4"] = "Descending (CD total)",
|
||||
function Vect:ComparerDescendingCDTotalT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.cd < b.cd then
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--["5"] = "Recent first",
|
||||
function Vect:ComparerRecentFirstT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.currentTime < b.currentTime then
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--["6"] = "Recent Last",
|
||||
function Vect:ComparerRecentLastT(a, b)
|
||||
local db = Vect.db.profile;
|
||||
|
||||
if (db["cdtypesortorder"][a.spellCategory] < db["cdtypesortorder"][b.spellCategory]) then
|
||||
return true;
|
||||
elseif (db["cdtypesortorder"][a.spellCategory] > db["cdtypesortorder"][b.spellCategory]) then
|
||||
return false
|
||||
else -- they are ==
|
||||
if a.currentTime < b.currentTime then
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
952
data/spells.lua
952
data/spells.lua
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user