mirror of
https://github.com/parnic/breakables.git
synced 2025-06-17 01:41:51 -05:00
Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
4d0b368ba6
|
|||
ca215c2382
|
|||
66c35b8277
|
|||
e3d271e0ff
|
|||
7b3cca585f
|
|||
bcc53b8ed0
|
|||
9775e3c30e
|
|||
9595af7979
|
|||
5ae7a5efb1
|
|||
bd0d8b51f8
|
|||
0dbf1d7705
|
|||
a94cba6c34
|
|||
d000f77a53
|
|||
3c50d6fab5
|
|||
b4416d6daa
|
|||
e904b2c12f | |||
5c44d9ae23 | |||
d73336f725 |
@ -5,6 +5,8 @@ local LBF = LibStub("Masque", true)
|
||||
|
||||
local lbfGroup
|
||||
|
||||
local WowVer = select(4, GetBuildInfo())
|
||||
|
||||
local MillingId = 51005
|
||||
local MillingItemSubType = babbleInv["Herb"]
|
||||
local MillingItemSecondarySubType = babbleInv["Other"]
|
||||
@ -26,12 +28,28 @@ local AdditionalMillableItems = {
|
||||
124105,
|
||||
124106,
|
||||
128304,
|
||||
151565,
|
||||
-- BfA herbs
|
||||
152505,
|
||||
152506,
|
||||
152507,
|
||||
152508,
|
||||
152509,
|
||||
152510,
|
||||
152511,
|
||||
168487,
|
||||
}
|
||||
|
||||
local AdditionalProspectableItems = {
|
||||
-- Legion ore
|
||||
123918,
|
||||
123919,
|
||||
151564,
|
||||
-- BfA ore
|
||||
152512,
|
||||
152513,
|
||||
152579,
|
||||
168185,
|
||||
}
|
||||
|
||||
local MassMilling = {
|
||||
@ -50,6 +68,7 @@ local MassMilling = {
|
||||
[124105] = 209662,
|
||||
[124106] = 209664,
|
||||
[128304] = 210116,
|
||||
[151565] = 247861,
|
||||
}
|
||||
|
||||
local HerbCombineItems = {
|
||||
@ -92,6 +111,10 @@ local DisenchantTypes = {babbleInv["Armor"], babbleInv["Weapon"]}
|
||||
local CanDisenchant = false
|
||||
local EnchantingProfessionId = 333
|
||||
|
||||
local AdditionalDisenchantableItems = {
|
||||
137195, -- highmountain armor
|
||||
}
|
||||
|
||||
local PickLockId = 1804
|
||||
local PickableItems = {
|
||||
16882, -- battered junkbox
|
||||
@ -119,6 +142,8 @@ local PickableItems = {
|
||||
68729, -- elementium lockbox
|
||||
88567, -- ghost iron lockbox
|
||||
116920, -- true steel lockbox
|
||||
121331, -- leystone lockbox
|
||||
169475, -- barnacled lockbox
|
||||
}
|
||||
local CanPickLock = false
|
||||
|
||||
@ -314,7 +339,7 @@ function Breakables:RegisterEvents()
|
||||
|
||||
self:RegisterEvent("MODIFIER_STATE_CHANGED", "FindBreakables")
|
||||
|
||||
if CanDisenchant then
|
||||
if CanDisenchant and WowVer < 80000 then
|
||||
self:RegisterEvent("TRADE_SKILL_UPDATE", "OnTradeSkillUpdate")
|
||||
end
|
||||
|
||||
@ -386,7 +411,7 @@ function Breakables:OnTradeSkillUpdate()
|
||||
end
|
||||
|
||||
function Breakables:OnBagItemLockPicked()
|
||||
nextCheck[1] = GetTime() + BagUpdateCheckDelay
|
||||
self:FindBreakables()
|
||||
end
|
||||
|
||||
function Breakables:FindLevelOfProfessionIndex(idx)
|
||||
@ -1049,7 +1074,8 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
|
||||
local texture, itemCount, locked, quality, readable = GetContainerItemInfo(bagId, slotId)
|
||||
if texture then
|
||||
local itemLink = GetContainerItemLink(bagId, slotId)
|
||||
if self.settings.ignoreList[self:GetItemIdFromLink(itemLink)] then
|
||||
local itemId = self:GetItemIdFromLink(itemLink)
|
||||
if self.settings.ignoreList[itemId] then
|
||||
return nil
|
||||
end
|
||||
|
||||
@ -1058,7 +1084,7 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
|
||||
self.myTooltip:SetBagItem(bagId, slotId)
|
||||
|
||||
if CanDisenchant and itemRarity and itemRarity >= RARITY_UNCOMMON and itemRarity < RARITY_HEIRLOOM
|
||||
and self:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink) then
|
||||
and self:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId) then
|
||||
local i = 1
|
||||
local soulbound = false
|
||||
for i=1,15 do
|
||||
@ -1073,7 +1099,7 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
|
||||
|
||||
local isInEquipmentSet = false
|
||||
if self.settings.hideEqManagerItems then
|
||||
isInEquipmentSet = self:IsInEquipmentSet(self:GetItemIdFromLink(itemLink))
|
||||
isInEquipmentSet = self:IsInEquipmentSet(itemId)
|
||||
end
|
||||
|
||||
local isTabard = false
|
||||
@ -1106,7 +1132,6 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
|
||||
end
|
||||
end
|
||||
|
||||
local itemId = self:GetItemIdFromLink(itemLink)
|
||||
if CanMill and not millable then
|
||||
for i=1,#AdditionalMillableItems do
|
||||
if AdditionalMillableItems[i] == itemId then
|
||||
@ -1208,13 +1233,26 @@ do
|
||||
end
|
||||
|
||||
function Breakables:IsInEquipmentSet(itemId)
|
||||
for setIdx=1, GetNumEquipmentSets() do
|
||||
local set = GetEquipmentSetInfo(setIdx)
|
||||
local itemArray = GetEquipmentSetItemIDs(set)
|
||||
if WowVer < 80000 then
|
||||
for setIdx=1, GetNumEquipmentSets() do
|
||||
local set = GetEquipmentSetInfo(setIdx)
|
||||
local itemArray = GetEquipmentSetItemIDs(set)
|
||||
|
||||
for i=1, EQUIPPED_LAST do
|
||||
if itemArray[i] and itemArray[i] == itemId then
|
||||
return true
|
||||
for i=1, EQUIPPED_LAST do
|
||||
if itemArray[i] and itemArray[i] == itemId then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
local sets = C_EquipmentSet.GetEquipmentSetIDs()
|
||||
for k, v in ipairs(sets) do
|
||||
local itemArray = C_EquipmentSet.GetItemIDs(v)
|
||||
|
||||
for i=1, EQUIPPED_LAST do
|
||||
if itemArray[i] and itemArray[i] == itemId then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1228,10 +1266,8 @@ function Breakables:GetItemIdFromLink(itemLink)
|
||||
end
|
||||
|
||||
function Breakables:MergeBreakables(foundBreakable, breakableList)
|
||||
local foundItemId = self:GetItemIdFromLink(foundBreakable[IDX_LINK])
|
||||
for n=1,#breakableList do
|
||||
local listItemId = self:GetItemIdFromLink(breakableList[n][IDX_LINK])
|
||||
if foundItemId == listItemId then
|
||||
if foundBreakable[IDX_LINK] == breakableList[n][IDX_LINK] then
|
||||
-- always prefer the larger stack
|
||||
if foundBreakable[IDX_COUNT] > breakableList[n][IDX_COUNT] then
|
||||
breakableList[n][IDX_BAG] = foundBreakable[IDX_BAG]
|
||||
@ -1259,9 +1295,14 @@ function Breakables:SortBreakables(foundBreakables)
|
||||
end
|
||||
end
|
||||
|
||||
function Breakables:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink)
|
||||
function Breakables:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId)
|
||||
for i=1,#DisenchantTypes do
|
||||
if DisenchantTypes[i] == itemType or IsArtifactRelicItem(itemLink) then
|
||||
-- temp hack for bfa until disenchant item level scales are identified
|
||||
if WowVer >= 80000 then
|
||||
return true
|
||||
end
|
||||
|
||||
-- account for WoD and higher no longer needing specific ilvl. numbers from http://wow.gamepedia.com/Item_level
|
||||
if (itemRarity == RARITY_UNCOMMON and itemLevel >= 483)
|
||||
or (itemRarity == RARITY_RARE and itemLevel >= 515)
|
||||
@ -1357,5 +1398,11 @@ function Breakables:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, i
|
||||
end
|
||||
end
|
||||
|
||||
for i=1,#AdditionalDisenchantableItems do
|
||||
if AdditionalDisenchantableItems[i] == itemId then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
## Interface: 70200
|
||||
## Interface: 80200
|
||||
## Author: Parnic
|
||||
## Name: Breakables
|
||||
## Title: Breakables |cff7fff7f-Ace3-|r
|
||||
@ -6,7 +6,7 @@
|
||||
## Version: @project-version@ (Revision: @project-revision@)
|
||||
## SavedVariables: BreakablesDB
|
||||
## OptionalDeps: Ace3, LibBabble-Inventory-3.0, Masque
|
||||
## X-Compatible-With: 60200
|
||||
## X-Compatible-With: 70300
|
||||
|
||||
#@no-lib-strip@
|
||||
embeds.xml
|
||||
|
@ -1,3 +1,28 @@
|
||||
v1.6.2:
|
||||
- Added 8.2's lockboxes
|
||||
|
||||
v1.6.1:
|
||||
- Added patch 8.2's new herb and ore
|
||||
|
||||
v1.6:
|
||||
- Updated TOC for 8.2
|
||||
|
||||
v1.5.1:
|
||||
- Updated TOC for 8.1
|
||||
- Added Highmountain Armor as a disenchantable item
|
||||
|
||||
v1.5:
|
||||
- Updated TOC for 8.0
|
||||
- Added BfA herbs and ore
|
||||
- Fixed separate items sometimes showing up as one breakable
|
||||
- Added Leystone Lockbox
|
||||
|
||||
v1.4.9.1:
|
||||
- Added 7.3 herbs and ore
|
||||
|
||||
v1.4.9:
|
||||
- Updated TOC for 7.3
|
||||
|
||||
v1.4.8:
|
||||
- Fixed error in ignored items when the ignored item had not been loaded by the server since the last restart.
|
||||
- Updated TOC for 7.2
|
||||
|
@ -1,4 +1,5 @@
|
||||
<Ui xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||
<!--@non-debug@
|
||||
<Script file="libs\LibStub\LibStub.lua"/>
|
||||
<Script file="libs\CallbackHandler-1.0\CallbackHandler-1.0.lua"/>
|
||||
<Include file="libs\AceAddon-3.0\AceAddon-3.0.xml"/>
|
||||
@ -10,4 +11,5 @@
|
||||
<Include file="libs\AceEvent-3.0\AceEvent-3.0.xml"/>
|
||||
<Include file="libs\AceLocale-3.0\AceLocale-3.0.xml"/>
|
||||
<Include file="libs\LibBabble-Inventory-3.0\lib.xml"/>
|
||||
</Ui>
|
||||
@end-non-debug@-->
|
||||
</Ui>
|
||||
|
Reference in New Issue
Block a user