/trunk/Core
local selected = {} |
local cd |
for k, v in pairs(SC.SET.Pos) do |
if string.sub(string.upper(k), -2) == 'CD' then |
cd = ' CD' |
if _G['SC'].BARS[string.upper(k)] == nil or _G['SC'].BARS[string.upper(k)]['name'] == nil then |
_G['SC'].SET.Pos[string.upper(k)] = nil--Remove spell |
_G['SC'].BARS[string.upper(k)] = nil |
else |
cd = '' |
end |
if not selected[v] then |
if _G['SC'].BARS[string.upper(k)] == nil or _G['SC'].BARS[string.upper(k)]['name'] == nil then |
_G['SC'].SET.Pos[string.upper(k)] = nil--Remove removed spell |
_G['SC'].BARS[string.upper(k)] = nil |
if string.sub(string.upper(k), -2) == 'CD' then |
cd = ' CD' |
else |
selected[v] = _G['SC'].BARS[string.upper(k)]['name'] .. cd |
cd = '' |
end |
else |
selected[v] = selected[v] .. ', ' .. _G['SC'].BARS[string.upper(k)]['name'] .. cd |
if not selected[v] then |
selected[v] = _G['SC'].BARS[string.upper(k)]['name'] .. cd |
else |
selected[v] = selected[v] .. ', ' .. _G['SC'].BARS[string.upper(k)]['name'] .. cd |
end |
end |
end |
for key = -30, 30, 1 do |
} |
end |
function SliceCommander:getFlashSetting(spell) |
return { |
order = SliceCommander:getOrder(), |
name = L["Flash when ready"], |
desc = L["The bar will keep flashing when it should be use."], |
type = "toggle", |
set = function(info,val) |
SC.SET.flash[spell] = val |
end, |
get = function(info) return SC.SET.flash[spell] end |
} |
end |
function SliceCommander:getHeaderSetting(spell) |
return { |
order = SliceCommander:getOrder(), |
function SliceCommander:getSpellSettings(spell) |
local args = { |
header = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Spell'], |
}, |
Show = SliceCommander:getShowSetting(spell), |
Color = SliceCommander:getColorSetting(spell), |
Pos = SliceCommander:getPosSetting(spell), |
Flash = SliceCommander:getFlashSetting(spell) |
} |
if SC.SET.SpellSound ~= nil and SC.SET.SpellSound then |
args.SpellSound = SliceCommander:getSpellSound(spell) |
function SliceCommander:getCDSettings(spell) |
local args = { |
headerCD = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Cooldown'], |
}, |
Show = SliceCommander:getShowSetting(spell), |
Color = SliceCommander:getColorSetting(spell), |
Pos = SliceCommander:getPosSetting(spell), |
CDFlash = SliceCommander:getFlashSetting(spell) |
} |
if SC.SET.SpellSound ~= nil and SC.SET.SpellSound then |
args.CDSpellSound = SliceCommander:getCDSpellSound(spell) |
function SliceCommander:getSpellCDSettings(spell) |
local args = { |
header = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Spell'], |
}, |
Show = SliceCommander:getShowSetting(spell), |
Color = SliceCommander:getColorSetting(spell), |
Pos = SliceCommander:getPosSetting(spell), |
Flash = SliceCommander:getFlashSetting(spell), |
headerCD = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Cooldown'], |
}, |
CDShow = SliceCommander:getShowSetting(spell..'CD'), |
CDColor = SliceCommander:getColorSetting(spell..'CD'), |
CDPos = SliceCommander:getPosSetting(spell..'CD'), |
CDFlash = SliceCommander:getFlashSetting(spell..'CD') |
} |
if SC.SET.SpellSound ~= nil and SC.SET.SpellSound then |
args.SpellSound = SliceCommander:getSpellSound(spell) |
type = "group", |
order = SliceCommander:getOrder(), |
args = { |
headerCD = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Cooldown'], |
}, |
TOTShow = SliceCommander:getShowSetting('TOTCD'), |
TOTColor = SliceCommander:getColorSetting('TOTCD'), |
TOTPos = SliceCommander:getPosSetting('TOTCD'), |
TOTColor = SliceCommander:getColorSetting('TOTCD'), |
Flash = SliceCommander:getFlashSetting('TOTCD'), |
TOTTarget = { |
order = SliceCommander:getOrder(), |
name = L["Taget name"], |
ShowKI = SliceCommander:getShowSetting('KICD'), |
ColorKI = SliceCommander:getColorSetting('KICD'), |
PosKI = SliceCommander:getPosSetting('KICD'), |
Flash = SliceCommander:getFlashSetting('KICD'), |
HeaderKINotification = { |
order = SliceCommander:getOrder(), |
name = L["Warning settings"], |
args = SliceCommander_TableMerge( |
SliceCommander:getSpellCDSettings('RB').args, |
{ |
headerSpecial = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Special settings'], |
}, |
replaceName = { |
order = SliceCommander:getOrder(), |
name = L["Replace spell name with each following spell text"], |
name = SC_SPELL['BF'], |
type = "group", |
args = { |
header = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Spell'], |
}, |
BFShow = SliceCommander:getShowSetting('BF'), |
BFColor = SliceCommander:getColorSetting('BF'), |
BFPos = SliceCommander:getPosSetting('BF'), |
BFColor = SliceCommander:getColorSetting('BF'), |
BFCDShow = SliceCommander:getShowSetting('BFCD'), |
BFCDPos = SliceCommander:getPosSetting('BFCD'), |
BFCDColor = SliceCommander:getColorSetting('BFCD'), |
Flash = SliceCommander:getFlashSetting('BF'), |
BFIcon = { |
order = SliceCommander:getOrder(), |
name = string.format(L["Show %s icon"], SC_SPELL['BF']), |
desc = string.format(L["Display the %s icon when enbale"], SC_SPELL['BF']), |
width = "full", |
type = "toggle", |
set = function(info,val) |
SC.SET.display.BFICON = val |
end, |
get = function(info) return SC.SET.display.BFICON end |
} |
}, |
headerCD = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Cooldown'], |
}, |
BFCDShow = SliceCommander:getShowSetting('BFCD'), |
BFCDColor = SliceCommander:getColorSetting('BFCD'), |
BFCDPos = SliceCommander:getPosSetting('BFCD'), |
FlashCD = SliceCommander:getFlashSetting('BFCD') |
} |
}, |
AR = { |
name = SC_SPELL['AR'], |
type = "group", |
args = { |
header = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Spell'], |
}, |
ARShow = SliceCommander:getShowSetting('AR'), |
ARColor = SliceCommander:getColorSetting('AR'), |
ARPos = SliceCommander:getPosSetting('AR'), |
ARColor = SliceCommander:getColorSetting('AR'), |
ARCDShow = SliceCommander:getShowSetting('ARCD'), |
ARCDPos = SliceCommander:getPosSetting('ARCD'), |
ARCDColor = SliceCommander:getColorSetting('ARCD'), |
Flash = SliceCommander:getFlashSetting('AR'), |
ARMarioMod = { |
order = SliceCommander:getOrder(), |
name = L["Enable Mario mod"], |
SC.SET.ARMarioMod = val |
end, |
get = function(info) return SC.SET.ARMarioMod end |
} |
}, |
headerCD = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Cooldown'], |
}, |
ARCDShow = SliceCommander:getShowSetting('ARCD'), |
ARCDColor = SliceCommander:getColorSetting('ARCD'), |
ARCDPos = SliceCommander:getPosSetting('ARCD'), |
FlashCD = SliceCommander:getFlashSetting('ARCD') |
} |
}, |
BE = SliceCommander:getSpellCDSettings('BE'), |
name = SC_SPELL['FOTD'], |
type = "group", |
args = { |
header = { |
type = "header", |
order = SliceCommander:getOrder(), |
name = L['Spell'], |
}, |
Show = SliceCommander:getShowSetting('FOTD'), |
Pos = SliceCommander:getPosSetting('FOTD'), |
Color = SliceCommander:getColorSetting('FOTD'), |
Flash = SliceCommander:getFlashSetting('FOTD'), |
Icon = {--Shadow of the destroyer icon |
order = SliceCommander:getOrder(), |
name = string.format(L["%s icon"], SC_SPELL['SOTD']), |
for i,v in pairs(SC.BARS) do |
if i ~= "CP" then |
SC.BARS[i].obj = SliceCommander:NewFrame(v.color) |
SC.BARS[i].obj = SliceCommander:NewFrame(v.color, i) |
end |
end |
end |
end |
function SliceCommander:FlashSpells(Spells) |
for i, v in ipairs(Spells) do |
if SC.SET.flash[v] == nil then |
SC.SET.flash[v] = true |
end |
end |
end |
function SliceCommander:NotFlashSpells(Spells) |
for i, v in ipairs(Spells) do |
if SC.SET.flash[v] == nil then |
SC.SET.flash[v] = false |
end |
end |
end |
function SliceCommander:OrderSpells(Spells) |
for i, v in pairs(Spells) do |
_G['SC'].orderBar = _G['SC'].orderBar+1 |
end |
function SliceCommander:Global() |
SliceCommander:DisplaySpells({'CP', 'THREAT', 'CS', 'KS', 'KSCD', 'FOTD', 'CV', 'CVCD', 'TOTCD', 'FE', 'SSCD', 'SUB', 'CDCD', 'AC', 'MDCD', 'DFACD', 'Poison', 'SOTD', 'MAI', 'FECD', 'ESSECD', 'DPICON'}) |
SliceCommander:DisplaySpells({'CP', 'THREAT', 'SND', 'CS', 'KS', 'KSCD', 'FOTD', 'CV', 'CVCD', 'TOTCD', 'FE', 'SSCD', 'SUB', 'CDCD', 'AC', 'MDCD', 'DFACD', 'Poison', 'SOTD', 'MAI', 'FECD', 'ESSECD', 'DPICON'}) |
SliceCommander:NotDisplaySpells({'HEALTH', 'THEALTH', 'VANCD', 'KICD', 'COS', 'COSCD', 'EVA', 'EVACD', 'SPR', 'SPRCD', 'SS'}) |
SliceCommander:FlashSpells({'SND'}) |
SliceCommander:NotFlashSpells({'KSCD', 'CVCD', 'TOTCD', 'SSCD', 'CDCD', 'MDCD', 'DFACD', 'FECD', 'ESSECD', 'VANCD', 'KICD', 'COSCD', 'EVACD', 'SPRCD'}) |
_G['SC'].orderBar = _G['SC'].maxPos |
_G['SC'].orderCDBar = _G['SC'].maxCDPos |
SC.SET.Pos.CP = -1 |
end |
SliceCommander:OrderSpells({'FOTD', 'CV', 'FE', 'SUB', 'AC', 'MAI', 'COS', 'EVA', 'SPR', 'SS'}) |
SliceCommander:OrderSpells({'SND', 'FOTD', 'CV', 'FE', 'SUB', 'AC', 'MAI', 'COS', 'EVA', 'SPR', 'SS'}) |
SliceCommander:OrderCDs({'CVCD', 'TOTCD', 'VANCD', 'SSCD', 'CDCD', 'MDCD', 'DFACD', 'THREAT', 'HEALTH', 'THEALTH', 'CS', 'KS', 'KSCD', 'KICD', 'COSCD', 'EVACD', 'SPRCD', 'FECD', 'ESSECD'}) |
end |
function SliceCommander:Assassination() |
SliceCommander:DisplaySpells({'RUP', 'GAR', 'GARCD', 'VEN', 'VENCD', 'ENV', 'EP', 'DPBUT', 'EXCD', 'KB', 'KBCD', 'BA', 'ST', 'TXB', 'TXBCD', 'BLS', 'MA', 'CT'}) |
SliceCommander:NotDisplaySpells({'DP'}) |
SliceCommander:FlashSpells({'VENCD', 'EXCD'}) |
SliceCommander:NotFlashSpells({'GARCD', 'EXCD', 'KBCD', 'TXBCD'}) |
_G['SC'].orderBar = 0 |
_G['SC'].orderCDBar = -1 |
end |
function SliceCommander:Outlaw() |
SliceCommander:DisplaySpells({'SND', 'RB', 'AR', 'ARCD', 'CDB', 'CDBCD', 'KSPCD', 'GS', 'GHCD', 'BE', 'BECD', 'BF', 'BFCD', 'OP', 'GSWW', 'BB', 'LD', 'GSCD', 'BRCD', 'RBCD'}) |
SliceCommander:DisplaySpells({'RB', 'AR', 'ARCD', 'CDB', 'CDBCD', 'KSPCD', 'GS', 'GHCD', 'BE', 'BECD', 'BF', 'BFCD', 'OP', 'GSWW', 'BB', 'LD', 'GSCD', 'BRCD', 'RBCD'}) |
SliceCommander:NotDisplaySpells({'BFICON', 'GG', 'GGCD'}) |
SliceCommander:FlashSpells({'ARCD', 'CDBCD', 'KSPCD', 'BECD', 'BRCD', 'RBCD'}) |
SliceCommander:NotFlashSpells({'GHCD', 'BFCD', 'GSCD'}) |
_G['SC'].orderBar = 0 |
_G['SC'].orderCDBar = -1 |
SliceCommander:OrderSpells({'SND', 'RB', 'AR', 'GS', 'OP', 'CDB', 'GSWW', 'BF', 'LD'}) |
SliceCommander:OrderSpells({'RB', 'AR', 'GS', 'OP', 'CDB', 'GSWW', 'BF', 'LD'}) |
SliceCommander:OrderCDs({'BECD', 'BE', 'ARCD', 'BFCD', 'KSPCD', 'GHCD', 'CDBCD', 'GSCD', 'BRCD', 'GG', 'GGCD', 'RBCD'}) |
end |
function SliceCommander:Subtlety() |
SliceCommander:DisplaySpells({'SD', 'SDCD', 'SB', 'SBCD', 'NB', 'SOD', 'GB', 'GBCD', 'SODCD', 'SHT', 'SHTCD', 'STHCD'}) |
SliceCommander:NotDisplaySpells({'FW'}) |
SliceCommander:FlashSpells({'SDCD', 'SBCD', 'SODCD'}) |
SliceCommander:NotFlashSpells({'GBCD', 'SHTCD', 'STHCD'}) |
_G['SC'].orderBar = 0 |
_G['SC'].orderCDBar = -1 |
if SC.SET == nil or SC.SET.display == nil or SC.SET.Pos == nil then |
SC.SET = { display = {}, Pos = {} } |
end |
if SC.SET.flash == nil then |
SC.SET.flash = {} |
end |
if _G['SC'].SET.PixelPerfect == nil then |
_G['SC'].SET.PixelPerfect = true |
end |
function SliceCommander:NewFrame(color) |
local f = CreateFrame("StatusBar", nil, UIParent, BackdropTemplateMixin and "BackdropTemplate") |
local Smoother = LibStub("LibSmoothStatusBar-1.0") |
local Glower = LibStub("LibCustomGlow-1.0") |
function SliceCommander:NewFrame(color, name) |
local f = CreateFrame("StatusBar", 'SliceCommander_bar_' .. name, UIParent, BackdropTemplateMixin and "BackdropTemplate") |
--Mixin(f, "Region") |
Smoother:SmoothBar(f) |
f:SetStatusBarTexture(SliceCommander:BarTexture()) |
f:SetValue(0) |
f:SetDefaultBackdrop() |
f:SetStatusBarColor(unpack(color)) |
f.border = SliceCommander:tukSkin(f, false) |
f.iconBorder = SliceCommander:tukSkin(f, f.icon) |
local animPlaying = false |
--Animation (Blink) |
f.animFade = f:CreateAnimationGroup() |
f.animFade:SetLooping('BOUNCE') |
local animOut = f.animFade:CreateAnimation("Alpha") |
animOut:SetFromAlpha(1) |
animOut:SetToAlpha(.3) |
animOut:SetDuration(.4) |
animOut:SetSmoothing("OUT") |
animOut:SetOrder(1) |
--Animation (Glow) |
--local animFrame = CreateFrame("Frame", nil, UIParent, BackdropTemplateMixin and "BackdropTemplate") |
--animFrame:SetAllPoints(f) |
f.anim = { |
Play = function() |
animPlaying = true |
Glower.PixelGlow_Start(f) |
f.animFade:Play() |
end, |
Stop = function() |
animPlaying = false |
Glower.PixelGlow_Stop(f) |
f.animFade:Stop() |
end, |
IsPlaying = function() |
return animPlaying |
end |
} |
return f |
end |
function SliceCommander:ThinBar(point, relativePoint, x, y) |
local f = CreateFrame("StatusBar", nil, UIParent, BackdropTemplateMixin and "BackdropTemplate") |
Smoother:SmoothBar(f) |
f:SCHeight(2) |
f:SetFrameLevel(2) |
f:SetStatusBarTexture(SliceCommander:BarTexture()) |
end |
function SliceCommander:CreateEnergyFrame() |
CreateFrame('StatusBar', 'VTimerEnergy', UIParent, BackdropTemplateMixin and "BackdropTemplate") |
VTimerEnergy:SCSize(200, 20) |
VTimerEnergy:SetMinMaxValues(0,100) |
VTimerEnergy:SCPoint('CENTER', SliceCommanderFrame, 'CENTER', 0, 0) |
VTimerEnergy:SetFrameLevel(1) |
VTimerEnergy:SetMinMaxValues(0,UnitPowerMax("player", Enum.PowerType.Energy)) |
VTimerEnergy:SetDefaultBackdrop() |
VTimerEnergy:SetBackdropBorderColor(unpack(SC.V.wColor)) |
VTimerEnergy:SetBackdropColor(unpack({.1,.1,.1,.7})) |
VTimerEnergy:SetStatusBarTexture(SliceCommander:BarTexture()) |
VTimerEnergy:SetFrameStrata("MEDIUM") |
VTimerEnergy:SetFrameLevel(1) |
VTimerEnergy:SetStatusBarColor(unpack(SC.SET.energyColor)) |
VTimerEnergy.border = SliceCommander:tukSkin(VTimerEnergy, false) |
local f = CreateFrame('StatusBar', 'VTimerEnergy', UIParent, BackdropTemplateMixin and "BackdropTemplate") |
Smoother:SmoothBar(f) |
f:SCSize(200, 20) |
f:SetMinMaxValues(0,100) |
f:SCPoint('CENTER', SliceCommanderFrame, 'CENTER', 0, 0) |
f:SetFrameLevel(1) |
f:SetMinMaxValues(0,UnitPowerMax("player", Enum.PowerType.Energy)) |
f:SetDefaultBackdrop() |
f:SetBackdropBorderColor(unpack(SC.V.wColor)) |
f:SetBackdropColor(unpack({.1,.1,.1,.7})) |
f:SetStatusBarTexture(SliceCommander:BarTexture()) |
f:SetFrameStrata("MEDIUM") |
f:SetFrameLevel(1) |
f:SetStatusBarColor(unpack(SC.SET.energyColor)) |
f.border = SliceCommander:tukSkin(f, false) |
if SC.SET.HideEnergy then |
VTimerEnergy:Hide() |
f:Hide() |
else |
VTimerEnergy:Show() |
f:Show() |
end |
VTimerEnergy:CreateFontString('VTimerEnergyTxt', 'OVERLAY', GameFontWhite) |
VTimerEnergyTxt:SetJustifyH("RIGHT") |
VTimerEnergyTxt:SCSize(49, 20) |
VTimerEnergyTxt:SCPoint('RIGHT', VTimerEnergy, 'RIGHT', -5, 0) |
VTimerEnergyTxt:SetFontObject(SliceCommander:NewFont("VTimerFont", 17, 0.7, 1, 1, 1)) |
f.txt = f:CreateFontString('VTimerEnergyTxt', 'OVERLAY', GameFontWhite) |
f.txt:SetJustifyH("RIGHT") |
f.txt:SCSize(49, 20) |
f.txt:SCPoint('RIGHT', VTimerEnergy, 'RIGHT', -5, 0) |
f.txt:SetFontObject(SliceCommander:NewFont("VTimerFont", 17, 0.7, 1, 1, 1)) |
end |
function SliceCommander:CreateComboText() |