diff --git a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua index b451d9e..4c6cd15 100644 --- a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua +++ b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua @@ -207,8 +207,9 @@ function CA:Setup_CharacterArmory() --<< Background >>-- self.BG = self:CreateTexture(nil, 'OVERLAY') - self.BG:SetInside() - self.BG:SetTexture(KF.db.Modules.Armory.Character.BackgroundImage) + self.BG:SetPoint('TOPLEFT', self, -7, -20) + self.BG:SetPoint('BOTTOMRIGHT', self, 7, 2) + self:UpdateCharacterBG() --<< Change Model Frame's frameLevel >>-- CharacterModelFrame:SetFrameLevel(self:GetFrameLevel() + 2) @@ -237,24 +238,53 @@ function CA:Setup_CharacterArmory() -- Gradation Slot.Gradation = Slot:CreateTexture(nil, 'OVERLAY') Slot.Gradation:SetInside() - Slot.Gradation:SetTexture('Interface\\AddOns\\ElvUI_KnightFrame\\Media\\Graphics\\Gradation') + Slot.Gradation:SetTexture('Interface\\AddOns\\ElvUI_SLE\\modules\\Armory\\Media\\Textures\\Gradation') if Slot.Direction == 'LEFT' then Slot.Gradation:SetTexCoord(0, 1, 0, 1) else Slot.Gradation:SetTexCoord(1, 0, 0, 1) end + if not KF.db.Modules.Armory.Character.Gradation.DisplayGradation then + Slot.Gradation:Hide() + end + if SlotName ~= 'ShirtSlot' and SlotName ~= 'TabardSlot' then -- Item Level - KF:TextSetting(Slot, nil, { Tag = 'ItemLevel', FontSize = 10, directionH = Slot.Direction }, 'TOP'..Slot.Direction, _G['Character'..SlotName], 'TOP'..(Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT'), Slot.Direction == 'LEFT' and 2 or -2, -1) + KF:TextSetting(Slot, nil, { Tag = 'ItemLevel', + Font = E.db.sle.Armory.Character.Level.Font, + FontSize = E.db.sle.Armory.Character.Level.FontSize, + FontStyle = E.db.sle.Armory.Character.Level.FontStyle, + directionH = Slot.Direction + }, 'TOP'..Slot.Direction, _G['Character'..SlotName], 'TOP'..(Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT'), Slot.Direction == 'LEFT' and 2 or -2, -1) + + if not E.db.sle.Armory.Character.Level.DisplayLevel then + Slot.ItemLevel:Hide() + end -- Enchantment Name - KF:TextSetting(Slot, nil, { Tag = 'ItemEnchant', FontSize = 8, directionH = Slot.Direction }, Slot.Direction, _G['Character'..SlotName], Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT', Slot.Direction == 'LEFT' and 2 or -2, 1) + KF:TextSetting(Slot, nil, { Tag = 'ItemEnchant', + Font = E.db.sle.Armory.Character.Enchant.Font, + FontSize = E.db.sle.Armory.Character.Enchant.FontSize, + FontStyle = E.db.sle.Armory.Character.Enchant.FontStyle, + directionH = Slot.Direction + }, Slot.Direction, _G['Character'..SlotName], Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT', Slot.Direction == 'LEFT' and 2 or -2, 1) + + if E.db.sle.Armory.Character.DisplayWhenMouseoverOnly then + Slot.ItemEnchant:SetDrawLayer('HIGHLIGHT') + else + Slot.ItemEnchant:SetDrawLayer('OVERLAY') + end + + if not E.db.sle.Armory.Character.Enchant.DisplayEnchant then + Slot.ItemEnchant:Hide() + end + Slot.EnchantWarning = CreateFrame('Button', nil, Slot) - Slot.EnchantWarning:Size(12) + Slot.EnchantWarning:Size(E.db.sle.Armory.Character.ItemEnchant.WarningSize) Slot.EnchantWarning.Texture = Slot.EnchantWarning:CreateTexture(nil, 'OVERLAY') Slot.EnchantWarning.Texture:SetInside() - Slot.EnchantWarning.Texture:SetTexture('Interface\\AddOns\\ElvUI_KnightFrame\\Media\\Graphics\\Warning-Small') + Slot.EnchantWarning.Texture:SetTexture('Interface\\AddOns\\ElvUI_SLE\\modules\\Armory\\Media\\Textures\\Warning-Small') Slot.EnchantWarning:Point(Slot.Direction, Slot.ItemEnchant, Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT', Slot.Direction == 'LEFT' and 3 or -3, 0) Slot.EnchantWarning:SetScript('OnEnter', self.OnEnter) Slot.EnchantWarning:SetScript('OnLeave', self.OnLeave) @@ -265,7 +295,7 @@ function CA:Setup_CharacterArmory() -- Gem Socket for i = 1, MAX_NUM_SOCKETS do Slot['Socket'..i] = CreateFrame('Frame', nil, Slot) - Slot['Socket'..i]:Size(12) + Slot['Socket'..i]:Size(E.db.sle.Armory.Character.ItemGem.SocketSize) Slot['Socket'..i]:SetBackdrop({ bgFile = E.media.blankTex, edgeFile = E.media.blankTex, @@ -302,11 +332,11 @@ function CA:Setup_CharacterArmory() Slot.Socket3:Point(Slot.Direction, Slot.Socket2, Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT', Slot.Direction == 'LEFT' and 1 or -1, 0) Slot.SocketWarning = CreateFrame('Button', nil, Slot) - Slot.SocketWarning:Size(12) + Slot.SocketWarning:Size(E.db.sle.Armory.Character.ItemEnchant.WarningSize) Slot.SocketWarning:RegisterForClicks('AnyUp') Slot.SocketWarning.Texture = Slot.SocketWarning:CreateTexture(nil, 'OVERLAY') Slot.SocketWarning.Texture:SetInside() - Slot.SocketWarning.Texture:SetTexture('Interface\\AddOns\\ElvUI_KnightFrame\\Media\\Graphics\\Warning-Small') + Slot.SocketWarning.Texture:SetTexture('Interface\\AddOns\\ElvUI_SLE\\modules\\Armory\\Media\\Textures\\Warning-Small') Slot.SocketWarning:SetScript('OnEnter', self.OnEnter) Slot.SocketWarning:SetScript('OnLeave', self.OnLeave) @@ -322,7 +352,7 @@ function CA:Setup_CharacterArmory() Slot.TransmogrifyAnchor.Texture = Slot.TransmogrifyAnchor:CreateTexture(nil, 'OVERLAY') Slot.TransmogrifyAnchor.Texture:SetInside() - Slot.TransmogrifyAnchor.Texture:SetTexture('Interface\\AddOns\\ElvUI_KnightFrame\\Media\\Graphics\\Anchor') + Slot.TransmogrifyAnchor.Texture:SetTexture('Interface\\AddOns\\ElvUI_SLE\\modules\\Armory\\Media\\Textures\\Anchor') Slot.TransmogrifyAnchor.Texture:SetVertexColor(1, .5, 1) if Slot.Direction == 'LEFT' then @@ -412,7 +442,7 @@ function CA:Update_Gear() if Prof2 and Info.Armory_Constants.ProfessionList[Prof2] then self.PlayerProfession[(Info.Armory_Constants.ProfessionList[Prof2].Key)] = Prof2_Level end ]] local ErrorDetected, NeedUpdate, NeedUpdateList, R, G, B - local Slot, ItemLink, ItemData, ItemRarity, BasicItemLevel, TrueItemLevel, ItemUpgradeID, ItemTexture, IsEnchanted, UsableEffect, CurrentLineText, GemID, GemCount_Default, GemCount_Enable, GemCount_Now, GemCount, IsTransmogrified, TransmogrifyItemID + local Slot, ItemLink, ItemData, ItemRarity, BasicItemLevel, TrueItemLevel, ItemUpgradeID, ItemType, ItemTexture, IsEnchanted, UsableEffect, CurrentLineText, GemID, GemCount_Default, GemCount_Enable, GemCount_Now, GemCount, IsTransmogrified, TransmogrifyItemID for _, SlotName in pairs(self.GearUpdated or Info.Armory_Constants.GearList) do if not (SlotName == 'ShirtSlot' or SlotName == 'TabardSlot') then @@ -420,7 +450,7 @@ function CA:Update_Gear() ItemLink = GetInventoryItemLink('player', Slot.ID) do --<< Clear Setting >>-- - NeedUpdate, ErrorDetected, TrueItemLevel, IsEnchanted, UsableEffect, ItemUpgradeID, ItemTexture = nil, nil, nil, nil, nil, nil, nil + NeedUpdate, ErrorDetected, TrueItemLevel, IsEnchanted, UsableEffect, ItemUpgradeID, ItemType, ItemTexture = nil, nil, nil, nil, nil, nil, nil, nil Slot.ItemLevel:SetText(nil) Slot.ItemEnchant:SetText(nil) @@ -498,9 +528,12 @@ function CA:Update_Gear() end if ItemTexture or GemID then - Slot['Socket'..i]:Show() + if E.db.sle.Armory.Character.Gem.DisplaySocket then + Slot['Socket'..i]:Show() + Slot.SocketWarning:Point(Slot.Direction, Slot['Socket'..i], (Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT'), Slot.Direction == 'LEFT' and 3 or -3, 0) + end + GemCount_Now = GemCount_Now + 1 - Slot.SocketWarning:Point(Slot.Direction, Slot['Socket'..i], (Slot.Direction == 'LEFT' and 'RIGHT' or 'LEFT'), Slot.Direction == 'LEFT' and 3 or -3, 0) if GemID then GemCount = GemCount + 1 @@ -523,7 +556,7 @@ function CA:Update_Gear() end end - _, _, ItemRarity, BasicItemLevel, _, _, _, _, _, ItemTexture = GetItemInfo(ItemLink) + _, _, ItemRarity, BasicItemLevel, _, _, _, _, ItemType, ItemTexture = GetItemInfo(ItemLink) R, G, B = GetItemQualityColor(ItemRarity) ItemUpgradeID = ItemLink:match(':(%d+)\124h%[') @@ -537,16 +570,24 @@ function CA:Update_Gear() elseif CurrentLineText:find(Info.Armory_Constants.ItemLevelKey) then TrueItemLevel = tonumber(CurrentLineText:match(Info.Armory_Constants.ItemLevelKey)) elseif CurrentLineText:find(Info.Armory_Constants.EnchantKey) then - CurrentLineText = CurrentLineText:match(Info.Armory_Constants.EnchantKey) -- Get enchant string - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_AGILITY_SHORT, AGI) - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_SPIRIT_SHORT, SPI) - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_STAMINA_SHORT, STA) - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_STRENGTH_SHORT, STR) - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_INTELLECT_SHORT, INT) - CurrentLineText = gsub(CurrentLineText, ITEM_MOD_CRIT_RATING_SHORT, CRIT_ABBR) -- Critical is too long - CurrentLineText = gsub(CurrentLineText, ' + ', '+') -- Remove space - - Slot.ItemEnchant:SetText('|cffceff00'..CurrentLineText) + if E.db.sle.Armory.Character.Enchant.DisplayEnchant then + CurrentLineText = CurrentLineText:match(Info.Armory_Constants.EnchantKey) -- Get enchant string + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_AGILITY_SHORT, AGI) + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_SPIRIT_SHORT, SPI) + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_STAMINA_SHORT, STA) + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_STRENGTH_SHORT, STR) + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_INTELLECT_SHORT, INT) + CurrentLineText = gsub(CurrentLineText, ITEM_MOD_CRIT_RATING_SHORT, CRIT_ABBR) -- Critical is too long + CurrentLineText = gsub(CurrentLineText, ' + ', '+') -- Remove space + + if L.Armory_ReplaceEnchantString and type(L.Armory_ReplaceEnchantString) == 'table' then + for Old, New in pairs(L.Armory_ReplaceEnchantString) do + CurrentLineText = gsub(CurrentLineText, Old, New) + end + end + + Slot.ItemEnchant:SetText('|cffceff00'..CurrentLineText) + end IsEnchanted = true elseif CurrentLineText:find(ITEM_SPELL_TRIGGER_ONUSE) then @@ -567,8 +608,8 @@ function CA:Update_Gear() Slot.ItemLevel:SetText((not TrueItemLevel or BasicItemLevel == TrueItemLevel) and BasicItemLevel or (Slot.Direction == 'LEFT' and TrueItemLevel or '')..(ItemUpgradeID and (Slot.Direction == 'LEFT' and ' ' or '')..(Info.Armory_Constants.UpgradeColor[ItemUpgradeID] or '|cffaaaaaa')..'(+'..ItemUpgradeID..')|r'..(Slot.Direction == 'RIGHT' and ' ' or '') or '')..(Slot.Direction == 'RIGHT' and TrueItemLevel or '')) end - if KF.db.Modules.Armory.Character.NoticeMissing ~= false then - if not IsEnchanted and Info.Armory_Constants.EnchantableSlots[SlotName] then + if E.db.sle.Armory.Character.NoticeMissing ~= false then + if not IsEnchanted and Info.Armory_Constants.EnchantableSlots[SlotName] and not (SlotName ~= 'SecondaryHandSlot' and ItemType ~= 'INVTYPE_WEAPON' and ItemType ~= 'INVTYPE_WEAPONOFFHAND' and ItemType ~= 'INVTYPE_RANGEDRIGHT') then ErrorDetected = true Slot.EnchantWarning:Show() Slot.ItemEnchant:SetText('|cffff0000'..L['Not Enchanted']) @@ -593,7 +634,7 @@ function CA:Update_Gear() end --[[ Check Error - if KF.db.Modules.Armory.Character.NoticeMissing ~= false then + if E.db.sle.Armory.Character.NoticeMissing ~= false then if (not IsEnchanted and Info.Armory_Constants.EnchantableSlots[SlotName]) or ((SlotName == 'Finger0Slot' or SlotName == 'Finger1Slot') and self.PlayerProfession.Enchanting and self.PlayerProfession.Enchanting >= 550 and not IsEnchanted) then ErrorDetected = true Slot.EnchantWarning:Show() @@ -684,10 +725,10 @@ function CA:Update_Gear() end -- Change Gradation - if ErrorDetected and KF.db.Modules.Armory.Character.NoticeMissing ~= false then + if ErrorDetected and E.db.sle.Armory.Character.NoticeMissing ~= false then Slot.Gradation:SetVertexColor(1, 0, 0) else - Slot.Gradation:SetVertexColor(unpack(KF.db.Modules.Armory.Character.GradationColor)) + Slot.Gradation:SetVertexColor(unpack(E.db.sle.Armory.Character.Gradation.Color)) end if NeedUpdate then @@ -708,92 +749,70 @@ function CA:Update_Gear() end -KF.Modules[#KF.Modules + 1] = 'CharacterArmory' -KF.Modules.CharacterArmory = function(RemoveOrder) - if not RemoveOrder and KF.db.Enable ~= false and KF.db.Modules.Armory and KF.db.Modules.Armory.Character and KF.db.Modules.Armory.Character.Enable ~= false then - Info.CharacterArmory_Activate = true - - -- Setting frame - CharacterFrame:SetHeight(444) - - -- Move right equipment slots - CharacterHandsSlot:SetPoint('TOPRIGHT', CharacterFrameInsetRight, 'TOPLEFT', -4, -2) - - -- Move bottom equipment slots - CharacterMainHandSlot:SetPoint('BOTTOMLEFT', PaperDollItemsFrame, 'BOTTOMLEFT', 185, 14) - - if CA.Setup_CharacterArmory then - CA:Setup_CharacterArmory() - else - CA:Show() - end - CA:CharacterArmory_DataSetting() - - -- Model Frame - CharacterModelFrame:ClearAllPoints() - CharacterModelFrame:SetPoint('TOPLEFT', CharacterHeadSlot) - CharacterModelFrame:SetPoint('RIGHT', CharacterHandsSlot) - CharacterModelFrame:SetPoint('BOTTOM', CharacterMainHandSlot) - CharacterModelFrame.BackgroundTopLeft:Hide() - CharacterModelFrame.BackgroundTopRight:Hide() - CharacterModelFrame.BackgroundBotLeft:Hide() - CharacterModelFrame.BackgroundBotRight:Hide() - - if PaperDollFrame:IsShown() then - CharacterFrame:SetWidth(CharacterFrame.Expanded and 650 or 448) - CharacterFrameInsetRight:SetPoint('TOPLEFT', CharacterFrameInset, 'TOPRIGHT', 110, 0) - CharacterFrameExpandButton:SetPoint('BOTTOMRIGHT', CharacterFrameInsetRight, 'BOTTOMLEFT', 0, 1) - end - - -- Run KnightArmory - CA:RegisterEvent('SOCKET_INFO_SUCCESS') - CA:RegisterEvent('PLAYER_EQUIPMENT_CHANGED') - CA:RegisterEvent('UNIT_INVENTORY_CHANGED') - CA:RegisterEvent('ITEM_UPGRADE_MASTER_UPDATE') - CA:RegisterEvent('TRANSMOGRIFY_UPDATE') - CA:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED') - CA:RegisterEvent('UPDATE_INVENTORY_DURABILITY') - CA:RegisterEvent('PLAYER_ENTERING_WORLD') - - --[[ - KF_KnightArmory.CheckButton:Show() - KF_KnightArmory_NoticeMissing:EnableMouse(true) - KF_KnightArmory_NoticeMissing.text:SetTextColor(1, 1, 1) - KF_KnightArmory_NoticeMissing.CheckButton:SetTexture('Interface\\Buttons\\UI-CheckBox-Check') - ]] - elseif Info.CharacterArmory_Activate then - Info.CharacterArmory_Activate = nil - - -- Setting frame to default - CharacterFrame:SetHeight(424) - CharacterFrame:SetWidth(PaperDollFrame:IsShown() and CharacterFrame.Expanded and CHARACTERFRAME_EXPANDED_WIDTH or PANEL_DEFAULT_WIDTH) - CharacterFrameInsetRight:SetPoint(unpack(InsetDefaultPoint)) - CharacterFrameExpandButton:SetPoint(unpack(ExpandButtonDefaultPoint)) - - -- Move rightside equipment slots to default position - CharacterHandsSlot:SetPoint('TOPRIGHT', CharacterFrameInset, 'TOPRIGHT', -4, -2) - - -- Move bottom equipment slots to default position - CharacterMainHandSlot:SetPoint('BOTTOMLEFT', PaperDollItemsFrame, 'BOTTOMLEFT', 130, 16) - - -- Model Frame - CharacterModelFrame:ClearAllPoints() - CharacterModelFrame:Size(231, 320) - CharacterModelFrame:SetPoint('TOPLEFT', PaperDollFrame, 'TOPLEFT', 52, -66) - CharacterModelFrame.BackgroundTopLeft:Show() - CharacterModelFrame.BackgroundTopRight:Show() - CharacterModelFrame.BackgroundBotLeft:Show() - CharacterModelFrame.BackgroundBotRight:Show() - - -- Turn off ArmoryFrame - CA:Hide() - CA:UnregisterAllEvents() - - --[[ - KF_KnightArmory.CheckButton:Hide() - KF_KnightArmory_NoticeMissing:EnableMouse(false) - KF_KnightArmory_NoticeMissing.text:SetTextColor(0.31, 0.31, 0.31) - KF_KnightArmory_NoticeMissing.CheckButton:SetTexture('Interface\\Buttons\\UI-CheckBox-Check-Disabled') - ]] +function CA:UpdateCharacterBG() + if E.db.sle.Armory.Character.Background.SelectedBG == 'HIDE' then + self.BG:SetTexture(nil) + elseif E.db.sle.Armory.Character.Background.SelectedBG == 'CUSTOM' then + self.BG:SetTexture(E.db.sle.Armory.Character.Background.CustomAddress) + else + self.BG:SetTexture('Interface\\AddOns\\ElvUI_SLE\\modules\\Armory\\Media\\Textures'..E.db.sle.Armory.Character.Background.SelectedBG) end +end + + +function CA:StartArmoryFrame() + -- Setting frame + CharacterFrame:SetWidth(CharacterFrame.Expanded and 650 or 444) + CharacterFrameInsetRight:SetPoint('TOPLEFT', CharacterFrameInset, 'TOPRIGHT', 110, 0) + CharacterFrameExpandButton:SetPoint('BOTTOMRIGHT', CharacterFrameInsetRight, 'BOTTOMLEFT', -3, 7) + + -- Move right equipment slots + CharacterHandsSlot:SetPoint('TOPRIGHT', CharacterFrameInsetRight, 'TOPLEFT', -4, -2) + + -- Move bottom equipment slots + CharacterMainHandSlot:SetPoint('BOTTOMLEFT', PaperDollItemsFrame, 'BOTTOMLEFT', 181, 14) + + -- Model Frame + CharacterModelFrame:ClearAllPoints() + CharacterModelFrame:SetPoint('TOPLEFT', CharacterHeadSlot) + CharacterModelFrame:SetPoint('RIGHT', CharacterHandsSlot) + CharacterModelFrame:SetPoint('BOTTOM', CharacterMainHandSlot) + CharacterModelFrame.BackgroundTopLeft:Hide() + CharacterModelFrame.BackgroundTopRight:Hide() + CharacterModelFrame.BackgroundBotLeft:Hide() + CharacterModelFrame.BackgroundBotRight:Hide() + + -- Character Control Frame + CharacterModelFrameControlFrame:ClearAllPoints() + CharacterModelFrameControlFrame:SetPoint('BOTTOM', CharacterModelFrame, 'BOTTOM', -1.5, 1) + + if CA.Setup_CharacterArmory then + CA:Setup_CharacterArmory() + else + CA:Show() + end + CA:CharacterArmory_DataSetting() + + -- Run SLE CharacterArmoryMode + CA:RegisterEvent('SOCKET_INFO_SUCCESS') + CA:RegisterEvent('PLAYER_EQUIPMENT_CHANGED') + CA:RegisterEvent('UNIT_INVENTORY_CHANGED') + CA:RegisterEvent('ITEM_UPGRADE_MASTER_UPDATE') + CA:RegisterEvent('TRANSMOGRIFY_UPDATE') + CA:RegisterEvent('COMBAT_LOG_EVENT_UNFILTERED') + CA:RegisterEvent('UPDATE_INVENTORY_DURABILITY') + CA:RegisterEvent('PLAYER_ENTERING_WORLD') + + -- For frame resizing + --[[CA.ChangeCharacterFrameWidth:SetParent(PaperDollFrame) + if PaperDollFrame:IsVisible() then + CA.ChangeCharacterFrameWidth:Show() + CharacterFrame:SetWidth(CharacterFrameInsetRight:IsShown() and 650 or 448) + end]] +end + +function CFO:Initialize() + if not E.db.sle.Armory.Character.Enable then return end + + CA:StartArmoryFrame() end \ No newline at end of file diff --git a/ElvUI_SLE/modules/Armory/Constants.lua b/ElvUI_SLE/modules/Armory/Constants.lua index 04ea495..c56f982 100644 --- a/ElvUI_SLE/modules/Armory/Constants.lua +++ b/ElvUI_SLE/modules/Armory/Constants.lua @@ -14,7 +14,7 @@ Info.Armory_Constants = { }, EnchantableSlots = { - NeckSlot = true, BackSlot = true, Finger0Slot = true, Finger1Slot = true, MainHandSlot = true + NeckSlot = true, BackSlot = true, Finger0Slot = true, Finger1Slot = true, MainHandSlot = true, SecondaryHandSlot = true }, UpgradeColor = { diff --git a/ElvUI_SLE/modules/Armory/Media/Textures/Gradation.tga b/ElvUI_SLE/modules/Armory/Media/Textures/Gradation.tga new file mode 100644 index 0000000..422ce5a Binary files /dev/null and b/ElvUI_SLE/modules/Armory/Media/Textures/Gradation.tga differ diff --git a/ElvUI_SLE/modules/Armory/Media/Textures/Warning-Small.blp b/ElvUI_SLE/modules/Armory/Media/Textures/Warning-Small.blp new file mode 100644 index 0000000..e0817d3 Binary files /dev/null and b/ElvUI_SLE/modules/Armory/Media/Textures/Warning-Small.blp differ