You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
9.3 KiB

local _, Cell = ...
local F = Cell.funcs
local I = Cell.iFuncs
-------------------------------------------------
-- custom indicator
-------------------------------------------------
function I.GetDefaultCustomIndicatorTable(name, indicatorName, type, auraType)
local t
if type == "icon" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 3},
["frameLevel"] = 5,
["size"] = {13, 13},
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "TOPRIGHT", 2, 1, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "BOTTOMRIGHT", 2, -1, {1, 1, 1}},
},
["showStack"] = true,
["showDuration"] = false,
["showAnimation"] = true,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "text" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 3},
["frameLevel"] = 5,
["font"] = {"Cell " .. _G.DEFAULT, 12, "Outline", false},
["colors"] = {{0, 1, 0, 1}, {false, 0.5, {1, 1, 0, 1}}, {false, 3, {1, 0, 0, 1}}},
["auraType"] = auraType,
["auras"] = {},
["duration"] = {
true, -- show duration
false, -- round up duration
0, -- decimal
},
["circledStackNums"] = false,
}
elseif type == "bar" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"BOTTOMRIGHT", "TOPRIGHT", 0, -1},
["frameLevel"] = 5,
["size"] = {18, 4},
["colors"] = {{0, 1, 0, 1}, {false, 0.5, {1, 1, 0, 1}}, {false, 3, {1, 0, 0, 1}}, {0, 0, 0, 1}, {0.07, 0.07, 0.07, 0.9}},
["orientation"] = "horizontal",
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "LEFT", 1, 0, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "RIGHT", -1, 0, {1, 1, 1}},
},
["showStack"] = false,
["showDuration"] = false,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "rect" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 2},
["frameLevel"] = 5,
["size"] = {11, 4},
["colors"] = {{0, 1, 0, 1}, {false, 0.5, {1, 1, 0, 1}}, {false, 3, {1, 0, 0, 1}}, {0, 0, 0, 1}},
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "LEFT", 1, 0, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "RIGHT", -1, 0, {1, 1, 1}},
},
["showStack"] = false,
["showDuration"] = false,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "icons" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 3},
["frameLevel"] = 5,
["size"] = {13, 13},
["num"] = 5,
["numPerLine"] = 5,
["orientation"] = "right-to-left",
["spacing"] = {0, 0},
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "TOPRIGHT", 2, 1, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "BOTTOMRIGHT", 2, -1, {1, 1, 1}},
},
["showStack"] = true,
["showDuration"] = false,
["showAnimation"] = true,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "color" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["anchor"] = "healthbar-current",
["frameLevel"] = 1,
["colors"] = {"gradient-vertical", {1, 0, 0.4, 1}, {0, 0, 0, 1}, {0, 1, 0, 1}, {0.5, {1, 1, 0, 1}}, {3, {1, 0, 0, 1}}},
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "texture" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOP", "TOP", 0, 0},
["size"] = {16, 16},
["frameLevel"] = 10,
["texture"] = {"Interface\\AddOns\\Cell\\Media\\Shapes\\circle_blurred.tga", 0, {1, 1, 1, 1}},
["auraType"] = auraType,
["auras"] = {},
["fadeOut"] = true,
}
elseif type == "glow" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["frameLevel"] = 1,
["auraType"] = auraType,
["auras"] = {},
["glowOptions"] = {"Pixel", {0.95, 0.95, 0.32, 1}, 9, 0.25, 8, 2},
["fadeOut"] = true,
}
elseif type == "overlay" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["smooth"] = false,
["frameLevel"] = 1,
["colors"] = {{0, 0.61, 1, 0.55}, {false, 0.5, {1, 1, 0, 0.5}}, {false, 3, {1, 0, 0, 0.5}}},
["orientation"] = "horizontal",
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "block" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 3},
["frameLevel"] = 5,
["size"] = {10, 10},
["colors"] = {"duration", {0, 1, 0, 1}, {false, 0.5, {1, 1, 0, 1}}, {false, 3, {1, 0, 0, 1}}, {0, 0, 0, 1}},
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "TOPRIGHT", 2, 1, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "BOTTOMRIGHT", 2, -1, {1, 1, 1}},
},
["showStack"] = false,
["showDuration"] = false,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "blocks" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["position"] = {"TOPRIGHT", "TOPRIGHT", 0, 3},
["frameLevel"] = 5,
["size"] = {10, 10},
["num"] = 5,
["numPerLine"] = 5,
["orientation"] = "right-to-left",
["spacing"] = {0, 0},
["font"] = {
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "TOPRIGHT", 2, 1, {1, 1, 1}},
{"Cell " .. _G.DEFAULT, 11, "Outline", false, "BOTTOMRIGHT", 2, -1, {1, 1, 1}},
},
["showStack"] = false,
["showDuration"] = false,
["auraType"] = auraType,
["auras"] = {},
}
elseif type == "border" then
t = {
["name"] = name,
["indicatorName"] = indicatorName,
["type"] = type,
["enabled"] = true,
["thickness"] = 2,
["frameLevel"] = 10,
["auraType"] = auraType,
["auras"] = {},
["fadeOut"] = true,
}
end
if auraType == "buff" then
t["castBy"] = "me"
if Cell.isRetail then
t["trackByName"] = false
else
t["trackByName"] = true
end
end
return t
end
-------------------------------------------------
-- dispels: custom debuff type color
-------------------------------------------------
function I.GetDebuffTypeColor(debuffType)
if debuffType and CellDB["debuffTypeColor"][debuffType] then
return CellDB["debuffTypeColor"][debuffType]["r"], CellDB["debuffTypeColor"][debuffType]["g"],
CellDB["debuffTypeColor"][debuffType]["b"]
else
return 0, 0, 0
end
end
function I.SetDebuffTypeColor(debuffType, r, g, b)
if debuffType and CellDB["debuffTypeColor"][debuffType] then
CellDB["debuffTypeColor"][debuffType]["r"] = r
CellDB["debuffTypeColor"][debuffType]["g"] = g
CellDB["debuffTypeColor"][debuffType]["b"] = b
end
end
function I.ResetDebuffTypeColor()
-- copy
CellDB["debuffTypeColor"] = F:Copy(DebuffTypeColor)
-- add Bleed
CellDB["debuffTypeColor"]["Bleed"] = {r = 1, g = 0.2, b = 0.6}
-- add cleu
-- CellDB["debuffTypeColor"].cleu = {r=0, g=1, b=1}
end