adam@0
|
1 local _, AskMrRobot = ...
|
yellowfive@11
|
2 local L = AskMrRobot.L;
|
adam@0
|
3 -- initialize the EnchantTab class
|
adam@0
|
4 AskMrRobot.EnchantTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
|
adam@0
|
5
|
adam@0
|
6 function AskMrRobot.EnchantTab:new(parent)
|
adam@0
|
7
|
adam@0
|
8 local tab = AskMrRobot.Frame:new(nil, parent)
|
adam@0
|
9 setmetatable(tab, { __index = AskMrRobot.EnchantTab })
|
adam@0
|
10 tab:SetPoint("TOPLEFT")
|
adam@0
|
11 tab:SetPoint("BOTTOMRIGHT")
|
adam@0
|
12 tab:Hide()
|
adam@0
|
13
|
adam@0
|
14
|
adam@0
|
15 local text = tab:CreateFontString("AmrEnchantsText1", "ARTWORK", "GameFontNormalLarge")
|
adam@0
|
16 text:SetPoint("TOPLEFT", 0, -5)
|
yellowfive@11
|
17 text:SetText(L.AMR_ENCHANTTAB_ENCHANTS)
|
adam@0
|
18
|
adam@0
|
19 tab.stamp = AskMrRobot.RobotStamp:new(nil, tab)
|
adam@0
|
20 tab.stamp:Hide()
|
yellowfive@11
|
21 tab.stamp.smallText:SetText(L.AMR_ENCHANTTAB_100_OPTIMAL)
|
adam@0
|
22 tab.stamp:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 2, -15)
|
adam@0
|
23 tab.stamp:SetPoint("RIGHT", tab, "RIGHT", -20, 0)
|
adam@0
|
24
|
adam@0
|
25 tab.slotHeader = tab:CreateFontString("AmrBadEnchantSlotHeader", "ARTWORK", "GameFontNormal")
|
adam@0
|
26 tab.slotHeader:SetPoint("TOPLEFT", "AmrEnchantsText1", "BOTTOMLEFT", 0, -20)
|
yellowfive@11
|
27 tab.slotHeader:SetText(L.AMR_ENCHANTTAB_SLOT)
|
adam@0
|
28 tab.slotHeader:SetWidth(90)
|
adam@0
|
29 tab.slotHeader:SetJustifyH("LEFT")
|
adam@0
|
30
|
adam@0
|
31 tab.currentHeader = tab:CreateFontString("AmrBadEnchantCurrentHeader", "ARTWORK", "GameFontNormal")
|
yellowfive@11
|
32 tab.currentHeader:SetText(L.AMR_ENCHANTTAB_CURRENT)
|
adam@0
|
33 tab.currentHeader:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 100, 0)
|
adam@0
|
34 tab.currentHeader:SetWidth(120)
|
adam@0
|
35 tab.currentHeader:SetJustifyH("LEFT")
|
adam@0
|
36
|
adam@0
|
37 tab.optimizedHeader = tab:CreateFontString("AmrBadEnchantOptimizedHeader", "ARTWORK", "GameFontNormal")
|
adam@0
|
38 tab.optimizedHeader:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 140, 0)
|
adam@0
|
39 tab.optimizedHeader:SetPoint("RIGHT", -30, 0)
|
yellowfive@11
|
40 tab.optimizedHeader:SetText(L.AMR_ENCHANTTAB_OPTIMIZED)
|
adam@0
|
41 tab.optimizedHeader:SetJustifyH("LEFT")
|
adam@0
|
42
|
adam@0
|
43 tab.badEnchantSlots = {}
|
adam@0
|
44 tab.badEnchantCurrent = {}
|
adam@0
|
45 tab.badEnchantOptimized = {}
|
adam@0
|
46
|
adam@0
|
47 for i = 1, #AskMrRobot.slotNames do
|
adam@0
|
48 local itemText = tab:CreateFontString(nil, "ARTWORK", "GameFontWhite")
|
adam@0
|
49 itemText:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 0, -26 * i)
|
adam@0
|
50 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantSlotHeader", "BOTTOMRIGHT", 0, -26 * i)
|
adam@0
|
51 itemText:SetJustifyH("LEFT")
|
yellowfive@11
|
52 itemText:SetText(L.AMR_ENCHANTTAB_TESTSLOT)
|
adam@0
|
53 tinsert(tab.badEnchantSlots, itemText)
|
adam@0
|
54
|
adam@0
|
55 itemText = AskMrRobot.EnchantLinkText:new(nil, tab)
|
adam@0
|
56 itemText:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 0, -26 * i)
|
adam@0
|
57 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantCurrentHeader", "BOTTOMRIGHT", 0, -26 * i)
|
adam@0
|
58 tinsert(tab.badEnchantCurrent, itemText)
|
adam@0
|
59
|
adam@0
|
60 itemText = AskMrRobot.EnchantLinkIconAndText:new(nil, tab)
|
adam@0
|
61 itemText:SetPoint("TOPLEFT", "AmrBadEnchantOptimizedHeader", "TOPLEFT", 0, -26 * i)
|
adam@0
|
62 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantOptimizedHeader", "BOTTOMRIGHT", 0, -26 * i)
|
adam@0
|
63 tinsert(tab.badEnchantOptimized, itemText)
|
adam@0
|
64 end
|
adam@0
|
65
|
adam@0
|
66 return tab
|
adam@0
|
67 end
|
adam@0
|
68
|
adam@0
|
69 function AskMrRobot.EnchantTab:showBadEnchants()
|
adam@0
|
70
|
adam@0
|
71 local badEnchants = AskMrRobot.itemDiffs.enchants
|
adam@0
|
72
|
adam@0
|
73 local i = 1
|
adam@0
|
74
|
adam@0
|
75 -- for all the bad items
|
adam@0
|
76 for slotNum, badEnchant in AskMrRobot.sortSlots(badEnchants) do
|
adam@0
|
77 self.badEnchantSlots[i]:SetText(_G[strupper(AskMrRobot.slotNames[slotNum])])
|
adam@0
|
78 self.badEnchantSlots[i]:Show()
|
adam@0
|
79
|
adam@0
|
80 self.badEnchantCurrent[i]:SetEnchantId(badEnchant.current)
|
adam@0
|
81
|
adam@0
|
82 self.badEnchantOptimized[i]:SetEnchantId(badEnchant.optimized)
|
adam@0
|
83 i = i + 1
|
adam@0
|
84 end
|
adam@0
|
85
|
adam@0
|
86 -- hide / show the headers
|
adam@0
|
87 if i == 1 then
|
adam@0
|
88 self.optimizedHeader:Hide()
|
adam@0
|
89 self.currentHeader:Hide()
|
adam@0
|
90 self.slotHeader:Hide()
|
adam@0
|
91 self.stamp:Show()
|
adam@0
|
92 else
|
adam@0
|
93 self.optimizedHeader:Show()
|
adam@0
|
94 self.currentHeader:Show()
|
adam@0
|
95 self.slotHeader:Show()
|
adam@0
|
96 self.stamp:Hide()
|
adam@0
|
97 end
|
adam@0
|
98
|
adam@0
|
99 -- hide the remaining slots
|
adam@0
|
100 while i <= #self.badEnchantSlots do
|
adam@0
|
101 self.badEnchantSlots[i]:Hide()
|
adam@0
|
102 self.badEnchantCurrent[i]:SetEnchantId(nil)
|
adam@0
|
103 self.badEnchantOptimized[i]:SetEnchantId(nil)
|
adam@0
|
104 i = i + 1
|
adam@0
|
105 end
|
adam@0
|
106 end |