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.

246 lines
8.0 KiB

local SLE, T, E, L, V, P, G = unpack(select(2, ...))
local SA = SLE.Armory_Stats
local M = E.Misc
local function configTable()
if not SLE.initialized then return end
E.Options.args.sle.args.modules.args.armory.args.stats = {
type = 'group',
name = STAT_CATEGORY_ATTRIBUTES,
order = 30,
disabled = function() return SLE._Compatibility['DejaCharacterStats'] or not E.db.sle.armory.stats.enable end,
hidden = function() return not E.private.skins.blizzard.enable or not E.private.skins.blizzard.character end,
get = function(info) return E.db.sle.armory.stats[info[#info]] end,
set = function(info, value) E.db.sle.armory.stats[info[#info]] = value; PaperDollFrame_UpdateStats(); M:UpdateCharacterItemLevel() end,
args = {
OnlyPrimary = {
order = 1,
type = 'toggle',
name = L["Only Relevant Stats"],
desc = L["Show only those primary stats relevant to your spec."],
},
decimals = {
order = 2,
type = 'toggle',
name = L["Decimals"],
desc = L["Show stats with decimals."],
},
ItemLevel = {
order = 10,
type = 'group',
name = STAT_AVERAGE_ITEM_LEVEL,
guiInline = true,
args = {
IlvlFull = {
order = 1,
type = 'toggle',
name = L["Full Item Level"],
desc = L["Show both equipped and average item levels."],
},
IlvlColor = {
order = 2,
type = 'toggle',
name = L["Item Level Coloring"],
desc = L["Color code item levels values. Equipped will be gradient, average - selected color."],
disabled = function() return SLE._Compatibility['DejaCharacterStats'] or not E.db.sle.armory.stats.IlvlFull or not E.db.sle.armory.stats.enable end,
},
AverageColor = {
type = 'color',
order = 3,
name = L["Color of Average"],
desc = L["Sets the color of average item level."],
hasAlpha = false,
disabled = function() return SLE._Compatibility['DejaCharacterStats'] or not E.db.sle.armory.stats.IlvlFull or not E.db.sle.armory.stats.enable end,
get = function(info)
local t = E.db.sle.armory.stats[info[#info]]
local d = P.sle.armory.stats[info[#info]]
return t.r, t.g, t.b, t.a, d.r, d.g, d.b, d.a
end,
set = function(info, r, g, b, a)
E.db.sle.armory.stats[info[#info]] = {}
local t = E.db.sle.armory.stats[info[#info]]
t.r, t.g, t.b, t.a = r, g, b, a
M:UpdateCharacterItemLevel()
PaperDollFrame_UpdateStats()
end,
},
},
},
Fonts = {
type = 'group',
name = STAT_CATEGORY_ATTRIBUTES..': '..L["Fonts"],
guiInline = true,
order = 20,
args = {
IlvlFont = {
type = 'group',
name = STAT_AVERAGE_ITEM_LEVEL,
order = 1,
-- guiInline = true,
get = function(info) return E.db.sle.armory.stats.itemLevel[info[#info]] end,
set = function(info, value) E.db.sle.armory.stats.itemLevel[info[#info]] = value; SA:UpdateIlvlFont() end,
args = {
font = {
type = 'select', dialogControl = 'LSM30_Font',
name = L["Font"],
order = 1,
values = function()
return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
end,
},
size = {
type = 'range',
name = L["FONT_SIZE"],
order = 2,
min = 10, max = 22, step = 1,
},
outline = {
type = 'select',
name = L["Font Outline"],
order = 3,
values = T.Values.FontFlags,
},
},
},
statFonts = {
type = 'group',
name = STAT_CATEGORY_ATTRIBUTES,
order = 2,
-- guiInline = true,
get = function(info) return E.db.sle.armory.stats.statFonts[info[#info]] end,
set = function(info, value) E.db.sle.armory.stats.statFonts[info[#info]] = value; SA:PaperDollFrame_UpdateStats() end,
args = {
font = {
type = 'select', dialogControl = 'LSM30_Font',
name = L["Font"],
order = 1,
values = function()
return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
end,
},
size = {
type = 'range',
name = L["FONT_SIZE"],
order = 2,
min = 10, max = 22, step = 1,
},
outline = {
type = 'select',
name = L["Font Outline"],
order = 3,
values = T.Values.FontFlags,
},
},
},
catFonts = {
type = 'group',
name = L["Categories"],
order = 3,
-- guiInline = true,
get = function(info) return E.db.sle.armory.stats.catFonts[info[#info]] end,
set = function(info, value) E.db.sle.armory.stats.catFonts[info[#info]] = value; SA:PaperDollFrame_UpdateStats() end,
args = {
font = {
type = 'select', dialogControl = 'LSM30_Font',
name = L["Font"],
order = 1,
values = function()
return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
end,
},
size = {
type = 'range',
name = L["FONT_SIZE"],
order = 2,
min = 10, max = 22, step = 1,
},
outline = {
type = 'select',
name = L["Font Outline"],
order = 3,
values = T.Values.FontFlags,
},
},
},
},
},
Lists = {
order = 50,
type = 'group',
name = STAT_CATEGORY_ATTRIBUTES,
childGroups = 'tab',
guiInline = true,
get = function(info) return E.db.sle.armory.stats.List[info[#info]] end,
set = function(info, value) E.db.sle.armory.stats.List[info[#info]] = value; PaperDollFrame_UpdateStats() end,
args = {
Attributes = {
order = 10,
type = 'group',
name = STAT_CATEGORY_ATTRIBUTES,
args = {
HEALTH = {
order = 1,
type = 'toggle',
name = HEALTH,
},
POWER = {
order = 2,
type = 'toggle',
name = function()
local power = _G[select(2, UnitPowerType('player'))] or L["Power"]
return power
end,
},
ALTERNATEMANA = { order = 3,type = 'toggle',name = ALTERNATE_RESOURCE_TEXT,},
MOVESPEED = { order = 4,type = 'toggle',name = STAT_SPEED,},
},
},
Attack = {
order = 11,
type = 'group',
name = STAT_CATEGORY_ATTACK,
args = {
ATTACK_DAMAGE = { order = 1,type = 'toggle',name = DAMAGE,},
ATTACK_AP = { order = 2,type = 'toggle',name = ATTACK_POWER,},
ATTACK_ATTACKSPEED = { order = 3,type = 'toggle',name = ATTACK_SPEED,},
SPELLPOWER = { order = 4,type = 'toggle',name = STAT_SPELLPOWER,},
MANAREGEN = { order = 5,type = 'toggle',name = MANA_REGEN,},
ENERGY_REGEN = { order = 6,type = 'toggle',name = STAT_ENERGY_REGEN,},
RUNE_REGEN = { order = 7,type = 'toggle',name = STAT_RUNE_REGEN,},
FOCUS_REGEN = { order = 8,type = 'toggle',name = STAT_FOCUS_REGEN,},
},
},
Enhancements = {
order = 12,
type = 'group',
name = STAT_CATEGORY_ENHANCEMENTS,
args = {
CRITCHANCE = { order = 1,type = 'toggle',name = STAT_CRITICAL_STRIKE,},
HASTE = { order = 2,type = 'toggle',name = STAT_HASTE,},
MASTERY = { order = 3,type = 'toggle',name = STAT_MASTERY,},
VERSATILITY = { order = 4,type = 'toggle',name = STAT_VERSATILITY,},
LIFESTEAL = { order = 5,type = 'toggle',name = STAT_LIFESTEAL,},
},
},
Defence = {
order = 13,
type = 'group',
name = DEFENSE,
args = {
ARMOR = { order = 1,type = 'toggle',name = STAT_ARMOR,},
AVOIDANCE = { order = 2,type = 'toggle',name = STAT_AVOIDANCE,},
DODGE = { order = 3,type = 'toggle',name = STAT_DODGE,},
PARRY = { order = 4,type = 'toggle',name = STAT_PARRY,},
BLOCK = { order = 5,type = 'toggle',name = STAT_BLOCK,},
-- STAGGER = { order = 6,type = 'toggle',name = STAT_STAGGER,},
},
},
},
},
},
}
end
tinsert(SLE.Configs, configTable)