Mercurial > wow > askmrrobot
comparison Gear.lua @ 81:0515882856f1 v38
updated for 7.0
| author | yellowfive |
|---|---|
| date | Tue, 19 Jul 2016 10:05:32 -0700 |
| parents | 304d7ebb8e30 |
| children | af2474d28bb4 |
comparison
equal
deleted
inserted
replaced
| 80:8f235b016212 | 81:0515882856f1 |
|---|---|
| 12 -- different items (id + bonus ids + suffix, constitutes a different physical drop) | 12 -- different items (id + bonus ids + suffix, constitutes a different physical drop) |
| 13 if Amr.GetItemUniqueId(item1, true) ~= Amr.GetItemUniqueId(item2, true) then | 13 if Amr.GetItemUniqueId(item1, true) ~= Amr.GetItemUniqueId(item2, true) then |
| 14 return 1000 | 14 return 1000 |
| 15 end | 15 end |
| 16 | 16 |
| 17 -- different upgrade levels of the same item (only for older gear, player has control over upgrade level) | 17 -- different upgrade levels of the same item |
| 18 if item1.upgradeId ~= item2.upgradeId then | 18 if item1.upgradeId ~= item2.upgradeId then |
| 19 return 100 | 19 return 100 |
| 20 end | 20 end |
| 21 | 21 |
| 22 -- different gems | 22 -- different gems |
| 136 icon:SetIconBorderColor(Amr.Colors.Classes[player.Class]) | 136 icon:SetIconBorderColor(Amr.Colors.Classes[player.Class]) |
| 137 icon:SetWidth(48) | 137 icon:SetWidth(48) |
| 138 icon:SetHeight(48) | 138 icon:SetHeight(48) |
| 139 | 139 |
| 140 local iconSpec | 140 local iconSpec |
| 141 if player.SubSpecs[spec] then | 141 if player.SubSpecs and player.SubSpecs[spec] then |
| 142 iconSpec = player.SubSpecs[spec] | 142 iconSpec = player.SubSpecs[spec] |
| 143 else | 143 else |
| 144 iconSpec = player.Specs[spec] | 144 iconSpec = player.Specs[spec] |
| 145 end | 145 end |
| 146 | 146 |
| 147 icon:SetIcon("Interface\\Icons\\" .. Amr.SpecIcons[iconSpec]) | 147 icon:SetIcon("Interface\\Icons\\" .. Amr.SpecIcons[iconSpec]) |
| 148 icon:SetPoint("TOPLEFT", panelGear.content, "TOPLEFT", 10, -10) | 148 icon:SetPoint("TOPLEFT", panelGear.content, "TOPLEFT", 10, -10) |
| 149 panelGear:AddChild(icon) | 149 panelGear:AddChild(icon) |
| 150 | 150 |
| 151 local btnEquip = AceGUI:Create("AmrUiButton") | 151 local btnEquip = AceGUI:Create("AmrUiButton") |
| 152 btnEquip:SetText(L.GearButtonEquip(spec)) | 152 btnEquip:SetText(L.GearButtonEquip(L.SpecsShort[player.Specs[spec]])) |
| 153 btnEquip:SetBackgroundColor(Amr.Colors.Green) | 153 btnEquip:SetBackgroundColor(Amr.Colors.Green) |
| 154 btnEquip:SetFont(Amr.CreateFont("Regular", 14, Amr.Colors.White)) | 154 btnEquip:SetFont(Amr.CreateFont("Regular", 14, Amr.Colors.White)) |
| 155 btnEquip:SetWidth(300) | 155 btnEquip:SetWidth(300) |
| 156 btnEquip:SetHeight(26) | 156 btnEquip:SetHeight(26) |
| 157 btnEquip:SetPoint("LEFT", icon.frame, "RIGHT", 40, 0) | 157 btnEquip:SetPoint("LEFT", icon.frame, "RIGHT", 40, 0) |
| 158 btnEquip:SetPoint("RIGHT", panelGear.content, "RIGHT", -40, 0) | 158 btnEquip:SetPoint("RIGHT", panelGear.content, "RIGHT", -40, 0) |
| 159 btnEquip:SetCallback("OnClick", function(widget) | 159 btnEquip:SetCallback("OnClick", function(widget) |
| 160 Amr:EquipGearSet(spec) | 160 Amr:EquipGearSet(spec) |
| 161 end) | 161 end) |
| 162 panelGear:AddChild(btnEquip) | 162 panelGear:AddChild(btnEquip) |
| 163 | |
| 164 --[[local btnShop = AceGUI:Create("AmrUiButton") | |
| 165 btnShop:SetText(L.GearButtonShop) | |
| 166 btnShop:SetBackgroundColor(Amr.Colors.Blue) | |
| 167 btnShop:SetFont(Amr.CreateFont("Regular", 14, Amr.Colors.White)) | |
| 168 btnShop:SetWidth(300) | |
| 169 btnShop:SetHeight(26) | |
| 170 btnShop:SetPoint("LEFT", btnEquip.frame, "RIGHT", 75, 0) | |
| 171 btnShop:SetPoint("RIGHT", panelMods.content, "RIGHT", -20, 0) | |
| 172 btnShop:SetCallback("OnClick", function(widget) Amr:ShowShopWindow() end) | |
| 173 panelMods:AddChild(btnShop)]] | |
| 174 | 163 |
| 175 -- each physical item can only be used once, this tracks ones we have already used | 164 -- each physical item can only be used once, this tracks ones we have already used |
| 176 local usedItems = {} | 165 local usedItems = {} |
| 177 | 166 |
| 178 -- gear list | 167 -- gear list |
| 369 lbl2:SetWidth(130) | 358 lbl2:SetWidth(130) |
| 370 lbl2:SetFont(Amr.CreateFont("Italic", 12, Amr.Colors.Text)) | 359 lbl2:SetFont(Amr.CreateFont("Italic", 12, Amr.Colors.Text)) |
| 371 lbl2:SetPoint("TOP", lbl.frame, "BOTTOM", 10, -5) | 360 lbl2:SetPoint("TOP", lbl.frame, "BOTTOM", 10, -5) |
| 372 container:AddChild(lbl2) | 361 container:AddChild(lbl2) |
| 373 | 362 |
| 374 --[[ | |
| 375 local btnClean = AceGUI:Create("AmrUiButton") | |
| 376 btnClean:SetText(L.GearButtonCleanText) | |
| 377 btnClean:SetBackgroundColor(Amr.Colors.Orange) | |
| 378 btnClean:SetFont(Amr.CreateFont("Bold", 16, Amr.Colors.White)) | |
| 379 btnClean:SetWidth(120) | |
| 380 btnClean:SetHeight(26) | |
| 381 btnClean:SetPoint("BOTTOMLEFT", container.content, "BOTTOMLEFT", 0, 5) | |
| 382 btnClean:SetCallback("OnClick", function(widget) Amr:CleanBags() end) | |
| 383 container:AddChild(btnClean) | |
| 384 ]] | |
| 385 | |
| 386 local t = AceGUI:Create("AmrUiTabGroup") | 363 local t = AceGUI:Create("AmrUiTabGroup") |
| 387 t:SetLayout("None") | 364 t:SetLayout("None") |
| 388 t:SetTabs({ | 365 |
| 389 {text=L.GearTabPrimary, value="1", style="bold"}, | 366 local tabz = {} |
| 390 {text=L.GearTabSecondary, value="2", style="bold"} | 367 for pos = 1, 4 do |
| 391 }) | 368 local specId = GetSpecializationInfo(pos) |
| 369 if specId then | |
| 370 table.insert(tabz, { text = L.SpecsShort[Amr.SpecIds[specId]], value = pos .. "", style = "bold" }) | |
| 371 end | |
| 372 end | |
| 373 | |
| 374 t:SetTabs(tabz) | |
| 392 t:SetCallback("OnGroupSelected", onGearTabSelected) | 375 t:SetCallback("OnGroupSelected", onGearTabSelected) |
| 393 t:SetPoint("TOPLEFT", container.content, "TOPLEFT", 144, -30) | 376 t:SetPoint("TOPLEFT", container.content, "TOPLEFT", 144, -30) |
| 394 t:SetPoint("BOTTOMRIGHT", container.content, "BOTTOMRIGHT") | 377 t:SetPoint("BOTTOMRIGHT", container.content, "BOTTOMRIGHT") |
| 395 container:AddChild(t) | 378 container:AddChild(t) |
| 396 _gearTabs = t; | 379 _gearTabs = t; |
| 397 | 380 |
| 381 --[[ | |
| 398 local btnShop = AceGUI:Create("AmrUiButton") | 382 local btnShop = AceGUI:Create("AmrUiButton") |
| 399 btnShop:SetText(L.GearButtonShop) | 383 btnShop:SetText(L.GearButtonShop) |
| 400 btnShop:SetBackgroundColor(Amr.Colors.Blue) | 384 btnShop:SetBackgroundColor(Amr.Colors.Blue) |
| 401 btnShop:SetFont(Amr.CreateFont("Regular", 14, Amr.Colors.White)) | 385 btnShop:SetFont(Amr.CreateFont("Regular", 14, Amr.Colors.White)) |
| 402 btnShop:SetWidth(245) | 386 btnShop:SetWidth(245) |
| 403 btnShop:SetHeight(26) | 387 btnShop:SetHeight(26) |
| 404 btnShop:SetPoint("TOPRIGHT", container.content, "TOPRIGHT", -20, -25) | 388 btnShop:SetPoint("TOPRIGHT", container.content, "TOPRIGHT", -20, -25) |
| 405 btnShop:SetCallback("OnClick", function(widget) Amr:ShowShopWindow() end) | 389 btnShop:SetCallback("OnClick", function(widget) Amr:ShowShopWindow() end) |
| 406 container:AddChild(btnShop) | 390 container:AddChild(btnShop) |
| 407 | 391 ]] |
| 408 | 392 |
| 409 if not _activeTab then | 393 if not _activeTab then |
| 410 _activeTab = tostring(GetActiveSpecGroup()) | 394 _activeTab = tostring(GetSpecialization()) |
| 411 end | 395 end |
| 412 | 396 |
| 413 t:SelectTab(_activeTab) | 397 t:SelectTab(_activeTab) |
| 414 end | 398 end |
| 415 | 399 |
| 705 _pendingEquip = nil | 689 _pendingEquip = nil |
| 706 end | 690 end |
| 707 end | 691 end |
| 708 | 692 |
| 709 local function onActiveTalentGroupChanged() | 693 local function onActiveTalentGroupChanged() |
| 694 | |
| 710 local auto = Amr.db.profile.options.autoGear | 695 local auto = Amr.db.profile.options.autoGear |
| 711 local currentSpec = GetActiveSpecGroup() | 696 local currentSpec = GetSpecialization() |
| 712 | 697 |
| 713 if currentSpec == _waitingForSpec or auto then | 698 if currentSpec == _waitingForSpec or auto then |
| 714 -- spec is what we want, now equip the gear | 699 -- spec is what we want, now equip the gear |
| 715 startEquipGearSet(currentSpec) | 700 startEquipGearSet(currentSpec) |
| 716 end | 701 end |
| 717 | 702 |
| 718 _waitingForSpec = 0 | 703 _waitingForSpec = 0 |
| 719 end | 704 end |
| 720 | 705 |
| 721 -- activate the specified spec and then equip the saved gear set for either primary (1) or secondary (2) spec | 706 -- activate the specified spec and then equip the saved gear set |
| 722 function Amr:EquipGearSet(spec) | 707 function Amr:EquipGearSet(spec) |
| 723 | 708 |
| 724 -- if no argument, then toggle spec | 709 -- if no argument, then cycle spec |
| 725 if not spec then | 710 if not spec then |
| 726 spec = GetActiveSpecGroup() == 1 and 2 or 1 | 711 spec = GetSpecialization() + 1 |
| 727 end | 712 end |
| 728 | 713 |
| 729 -- allow some flexibility in the arguments | 714 -- allow some flexibility in the arguments |
| 730 if spec == "primary" or spec == "Primary" then spec = 1 end | 715 if spec == "1" or spec == "2" or spec == "3" or spec == "4" then spec = tonumber(spec) end |
| 731 if spec == "secondary" or spec == "Secondary" then spec = 2 end | 716 |
| 732 if spec == "1" or spec == "2" then spec = tonumber(spec) end | 717 local specId = GetSpecializationInfo(spec) |
| 733 | 718 if not specId then spec = 1 end |
| 734 -- only spec 1 or 2 are valid | |
| 735 if spec ~= 1 and spec ~= 2 then return end | |
| 736 | 719 |
| 737 if UnitAffectingCombat("player") then | 720 if UnitAffectingCombat("player") then |
| 738 Amr:Print(L.GearEquipErrorCombat) | 721 Amr:Print(L.GearEquipErrorCombat) |
| 739 return | 722 return |
| 740 end | 723 end |
| 741 | 724 |
| 742 _waitingForSpec = spec | 725 _waitingForSpec = spec |
| 743 | 726 |
| 744 local currentSpec = GetActiveSpecGroup() | 727 local currentSpec = GetSpecialization() |
| 745 if currentSpec ~= spec then | 728 if currentSpec ~= spec then |
| 746 SetActiveSpecGroup(spec) | 729 SetSpecialization(spec) |
| 747 else | 730 else |
| 748 onActiveTalentGroupChanged() | 731 onActiveTalentGroupChanged() |
| 749 end | 732 end |
| 750 end | 733 end |
| 751 | 734 |
| 752 -- moves any gear in bags to the bank if not part of main or off spec gear set | 735 -- moves any gear in bags to the bank if not part of main or off spec gear set |
| 753 function Amr:CleanBags() | 736 function Amr:CleanBags() |
| 754 -- TODO: implement | 737 -- TODO: implement |
| 755 end | 738 end |
| 756 | 739 |
| 740 --[[ | |
| 741 local function testfunc(message) | |
| 742 print(strsub(message, 13)) | |
| 743 end | |
| 744 ]] | |
| 745 | |
| 757 function Amr:InitializeGear() | 746 function Amr:InitializeGear() |
| 758 Amr:AddEventHandler("ACTIVE_TALENT_GROUP_CHANGED", onActiveTalentGroupChanged) | 747 Amr:AddEventHandler("PLAYER_SPECIALIZATION_CHANGED", onActiveTalentGroupChanged) |
| 759 | 748 |
| 749 --Amr:AddEventHandler("CHAT_MSG_CHANNEL", testfunc) | |
| 750 | |
| 760 Amr:AddEventHandler("UNIT_INVENTORY_CHANGED", function(unitID) | 751 Amr:AddEventHandler("UNIT_INVENTORY_CHANGED", function(unitID) |
| 761 if unitID and unitID ~= "player" then return end | 752 if unitID and unitID ~= "player" then return end |
| 762 Amr:RefreshGearTab() | 753 Amr:RefreshGearTab() |
| 763 end) | 754 end) |
| 764 | 755 |
